今回、東京で開催されました Cloud Native Days Tokyo 2019 に 2 日間とも参加してきましたので、報告しようと思います。 セッション毎の報告というより、全体を通した感想を話そうかなと思います。
cloudnativedays.jpリンクをまとめています。
一日目の Keynote で印象的だった内容です。 発表者は、OSDT 実行委員長である長谷川さんです。
来場者アンケート 1354 人から聞いた「クラウドネイティブ技術を活用フェーズについて」の紹介がありました。
既に本番環境に適用している人は、なんと**46%**という驚きの結果でした。また、開発環境に至っては、**63%**ということでした。
このイベントに参加している時点である程度フィルターはかかっていると思いますが、それでも大きな割合だと感じました。
次の図では、CNCF プロジェクトの 180 日間における Commit 数をグラフ化したものです。 生みの親である Google が 1 位で independent(個人)が 2 番目、日本企業 Fujitsu が 6 位です。熱意が伝わってきますね。

ただ、CNCF のメンバーとして日本企業は17 社しかないそうで、まだまだこれからといったところでしょうか。
さらには、Kubernetes から認定された日本企業ではまだないみたいです。残念です。
今後は、次のようなカンファレンスが海外でもあるみたいです。ぜひ参加してみたいと思います。
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型 API があります。
※ https://github.com/cncf/toc/blob/master/DEFINITION.md#日本語版
「スケーラブルなアプリケーションを構築および実行」が重要です。これを実現する手段の1つに Kubernetes があります。 「CloudNative = Kubernetes」ではなく、「CloudNative ∋ Kubernetes」という感じです。
ただ、最近では Kubernetes を違う観点で考える人が増えてきたそうです。 それが、二日目の Keynote で発表された北山さんのスライドにあります。
speakerdeck.comKubernetes は「platform のための platform」と言われるようになりました。 これは、slide.No.9(Kubernetes is a platform)で見て分かる通りで、次のようなことがわかります。
これらは、たしかに「プラットフォームから得られる価値」になりますが、 逆に次のような考慮が必要なってきます。
これらのような「プラットフォームを利用するコスト」が「プラットフォームから得られる価値」よりも大きくなってしまいがちになります。 そこで、Operator (CRD)という概念が最近ホットになっています。
CRD という言葉は様々なセッションで取り上げらていました。 CRD と Operator については、下記をご参考下さい。
Kubernetes を運用すると、既存のリソースだけでは物足りない所がでてくるそうです。 そういう部分が「プラットフォームを利用するコスト」を大きくしてしまいます。 そこで、オリジナルのカスタマイズしたリソースを独自に開発し、運用を自動化することを目的とした CRD、Operator が生まれました。 ただ、独自に 1 から作るよりも、下記のサイトから使った方が効率的なときもあります。
けど、結局は困ったとき、ソースコードを読むことになるので、それぐらいの能力がないと、 運用を回せない気がします。
zlab の ladicle さんの次のスライドがとてもわかりやすく、まとまっていました。 これは貴重な資料ですね。
speakerdeck.comちなみに、独自に 1 から作ったケースがサイバーエージェントの山本さんの発表で、次のスライドです。
speakerdeck.com同じくサイバーエージェントの青山さんがライブコーディングされていたリポジトリが次のものになります。
Kubernetes を使うべきかの話が 2 日間でちらほらありました。 次のような議論もあります。
CloudNative なアプリケーション構築を目指す場合、どうしても Kubernetes を使う方向になりがちですよね。
今回参加したセッションの多くの企業では、Kubernetes を採用するための検討が下記のような感じでした。
様々なセッションがあった中で、とても王道なステップを踏まれている企業がありました。それは、SoftbankPaymentService の鈴木さんの次のスライドです。
企業に適した CloudNative 化だなと勉強になりました。
特に「運用を回すコストを考慮すると、Kubernetes ではなく PaaS を使う」 というポイントが好きです。
耳にタコができるぐらい、この単語を聞きました。 下記のサイトが参考になります。
同期リクエストの先で一部のマイクロサービスに障害があると、クライアントやその先の「クライアントのクライアント」までブロッキングが波及することになりかねない。 この問題を、クライアントと実サービスの間に Circuit Breaker と呼ばれるプロキシを介在させて、実サービスの呼び出し失敗が一定基準を超えると、クライアントからのリクエストを即座にリジェクトさせて、ブロッキング連鎖を解消するパターン。
Kubernetes でアプリケーションを構築すると、分散システムの恩恵を受けるために、
アプリケーションをマイクロサービス化する流れになります。そのマイクロサービス化でよく踏む地雷が、
「後ろの API が死んだら、連鎖的に他サーバも死ぬ」という現象です。
これを回避するために、上記の Circuit Breaker パターンを使う企業が多数いらっしゃいました。
本当にいろんなセッションで聞きました...。
次の Wantedly さんのスライドが、私の中では話題になりました。
speakerdeck.com要は、「アプリケーションとしての設計の考え方(twelve factor app)を、インフラ部分でも適用してみた」という感じです。 どれも具体的なところまで説明されており、実際に Kubernetes を構築する際に役に立つものだと思います。
今回のイベントでは、何か 1 つの技術にフォーカスした発表が多くありました。 それぞれ私なりにまとめてみました。ご参考下さい。
サイバーエージェントさんより、エンジニアにとってとても嬉しいアイテムを頂きました。
さっそく、キーボードにとりつけてみました。最高です!

