コンテナは世界を食べています。過去数年間に本番環境でアプリケーションをビルドしてデプロイした場合、コードをコンテナーにデプロイした可能性があります。最初は個々のコンテナー(Docker、Linux LXCなど)を直接作成してデプロイしたかもしれませんが、マルチノードデプロイメントと高可用性を調整する必要がある場合は、Kubernetes(K8s)やSwarmなどのコンテナーオーケストレーションテクノロジーにすぐに切り替えました。 (HA)。このコンテナ主導の世界では、アプリケーションスタックの将来はどのようになりますか?この「将来の」アプリケーションスタックから必要なものから始めましょう。
この将来のアプリケーションスタックから何が必要ですか?
-
クラウドにとらわれない
クラウドにとらわれず、選択した任意のクラウドにデプロイできるようにしたいと考えています。理想的には、1つの展開でさまざまなプロバイダーを混在させることもできます。
-
オンプレミス
独自のカスタムハードウェア、プライベートクラウド、内部管理されたデータセンターを使用して、オンプレミスでアプリケーションスタックを実行できる必要があります。
-
言語に依存しない
ほぼ同じですが、完全を期すために追加します。将来のオープンスタックは、一般的なプログラミング言語をすべてサポートする必要があります。
将来のアプリケーションスタック
将来のアプリケーションスタックは、K8、Platform-as-a-Service(PaaS)、Database-as-a-Service(DBaaS)の3つのテクノロジーで構成されます。 :
K8s
Kubernetesは、コンテナ化されたワークロードとサービスを管理するためのポータブルで拡張可能なオープンソースプラットフォームであり、アプリケーションをK8sコンテナに直接デプロイできます。既存のアプリケーションを使用しているお客様の場合、既存のアプリケーションをパッケージ化してK8sに直接デプロイすることは完全に理にかなっています。
アプリケーションスタックの未来:K8s、PaaS、DBaaSクリックしてツイート
すべてのパブリッククラウドベンダーがK8の強力なネイティブサポートを提供しており、オンプレミスで独自のK8sクラスターを実行することもできます。 DockerもK8sの時流に乗ったので、完全な柔軟性があります。 K8sが今日の丘の王様であることは間違いありません。数年以内に、別のソリューションに打ち負かされる可能性がありますが、コンテナオーケストレーションテクノロジーは今後も続くでしょう。
PaaSソリューション
新しいアプリケーションを最初から作成する場合、Cloud FoundryやOpenShiftなどのPlatform-as-a-Serviceソリューションには、アプリケーション開発をスピードアップするために活用できる魅力的な利点があります。ライフサイクル。 PaaSは必須ですか?確かにそうではありませんが、新しいアプリケーションを作成するかどうかを検討する価値があると思います。
場合によっては、PaaSソリューションがK8で実行されるか、K8の横に配置されることがあります。アプリケーションの観点からは、問題ではありません。 IT組織がPaaSソリューションをデプロイしている場合、既存のK8sクラスターで実行するだけであればそれが気に入るかもしれません。上記のPaaSソリューションは、すべてのパブリッククラウドでも利用できます。繰り返しになりますが、プラットフォームに必要な完全な柔軟性があります。
DBaaSソリューション
本番データベースシステムの実行と管理は、気の弱い人向けではありません。実稼働データベースを3つのコンテナーにインストールし、その後も正常に実行されると思われる場合は、別のことが起こります。 Database-as-a-Serviceソリューションを使用することで、データベース管理のすべての運用面を処理できるため、予期しない事態に備えることができます。
DBaaSはK8で実行される場合と実行されない場合があります。 DBaaSの一部はK8で実行されている可能性がありますが、そうではない可能性があります。なぜですか?
- 人気のあるパブリッククラウド以外に、EC2 Elastic Block Storage(EBS)品質までのストレージ/ボリュームに最適なソリューションはありません。 PortWorxやOpenEBSなどのベンダーが取り組んでいますが、まだ存在していません。優れたストレージソリューションがなければ、データをコンテナに入れることは事実上不可能です。
- 大規模な数TBの本番データベースサーバーを実行している場合、コンテナで実行することは意味がありません。豪華なSSDを備えた大規模な専用マシンを使用することになります。 。
- ダイナミズムが多すぎる–はい、良いことが多すぎる可能性があります。時々、物事が失敗したとき、あなたはそれらを失敗させたままにして、何が起こっているのかを見て見ることができるようにしたいことがあります。 KubernetesのStatefulSetsは、この問題を解決するための正しい方向への大きな一歩です。
ScaleGridのビジョンは、この将来のアプリケーションスタックのDBaaS部分を提供することです。現在、私たちはマルチクラウドであり、オンプレミスまたは独自のプライベートデータセンターで実行することもできます。さらに、私たちのプラットフォームは、MongoDB®、Redis™*、MySQL、PostgreSQLなどの複数のデータベースをサポートするポリグロットシステムです。
簡単にするために、オブジェクトストレージ、ファイルシステムストレージなど、アプリケーションスタックの他の部分を除外しました。原則として、これらのコンポーネントは、DBaaSコンポーネントに似ています。このブログ投稿は、数週間前に参加したシリコンバレーのPostgreSQLミートアップに触発され、このトピックに関するディスカッションを開始してくれたRedisLabsのDave Nielsen(@davenielsen)に叫びました。