LINE株式会社 Verda2チームの澤井です。
今回は、4月16日に福岡にて開催されましたCloud Native Days Fukuokaというイベントに参加してきましたので、ご報告いたします。弊社からもVerda Fukuoka Teamより藤嶋が登壇したほか、スポンサーブースを出展いたしました。
Cloud Nativeとは
Cloud Nativeについて、冒頭のキーノートセッションで分かりやすい説明があったのでご紹介いたします。
発表の冒頭にもある通り、Cloud Nativeという言葉は、クラウド環境を前提に、アプリケーションの可搬性を高めるdockerなどのコンテナ技術、コンテナを管理するためのKubernetes、マイクロサービスでのアプリケーション開発などを利用することに対して用いられることが一般的です。
発表中、Cloud Nativeとは、単純なプラットフォームやツールの利活用ではなく、それらを利用して人間の関与を最小化するために既存のプロセスを再設計することであり、そうすることでクラウドによって人間を最大限に強化することであるという内容がありました。
プラットフォームやツールの利活用に注目が集まりがちなCloud Nativeですが、より本質的な目的について考えることができました。
参加したセッション
インフラエンジニアとして業務に携わる中で、特に印象に残ったセッションについてご紹介をさせていただきます。
Cacoo の Kubernetes による マイクロサービスアーキテクチャ
https://cacoo.com/diagrams/IyigLfwua200ZARc/E2AFA
Nulab社でのCacooと呼ばれるチャート作成サービスでのマイクロサービスアーキテクチャに関する発表でした。
Cacooは世界の3箇所の拠点で開発されており、マイクロサービス化によって開発拠点間において独立して作業を実現することができるようになり、ビルド・デプロイが高速にできるようになったことは、マイクロサービス化による恩恵が非常に理解しやすい事例だったと思います。
NoOps を目指して Kubernetes ネイティブな物理データセンターを作る
これらを実現するにあたって、仮想データセンタ上でのテストの実施や、Kubernetes自体の運用自動化、データセンタ側においてもベンダーロックインの回避やネットブートなどの設定など多くの技術的挑戦に関する説明がなされました。
特に印象的だったのは、placematと呼ばれる仮想データセンタを構築するツールを徹底的に作り込み、試験してきた結果、実際のデータセンタでも問題なく動作したという部分でした。
Kubernetes and Beyond Democratizing Workflow Automation
Kubernetes and Beyond Democratizing Workflow Automation - Qiita
Kubernetesをスクリプティングプラットフォームとして利用できるまでに至るプロセスに関する発表でした。
発表中では、スクリプトの並列実行やファイルの同期、イベントのトリガーの設定など、スクリプティングに必要になるユースケースを列挙しつつ、各ユースケースのためにどのような指針でどのような試行したか、コマンドなども交えつつ説明されていました。現在に至るまでの開発者の問題解決が理解しやすく参考になるものが多くありました。
Cloud Native Days FukuokaでのLINE株式会社の発表
A story of migration from Docker Swarm to Kubernetes
弊社のVerda Fukuoka Team(VFK)の藤嶋の発表になります。LINEでは、Verdaと呼ばれる社内向けプライベートクラウド上でロードバランサーサービスを開発・提供しています。
このプロジェクトに関しては別の機会にも発表がありましたので、こちらの資料も合わせてご覧いただければと思います。: https://www.slideshare.net/linecorp/ss-116879618
弊社ではそのバックエンドとして、Docker Swarmをスタンドアロンモードで利用していました。Docker Swarmは構成が複雑でないため、安い学習コストでコンテナ化による恩恵を受けることができていました。
しかし、Docker Swarmのスタンドアロンモードでは、オートスケーリングが実現できないこと、リソース上の制約から1つのコンテナで複数のVirtualIPを処理する実装に移行していく過程で、Kubernetesへの移行を実施しました。
Kubernetesを利用することでコンテナをリソースの占有率が低いノードにスケジューリングが可能となり、ノイジーネイバーの問題に対応することが可能となりました。
また、Kubernetesのクラスタ間のネットワークにはflannelやCalicoが利用されることが多いですが、この取り組みの中ではCalicoを利用しています。CalicoはネットワークプロコトルのBGPを用いて、クラスタ外のネットワークにPodのIPアドレスを広報することができます。これにより、データセンター内でPodのIPアドレスにクラスタ外から直接通信ができるという利点があります。
弊社ブースの様子
最後に弊社スポンサーブースの様子をご紹介させていただきます。
スポンサーブースでは、Verdaの開発・運用エンジニアが、Verdaチームの体制・プライベートクラウドを構築・運用していく上での技術的課題などについて、質問を元に説明を行いました。