こちらのサービスから作られたそうで、私も自前で何か作ってみようかなと思いました。
wasdkeyboards.comCloudNative にどっぷり浸かった 2 日間でした。
どの企業でも CloudNative を導入したことによる「つらみ」や「価値」を共有して頂いたおかげで、これから導入する人たち(私を含む)にとっては、有意義な時間でした。
全てのセッションを吸収できたわけではないですが、ここで記載したスライドだけでも理解を深めたいなと思います。
今度は大阪で開催されるそうです。これも絶対参加したいなと思います!
筆者は Web が大好きなエンジニアで、Kubernetes については理解が浅い人間です。主にフロントエンドに注力しています。
ただ、昨年の DeveloperBoost2018 で、サイバーエージェントの青山さんのセッションをうけて Kubernetes に興味を持ち始めました。
青山さんは Kubernetes にとても詳しい方で、世代が近いせいか、私もこれぐらい夢中になれるものを見つけたいと感じるようになりました。
私は Web に関わるものなら何でも好きで、Kubernetes も含まれます。そこで、青山さん著作のKubernetes 完全ガイドを全て実践することにしてみました。もちろんお家 Kubernetesでです。
実際に触ってみると、スケールする簡単さに驚きました。ほぼコマンド一発で Pod が複製されて、「え!?」とびっくりです。
そこから、段々とハマっていき今回のイベントに参加することになりました。
-
タグ「レポート」の記事
GDG DevFest Tokyo 2019というイベントに参加してきました。最近はプライベートの都合上、中々時間が取れていませんでした。しかし今回、会社の都合上、良い感じに時間を確保できたため、こちらのイベントに参加してきました。`大阪→東京` でわざわざ新幹線を使ってまで参加しましたが、それに見合う発見が多くありました。今回、私が学んだ内容について、報告しようかなと思います。
今回はDeNAさん主催のFrontendのイベントに参加してきましたので、報告しようと思います。hashtagはこちら frokan イベント概要 「Frontend de KANPAI!」(以下、FROKAN)は、フロントエンドエンジニアやフロントエンドに興味がある人が集い、ドリンク片手にゆるく交流・技術交換ができるコミュニティを目指しています。
背景 今年の9月にPyConJP 2019が開催されます。 https://pycon.jp/2019/ LTの募集があったので、LT応募するためのネタ探しをはじめました
タグ「クラウドインフラ」の記事
Dockerイメージ内の構造や設定が期待通りかどうかを検証する `container-structure-test` を知りました。container-structure-test GitHub リポジトリ。せっかくなので、試してみました。
BigQuery、皆さん使っていますか? 私は、業務でBigQueryを使ったデータ構築をしています。品質担保のため、BigQueryのSQLに対してテストをしたいと考えています。本記事では、BigQueryだけで完結し、かつ、Mockデータを差し替え可能なユニットテスト手法について、紹介します。
TikTokへスクレイプするバッチをGCP上で構築しました。GCP構築のシステム設計話と、その構築時に、ハマったことを共有します。