CNDT2021、日本オラクルのエンジニアによるクラウドネイティブを再確認するセッション
CloudNative Days Tokyo 2021から、日本オラクル株式会社のプリンシパルクラウドソリューションエンジニアである市川豊氏が行った「「クラウドネイティブって?」というタイトルのセッションを紹介する。40分という時間を使ってクラウドネイティブの定義、DevOps、CI/CD、マイクロサービス、オブザーバービリティについて解説したものだ。Cloud Native Computing Foundation(CNCF)が示しているクラウドネイティブに到達するためのトレイルマップの10ステップのうち、前半の5ステップを解説したものとなっている。
市川氏はDockerやKubernetesの解説書籍などの著作もあるエンジニアで、所属は日本オラクルだが、今回は特にベンダー色を出さない内容を意識していたという。
CNCFの生い立ちやCNCFによるクラウドネイティブの定義、NISTによる定義などを引用して解説を行った後に、クラウドコンピューティングの特性を説明。ここではサーバーなどを保有せず柔軟な拡張性を持つ部分や、使った分だけ課金されるという部分を説明した。
そしてCNCFのトレイルマップを参照しながら、コンテナ化、CI/CDによる開発の自動化、コンテナオーケストレーションによる運用の自動化が進んだとして、自動化は人的関与を減らして効率を上げること、結果としてビジネスの価値創造のほうに人的リソースを使うべきだと解説した。
自動化の目的は、究極的にはビジネスの価値の増大であり、そのためには人的リソースを自動化によって削減し、よりビジネスに関わる部分に注力することが必要だと解説した。
ただし「結局のところクラウドネイティブとは?」というスライドでは、CNCFのソフトウェアを使うことがクラウドネイティブというわけではないと説明。クラウドネイティブの定義や目的に沿ったソフトウェアが集結しているのがCNCFのエコシステムであるのは自明なのだが、市川氏の意図としてはその他のソフトウェアを使ってもクラウドネイティブは実践できるという意味なのだろう。
次にDevOpsの解説に移り、開発チームと運用チームが互いに協力することでビジネスの価値を増大させると説明。
ここからはツールに特化しない開発から運用までの仕組みが、従来のウォーターフォール型の開発からクラウドネイティブなアジャイル開発までにどうのように変化してきたかを説明。
DevOpsを実現するための方法としてアジャイル開発とCI/CDがあると説明した。小規模な開発チームによって素早く開発~テストを回してリリース回数を増やすアジャイル開発と、人的操作を極力省略した自動化によってリリースされた成果物を本番環境に配備するCI/CDが必要だと解説して、ここからCI/CDの説明に入った。
ウォーターフォール型の開発とコンテナを使ったアジャイル開発には大きな違いがあるとして説明を行った後で、仮想マシンとコンテナの違いを解説。
ここからクラウドネイティブの基盤となっているKubernetesについてその動作原理などを紹介した。
またCI/CDのタイプとしてCIOpsとGitOpsを解説し、CIOpsにはセキュリティリスクが発生する可能性があることを解説。
Gitリポジトリで、ソースコード以外にインフラストラクチャー運用のための構成情報なども一元管理するGitOpsのほうが優れていると解説した。
コンテナを使ったアプリケーション開発においてCI/CDを使うことは、可搬性と開発の速度を上げる効果があるが、それ自身がすべての問題を解決するものではない。その組織、アプリケーションの特性、コストなどを適材適所に検討する必要があると説明した。
また複数の小さなコンテナが連携して実行されるマイクロサービスについても解説を行い、大きな組織から小さな組織の集合体への変化に合わせて分散化を進めるためのものとした。またここで言う「小さな組織」のサイズはTwo Pizza Rule、つまり2枚のピザを分け合える程度の人数に抑えるべきだという知見を紹介した。
ここでは小さな開発チームによって生ずる問題点に関しても解説を行った。
組織を小さくすることと合わせて、テクノロジーもマイクロサービスを実装できるものを選択するべきと説明しているが、前のスライドで提起した問題点の解決策を提示していないのは若干、不親切と言えるだろう。
さらにKubernetes上でマイクロサービスを実現するサービスメッシュのIstioを紹介し、サイドカーとしてデプロイされたProxyがネットワーク機能を受け持ち、他のPodと連携するアーキテクチャーを紹介した。
オブザーバービリティについても解説を行ったが、人によってオブザーバービリティに対する認識が異なる場合があり、従来のシステムと比べても異なるアプローチが必要と説明し、オープンソースソフトウェアだけではなく商用ツールも含めて多くの選択肢があることを解説した。
最後にまとめとして、クラウドネイティブなシステムとは言ってもビジネスの価値を増大させること、障害やトラブルに迅速に対応できる体制が必要であることなどを挙げてセッションを終えた。
全体的にCNCFのトレイルマップに沿いながらも、議論の多い部分、DevOpsにおける組織の作り方やオブザーバービリティにおける観点の違いなどについては深入りを避けた内容となっている。また、セキュリティやクラウドネイティブなデータベース、ストレージなどについては敢えて盛り込まれていない。
市川氏によれば、永続的ストレージやデータベースについては40分という時間内では語り尽くせないということで意図的に入れなかったという。解説として間違ってはいないが、市川氏自身の経験や知見から生まれる意見も聞いてみたかったという気がした。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon 2018 EU開催 着実に拡大するKubernetesエコシステム
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説
- CNDT2020シリーズ:オススメのGitOpsツールをCAのインフラエンジニアが解説
- 「CloudNative Days Tokyo 2021」開催レポート
- CNDO2021、CNCFの提供するクラウドネイティブランドスケープを解説するセッションを紹介
- コマンドラインツールを用いずにCI/CDを行うGitOpsとは?
- CloudNative Days Fukuoka 2023、クアンドのテックリードによるキーノートセッションを紹介
- CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介
- Oracle Cloud Hangout Cafe Season4 #3「CI/CD 最新事情」(2021年6月9日開催)
- CNDT2021、ミクシィのSREによるEKS移行の概要を解説するセッションを紹介