分散、耐障害性システム向けの Erlang と OTP
Erlang は Ericsson でダウンタイムなしで動作する電話交換機を実行するために構築されました。その起源はこの言語のすべてを形作っています。アクターモデル、軽量プロセス、および let it crash フィロソフィーにより、9 つの 9 の可用性が現実的なエンジニアリング目標となる数少ないプラットフォームの 1 つです。マーケティング活動ではありません。OTP フレームワークは GenServer、Supervisor、ステートマシンといった戦闘で実証済みの抽象化を基盤の上に重ね、WhatsApp、RabbitMQ、CockroachDB の本番システムで使用されている標準パターンを提供します。
学習内容
Erlang の並行処理モデルとプロセスプリミティブから始まり、その後 OTP コアに移ります。GenServer コールバックの作成、スーパーバイザーツリーの構造化、障害を段階的に広がる前に分離する耐障害性戦略の適用を行います。そこから、トラックは高度な OTP ビハビアーと gen_statem ステートマシン、分散 Erlang ノード通信、動的スーパーバイザー、実行中のシステムを停止せずのライブコードアップグレードをカバーします。後のコースでは、Mnesia — Erlang の組み込み分散データベース — パフォーマンスプロファイリング、可観測性、および分散ノードの保護に対応します。トラックは実世界の OTP デザインパターンと、エンドツーエンドのレジリエント分散アプリケーションのアーキテクチャで終わります。
学習パス
12 のコースは A2 から C2 にまたがっています。トラックは Erlang Fundamentals and Concurrency Basics の A2 で開始され、OTP Core とエラーハンドリング基礎の B2 にステップアップし、その後、分散 Erlang、リリース管理、Mnesia、およびセキュリティをカバーする 8 つの C1 コースを進みます。最後の 2 つの C2 コース — Building Resilient Distributed Applications と Real-world Erlang OTP Design Patterns — はすべてを本番環境対応システム設計に統合します。
仕組み
各コースは、組み込みコードエディタでリアルタイムフィードバック付きで完了する短くて焦点を絞ったレッスンに分割されています。スーパーバイザーツリーまたは厄介な分散メッセージングシナリオで立ち往生するたびに AI チューターが利用可能なので、コンテキストを失うことなく進み続けることができます。