12:00マイクロサービスや分散アプリ、DevOps、コンテナサービス、サーバレスなど、アーキテクチャや技術トレンドは刻々と変化し、エンジニアに求められる選択肢は多岐にわたっている。Market(サービスがリリースされるまでの時間)はどんどん短くなっているため、悩んでいるエンジニアも多い。テクノロジーソリューションプロフェッショナルの川崎庸市氏が解説した。Market」を実現するコンピューティングの進化とともに、アーキテクチャのトレンドは変化してきた。2010年からクラウドの時代となり、分散やDevOps、プラットフォームベースといったキーワードが注目を集め、アーキテクチャはモノリシックからマイクロサービスへと移行している。Market」、つまり「すばやく、効率的かつ安定的に市場に価値を届けるという目的を達成するためだ」と川崎氏は説明する。Market」を実現するためだという。経済産業省の調査によると、人口減少に伴い、IT関連産業への入職者数は2019年を減少していくという。「クラウドネイティブの技術を使って、効率的かつ安定的に市場に届けることが重要になる」と川崎氏は言う。IaaSやCaaS、PaaS、FaaSなど、現在、さまざまなマネージドサービスが登場している。選択肢を前に、どう選べば良いのか、頭を悩ませているエンジニアも多い。川崎氏は「各サービスの抽象度を意識して、選択してほしい」と語る。マネージドサービスにおいて、抽象度と相反する価値が自由度である。ベンダーの管理レベルが下がると自由度が上がるが、ベンダーの管理レベルが上がると、それだけ自由度は低くなり、抽象度は上がる。「ベンダーの管理レベルが上がるメリットは、いろいろなベストプラクティスやテクノロジーを使って管理が行われるため、開発やデプロイの迅速性、生産性が上がることだ」と川崎氏。自由度が低く、ブラックボックスが増えるというデメリットはある。「学習カーブや制約度合い、アーキテクチャ・運用方式の変更最適化に伴うコストを考慮する必要はあるが、高付加価値を求めるのなら、CaaSやPaaS、FaaSを選択するのがおすすめだ」と言い切る。マイクロサービスの開発運用の複雑さをシンプルにするにはどんなプラットフォームを活用すれば良いのか。マイクロサービスアーキテクチャでは、複数のコンテナを連携する必要が生じるため、それを管理するオーケストレーション機能が必要になる。コンテナ・オーケストレーターの事実上の標準が、Kubernetesである。2018」で、サーベイに参加した企業の58%がKubernetesを本番環境で利用しているといった調査結果からもわかる。Kubernetesは多くのメリットをもたらす半面、自前でクラスタ構築・運用管理をするのはなかなか難しい。本番運用において欠かせないマスターの可用性設定などはその代表例だ。Serverのバランシング、その他のコンポーネントとの協調など、さまざまな作業が必要になる。「こういった作業はオフロードしたいはず。Service(AKS)だ」と川崎氏は力強く語る。Market」を実現するサービスはAKSだけではない。Registry(ACR)といったサービスがある。これらのサービスを活用することで、「コンテナアプリのデリバリサイクル全体を効率化・簡略化できるようになる」と川崎氏は語る。DevOpsは次の通りさまざまな便利な機能を持つ。Artifacts」などがその代表例だ。DevOpsではこれらの機能のうち、ある程度の部分をテンプレート化して提供している。Projects」である。「テンプレートはGitHubに載せている。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。