お話を伺った方
Docker, Inc リチャード・キーン氏
Docker, Inc Principal Solution Engineer。過去20年以上、ソフトウェアエンジニア・オペレーションエンジニアとしてプリンシパルやディレクターを務めた経歴があり、コンテナーやDevOps領域の初期から携わる。Docker社では、過去の経験や、入社当初から携わってきたコンテナー アプリケーション開発とDevOpsに関する経験を生かし、アプリケーション開発にコンテナーを最大限に活用するための顧客への貢献をミッションとしている。
エクセルソフト株式会社 田淵義人氏
ソフトウェア事業部 新規事業開発室 室長。セールスエンジニア・エバンジェリストとして、Dockerの啓蒙活動や導入サポート、ドキュメントのローカライズやセミナー運営を行う。個人として、過去にはMicrosoft MVPとしてXamarinの普及活動に従事。
エコシステムを拡大するDocker
2013年のリリース以降、コンテナー開発と運用を実現するプラットフォームとしてエンジニアの認知度を高めてきたDocker。コンテナー技術のパイオニアとして、同社はOpen Container Initiative(OCI)を設立し、誰もがコンテナーを実行できる標準の確立にも貢献している。
そんなDocker社だが、現在はコンテナー化にとどまらず、安全なソフトウェアサプライチェーンを実現するための新製品や新機能をリリースするなど、エコシステムを拡大している。このような進化の背景には、「開発者がより多くの時間をソフトウェアの革新や開発に集中できるよう、開発速度を向上させ、そのプロセスをより楽しいものにするツールや開発方法を提供することをミッションの中核に置いているため」とDocker社のプリンシパルソリューションエンジニア、リチャード・キーン氏は語る。キーン氏はスタートアップや世界最大級のクラウドベンダーなどで、「20年以上、さまざまな経験を積んできた」と話す。ちなみにDocker社のプリンシパルソリューションエンジニアとは、顧客がコンテナーアプリケーション開発を最大限に活用できるようサポートする職種である。
エコシステムとして拡大し続けているDocker。Dockerの中核製品であるDocker Desktopは開発者向けの共同コンテナー化ソフトウェア。「コンテナー化アプリケーションの開発を始めるのに非常に使いやすいツールとなっている」とキーン氏は説明する。
2021年から、Docker Desktop製品の利用条件が一部変更されたが、個人使用、教育機関、非商用のオープンソースプロジェクト、小規模企業(売上1000万ドル以下、250名以下の企業)に対しては引き続き無料で提供されている。これにより、多くのユーザーがDockerの優れた技術を引き続き利用できる環境が整えられている。有料サブスクリプションの中でも大規模にDockerを利用している組織を対象に、コードからクラウドへのアプリ配信の加速、統合された信頼性の高い安全な開発体験を提供するプランが、Docker Businessである。
「Docker Businessの利用にはさまざまなメリットがある」とキーン氏。追加のセキュリティ機能を提供するHardened Docker Desktopはその一つ。「ルートレスソリューションである強化されたコンテナー分離(ECI)機能により、管理者権限やルート権限を持たない状態でコンテナー化されたワークロードをセキュリティウォールの中に保持し、悪意のある操作を制限することができます」(キーン氏)
またDocker Desktopの管理者は、ユーザーがプルできるイメージの種類やレジストリの制限の管理が視覚的に確認できるようになるという。さらに拡張機能には高度な機能が含まれており、サードパーティのアドオンや独自のDocker機能を作成することで、Docker Desktopのエクスペリエンスを拡張することも可能。これによりDocker Hubへのアクセスが向上し、公開されていないイメージの利用や自分自身で使いたい情報の保存もできるようになる。
Docker社の黎明期とも言える2016年よりDockerの販売を手掛けていたのがエクセルソフトである。現在はDockerの日本正規代理店として、Dockerの啓蒙活動やパートナービジネスの拡大にも注力しているという。同社ソフトウェア事業部 新規事業開発室 室長の田淵義人氏もDocker Businessの一番のポイントを、「管理面の機能が充実していること」と話す。SSOやSCIM(System for Cross-domain Identity Management:アイデンティティ管理を効率化する規格)という機能など、ガバナンスを効かせる機能が追加されているのだ。
Dockerエコシステムに加わった2つの新製品
Dockerエコシステムを構築する新製品の一つが、Docker Scoutだ、Docker Scoutはセキュリティを重視したソフトウェアサプライチェーン管理製品。ソフトウェアサプライチェーン全体を可視化し、セキュリティ、コンプライアンス、品質などの面から、開発ワークフローの改善をサポート、開発者が作業している場所でコンテキストに沿った推奨事項をガイドする。「アプリケーションサプライチェーンの安全レベルをもう一段引き上げることができる」とキーン氏は説明する。
Docker Scoutはものづくりの世界では当たり前となっている概念を基としている。例えば自動車を組み立てるには、部品表と製造プロセスが欠かせない。ソフトウェア開発における部品表は、SBOM(材料明細書)であり、製造プロセスを示すものはDockerファイルに該当する。つまりソフトウェア開発においてもSBOM作成は必須で、Docker ScoutはSBOMを作成する機能が提供されている。DockerファイルとSBOMの組み合わせにより、コンテナー内のすべてのものとその使用方法の完全な詳細を取得できる。それにより、脆弱性やポリシー違反を容易にチェックできるのだ。「開発者が早期に問題を発見できるだけではない。何をすべきかをDocker Scoutは推奨してくれます」(キーン氏)
Docker Scoutを使うと、セキュリティチームや運用チームの手を借りずに、また本番環境で問題になる前に開発者自身が早い段階で修正できるようになるだけではない。CI/CDや運用環境でもDocker Scoutは有効に活用できる。Docker ScoutはDockerレジストリ内のものを包括的に表示し、セキュリティやコード品質、ライセンスの問題などを示すダッシュボードを提供している。「例えば新しいセキュリティインシデントやポリシー違反が発生した場合でも、どこに問題があるのか簡単に把握できるようになります」(キーン氏)
Docker ScoutはDocker Desktopを導入すれば使用可能。無償枠ではローカルイメージは無制限、リモートイメージは最大3レポジトリまで利用可能だが、追加することもできる。
もう一つキーン氏が紹介してくれた製品が、Docker Build Cloudである。同製品はビルドの複雑さやパフォーマンスのボトルネックを解消し、より素早く、より早く、より簡単にビルドできるようにする。「これを利用することで、最大37倍のスピードアップを実現しました」とキーン氏は話す。従来であればARMやx86向けに自分でビルダーを用意する必要があったが、Docker Build Cloudを使えばその必要はない。開発者は複数のアーキテクチャを指定してビルドするように要求すると、アーキテクチャ用のネイティブなビルダーが自動的に立ち上がるようになる。その結果、ビルド時間が大幅に削減され、開発者の満足度は向上。プラットフォームエンジニアやSREの負担も軽減され、本来の業務に集中できるようになる。
Dockerを使いこなすためのベストプラクティス
Docker ScoutやDocker Build Cloudのようなさまざまな製品や機能を追加し、エコシステムの充実を図っているDocker。その一方で、Dockerを単なる仮想化技術の代替手段、本番環境でのイメージの実行手段、CI/CDでのビルド手段としかみていない人もまだまだ多い。だが、Dockerをソフトウェア開発に使用すると、環境の設定や準備を容易にし、それにかかっていた時間を大幅に削減することができるのだ。
それを可能にするには、ソフトウェア開発プロセスのできるだけ早い段階からDocker Desktopを活用することだという。「ベストプラクティスの一つは、コードをただパッケージ化して移動することではなく、ソフトウェアをローカルで開発、テストする方法の一つとしてDockerを使うことです。コードを開発するために使用している実行環境と、本番で使用する環境との違いをなくすことができるからです」(キーン氏)
また、Dockerはソフトウェアの品質向上にも寄与する。Testcontainersというテストライブラリが提供されており、これを使うことで、「どんなツールでも、受入テストや統合テストを行うことができる」とキーン氏は説明する。
Docker Desktopをはじめ、上記で紹介したDocker製品を活用することで、開発者のストレスを軽減し、本当にやるべきことに時間を費やせるようになる。またローカルで開発環境を再現できるため、開発しているソフトウェアが本番環境でどのように動作するか、信頼性の高いレベルでテストもできるようになるというわけだ。
Dockerはコンテナーアプリケーション開発に必要なものをすべて提供
Docker活用の事例としてキーン氏が紹介したのが、オランダに本社を置く北欧家具量販店のIKEAである。同社ではMLOpsソリューションの構築にDockerを活用している。「ML(機械学習)モデルの開発から運用環境に移行するまでのプロセスは非常に複雑です。それをDockerでパッケージ化して単純化しました。複雑な作業から解放され、簡単にスケールできるようになるなど、より速く、シンプルに、安全に作業を進められるようになりました」(キーン氏)
Docker社では、今後も開発プロセスを加速し、開発者がより効率的に作業できる環境を提供していくという。生成AIを利用したアプリケーション開発に必要なソフトウェアをDockerコンテナーとしてまとめて提供する「GenAI Stack」の提供はその代表例と言えるだろう。「GenAI Stackは現在、一部ユーザーに向けて早期アクセス版を公開している。一般公開できるよう取り組んでいる」とキーン氏。さらにDocker社では、AI/MLを活用して、どのようにDocker製品の機能を向上していけるかを探求している。
Dockerを利用することで、コンテナープリケーション開発に必要なすべてのもの手に入れることができる。
「Docker Businessなどで提供されているDocker Desktopはオールインワンの製品。Docker ScoutやDocker Composeも同梱されているので、個別にインストールする必要はありません。しかもWindows、Mac、Linuxなど異なるOS上でも、簡単に同じDocker環境を構築できる。ですが、このような点はまだまだ知られていないので、啓蒙していきたいですね」と田淵氏は意気込みを語る。
Docker製品の購入はエクセルソフトにお任せ下さい!
エクセルソフトは、日本円での見積書や請求書払いに対応しているだけでなく、Docker製品購入前後のサポートを日本語で提供しているので、スムーズかつ安心してDocker製品を導入いただけます。また、個別セミナーやトレーニングのご要望も承っています。Docker製品に関するご質問はエクセルソフトまで。