gpt4 book ai didi

erlang - 考虑将应用程序从 .NET 移植到 Erlang - 需要建议

转载 作者:行者123 更新时间:2023-12-04 14:35:06 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。




Improve this question




我正在为 Erlang 寻找 future 版本的分布式软实时托管的基于 Web 的电话应用程序(即,Erlang 看起来绝对是此类应用程序的完美选择)。我来自 .NET 背景,这个应用程序的当前版本使用 C#、WCF 和 JQuery 的组合来提供服务。我现在需要 Erlang 来让我的正常运行时间增加额外的 9,并让我获得更多的服务器成本。

以前我在这里设置了一个开发过程,结合了 VS.NET、GIT、TeamCity 和 MSI 文件的自动部署到我们维护的各种环境。它并不完美,但我们现在都对它很满意。我想知道像我们这样的流程是否适合这种完全不同的技术堆栈(LYME)?

我相信我们以前使用 .NET 解决的所有编程挑战都可以用更少的代码用 Erlang 更好地解决,所以我完全相信语言选择。通过阅读有关 Erlang 的 Pragmatic 和 O'Reilly 书籍,我还不明白我应该如何调整我的软件工程和应用程序生命周期管理 (ALM) 流程以适应新平台。我看到就地代码更新可以使我(以及我的测试和运营团队)的生活更轻松(与尝试在 Windows 网络上部署 MSI 文件的可怕痛苦相比),但我不确定事情应该如何改变当我使用 Erlang 时。

你会怎么做:

  • Erlang做持续集成(常用吗?)
  • 在 QA 周期中使用它(我们经常使用 GIT 运行并发主题分支,它们有自己的 mini-QA 周期,因此它们都被部署到测试环境中)
  • 构建代码并将其分发到 DEV、TEST、UAT、STAGING 和 PROD 环境
  • 将代码生成阶段集成到您的构建周期中(我们目前使用 MSBUILD + T4 模板)
  • 为一堆不同的服务器集中日志记录(我们目前使用 Log4Net、MSMQ 等)
  • 使用 SCOM
  • 等工具进行警报
  • 确定是否有人/某事错误配置了您的生产服务器
  • 仅在经过充分的 QA 后才允许生产热修复(仅由授权人员)
  • 分析应用程序的性能(计算和通信)
  • 与基于 Windows 的事件目录服务器交互

  • 我想我需要知道什么对你有用,为什么!您使用了哪些工具和框架?你尝试了什么失败了?如果你可以重新开始,知道你现在所知道的,你会做些什么不同的事情?

    最佳答案

    哇,好长的帖子。首先,您应该知道,99.9% 和更好的 kool-aid 在失明时饮用有点危险。是的,您可以获得一些惊人的稳定性数据,但是您需要以一种促进这一点的方式编写程序。它不是免费的。它也不是靠魔法发生的。您的应用程序的设计方式必须使其他子系统能够恢复。 OTP 将帮助您很多 - 但仍然需要时间来学习。

    持续集成:轻松完成。如果您可以调用rebarmake通过您的构建机器人,您可能已经设置在这里。查看 eunit、cover 和 Erlang QuickCheck(迷你变体对初学者是免费的)——所有这些都可以从 rebar 运行。

    QA Cycle:我在这里没有遇到任何问题。同样,如果使用 rebar您可以构建最小化 erlang vm 的嵌入式版本,您可以在任何地方复制并运行(它们是独立的)。您甚至可以通过稍微更改代码路径轻松地将修复程序热部署到这样的系统,这样您就可以覆盖较新的修复程序。您的选择很多。 Git 已经在这里帮助了你很多。

    环保:轻松搞定。

    日志集中化:查看 SASL 和 error_logger。你可以在这里做任何你想做的事情。

    警报:可以根据您的需要对系统进行探测(Erlang 中的自省(introspection)功能很强)。但是您可能需要编写一些代码才能将其连接到您选择的系统。

    错误配置:配置文件是 Erlang 术语。如果它可以计算,它可以完成。

    安全性:限制谁可以访问。在我看来,这是一个人的问题,而不是技术问题。

    分析:cprof、cover、eprof、fprof、instrument + 几个分布式系统来做同样的事情。随机抽样也很容易(Erlang 中的自省(introspection)能力很强)。

    Windows 交互:不知道。 (偏见:我最后一次专业使用 Windows 是在 1998 年左右)。

    一些个人观察:

    你最大的问题可能最终是你试图将 Erlang 塞进你现有的进程中,它可能会抵制。这是一个新的环境,因此在某些地方需要新的方法,并且您应该期望适应并解决您在此过程中发现的限制。普遍的共识是它可以工作(它适用于几个大网站)。

    看起来您有一个完善且严格的流程。为了让位于一种新的思维方式,该过程允许牺牲多少?

    你的程序员愿意扔掉他们几乎所有的 OO 知识吗?如果不是这样,你将以社会问题而不是技术问题告终。但是,如果他们像我一样,他们会欢呼,鼓掌,并通过使用有趣的语言以新的方式解决有趣的问题来获得持续的兴奋。

    你有多少有 Erlang 经验的程序员?如果你很少,那么最好先在一些较小的子系统上切齿,然后朝着更大的目标努力。获得系统的全部好处需要几个月甚至几年的时间。不过,可以在几周内获得部分 yield 。

    关于erlang - 考虑将应用程序从 .NET 移植到 Erlang - 需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262118/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com