テクノロジー

2019.12.26

開発者のリアルな話を聞く! Bonfire Backend#4 Kubernetesで課題解決

トップ画像

こんにちは! Bonfire Backend運営の田中です。11/26に社内にてBonfire Backend #4を開催しました!

BonfireではiOS, Android, Designなどさまざまなジャンルにフォーカスをあてたイベントを催しておりますが、今回は、サービスのバックエンドにフォーカスを当てたBonfire Backend#4を開催しました。

Bonfire Backend#4の会場の様子

今回のイベントについて

Bonfire Backend#4 のテーマは、「Kubernetesで課題解決」です。 普段業務でKubernetesを使用している方からKubernetesを用いるきっかけとなった課題・Kubernetesを用いて解決したことについてお聞きしたい! と思い、本イベントを企画しました。

今回は弊社から3名に加え、サイボウズ、Preferred Networksからそれぞれ1名ずつにご登壇いただき、Kubernetesを用いて解決した課題や使って得た知見などを話していただきました。

また、多くの方が興味のあるテーマということで、東京だけではなく名古屋・大阪・福岡を含めた4拠点で同時配信を行い、約200名の方に参加していただきました。

ヤフーのナビゲーション系のバックエンドサービスの課題をk8sで解決した話

登壇者の高木克彰
高木 克彰(@tkgtransit) ◆ ヤフー株式会社

発表者一人目は2018年に弊社に新卒入社した高木です。彼は名古屋の勉強会コミュニティー、Tech Meetupの運営メンバーでもあり、この日は名古屋から来てくれました。高木はYahoo!地図Yahoo!カーナビアプリYahoo!乗換案内アプリなどのナビゲーションサービスのバックエンドの開発に従事していて、Kubernetesを使って課題解決をした話をしてもらいました。
Kubernetesを導入する前は、最短経路の計算などを行うエンジンは実機サーバーの上で稼働していたそうです。そのためエンジンの更新を行う際は、プログラムをバイナリに変換し、それをシェルスクリプトでアップロードするという、複雑な手順を通さなければいけないという課題がありました。Kubernetesを用いて、バイナリ生成を全て自動で行い、生成したバイナリをInitコンテナで自動に取得するように変更し、人手を介す必要がなくなったそうです。また、オートスケーリング機能を使うことによって、障害時も自動で復旧してくれるので、運用コスト削減も実現できたとのことです。

プライベートクラウドをk8sで刷新して良かった話

登壇者の鶴田貴大さん 鶴田 貴大さん@dulltz ◆ サイボウズ株式会社

二人目はサイボウズ3年目の鶴田さんです。サイボウズでは現在、社内のプライベートクラウドをKubernetesを使って刷新している最中とのことです。鶴田さんからは、クラウド刷新時にKubernetesを利用したことによって解決した課題について話していただきました。

クラウドサービスを提供しているCybozu.comは、社内のプライベートクラウド上で稼働しているそうです。刷新する前は社内オリジナルのモジュールが多く、便利な機能を取り入れるためには独自の環境に合わせるための開発が必要になるといった課題がありました。世間ではやっていて、開発が活発なKubernetesを使ってクラウドを構築することで、便利な機能を簡単に取り込むことができるという恩恵を受けたと話されていました。これまでは、OSのアップグレードをするのに時間がかかってしまう課題もあったそうなのですが、軽量なCoreOSに変更したことやCI環境の作成によって、一回のアップグレードによる差分を小さくし、アップグレードの簡略化を実現できたそうです。自分自身もリリースにかかる時間を短くすることはとても重要だと思っているので、特に印象に残りました。

本イベントでは、連動してSlidoで質問を受け付けていました。セッション内のQ&Aで回答できなかった質問について、発表資料に回答を追記していただきましたのでこちらも併せてご覧ください。

PFNにおける二種類のKubernetesクラスタ

登壇者の太田佳敬さん 太田 佳敬さん(@ota42y) ◆ 株式会社Preferred Networks

