ホーム自己紹介ブログ
NO.29
DATE2019. 07. 27

Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

今回、東京で開催されました Cloud Native Days Tokyo 2019 に 2 日間とも参加してきましたので、報告しようと思います。 セッション毎の報告というより、全体を通した感想を話そうかなと思います。

cloudnativedays.jp

リンクをまとめています。

CNDT2019/OSDT2019行ってきたのでスライドリンクとメモ(見つけ次第更新) - Qiita
CloudNative Days Tokyo 2019 / OpenStack Days Tokyo 2019、行ってきました。 スライドと、簡易版レポートというよりメモ https://cloudnativedays.jp/cndt2019/ タイムテーブル(簡易版) ...
qiita.com

CNCF の利用率

一日目の Keynote で印象的だった内容です。 発表者は、OSDT 実行委員長である長谷川さんです。

来場者アンケート 1354 人から聞いた「クラウドネイティブ技術を活用フェーズについて」の紹介がありました。 既に本番環境に適用している人は、なんと**46%**という驚きの結果でした。また、開発環境に至っては、**63%**ということでした。
このイベントに参加している時点である程度フィルターはかかっていると思いますが、それでも大きな割合だと感じました。

次の図では、CNCF プロジェクトの 180 日間における Commit 数をグラフ化したものです。 生みの親である Google が 1 位で independent(個人)が 2 番目、日本企業 Fujitsu が 6 位です。熱意が伝わってきますね。

https://www.stackalytics.com/cncf?date=180
https://www.stackalytics.com/cncf?date=180
※ 2019/07/24 時点

ただ、CNCF のメンバーとして日本企業は17 社しかないそうで、まだまだこれからといったところでしょうか。

CNCF Landscape
The CNCF Cloud Native Landscape is intended as a map through the previously uncharted terrain of Cloud Native technologies. It attempts to categorize projects and products in the Cloud Native space.
landscape.cncf.io

さらには、Kubernetes から認定された日本企業ではまだないみたいです。残念です。

Partners
Kubernetes works with partners to create a strong, vibrant codebase that supports a spectrum of complementary platforms. Kubernetes Certified Service Providers Vetted service providers with deep experience helping enterprises successfully adopt Kubernetes. See KCSP Partners Interested in becoming a KCSP? Certified Kubernetes Distributions, Hosted Platforms, and Installers Software conformance ensures that every vendor’s version of Kubernetes supports the required APIs. See Conformance Partners Interested in becoming Kubernetes Certified? Kubernetes Training Partners Vetted training providers who have deep experience in cloud native technology training.
kubernetes.io

今後は、次のようなカンファレンスが海外でもあるみたいです。ぜひ参加してみたいと思います。

KubeCon + CloudNativeCon Europe 2019 - Linux Foundation Events
events.linuxfoundation.org
KubeCon + CloudNativeCon North America 2019 - Linux Foundation Events
events.linuxfoundation.org

CloudNative とは

クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型 API があります。

※ https://github.com/cncf/toc/blob/master/DEFINITION.md#日本語版

「スケーラブルなアプリケーションを構築および実行」が重要です。これを実現する手段の1つに Kubernetes があります。 「CloudNative = Kubernetes」ではなく、「CloudNative ∋ Kubernetes」という感じです。

ただ、最近では Kubernetes を違う観点で考える人が増えてきたそうです。 それが、二日目の Keynote で発表された北山さんのスライドにあります。

speakerdeck.com

Kubernetes は「platform のための platform」と言われるようになりました。 これは、slide.No.9(Kubernetes is a platform)で見て分かる通りで、次のようなことがわかります。

  • 運用管理者
    • Self-Healing によってスケールが簡単になる
  • アプリケーション開発者
    • 簡単にデプロイすることができる

これらは、たしかに「プラットフォームから得られる価値」になりますが、 逆に次のような考慮が必要なってきます。

  • 運用管理者
    • Self-Healing はどこまで信頼性を担保できるか
  • アプリケーション開発者
    • ユーザー影響を最小限にするためには、どうればよいか

