コンテナへの苦手意識を払拭する「Spring」などの技術の進化
だが、そんな苦手意識のある開発者でも、コンテナを身近に感じられる技術が登場した。それが2014年にリリースされた「Spring Boot」である。Spring BootはSpringの機能を使いやすくするためのフレームワーク。これを使うことでアプリケーションサーバの構築が不要になり、作ったパッケージをそのまま単一で動かすことができる。
このように改めて言語化すると気づく人もいるかもしれないが、Spring Bootはコンテナと似た技術というわけだ。「Spring Bootがリリースされたことで、Springで作ったものを容易にコンテナ化やクラウド化できるようになった」と佐藤氏は説明する。さらに特筆すべきは、Spring Boot 2.3から、Cloud Native Buildpacks(クラウドネイティブビルドパック)をサポートしたことだ。
「開発者にとって馴染み深いMavenやGradleというビルドツール1つで、Dockerイメージの作成が可能になりました」(佐藤氏)
しかもクラウドネイティブビルドパックは、使用言語は自動判定し、最適なDockerファイルを作成・コンテナ化してくれるのだ。
Spring Bootだけではない。VMwareも「Tanzu Application Platform(以下、Tanzu)」という、Kubernetes上でクラウドネイティブアプリケーションの構築・デプロイを容易にするプラットフォームを迅速かつ安全にアプリケーションを構築、マルチクラウド上のKubernetesにデプロイするためのプラットフォームをリリース。このTanzuの中に含まれるTanzu Build Serviceに、クラウドネイティブビルドパックの機能が組み込まれている。つまり、Tanzu Application Platformを使えば、自動的にクラウドネイティブビルドパックが使えるようになるというわけだ。後はcf pushというコマンドを叩くだけで、すべての運用はTanzuに任せることができ、開発者はコンテナを一切意識することなく使えるようになるという。
「このようにDockerやKubernetes周辺の技術が登場したことで、Dockerファイルを開発者自ら書く必要はもちろん、Dockerファイル自体を必要とすることなく、開発者にとって馴染みのあるコマンドに少し手を加えるだけで、ビルドからコンテナ化、配布まですべて行ってくれるような技術が登場しています。Dockerやコンテナ、Kubernetesに苦戦してきた開発者にとって、難しかったコンテナ関連の技術を隠ぺいして、簡単な操作で誰もが使えるようになってきたのです。とにかくコンテナを利用してみたい、コンテナのメリットを得たいという開発者にとって、スタートしやすい環境が整ってきたと思います」(佐藤氏)しかも素晴らしいのは、コンテナを使ううえで課題となるデータベースの接続や外部連携なども、プラットフォーム側が担保してくれる。「開発者は純粋に作りたいものを作れば、最終的にコンテナとしてできあがってくる。しかも1つのプラットフォーム、1つのコマンドで完結する。素晴らしい技術です」(佐藤氏)
VMwareでは運用もBOSHというKubernetesの構成管理部分を補う機能を有償で用意。「マルチクラウドに対応しているので、デプロイ先となるパブリッククラウドの種類を意識することなく、運用を自動化してくれます。アプリケーションをよりリッチにできるのも魅力ですね」(佐藤氏)
Spring BootやTanzuを使えば、インフラの知識のない開発者でもコンテナやKubernetesを扱える環境が整ってきたとはいえ、「勉強が不要というわけではない」と佐藤氏は釘を刺す。「Tanzuでどういうことができるのか、機能を勉強することは必要でしょう。特に意識してほしいのはインテグレーションの部分。どれを使えば自分の環境に最適なのか、選定にも関わってくるので、このあたりの知識については特に注力して身につけてほしいと思います」(佐藤氏)
将来的に企業情報システムはマイクロサービス化されていく方向に進んでおり、その前段階として、コンテナに関する知識は、インフラエンジニアはもちろん、開発者にとっても不可欠とも言える。
Spring BootとTanzuがDevOpsの懸け橋に
このようにコンテナやKubernetesを取り巻く技術は、日進月歩で進化している。これまでのようにインフラの知識を身につけなければ入れなかったコンテナの世界に、開発者も容易に入れるようになっている。これまでDevとOpsではスキルセットが異なっていたが、その懸け橋となる技術が登場したことで、DevとOpsが共通言語で話せるようになり、一気通貫のDevOpsの実現も見えてくる。
「インフラやコンテナに苦手意識を持っている開発者はまだまだ多いと思います。ですが、Maven、Gradleという馴染みのあるコマンドで実行できるほど、コンテナは身近な存在になっています。コンテナの技術を使うことで、システム開発の迅速化が可能になり、開発するものもリッチになる。また環境依存のバグを減らすことができ、さらに運用はプラットフォームに任せることができる。その結果、品質の向上にもつながります。このようにコンテナ側から歩み寄ってくれているので、使わない手はありません。その入り口として、最適なのが今回紹介した技術だと思います。ぜひこれらを活用して、コンテナの世界への第一歩を踏み出してほしいですね」(佐藤氏)
関連情報
SB C&Sは、VMware Tanzu をはじめとした DevOps の成功に必要なサービスを提供し、お客さまのDevOps 導入をトータルでサポートします。詳細はこちらから!