CodeZine(コードジン)

特集ページ一覧

開発者がコンテナを理解する必要はあるのだろうか? 事業価値を高める開発体験が語られたVMware×Microsoftイベントレポート

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2022/05/12 12:00

 Microsoft Azureに代表されるパブリッククラウドにより、インフラ構築のスピードや柔軟性は大きく向上した。開発者にはこれらのテクノロジーによってより短期間でビジネスの価値につなげることが求められている。CodeZineでは、3月16日にオンラインイベント「VMware Developer Day on Microsoft Azure」を開催。MicrosoftとVMware、そしてパートナー企業によってAzure上のアプリケーション開発をさらに強力に推し進める技術やノウハウが披露された。

渡辺 隆 氏(ヴイエムウェア)/平野 和順 氏(日本マイクロソフト)

ヴイエムウェア株式会社 マーケティング本部 チーフストラテジスト 渡辺隆氏(左)/日本マイクロソフト株式会社 クラウドソリューション事業統括本部アプリケーション開発本部 本部長 平野和順氏(右)

VMwareとMicrosoftが変える、コンテナアプリの開発体験

 基調講演は、ヴイエムウェア株式会社 マーケティング本部 チーフストラテジストの渡辺隆氏と日本マイクロソフト株式会社 クラウドソリューション事業統括本部アプリケーション開発本部 本部長 平野和順氏によるセッション。インフラ領域のみならず、Javaを中心としたアプリケーション領域でも強いパートナーシップを結ぶ両社から、開発者を支援するVMware on Microsoft Azureの特徴やメリットが紹介された。

 Microsoft Azure上でVMwareのワークロードを動かす取り組みは、VDIの領域のVMware Horizon Cloudからはじまり、VMware vSphereを動かすAzure VMware Solutionにつながっていった。この2〜3年は、特に新型コロナウイルス対策の影響でVMware Horizon Cloudの利用は世界中で浸透しており、渡辺氏は、パンデミックによってデジタルテクノロジーがあらゆる経済活動に浸透し、両者のパートナーシップも深まっていると述べた。

渡辺 隆 氏(ヴイエムウェア)

 平野氏は、両社の取り組みについて、従来はVDI環境や仮想環境のクラウド移行が焦点になっていたが、今後は開発者がクラウドを使ってアプリケーションを作っていく部分も含めた協業が進んでいくとした。リモートワークが常態化し、どこにいてもクラウドにアクセスしてアプリケーション開発ができる環境を強化していくのだ。

 クラウド活用が注目される一方、ユーザー企業のクラウドシフトが完了しているわけではなく、オンプレミス上で何年も動作するアプリケーションは未だ数多く存在している状況だ。現在、こうしたアプリケーションをクラウドへ移行する「モダン化」が求められている。まずはクラウドに移行し、その後コンテナを使ったアプリケーションへ改修していく、またクラウドネイティブなマイクロサービスを新たに作っていくといった関心が高まっている。

 Azure VMware Solutionは、オンプレミスにあるVMware vSphere環境をそのままAzure上に拡張、移行できるサービスだ。平野氏は「ただそれだけではなくて、Azureが持っている多彩なサービスの機能を使うことでもっと高機能にご利用いただける仕掛けになっています。認証基盤であれば、Azure Active Directoryが使えますし、監視やログ管理の処理もAzureのサービスに任せることによって運用管理も楽になると考えています」と話した。

 またインフラのクラウド移行だけでなく、コンテナアプリケーションのための製品群も充実している。PaaSであるVMware Tanzu Application Serviceや、コンテナのビルドサービス、Kubernetesクラスターのライフサイクル管理などもAzureをサポートする製品群を提供している。

 渡辺氏は「トラディショナルなものからモダンなアプリケーションまで、この全体感をマネージしていくというところで、VMwareとMicrosoftの連携はすでにここまでできあがっています。つい最近もAzure Spring Cloud Enterpriseのパブリックプレビューを両社から発表しました」と説明した。

 Azure Spring Cloudについて平野氏は「Javaの開発者の方が、プラットフォームを意識しないでアプリケーション開発に集中できる環境を用意していくことが、我々Microsoftが一番注力しているポイントになります」と語った。

