PR

CNDT2021、日本オラクルのエンジニアによるクラウドネイティブを再確認するセッション

2021年12月23日(木)
松下 康之 - Yasuyuki Matsushita
CNCFのトレイルマップの前半を使ってクラウドネイティブとは何か?を解説するセッションを紹介する。

CloudNative Days Tokyo 2021から、日本オラクル株式会社のプリンシパルクラウドソリューションエンジニアである市川豊氏が行った「「クラウドネイティブって?」というタイトルのセッションを紹介する。40分という時間を使ってクラウドネイティブの定義、DevOps、CI/CD、マイクロサービス、オブザーバービリティについて解説したものだ。Cloud Native Computing Foundation(CNCF)が示しているクラウドネイティブに到達するためのトレイルマップの10ステップのうち、前半の5ステップを解説したものとなっている。

「What is Cloud Native?」というタイトル

「What is Cloud Native?」というタイトル

市川氏はDockerやKubernetesの解説書籍などの著作もあるエンジニアで、所属は日本オラクルだが、今回は特にベンダー色を出さない内容を意識していたという。

セッションのアジェンダ。CNCFのトレイルマップの前半を解説

セッションのアジェンダ。CNCFのトレイルマップの前半を解説

CNCFの生い立ちやCNCFによるクラウドネイティブの定義、NISTによる定義などを引用して解説を行った後に、クラウドコンピューティングの特性を説明。ここではサーバーなどを保有せず柔軟な拡張性を持つ部分や、使った分だけ課金されるという部分を説明した。

クラウドコンピューティングの特性を解説

クラウドコンピューティングの特性を解説

そしてCNCFのトレイルマップを参照しながら、コンテナ化、CI/CDによる開発の自動化、コンテナオーケストレーションによる運用の自動化が進んだとして、自動化は人的関与を減らして効率を上げること、結果としてビジネスの価値創造のほうに人的リソースを使うべきだと解説した。

トレイルマップを使って前半のポイントを解説

トレイルマップを使って前半のポイントを解説

自動化の目的は、究極的にはビジネスの価値の増大であり、そのためには人的リソースを自動化によって削減し、よりビジネスに関わる部分に注力することが必要だと解説した。

自動化の目的を解説

自動化の目的を解説

ただし「結局のところクラウドネイティブとは?」というスライドでは、CNCFのソフトウェアを使うことがクラウドネイティブというわけではないと説明。クラウドネイティブの定義や目的に沿ったソフトウェアが集結しているのがCNCFのエコシステムであるのは自明なのだが、市川氏の意図としてはその他のソフトウェアを使ってもクラウドネイティブは実践できるという意味なのだろう。

CNCFのソフトウェアを使うことだけがクラウドネイティブではない

CNCFのソフトウェアを使うことだけがクラウドネイティブではない

次にDevOpsの解説に移り、開発チームと運用チームが互いに協力することでビジネスの価値を増大させると説明。

DevOpsの意味を説明

DevOpsの意味を説明

ここからはツールに特化しない開発から運用までの仕組みが、従来のウォーターフォール型の開発からクラウドネイティブなアジャイル開発までにどうのように変化してきたかを説明。

CI/CDを説明

CI/CDを説明

DevOpsを実現するための方法としてアジャイル開発とCI/CDがあると説明した。小規模な開発チームによって素早く開発~テストを回してリリース回数を増やすアジャイル開発と、人的操作を極力省略した自動化によってリリースされた成果物を本番環境に配備するCI/CDが必要だと解説して、ここからCI/CDの説明に入った。

ウォーターフォール型の開発とコンテナを使ったアジャイル開発には大きな違いがあるとして説明を行った後で、仮想マシンとコンテナの違いを解説。

仮想マシンとコンテナの違いを解説

仮想マシンとコンテナの違いを解説

ここからクラウドネイティブの基盤となっているKubernetesについてその動作原理などを紹介した。

Kubernetesの基礎を解説

Kubernetesの基礎を解説

