お使いの皆さんの中には、C#で開発をしている人も多いことでしょうね。動くアプリであることも多いでしょう。サーバーの存在が重要です。コンテナ化やサーバーレスは世の潮流ともなっており、これまでの資産をどう活かしていくかは開発者だけでなく運用設計、アーキテクト、経営者や事業責任者の皆さんの関心事となっています。コンテナをクラウド上で動かし、運用する活用技術があります。コンテナを運用環境(プロダクション環境)で実際に運用してきたノウハウを、少しご紹介したいと思います。Windows上で動きます。VM(IaaS)をメンテナンスしていくのは今となっては面倒で、運用性や保守性の観点からもあまり好ましくありません。PaaS上で動かそうか、というのがこれまでの第一選択肢でした。比べ、モジュールのインストールなどで自由度が低い側面があり、ミドルウェアの利用などに一定の制約を受けます。ようなファイル転送ミドルを使い、外部システムとデータ連携することを考えた場合、セットアップが困難です。ファイル転送などはクラウドデザイン的ではないのでキューを使ったりBLOBで連携するなど、メッセージング処理をすることを勧める人もいるかもしれません。データの保証やリトライ処理、前後の処理連携などの仕組みを個別実装するのもまた「車輪の再発明」で、悩ましいところです。PaaSでこれを実現するのはまた骨が折れます。使えたら、と思わない訳にはいきません。処理の中心となるアプリケーションのコンテナと、ファイル転送などの機能をセットアップしたコンテナとを1つのポッドの中にセットアップし、k8sで動かせば、非常に利便性の高い構成となります。コンテナの最大のメリットは、イミュータブルであることだ、と私は考えています。イミュータブルであることにより、ポータビリティ(可搬性)が生まれ、これに宣言的設定のk8sと組み合わせることで、自由度の高いスケーラビリティやアベイラビリティ、そしてセルフヒーリングなども実現できているのだと捉えています。環境で動かして、快適で安心なインフラを実現しましょう、と言うのがFIXERの最近の提案であり、実現・実践して培ってきた経験の1つです。動くようにしています。Windows」ですね。手元のパソコンでインストールして試してみている方も多いかと思います。手元で動かせているので、ではサーバーに持っていってそのまま運用できるのでは、、と素直に考えてしまうのですが、なかなか世の中はそう上手くいきません。VM(IaaS)の上で動かすことならできますが、それではVMの設計や構築、運用の手間が増えてしまいますし、vNet(仮想ネットワーク)を含めてk8sをセットアップするだけでも結構な手間です。単体でコンテナを動かすだけならば簡単なのですが、複数のサーバーノードを使ってシステムとして汲み上げるにはかなりのハードルがあります。コンテナはホストOSのカーネルと、コンテナのOSのカーネルとの整合性がとても複雑というか厳密というか、繊細です。誤ってセットアップするとしばらくは動いているのに突然ハングアップするなどの障害にも見舞われます。サポートが、まだプレビュー段階のものも多くなっています。上で動かすためのベストプラクティスを見つけ出しました。運用環境でも問題なく稼働するものです。Appsでコンテナを動かす方法など、必要に応じて使い分けることができます。使うパターンについてご紹介したいと思います。Days%d人のブロガーが「いいね」をつけました。