日本マイクロソフト株式会社 クラウドソリューション事業統括本部アプリケーション開発本部 本部長 平野 和順氏

 Azure Spring Cloudでは、Azureに備わっているアプリケーション運用を支えるための監視やログ管理、メッセージングを組み込むといった仕掛けに加え、Kubernetesを隠ぺいしてSpringのアプリケーションをクラウドで動作させることができる。Springを利用する開発者は30以上のスターターを利用して最小限のコード変更によってAzureサービスへの接続が可能となる。

 またこのほかにも「イベントハブという機能があります。これを使えばアプリケーションから発生したイベントを登録し、別のサービスにイベント駆動で処理させることを意識せずにできます。これはアプリケーション開発にとってすごく便利だと思います」(平野氏)と例を挙げた。

 アプリケーションのワークロードをKubernetesで動かすケースは増えており、デプロイや死活監視は容易になっている。渡辺氏は「その一方でコンテナアプリケーションを作るプロセスにおいて、開発者の方々に負荷がかかっていると認識しています。開発者の皆さんは、ビジネスの価値を高めるソースコードに専念するべきで、どう動かすかは気にしたくないのでないかと思います」と述べ、次のような英文の俳句を示した。

 here is my source code

 run it on the cloud for me

 i do not care how

 このような考えのもと、コンテナアプリケーションの開発体験を向上させるためにVMwareが提供するのが、「Tanzu Application Service」と「Tanzu Application Platform」である。VMwareでは、アプリケーションのモダナイズにおいて、インフラの部分もモダナイズしていかなければいけないと提案しており、そのうえでオープンソースを安全に使っていくためのソリューションを提供している。渡辺氏は、Microsoftとのパートナーシップによってお客様に提供できる価値について、今後のセッションでより詳しく紹介していくとし、セッションを終えた。

SpringとCloud Foundryに見る、抽象化による開発体験の向上

ヴイエムウェア株式会社 ソリューション技術本部 ディベロッパーアドボケイト 柳原 伸弥氏

ヴイエムウェア株式会社 ソリューション技術本部 ディベロッパーアドボケイト 柳原伸弥氏

 Session2は、ヴイエムウェア株式会社 ソリューション技術本部 ディベロッパーアドボケイト 柳原 伸弥氏による「SpringとCloud Foundryで抽象化する世界-すべてをシンプルにするVMwareのソリューション-」。開発者がコーディングに集中できるようにするため、VMwareが提供しているPaaSであるTanzu Application ServiceとSpringについての解説が行われた。

 柳原氏は冒頭、VMwareの姿勢を示す言葉として「Abstract things and make things simple.(物事を抽象化し、シンプルにする)」を掲げた。

 VMwareといえば、vSphereに代表される仮想化ソリューションが有名だが、その目的は物理的なコンピューターリソースの抽象化によって業務を楽にすること。VMwareは、インフラだけでなく、アプリケーションやミドルウェアについても抽象化してシンプルにしていこうと考え、開発生産性やセキュリティの向上に貢献したいとしている。

 アプリケーションの抽象化としては、JavaのアプリケーションフレームワークであるSpringが挙げられる。1996年に登場したJavaは1999年にサーバーサイドの仕様J2EEが提供された。そして、J2EEの複雑さに対応するべく2004年に登場したのがSpringだ。

 通常のJavaのアプリケーションでは、アプリケーションコンポーネントが別のアプリケーションコンポーネントのインスタンスを作成するという処理があるが、このインスタンスの制御をSpringに任せることができる。認証やロギング、モニタリング、例外処理などの関心事も分離して必要に応じたマッチングかでき、アプリケーションサーバーを不要とするSpring Bootの機能によってコンテナとの親和性も高い。

 ミドルウェアの抽象化としては、マルチクラウド対応のPaaSであるVMware Tanzu Application Serviceを提供している。これは、 Cloud Foundry Application Runtimeなどのアプリケーション向けレイヤーと、インフラストラクチャーのレイヤーで構成される。

 Cloud Foundry Application Runtimeでは、ソースコードを「cf push」コマンドで実行したら、あとはプラットフォームに任せればよい。言語の判定やコンテナ化、レジストリ管理、ネットワーク設定、ログ管理設定、バックエンド連携など必要な処理・設定が自動で展開されるようになっているからだ。アプリケーション開発者はソースコードだけに専念すればいいのだ。

 インフラ側の運用保守の自動化には、Cloud Foundry BOSHがあり、パッケージ、プロビジョニング、デプロイ、そしてオブザーバーアビリティ、アップグレードなど、セキュリティ運用に関わるタスクを自動化する。しかも、マルチクラウド環境でも利用できる。

 柳原氏は最後に「Azureのうえでも非常に多岐にわたったインテグレーションができるようになっています。 AzureとTanzuの製品のインテグレーション、非常に多岐にわたるサービスの、可用性であるとか価値といったものが出てくると思いますので、これからもこのコラボレーションについては見逃さずにいただければというふうに思います」とコメントした。

