DMM.comの、一番深くておもしろいトコロ。

KubeCon + CloudNativeCon EU 2019 参加レポート

KubeCon + CloudNativeCon EU 2019 参加レポート

  • このエントリーをはてなブックマークに追加

はじめに

どうもこんにちは!

動画配信事業部に所属するエンジニアの小芝(@_r548)です。普段はDMM動画における開発効率の改善や、技術負債の脱却に関わっています。チームとしては、現状オンプレで動作しているシステムのクラウド化・コンテナ化も目指しており、現在はKubernetesとそれを支えるエコシステムの調査・技術検証を行っている段階です。

まだ本番環境への導入はありませんが、実用例から得られる知見や自身のモチベーションを高めるために、今回はこのカンファレンスへの参加を決めました。DMMからの参加者は1人だったので、出発前は不安で仕方なかったです。

KubeCon + CloudNativeCon EU 2019 ってどんなイベント?

f:id:ryota0548:20190611151310j:plainf:id:ryota0548:20190611151410j:plain
会場であるFira Barcelona Gran Viaと基調講演時における会場の様子

KubeCon + CloudNativeCon(以下、KubeCon)は、CNCF(Cloud Native Computing Foundation)主催のイベントで年に3回、アジア、ヨーロッパ、アメリカで行われています。今回のKubeCon EU 2019は、5月21日~23、スペインのバルセロナで開催され、来場者は約8000人と言われています。Kubernetesを本番環境でゴリゴリに使っている人、自分と同様に今後導入していきたいという人、様々なバックグラウンドを持った方が参加していました。

どんなコンテンツがあるか

参加者全員が収容できる会場での基調講演や、複数の会場で並行して行われるセッション、約150もの企業が常設の展示を行うスポンサーブースもありました。セッションは同時に8つほど行われていたため、どのセッションに参加するのか非常に迷いました。

以下が、基調講演やセッションの分野一覧です。

  • Kubernetesのカスタマイズや拡張、ランタイムについて
  • 機械学習やデータ分析の基盤における活用について
  • ネットワークやセキュリティ、運用、監視について
  • サーバレス、サービスメッシュ、CI/CDについて

初心者向けのハンズオンやデモ、DeepDiveやパネルディスカッションなど、セッション自体も幅広いコンテンツでした。

f:id:ryota0548:20190611170623j:plainf:id:ryota0548:20190611171119j:plain
スポンサーブースの様子

各分野ごとに気になった基調講演やセッションの紹介

たくさんのセッションがあったなかで、個人的に気になった発表を4つ紹介したいと思います。

10 Ways to Shoot Yourself in the Foot with Kubernetes

1つ目に選んだのは、Kubernetesの運用に関する発表です。


10 Ways to Shoot Yourself in the Foot with Kubernetes, #9 Will Surprise You - Laurent Bernaille

DNSやスケジューラー、Pods、クラスタなど、本番環境における様々な要因から起こるインシデントを題材に、DatadogのエンジニアがKubernetesで自ら墓穴を掘る10の方法の紹介でした。Datadogのエンジニアらしく、どのような状況でどんなメトリクスを確認すべきか、運用の際にどういった点を気をつけるべきかを分かりやすく解説してくれています。

そして、最終的に意識すべき4つのこととして以下が挙げられていました。

  • デーモンセットは全てのPodに影響があるため気をつけること
  • DNSはそもそも難しく、簡単に壊れること
  • クラウドインフラは素直に動作しないこと
  • 状況によって、コンテナは完全に閉じ込められた環境になっていないこと

本番環境における運用をまだ行えていないからこそ、こういった知見はどんどん吸収しておきたいと思えたセッションでした。

監視関連

2つ目に選んだのは、監視にまつわる未来予測についての発表です。自身でもDatadogでメトリクス、Elasticsearchでログの監視を行っているので、より身近な話題に感じることができました。


Keynote: ...What Does the Future Hold for Observability? - Tom Wilkie & Frederic Branczyk

まず、監視の3つの柱として、メトリクス、ロギング、トレーシングが挙げられており、この発表ではそれらに関する3つの予測について触れられていました。

より3つの柱同士に相関が生まれる

例えば、Grafana lokiでは、Prometheusですでに使っているラベルをベースにしたロギングサービスを利用することで、メトリクスとログに相関を持たせて監視を行うことができます。他にも、ElasticsearchとZIPKINを組み合わせることで、分散システムのロギングとトレーシング、OpenCensusを利用することでメトリクスとトレーシングに相関を持たせて監視ができます。今後は、さらに3つの柱に相関を持たせたサービスが生まれてくると言われています。