これらのような「プラットフォームを利用するコスト」が「プラットフォームから得られる価値」よりも大きくなってしまいがちになります。 そこで、Operator (CRD)という概念が最近ホットになっています。

なぜ CRD がホットなのか

CRD という言葉は様々なセッションで取り上げらていました。 CRD と Operator については、下記をご参考下さい。

【大阪・梅田】Kubernetes Meetup Tokyo 19 大阪サテライト- 2019年5月31日参加レポート
大阪からKubernetes Meetup Tokyoに参加できるとのことで、こちらに参加してきました。Kubernetesの生みの親である3人の内の1人のJoe Bedaから、Kubernetesの歴史の経緯について教えて頂きました。その話がとてもわかりやすく、なるほどなと思ったので、ぜひとも共有したいと思います。
silverbirder.github.io

Kubernetes を運用すると、既存のリソースだけでは物足りない所がでてくるそうです。 そういう部分が「プラットフォームを利用するコスト」を大きくしてしまいます。 そこで、オリジナルのカスタマイズしたリソースを独自に開発し、運用を自動化することを目的とした CRD、Operator が生まれました。 ただ、独自に 1 から作るよりも、下記のサイトから使った方が効率的なときもあります。

OperatorHub.io | The registry for Kubernetes Operators
The registry for Kubernetes Operators
operatorhub.io

けど、結局は困ったとき、ソースコードを読むことになるので、それぐらいの能力がないと、 運用を回せない気がします。

zlab の ladicle さんの次のスライドがとてもわかりやすく、まとまっていました。 これは貴重な資料ですね。

speakerdeck.com

ちなみに、独自に 1 から作ったケースがサイバーエージェントの山本さんの発表で、次のスライドです。

speakerdeck.com

同じくサイバーエージェントの青山さんがライブコーディングされていたリポジトリが次のものになります。

GitHub - cloudnativejp/webserver-operator: webserver operator
webserver operator. Contribute to cloudnativejp/webserver-operator development by creating an account on GitHub.
github.com

Kubernetes は必要ですか

Kubernetes を使うべきかの話が 2 日間でちらほらありました。 次のような議論もあります。

「あなたにKubernetesは必要ですか?」を、Kubernetes Meetup Tokyoのコアメンバーが議論
「OpenStack Days Tokyo/CloudNative Days Tokyo 2019」で2019年7月23日、Kubernetes Meetup Tokyoのコアメンバーが、「あなたにKubernetesは必要ですか? Kubernetesのこれからについて話し合おう」というタイトルのパネルディスカッションを行った。
www.atmarkit.co.jp

CloudNative なアプリケーション構築を目指す場合、どうしても Kubernetes を使う方向になりがちですよね。
今回参加したセッションの多くの企業では、Kubernetes を採用するための検討が下記のような感じでした。

  • プレインな Kubernetes か、マネージドな Kubernetes か
    • 大体はマネージドな Kubernetes を使う。
    • かゆい所に手を伸ばすときになって、プレインな Kubernetes を使う。
  • Kubernetes のエンジニアは何人か。それは専属か
    • どこも Kubernetes の知識を保有するエンジニアは少ない。
    • 数人程度で専任で進めることが多い。
  • ノウハウを蓄積するために、スモールスタート

様々なセッションがあった中で、とても王道なステップを踏まれている企業がありました。それは、SoftbankPaymentService の鈴木さんの次のスライドです。

決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
CloudNative Days 2019 キーノート登壇資料 "SBペイメントサービス株式会社ではSpringとPivotal Application Serviceを使用して、次期決済システムを内製しております。 本セッションでは導入の背景や、Spring Boot/Cloudを使用したアーキテクチャの説明、CI/CDやロギング・モニタリング、高レジリエンスへの取り組み内容のご紹介とあわせて、プラットフォームの導入が開発や運用にどのような効果をもたらすのかをお伝えします。" - Download as a PDF, PPTX or view online for free
www.slideshare.net