寺田佳央氏が求めていた、Kubernetesをシンプルにする技術とは

寺田
マイクロソフト・コーポレーション Developer Relation Sr. Cloud Advocate 寺田佳央氏

 続いては、マイクロソフト・コーポレーション Developer Relation Sr. Cloud Advocate 寺田佳央氏による「面倒な運用・管理はもう嫌だ!! 迅速な開発と安心してサービス提供が可能なプラットフォームAzure Spring Cloud Enterprise Tierのご紹介」。Kubernetesを活用するうえでの苦労を無くし、開発者がよりソフトウェア開発に集中できるプラットフォームについて紹介された。

 「最初に断っておくと、Kubernetesはすばらしい技術だ」寺田氏はこう述べながらセッションがスタートした。従来イチから構築・構成が必要なものを、コンテナを利用して容易に実行できる。寺田氏もそのすばらしさに感銘を受け、いち早く飛びついた1人だ。それゆえ、Kubernetesのすばらしさをよく知るとともに、苦労も経験したという。

 Kubernetesを活用する難しさには具体的にどのようなものがあるのか。まず一つは、本番環境で動かす際に考慮すべき要素が多いこと。Hello worldレベルのサービスを構築するのは簡単だが、CPUやメモリ、ネットワーク、無停止更新、可用性、セキュリティなど、本番環境で使うためにはさまざまな要素が関わってくる。次に進化が早いこと。3~4か月に1回、新バージョンが公開される度に、新機能や変更点、どのような設定で動かなくなるか、などをキャッチアップしなければならない。そして、「ハマる」ことが多いこと。いわゆる「YAMLの壁」をはじめ、バージョンアップの失敗で動かなくなる、スケールで失敗する、既存の設定で動かなくなるなど。これらは実際、寺田氏も「ハマった」ポイントだ。

 また、アーキテクチャや将来のメンテナンス性なども考えると、すぐに再構築できる「廃棄容易性」も考える必要もある。そうなるとシステム構築もしっかりと行わなければならず、Kubernetesを活用した開発自体に集中することができない。寺田氏は、同じような状況に陥った際、こうしたKubernetesの難しさを簡単にする技術が生まれると予想していたという。

 それが現実になったものが「Azure Spring Cloud」だ。誤解を恐れずに言えば、Kubernetesを完全に隠ぺい化した技術といえる。例えば、YAMLによる定義ファイルに触れる必要も無ければ、バージョンアップやパッチの適用、更新も触らなくてよい。

 もちろん、その分利用料金はかかる。よって、Kubernetesに精通している、ノウハウがある、技術を身に付ける自信があるといったエンジニアはKubernetesをそのまま利用したほうがよいだろう。しかし、マイクロサービスなど、Kubernetesがもたらすメリットを重視したり、Kubernetesに精通しているエンジニアが少なかったりといった事情がある場合には有効な選択肢の一つになる。詳細は寺田氏がYouTube上でデモを公開しているので、気になる読者は覗いてみてほしい。

 加えて、昨年発表された「Azure Spring Cloud Enterprise」についても説明された。今年2月次点ではパブリックプレビューの段階で、日本リージョンもまだ選択できないが、Azure Spring Cloudで使えるJavaと.NETに加えて、Node.jsやPython、Goも使うことができる。また、マネージドサービスとして商用Tanzu製品のサービスを利用することもできる。今後は一般提供に向けて使えるサービスが広がっていくことも期待される。

 「Microsoft Learn for JavaにはAzure Spring Cloudのモジュールもあります。実際に手を動かしながら学べるコンテンツになっていますので、ぜひ楽しみながらJavaのアプリケーションをAzure上で動かしてください」と言い、寺田氏はセッションを締めくくった。

