スケーリング
痛みを伴わない成長
Apstraは、ネットワーク透過的な分散状態のアクセスと管理をサポートし、並列実行は個別のプロセスによってサポートされます。リアルタイムの実行は、実行のリアルタイムスケジューリングとともに、イベント駆動型の非同期実行モデルによってサポートされます。効率と予測可能性は、マシンレベルの効率性を達成するための中間言語としてのC++によるコンパイルによってサポートされます。
スケーリングには 3 つの側面があります。
-
状態
-
加工
-
ネットワーク トラフィック
状態のスケーリング
Juniper Apstraデータストアは、サーバーの高可用性(HA)ペアを追加することで、水平方向に拡張できます。Apstraでは、インテントデータストアとテレメトリデータストアは分離されており、必要に応じて個別に拡張できます。
処理のスケーリング
Juniper Apstraは、処理負荷の共有が必要な場合、処理エージェントの複数コピーを(エージェントタイプごとに)起動できます。エージェントをホストするサーバーを追加することで、エージェントを追加でき、エージェントのライフサイクルはApstraによって管理されます。
Apstraの状態ベースのpub/subアーキテクチャにより、エージェントは明確に定義された状態のサブセットに対応(アプリケーションロジックを提供)できます。インテント全体のカバレッジは、状態のさまざまなサブセットの処理を代行する個別のエージェントを通じて行われます。つまり、インテントや運用状態に変更が生じた場合、エージェントの対応は「増分変化」に対するものであり、状態全体のサイズとは無関係であることを意味します。
Apstraは、拡張とそれに伴う複雑さに対処するために従来のアプローチ、つまり分解を採用しています。「誰もがすべてを知っている」アプローチは拡張性がないため、Apstraは目的の状態に関する知識を配布し、各エージェントにその状態に到達する方法を決定させます。これにより、集中的な意思決定が不要になります。このため、Apstraサーバーは「コントローラ」とは見なされません。Apstraはライブグラフクエリをサポートしているため、UIなどのクライアントは、必要なものを正確に要求して取得でき、バックエンドから取得されるデータの量をきめ細かく制御できます。
ネットワークトラフィックのスケーリング
3つ目の側面は、ネットワークトラフィックのスケーリングです。エージェントとデータストア間の通信は、最適化されたバイナリチャネルを使用しているため、テキストベースのプロトコルと比較してトラフィック量が大幅に削減されます。
耐障害性は、Apstraアプリケーションを複数のプロセスとして実行し、ネットワークで接続された個別のハードウェアデバイスで実行し、状態の再現と迅速な復旧のサポートで状態を処理から分離することで達成されます。
Apstraは、400+スイッチの本番導入でテスト済みです。Apstraは、最大1600台の仮想デバイスで構成されるネットワークファブリックの社内テストを完了しています。物理的なファブリックサイズの制限は、ベンダーのフォームファクターとソフトウェアの制限に基づいています。