企業に適した CloudNative 化だなと勉強になりました。
特に「運用を回すコストを考慮すると、Kubernetes ではなく PaaS を使う」 というポイントが好きです。

Circuit Breaker

耳にタコができるぐらい、この単語を聞きました。 下記のサイトが参考になります。

『Microservice Patterns』 まとめ - Qiita
今年10月に出版された『Microservices Patterns With examples in Java』という本を読んだ。面白かったので紹介したい。 はじめに 著者は、マイクロサービスパターンのサイト microservice.io を運営している Chris ...
qiita.com

同期リクエストの先で一部のマイクロサービスに障害があると、クライアントやその先の「クライアントのクライアント」までブロッキングが波及することになりかねない。 この問題を、クライアントと実サービスの間に Circuit Breaker と呼ばれるプロキシを介在させて、実サービスの呼び出し失敗が一定基準を超えると、クライアントからのリクエストを即座にリジェクトさせて、ブロッキング連鎖を解消するパターン。

Kubernetes でアプリケーションを構築すると、分散システムの恩恵を受けるために、 アプリケーションをマイクロサービス化する流れになります。そのマイクロサービス化でよく踏む地雷が、 「後ろの API が死んだら、連鎖的に他サーバも死ぬ」という現象です。
これを回避するために、上記の Circuit Breaker パターンを使う企業が多数いらっしゃいました。 本当にいろんなセッションで聞きました...。

twelve factor app

次の Wantedly さんのスライドが、私の中では話題になりました。

speakerdeck.com

要は、「アプリケーションとしての設計の考え方(twelve factor app)を、インフラ部分でも適用してみた」という感じです。 どれも具体的なところまで説明されており、実際に Kubernetes を構築する際に役に立つものだと思います。

技術にフォーカスした発表

今回のイベントでは、何か 1 つの技術にフォーカスした発表が多くありました。 それぞれ私なりにまとめてみました。ご参考下さい。

Chaos Engineering

speakerdeck.com

Docker

[CNDT] 最近のDockerの新機能
最近1年でDockerに追加された新機能を,わかりやすく紹介します. ・より高速でセキュアな `docker build` (BuildKitモード) ・非rootユーザでのDocker daemonの実行 ・Docker Application Packages ・Docker Compose-on-Kubernetes ・CLIプラグイン ... - Download as a PDF, PPTX or view online for free
www.slideshare.net

Envoy

speakerdeck.com

Logging

speakerdeck.com

LinuxKernel

speakerdeck.com

Prometheus

speakerdeck.com

Sandbox

CNDT2019コミュニティセッション
CNCF サンドボックスプロダクト 1517本ノック! Cloud Native Developers JP 1 1 CloudNative Days Tokyo 2019
docs.google.com

Scheduler

speakerdeck.com

Spinnaker

speakerdeck.com

Istio

speakerdeck.com

その他

サイバーエージェントさんより、エンジニアにとってとても嬉しいアイテムを頂きました。

さっそく、キーボードにとりつけてみました。最高です!

ergodox with k8s keycap (cyberAgent)
ergodox with k8s keycap (cyberAgent)

こちらのサービスから作られたそうで、私も自前で何か作ってみようかなと思いました。

wasdkeyboards.com

最後に

CloudNative にどっぷり浸かった 2 日間でした。
どの企業でも CloudNative を導入したことによる「つらみ」や「価値」を共有して頂いたおかげで、これから導入する人たち(私を含む)にとっては、有意義な時間でした。
全てのセッションを吸収できたわけではないですが、ここで記載したスライドだけでも理解を深めたいなと思います。

cloudnativedays.jp

今度は大阪で開催されるそうです。これも絶対参加したいなと思います!

蛇足(参加するまでの経緯)

