私は、分散型のソフトリアルタイムでホストされる Web ベースのテレフォニー アプリの将来のバージョンとして、Erlang を検討しています (つまり、Erlang は、この種のアプリに最適な選択肢のように見えます)。私は .NET のバックグラウンドを持っており、このアプリの現在のバージョンでは、C#、WCF、および JQuery を組み合わせてサービスを提供しています。私は今、Erlang を必要としており、稼働時間をさらに 9 倍に増やし、サーバーの費用をより多く回収できるようにしています。
以前は、VS.NET、GIT、TeamCity、および維持しているさまざまな環境への MSI ファイルの自動デプロイを組み合わせて、ここで開発プロセスをセットアップしていました。完璧ではありませんが、私たちは皆、これでかなり快適になりました。私たちのようなプロセスが、このような根本的に異なるテクノロジー スタック (LYME) に適しているかどうか疑問に思っています。
以前に .NET を使用して解決したプログラミングの課題はすべて、Erlang を使用するとより少ないコードで解決できると確信しているため、言語の選択に完全に納得しています。Pragmatic や O'Reilly の Erlang に関する本を読んでもまだ理解できないのは、ソフトウェア エンジニアリングとアプリケーション ライフサイクル管理 (ALM) プロセスを新しいプラットフォームに適合させるにはどうすればよいかということです。コードのインプレース更新により、私 (および私のテスト チームと運用チーム) の生活が大幅に楽になることがわかります (Windows ネットワークを介して MSI ファイルを展開しようとする悲惨な状況と比較して)。 Erlangを使用するとき。
どのようにしますか:
- Erlang で継続的インテグレーションを行います (一般的に使用されていますか?)
- QA サイクル中に使用します (GIT を使用して同時トピック ブランチを実行することが多く、独自のミニ QA サイクルを取得するため、すべてテスト環境にデプロイされます)
- コードをビルドして DEV、TEST、UAT、STAGING、および PROD 環境に配布する
- コード生成フェーズをビルド サイクルに統合します (現在、MSBUILD + T4 テンプレートを使用しています)。
- 多数の異なるサーバーのログを集中化します (現在、Log4Net、MSMQ などを使用しています)
- SCOM などのツールでアラートを行う
- 誰か/何かが本番サーバーを誤って構成していないかどうかを判断する
- 適切な QA の後にのみ本番用のホットフィックスを許可する (許可された担当者のみ)
- アプリのパフォーマンス (計算と通信) のプロファイリング
- Windows ベースの Active Directory サーバーと対話する
私はあなたのために何がうまくいったのか、そしてその理由を知る必要があると思います! どのようなツールとフレームワークを使用しましたか? 何を試して失敗しましたか?今知っていることを知って、最初からやり直すことができるとしたら、何を変えますか?