日立ソリューションズに学ぶ、Tanzu Application ServiceとAzureによる開発事例

株式会社日立ソリューションズ デジタルソリューション創出プラットフォーム部 部長 丸山高志氏/AIプラットフォーム推進グループ グループマネージャ 井上正彦氏

株式会社日立ソリューションズ デジタルソリューション創出プラットフォーム部 部長 丸山高志氏(右)/AIプラットフォーム推進グループ グループマネージャ 井上正彦氏(左)

 Session4は、株式会社日立ソリューションズ デジタルソリューション創出プラットフォーム部 部長の丸山高志氏とAIプラットフォーム推進グループ グループマネージャの井上正彦氏による「VMware Tanzu Application Serviceで実現するサービスプラットフォームとモダンアプリ開発事例」が展開された。

 日立ソリューションズでは、VMware Tanzu Application ServiceとMicrosoft Azureを活用した「デジタルソリューション創出プラットフォーム」を提供している。これは、顧客のDXを支援する取り組みの一つで、自社のサービスや顧客との協創を効率的かつ高品質に生み出していくサービス基盤であり、課題探索やアイデアの創出、検証、アプリケーションのモダン化などをサポートする。

 また、すぐに導入できるDevOps環境を提供し、コンテナ技術によりスケーラブルでマイクロサービスの稼働にも適した、アプリケーションのデプロイから実行までの環境も提供している。それに加えて、必要となるミドルウェア、ネットワーク、セキュリティ、負荷分散、可用性などの非機能要件に対応する機能も提供する。こうした環境をベースに、価値創出のための試行錯誤のサイクルや技術者育成を支援していくのだ。

 丸山氏は「素早く簡単に繰り返しアプリケーションを開発運用するための体制、サービス基盤プロセスをあらかじめ用意しておりますので、お客様はビジネスとサービス開発、価値創出のみに集中いただくことができます」とメリットを説明した。

 続いて井上氏より、このデジタルソリューション創出プラットフォームで開発した、サービスの事例が紹介された。人材サービス事業者のための面談支援AIサービスの協創である。人材サービス事業者に所属する派遣社員のキャリア面談に工数がかかっていたため、AIを使って簡略化する取り組みだ。優秀な面談者の人材評価能力を、面談中の動画からAIに学習させ、面談の質や工数の課題解決に活かした。人材サービス事業者以外にも、人事採用面接や社内1on1およびオンライン教育など、面談以外の幅広い領域に発展させていく構想もある。

 2年かけてローンチしたこのサービスの開発について井上氏は「アプリケーションを含めた基盤の開発の時間はなかなかとれません、一方でネットワークやサーバー設定、セキュリティなどの実装要素は多岐にわたります。デジタルソリューション創出プラットフォームではインフラの環境をあらかじめ設計・設定済みですので、もともと3か月以上かかると想定していた検証環境の構築を実質1か月程度で実現できました」とそのスピードをアピールした。加えて、検証環境をそのまま本番環境に移行できるメリットもあるとした。

 日立ソリューションズでは、顧客のDXを支援するため上流から開発・運用まで、トータルなサービスを提供している。「日立ソリューションズ DXラボ」では、アイデアの創出から、最初の事業計画書作成までを最短3か月で推進するプログラムを用意している。「モダンアプリケーション開発支援ソリューション」では、コンサルティングや開発支援スタジオの提供、個別ツール・導入支援を通じてリーン開発・アジャイル開発のサポートを行っている。

 丸山氏は最後に「弊社は、VMware、Microsoftとの協業によって、モダンアプリケーション開発の効率化にとどまらず、サービス開発の上流から開発・運用までをトータルで支援しております。2025年の崖、サステナビリティの実現など、さまざまな課題を抱える社会環境においてDXを推進するお客様との協創に日立ソリューションズのIT技術をぜひご活用ください」とコメントした。

