「Cloud Native Trail Map」の10ステップを紐解く(ステップ1~3)
はじめに
国内外で「クラウドネイティブ」に取り組む企業やエンジニアが増え、クラウドネイティブ関連のイベントへの参加者も活況を呈しています。一方で「クラウドネイティブとは、なんでしょうか?」という疑問を持っている方々も多くいます。さらにネイティブというと、日本では特に「ネイティブスピーカー」の略語として使われることが多く、語感としてピンとこない方もいます。
そこで本連載では、クラウドネイティブについて解説するとともに、それを支える基本的なテクノロジーやソフトウェア、そして、特にエンジニア視点として、どのように学んでいくかを紹介していきます。
今回からは、第1回の内容を踏まえて、クラウドネイティブを実現するための道しるべとなる「Cloud Native Trail Map」について、ステップ1から3までを解説します。
Cloud Native Trail Mapの
10のステップ
「Trailとは、人や物が移動してできた痕跡や、山野などの未舗装道路や自然歩道のことを指します。「Map」は地図ですね。つまり、Cloud Native Trail Mapとは「クラウドネイティブに至る道を表した地図」であると言えます。そういうこともあり、Cloud Native Trail Mapは森の中を進んでいる絵になっていますね。
しかし、Cloud Native Trail Mapはオープンソースやクラウドネイティブ技術を活用するための推奨プロセスではありますが、すべてのステップを行わないとクラウドネイティブにはならないとは定義されていません。
Cloud Native Trail Mapには全部で10ステップありますが、ステップ3以降はすべてオプションで、状況に応じて選択されています。従って、クラウドネイティブになるには10個すべてのステップを達成することではないことに注意してください。
また、各ステップではベンダーがサポートする製品を選ぶか、自分でサポートするかを選びます。これは、すべてコミュニティからソースコードやバイナリを持ってきて、構築することが解であるとも定義されていないことになります。
さらに、筆者の意見としては、そのものをステップ1から順に行わなければならないとも考えていません。会社や組織によって置かれている環境や立場も違いますし、紹介されているテクノロジーには発展途上のものもあるからです。
まず、Cloud Native Trail Mapでは、ステップ1として「コンテナ化」が挙げられていることから分かるように、コンテナの利用を前提としています。コンテナの利用が進むと、1つのシステムで数百から数千というレベルのコンテナが1つのかたまりのようになってサービスが稼働することもあります。メインフレームや商用UNIXのような、1つ1つのサーバーやOSの状況を1つ1つ監視・管理するという状況ではありません。そのため「コンテナ化されたサービスをどのように効率的に管理していくか」という視点で考えてみると、これから紹介する各ステップについて理解しやすくなるかも知れません。
今回は、全10ステップのうち、前半の3ステップについて見て行きます。
ステップ1:コンテナ化
Cloud Native Trail Mapでは、アプリケーションをコンテナ化すること、さらにアプリケーションを適切に分割して、将来の機能をマイクロサービスとして記述することを目指すべきだとしています(ここでは、コンテナの利用法や設定方法については紹介しません)。
ステップ2:CI/CD
「CI/CD(Continuous Integration/Continuous Delivery, 継続的インテグレーション/継続的デリバリー)とは、ソフトウェア開発において変更を常にテストして自動化を取り入れ、本番環境に適用できるようにする手法です。1つのテクノロジーを指すわけではありません。ソフトウェアとしては「Jenkins」「CircleCI」などが有名です。テスト、ビルド、デプロイを自動化することで、工数の削減や品質の向上を実現できます。
ステップ2では、このCI/CDを取り入れようということになります。
CI/CDを設定することで、ソースコードに変更を加えると自動的に新しいコンテナが構築され、テストされ、ステージング環境にデプロイされ、最終的に本番環境へデプロイされます。自動化されたロールアウト/ロールバック、テストを設定します。
なお、Cloud Native Trail Mapでは、CI/CDを実現するKubernetesネイティブツールのセットの1つとして「Argo」を紹介しています。Argoはプロジェクトの名称で、その下に「Argo CD」「Argo Workflow」「Argo Events」「Argo Rollout」というサブプロジェクトがあります。ArgoはKubernetesネイティブなワークフロー、イベントおよびCI/CDツールです。
●Argoプロジェクト公式サイト:
https://argoproj.github.io/
Cloud Native Trail Mapはステップ2までを必須として、Kubernetesに代表されるオーケストレーションを含むステップ3以降はすべてオプションとしています。
ステップ3:オーケストレーションとアプリケーションの定義
ステップ3では、ビジネス的には最もホットなテクノロジーである「オーケストレーションソリューション」です。特にKubernetesがそれに当たります。
Cloud Native Trail Mapでは、Kubernetesプロジェクトの認定ディストリビューション、ホスティングプラットフォーム、またはインストーラを選択することとしています。
また、Cloud Native Computing Foundation(CNCF)は「Certified Kubernetes Conformance Program」(認定Kubernetes 適合性プログラム)を実施しています。この適合性プログラムは、すべてのベンダーのKubernetesのバージョンが、オープンソースコミュニティのバージョンと同様に必要なAPIをサポートすることを保証するものです。現在、90以上のCertified Kubernetesが提供されています
。「Helm」についても紹介されています。HelmはDebian APT、Red Hat Enterprise Linux Yumなどと同様にKubernetesのパッケージマネージャーです。Kubernetesアプリケーションの定義、インストール、およびアップグレードを支援します。
Helmは各種リソースの自動作成、デプロイされたアプリケーションの削除・更新、リポジトリで公開されているChart(パッケージングフォーマット)の検索やダウンロード、インストール、パッケージ化やリポジトリへのアップロードを行います。古いバージョンへのロールバックも簡単です。
HelmはCNCFのGraduatedプロジェクトであり、Helmコミュニティによって管理されています。
●Helm 公式サイト(日本語):
https://helm.sh/ja/
おわりに
今回は、Cloud Native Trail Mapの10ステップのうち、はじめの3ステップについて紹介しました。駆け足での解説になりましたが、もっと詳細を知りたい方は、ぜひご自身で調べてみてください。
次回も引き続き、Cloud Native Trail Mapのステップ4以降を紐解いて行きます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ6~7)
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ8~10)
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ4~5)
- クラウドネイティブの基礎知識 ークラウドネイティブを実現するロードマップ「Cloud Native Trail Map」を読み解くために
- エンジニアの視点から、クラウドネイティブ技術とどのように向き合い、学んでいくべきか
- CNCFのCTO、Chris氏の「Cloud Native Predictions for 2021 and Beyond」に見る、クラウドネイティブに関する予測【前編】
- LFがエントリーレベルの認定試験「認定Kubernetesクラウドネイティブアソシエイト(KCNA-JP)」日本語版を提供開始
- CNCFのCTO、Chris氏の「Cloud Native Predictions for 2021 and Beyond」に見る、クラウドネイティブに関する予測【後編】
- CNDO2021、CNCFの提供するクラウドネイティブランドスケープを解説するセッションを紹介
- Linux Foudationの2020年上半期の動きを振り返る(2)