次に登壇してくださったのは、Preferred Networks(PFN)でWebアプリケーションの開発をしている太田さんです。発表の前半にはKubernetesを用いて環境構築を行った理由について話していただきました。
PFNの事業を支えているのは機械学習や深層学習だそうです。作成したモデルをお客様が使えるように、システム(Webアプリケーション)で提供しているそうです。機械学習や深層学習では、膨大な量の計算を速くするためにリソースを最大限に使ったマシンが求められているそうです。一方で、ウェブアプリケーションがマシンリソースに求めることは、大量のリクエストに対し速やかにレスポンスを送るためのリソースの余裕を持たせることや、データの信頼性を保証することであり、機械学習を行うマシンで要求されていることと大きく異なります。それぞれの用途に適した環境を、同じ手法で扱えるように、Kubernetes上に構築したそうです。
後半では同クラスタ内に複数存在するアプリケーションが、相互通信しないための取り組みについて話ていただきました。クラスタ内のPod同士が通信をできないようにし、特定のPodsだけ通信を許可する、ホワイトリスト方式をとっているとのことです。またそれを簡潔に実現するために、CalicoというOSSソフトウエアを使い、解決しているそうです。太田さんは、登壇後ブログを書かれており、発表に使った資料のアップロードや、当日に回答できなかった質問への回答も掲載してくださっています。また、Kubernetes以外にもOpenAPIやFlutterなどにも関心があり、ブログにはそれらの投稿もされていて、そちらも気になりました。

K8Sで画像PFを1年半運用してみた振り返り

登壇者の山田拓也 山田 拓也 ◆ ヤフー株式会社

続いての登壇者は、弊社の画像配信プラットフォームエンジニアの山田です。山田にはアプリケーションのリプレイス先のプラットフォームとしてKuberenetesを採用し、1年間運用して得た知見を話してもらいました。
Kubernetesにリプレイスする前は自社VMサーバー上に構築された環境で稼働していて、インフラ周りのアラート対応や、問題のあるサーバーの切り離しや再構築を手動で行っていたそうです。 Kubernetesには問題のあるクラスタを自己修復してくれる機能があり、その結果運用コストを下げることに成功したそうです。 発表の後半には、コンテナに対するPodの分け方や、監視についての知見を失敗談を交えて挙げてくれていました。また、当日時間がなくて発表できなかった分も含め、発表に使った資料をアップロードしてもらいました。イベント後に回収したアンケートには、フルバージョンが聞きたいなど、もっと話を聞きたいという意見が多かったです。

k8s初心者がgRPC × envoyを導入したら色々苦労した話

登壇者の信原有志 信原 有志 ◆ ヤフー株式会社

最後の発表者はYahoo!ショッピングのエンジニアをしている、信原です。信原は前半は今従事しているサービスのどの部分でKubernetesを使用しているかを話してくれました。
Yahoo!ショッピングでは、マイクロサービス化が進んでおり、「検索ページ」、「カートページ」と、ページ単位での開発が行われています。そうした中、それぞれのページに共通するコンポーネント(例えばヘッダやフッタなど)を提供するシステムの構築にKubernetesが用いられているそうです。
発表の後半には、Kubernetesクラスタ間のgRPCを用いた通信の不具合を解決した話をしてもらいました。各クラスタの通信にenvoyというサービスメッシュを使っていて、その挙動と、正しい設定方法について解説してもらいました。今回の問題を解決するまでに仮説をたて検証するといった試行錯誤を繰り返したようで、開発過程の話も聞くことができ興味深かったです。

懇親会

懇親会では今回初の試みとして、「学習・教育」、「監視・ログ周り」、「パフォーマンス周り」といった、会話のテーマを限定するテーブルを作りました。いろんなテーブルを回っていたのですが、どのテーブルも議論が白熱していて、テーマを限定してよかったと思いました。また、Kubernrtes関連の質問をし、課題を解決している場面も見受けられました。
会話のテーマを限定したテーブル

まとめ

今回は、Kubernetesを実際に業務で使われている5名に集まってお話ししていただきました。参加者からのアンケートには、聞きたいことが聞けたという意見が多かったです。また、今回は現場のエンジニアから開発中の成功談・失敗談を聞くことができ、リアルな話が聞けたという声も多かったです。
先日開催された弊社のTech Conferenceをはじめ、身の回りでKubernetes関連の話を聞くことが増え、開発者の中でも大きな話題になっていると感じています。Kubernetesに関する問題・課題は本当に多く、さまざまなテーマがあると思うので、1つのテーマに特化した勉強会の開催も面白いのではないかと考えています。 登壇者らの集合写真

Yahoo! JAPAN主催の技術・デザインコミュニティー「Bonfire」では、定期的に勉強会を開催しています。 connpassで告知していますので、ぜひご参加ください。

写真:倉増 崇史


田中 颯

コマースインフラ本部エンジニア

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

関連記事

このページの先頭へ