開発と運用、二つの役割を結びつける「Tanzu Application Platform」

寺田
ヴイエムウェア株式会社 モダンアプリケーションプラットフォーム事業部 シニアプラットフォームアーキテクト 松原祐樹氏

 続いては、ヴイエムウェア株式会社 モダンアプリケーションプラットフォーム事業部 シニアプラットフォームアーキテクト 松原祐樹氏による「AKS上のアプリケーションに圧倒的な開発者体験を与えるアプリケーション志向のプラットフォームとは?」。Kubernetesや既存資産のエコシステムを最大化する「Tanzu Application Platform」について、デモなども交えながら紹介された。

 Tanzu Application Platformはヴイエムウェアが提供するアプリケーション開発のための二つ目のアプローチとして、今年1月11日に一般提供された。任意のKubernetes上で動作し、1月時点ではAzure Kubernetes Service(AKS)のほか、Amazon Elastic Kubernetes Service(EKS)やGoogle Kubernetes Engine(GKE)がサポートされている。今後は、ヴイエムウェアが提供するオープンソースやオンプレミス用製品も含め、さらにサポートを拡大していく。

 Tanzu Application Platformでは開発からリリースまでの流れを「インナーループ」と「アウターループ」の二つに分けて機能を提供している。インナーループは、開発者が普段の業務で行うコードの実装やテストといった部分を指す。そこから本番環境に至るまでの、運用者が担う部分がアウターループの範囲になる。

 例えば、インナーループの機能には以下のようなものがある。

Application Accelerator

 開発テンプレートを提供することで、開発を立ち上げる際の時間を大幅に短縮する。組み込み済みのサーバーレスの抽象化によって、マイクロサービスやイベント駆動型といった高度なアプリケーションパターンを容易に実現でき、自動スケーリングやAPIによる接続といった運用上の課題にも対応している。

Live Update

 IDEからKubernetes上で稼働しているアプリケーションをデバッグすることができる。コンテナの再構築・再発行、デプロイのステップを排除し、代わりに実行中のコンテナに更新されたコードを直接注入する。これにより、コードの変更を繰り返しながら即座にテストすることが可能になる。Visual Studio Code用の公式IDE拡張機能も用意されている。

API Portal

 全てのAPIを一つの管理ポータルにまとめることで、各チームが自分たちのAPIや関連ドキュメントを進化させながら、独自のAPIポータルを展開することが可能。運用者も、さまざまな環境で任意の数のAPIポータルインスタンスを構成し、アクセス管理をすることができる。

App Live View

 コードの修正を容易にする機能。診断ツールにより、リソース消費量やトラフィックパターンなど、アプリケーション実行時の特性を把握することはもちろん、実行中のアプリケーションでもログレベルや環境プロパティを変更することができる。

 また運用者向けのアウターループについても、開発生産性の向上につながる機能が含まれている。例えば、「サプライチェーンコレオグラファー(SCC)」という機能では、アプリケーションのデプロイメントプロセス全体を自動化することで、開発者がいわゆる「YAMLの壁」に苦しむ必要がなくなる。

 これらの機能により役割を明確にし、開発者はコードに専念、運用者はリリースする成果物にガバナンスを効かせた運用を、それぞれ実現することができる。

 「Tanzu Application Platformを試したい場合は、インストール手順やバイナリをダウンロードが可能なサイトがあります。ぜひお試しください」として、松原氏はセッションを締めた。