またCI/CDのタイプとしてCIOpsとGitOpsを解説し、CIOpsにはセキュリティリスクが発生する可能性があることを解説。

CIOpsにはセキュリティリスクがある

CIOpsにはセキュリティリスクがある

Gitリポジトリで、ソースコード以外にインフラストラクチャー運用のための構成情報なども一元管理するGitOpsのほうが優れていると解説した。

GitOpsのフローを解説。CIOpsに比べてリスクが低い

GitOpsのフローを解説。CIOpsに比べてリスクが低い

コンテナを使ったアプリケーション開発においてCI/CDを使うことは、可搬性と開発の速度を上げる効果があるが、それ自身がすべての問題を解決するものではない。その組織、アプリケーションの特性、コストなどを適材適所に検討する必要があると説明した。

また複数の小さなコンテナが連携して実行されるマイクロサービスについても解説を行い、大きな組織から小さな組織の集合体への変化に合わせて分散化を進めるためのものとした。またここで言う「小さな組織」のサイズはTwo Pizza Rule、つまり2枚のピザを分け合える程度の人数に抑えるべきだという知見を紹介した。

組織が分散化された際の問題点を指摘

組織が分散化された際の問題点を指摘

ここでは小さな開発チームによって生ずる問題点に関しても解説を行った。

小さなチームによる開発手法がマイクロサービス?

小さなチームによる開発手法がマイクロサービス?

組織を小さくすることと合わせて、テクノロジーもマイクロサービスを実装できるものを選択するべきと説明しているが、前のスライドで提起した問題点の解決策を提示していないのは若干、不親切と言えるだろう。

Istioを例に挙げてマイクロサービスの実装を解説

Istioを例に挙げてマイクロサービスの実装を解説

さらにKubernetes上でマイクロサービスを実現するサービスメッシュのIstioを紹介し、サイドカーとしてデプロイされたProxyがネットワーク機能を受け持ち、他のPodと連携するアーキテクチャーを紹介した。

マイクロサービスも結局は同じ目的を目指していると解説

マイクロサービスも結局は同じ目的を目指していると解説

オブザーバービリティについても解説を行ったが、人によってオブザーバービリティに対する認識が異なる場合があり、従来のシステムと比べても異なるアプローチが必要と説明し、オープンソースソフトウェアだけではなく商用ツールも含めて多くの選択肢があることを解説した。

オブザーバービリティについても本質は変わらないと説明

オブザーバービリティについても本質は変わらないと説明

最後にまとめとして、クラウドネイティブなシステムとは言ってもビジネスの価値を増大させること、障害やトラブルに迅速に対応できる体制が必要であることなどを挙げてセッションを終えた。

全体的にCNCFのトレイルマップに沿いながらも、議論の多い部分、DevOpsにおける組織の作り方やオブザーバービリティにおける観点の違いなどについては深入りを避けた内容となっている。また、セキュリティやクラウドネイティブなデータベース、ストレージなどについては敢えて盛り込まれていない。

市川氏によれば、永続的ストレージやデータベースについては40分という時間内では語り尽くせないということで意図的に入れなかったという。解説として間違ってはいないが、市川氏自身の経験や知見から生まれる意見も聞いてみたかったという気がした。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第11回

CNDT2021、クラウドネイティブなシステムにおけるデバッグ手法を紹介

2022/1/17
CNDT2021において、タクシー配車アプリの開発エンジニアがクラウドネイティブなシステムでのデバッグ手法を解説したセッションを紹介する。
クラウドイベント
第10回

CNDT2021、Kubernetesをカスタマイズするカスタムコントローラーのベスト/ワーストプラクティスを紹介

2022/1/11
サイボウズのエンジニアがオペレータ運用のアンチパターン&ベストプラクティスを解説したセッションを紹介する。
システム開発イベント
第9回

CNDT2021、クラウドの複雑さを解消するための指針を解説するセッションを紹介

2022/1/6
クラスメソッドのソリューションアーキテクトによる、複雑化しがちなクラウドネイティブなシステムに対する考察を解説。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています