これは、社内のある部署からの要望で「コンテナ、Docker、Kubernetesの勉強会をしてほしい」というリクエストが来た時の出来事である。
その部署はエンジニアが(たぶん)中心の部だろうから、ゴール設定はどこにおくか?ときいたら
「DockerやKubernetesの構築・運用・保守ができるようになりたい、そのための第一歩としたい」
ということだった。
ちょうど、Japan Container Days v18.12 が実施されている真っ最中にダブルブッキングしてしまったのだが、まぁある意味ちょうど新しい情報も盛り込めるのでよかったとして、コンテンツをリアルタイムにアップデートして実施してみた。
Agendaは以下のように
- 今まさに熱いイベント(JCD v18.12)が開催されている事
- 自分もMeetupで発表した事
- 来年度から「Cloud Native Days」にリブランドされる事
- KubeCon&CloudNativeConの参加者状況
- CloudNativeの定義(CNCFより)
- CloudNativeの技術としてのアプローチ
- 仮想化からクラウド・ネイティブへの道のり(Zenbutsuさんの図を引用)
- 国内状況
- 国外状況
- 技術活用のレベル(ピラミッド:筆者のイメージ)
- 理解の早道として、土台となる「Kubernetes」
- Kubernetes = Linux of the Cloud(をイメージで少しわかりやすく)
- よく四の五の文句いうやつに対しての提言
- Kubernetes を身に着けるためのステップ
- プロダクトベースの情報
- JCD v18.12のパネルディスカッションから来年や2020年に向けての未来予想
- showKs を紹介
始める前に、とりあえずアンケート。
「Docker , Kubernetes を知ってる or 使ったことある人?」
と聞いたら、手が上がったのは20~25名くらいの中で1、2名。(ほんとはここの部署、ある理由からこの勉強会をした時点でこんな状況はあり得ないんです細かくいいませんけど・・・)
とくにここでは強く話をしたのは、8,9,10,13,14のところです。社内での技術啓蒙する中ではかなり強めに刺激を与えている身でありますので、ここも自社のエンジニアにカツを入れる意味で提言・提案をしておきました。
ここでは特に、このアドベントカレンダーのテーマである「Kubernetes」を扱うエンジニアのみなさんに気になるのは14.
ではないでしょうか。
私個人の経験と知識、SIerの中で啓蒙してきた実績を踏まえて今のところ以下のようにステップを提示しました。
- OSをちゃんと理解(普通にAdministration + Kernel)
- Computing , Networking , Storage , DB , Protocol理解
- (コンテナ技術を理解)
- Infrastructure as Code : 要は手っ取り早く、少なくともYAML
- 疎結合・PubSub
- Kubernetes を理解
- Kubernetes エコシステム理解
ちょっと補足すると、何がコンテナを難しくさせるって、たぶん多くの人が、1、2、の基礎が足りてなさすぎるということだとおもう。あまりにも希薄、そしてムラがあり、軽視している。Administrationと書いてしまっているが、ここにはいわゆるバックアップ、運用監視、パフォーマンス、可用性、セキュリティ、ユーザー管理(何かどっかの試験項目のようになってるが)の基本は少なくともおさえていないと話にならない・・・と個人的には思う。3、がかっこされているのはここはある意味1、2、がおさえられていれば、「仕組みはこうです」と聞いたら「あーそうか、なるほど」となれればいいのでかっこなのです。
・・・という感じで「Kubernetesが難しい」と一般に言われちゃってるのは、どうしたって上記の1、2、がちゃんと身についていない輩が多いからそういう印象になるわけで、これらがどういう形であれキチンと理解されていれば難しいというよりも、ただただ「Kubernetesよくできてる、すげー」って思う人、それが今のトッププレイヤー達なのだと感じてます。