CTCが語る、Springによるクラウドネイティブ化事例

伊藤忠テクノソリューションズ株式会社 デジタルビジネス推進第1部 エキスパートエンジニア 稲吉 英宗氏

伊藤忠テクノソリューションズ株式会社 デジタルビジネス推進第1部 エキスパートエンジニア 稲吉英宗氏

 Session6では、伊藤忠テクノソリューションズ株式会社 デジタルビジネス推進第1部 エキスパートエンジニア 稲吉 英宗氏による「日本企業におけるアプリケーションモダナイズの実態とSpring利用の事例紹介」が展開された。

 伊藤忠テクノソリューションズ(CTC)では、アプリケーションモダナイズの案件を手がけており、その中で日本企業におけるレガシーアプリケーションの実態から問題点を見てきた。そうした問題点の解説と解決策とともに、クラウドネイティブなアプリケーションの構築を支援するSpringプロジェクトを効果的に利用して実現した事例が紹介された。

 CTCではDXについて、業務を改革していく「デジタルシフト」、事業を変革する「モデルシフト」の2種類を掲げている。デジタルシフトをさらに「ワークシフト」「クラウドシフト」「データシフト」と3つに分け、ワークスタイルの変革やクラウドネイティブ化、データに基づく意思決定へのシフトをサポートしている。

 まず稲吉氏は、日本では海外に比べアプリケーションのモダン化が進んでいない問題を提起した。そこには、エンジニアリングの課題が背景にあるという。従来、システムは一つの個別ソースからコピーされて、個別に最適化され、またドキュメント化もされていないため、メンテナンス性が悪い。構造も古く、処理フローやデータモデルがモダンなアプリケーションに則さないという課題もある。ビジネス上の課題としても上層部と現場の認識の違いがある。すぐにモダン化ができるアプリケーションばかりでなく、時間もお金もかかることを上層部が理解しておらず、改修のプレッシャーが現場にのしかかっているのだ。

 アプリケーションをモダン化していくには、長期的なビジョン・方針のもと、レガシーシステムの一部をクラウド化、API化していくなど段階的な取り組みが必要となる。また上流から下流まで全て網羅した形で設計情報を一元管理することも重要だ。CTCでは顧客に対してモダナイズの支援をしているが、ある顧客ではコード数が50%も削減した。開発プロセスの見直しでは保守フェーズで30%、新機能開発では15%の生産性向上が見られた顧客や、これまで1か月かかっていた定期的な改修が1週間に短縮されるなど、実施は大変であるが大きな成果を得られている。

 稲吉氏は、モデルシフトの一例として、ANAグループの顧客体験(CX)の改善のために開発したストリーミングエンジンの事例も紹介した。航空券の予約や搭乗、運行状況、会員情報といったデータを連携していくうえで、顧客の個々の行動を把握できるようになっていた。これをさまざまなタッチポイントを活用し、最適なタイミングで顧客にアプローチして体験を向上するための取り組みである。

 2021年3月に発表されたストリーミングエンジンは、Spring BootとSpring Cloud Data Flowが採用された。稲吉氏は「信頼性の高いものとして、早く安く構築するためにSpringのフレームワークを使っています。コンテナ上でのクラウドネイティブなシステムで、アジャイルで開発し、5か月という短期間で構築できました」と説明した。

 CTCではこのように、企業のDXを支援するアプリケーションのモダン化を、戦略からクラウド移行、構築・開発、そして管理運用まで提供している。それに加えて、既存ビジネスの強化や新しいビジネスの発見など、顧客に最適なDXの設計も行う。

 稲吉氏はセッションの最後に「新たな価値、顧客体験価値の向上は非常に重要と考えています。CTCはMicrosoftやVMwareなどとグローバルなパートナーシップを展開させていただいています。親会社の伊藤忠商事自体もDX支援を加速していますので、皆様と共創しながら、顧客体験の価値向上、DXの成功といったところをサポートさせていただければと考えています」と語った。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 森 英信(モリ ヒデノブ)

    就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5