新たなシグナルが生まれ、新たな分析が可能になる

新たなシグナルとは、Continuous Profilingです。プロダクト開発において、CI/CDパイプラインはよく利用されますが、本番環境で動作しているフィードバックを継続的に取得することをContinuous Profiling(CP)と定義づけています。これを利用した新たな分析として、リリース前後のプロファイルを比較し、メモリ等のパフォーマンスに対するリグレッションを早期に発見できるようになると言われています。

indexingを行わないログ収集がもっと増えること

grep等で気軽に絞り込みができるような、index-freeなログデータが増えていくでしょうとのことでした。OK Log(現在はアーカイブ済)、kubectl logsやGrafana lokiのようなプロダクトが挙げられています。

上記の3つが1、2年後には観測できるようになっていると予測されました。

Service Mesh関連

3つ目に選んだのは、Service Meshの標準化についての発表です。Service Meshの実現に向けてどのサービスを使うか、どこから始めるかといったように導入のハードルが高くなってきていましたが、今回の発表は、今後のService Mesh導入を検討している方にとって、良い知らせになりました。


Democratizing Service Mesh on Kubernetes - Gabe Monroy, Microsoft & CNCF Board Member

Linkerd、Istio、Consul等、Service Meshを実現するためのソフトウェアが複数出てきており、かつそれぞれの使い方に依存してしまうという問題があります。そこで発表されたのが、Service Mesh Interfaceです。

これは、それぞれのService Meshに対する差分を吸収し、Kubernetesのメッシュに対する標準のインタフェースやユースケースに対応した基本機能を提供し、高速かつシンプルにService Meshの実現を手助けするものです。特に目新しいものではなく、コンテナランタイムの標準化であるCRI(Container Runtime Interface)や、コンテナ間ネットワークの標準化であるCNI(Container Network Interface)と同じようなものです。

この標準化に進む動きは、HashicorpやMicrosoftが主導し、また様々な企業に支えられています。この動きは、Service Meshが今後より普及するためには必要不可欠なものです。

CI/CD関連

最後に選んだのは、今後モダンになるであろうCI/CDパイプラインについての発表です。自チームではSpinnakerの検証を行っていますが、他のツールがどう使われるか、今後どのような構成がモダンになっていくのかが気になったポイントです。


Modern CI/CD with Tekton and Prow Automated via Jenkins X - James Rawlings, Cloudbees

サーバレスで動作するKubernetes時代のCI/CDツールであるTektonとCIツールのJenkinsXの紹介と、それぞれの親和性の高さについての発表でした。

Tektonは元々Knative Pipelineと呼ばれるもので、CRDを用いてKubernetesを拡張し、サーバレス環境で動作するKubernetes用パイプラインを提供するものです。また、JenkinsXはServerless Jenkinsに対応し、Tektonパイプラインを動作させることができます。それぞれのゴールと歴史にはKnativeが中心にあり、どちらもここ1、2年で登場した比較的若いプロジェクトです。

発表の後半ではデモが行われました。Tektonパイプラインを作成、JenkinsXで動作する環境、それをGithubのリポジトリと連携させ、プルリクエストやマージ作業の際に正しく動作することを証明していました。

まとめ

いかがでしたでしょうか?

KubeConに参加して良かったことは以下です。

  • 幅広い分野のセッションに約20ほど参加し、開発面・運用面での知見を増やせたこと
  • 普段使用しているツールの開発者や国内のKubernetes界隈で有名な方とコミュニケーションを取れたこと

学びが多く様々な体験を得ることができ、行って良かったと思える最高のイベントでした。

記事中で紹介したKubernetes運用面の落とし穴、監視周り、サービスメッシュ やCI/CDパイプラインは、DMM動画のクラウド化・コンテナ化に非常に役立つ情報なので、早速取り入れていきたいと思います。

また、今回は1人で参加しましたが、それでも不安なく十分楽しめるイベントでしたので、ちょっとでも興味のある人は参加してみると良いと思いました。

以上、最後まで読んでいただき、ありがとうございました。

f:id:ryota0548:20190611162950j:plainf:id:ryota0548:20190611162915j:plain
参加バッジとノベルティTシャツ

採用情報

DMM.comでは共に働くエンジニアを募集しております。 興味のある方は、ぜひ下記募集ページをご確認ください。

dmm-corp.com