筆者は Web が大好きなエンジニアで、Kubernetes については理解が浅い人間です。主にフロントエンドに注力しています。
ただ、昨年の DeveloperBoost2018 で、サイバーエージェントの青山さんのセッションをうけて Kubernetes に興味を持ち始めました。

Developers Boost~U30エンジニアの登竜門~開催(講演資料まとめ付き)
 12月15日、翔泳社主催の若手エンジニア向けカンファレンス「Developers Boost~U30エンジニアの登竜門~」(以下、デブスト)がコングレスクエア日本橋で行われた。今年が初の開催となる。開催にあたり18社の企業スポンサーによる協力を得た。「アプリケーション開発」「開発プロセス」「イノベーション」「エンジニアの生き方」といったトピックスで、計33セッションに渡って講演された。
codezine.jp

青山さんは Kubernetes にとても詳しい方で、世代が近いせいか、私もこれぐらい夢中になれるものを見つけたいと感じるようになりました。
私は Web に関わるものなら何でも好きで、Kubernetes も含まれます。そこで、青山さん著作のKubernetes 完全ガイドを全て実践することにしてみました。もちろんお家 Kubernetesでです。 実際に触ってみると、スケールする簡単さに驚きました。ほぼコマンド一発で Pod が複製されて、「え!?」とびっくりです。
そこから、段々とハマっていき今回のイベントに参加することになりました。

レポート
クラウドインフラ

-

シェアする

フォローする

次のページ

技術書典7 で「はじめてのWeb Components入門」を初出版します!

前のページ

【増枠】Frontend de KANPAI! 7 - Going on 令和 - 2019年7月19日参加レポート

関連する記事

タグ「レポート」の記事

GDG DevFest Tokyo 2019に参加したら、Webの未来にワクワクした

GDG DevFest Tokyo 2019というイベントに参加してきました。最近はプライベートの都合上、中々時間が取れていませんでした。しかし今回、会社の都合上、良い感じに時間を確保できたため、こちらのイベントに参加してきました。`大阪→東京` でわざわざ新幹線を使ってまで参加しましたが、それに見合う発見が多くありました。今回、私が学んだ内容について、報告しようかなと思います。

2019-12-16

レポート
Google
ブラウザ
【増枠】Frontend de KANPAI! 7 - Going on 令和 - 2019年7月19日参加レポート

今回はDeNAさん主催のFrontendのイベントに参加してきましたので、報告しようと思います。hashtagはこちら frokan イベント概要 「Frontend de KANPAI!」(以下、FROKAN)は、フロントエンドエンジニアやフロントエンドに興味がある人が集い、ドリンク片手にゆるく交流・技術交換ができるコミュニティを目指しています。

2019-07-20

レポート
フロントエンド
Roundup IT Antenna Sites

背景 今年の9月にPyConJP 2019が開催されます。 https://pycon.jp/2019/ LTの募集があったので、LT応募するためのネタ探しをはじめました

2019-07-03

Python
レポート

タグ「クラウドインフラ」の記事

Docker Image に 構造化テスト container-structure-test を試してみた

Dockerイメージ内の構造や設定が期待通りかどうかを検証する `container-structure-test` を知りました。container-structure-test GitHub リポジトリ。せっかくなので、試してみました。

2024-03-29

テスト
クラウドインフラ
BigQueryだけで完結するモック可能なユニットテスト手法

BigQuery、皆さん使っていますか? 私は、業務でBigQueryを使ったデータ構築をしています。品質担保のため、BigQueryのSQLに対してテストをしたいと考えています。本記事では、BigQueryだけで完結し、かつ、Mockデータを差し替え可能なユニットテスト手法について、紹介します。

2021-11-26

フロントエンド
クラウドインフラ
テスト
TikTokスクレイプ基盤をGCP上で構築してハマったこと

TikTokへスクレイプするバッチをGCP上で構築しました。GCP構築のシステム設計話と、その構築時に、ハマったことを共有します。

2021-08-28

サービス
クラウドインフラ
成果物
クローリング
← ブログ一覧へ