CNDT 2020開幕、キーノートではサイボウス、プレイドなどのエンドユーザーがスケールするシステムの開発事例を語る
CloudNative Days Tokyo 2020(CNDT 2020)がオンラインカンファレンスとして開幕した。新型コロナウイルスの影響で、多くのカンファレンスは大勢が会場に集まるスタイルからオンラインへと移行した。その流れで今回はCNDTもオンラインでの開催となったが、従来の会場に集まるスタイル以上にコミュニケーションの双方向性を追求したという。その結果が、オンラインカンファレンスのためのプラットフォームを自前で開発するという形となって現れた。主催者によるこの説明から、CNDT 2020の1日目のキーノートが始まった。
クラウドネイティブへ移行中のサイボウズの事例
主催者の挨拶に次いで登壇したのは、サイボウズの執行役員である山本泰宇氏だ。
山本氏はサイボウズのSaaSプラットフォームcybozu.comを立ち上げた責任者であり、現在は「インフラ刷新プロジェクト責任者」ということで、サイボウズのインフラを刷新するプロジェクトNecoのプロジェクトリーダーとして、モノリシックなシステムからクラウドネイティブなプラットフォームへの移行を取り仕切っている。
SaaSプラットフォームcyboz.comはユーザーが増え、システムへの負担が増えるに従って運用上の問題点が浮かび上がってきたという。一例として、インフラ運用におけるコスト増大や設定変更の手順書が長大になったことや、拡張性に乏しいといった点が挙げられる。これらの問題点を解決するために、2018年にインフラストラクチャーを刷新するプロジェクトNecoが始まったと語った。
2019年には3つのデータセンターでクラウドネイティブなインフラストラクチャーが稼働しており、同時に現行のインフラストラクチャーからアプリケーションを移行する別のプロジェクト、Manekiも始まったとして順調に移行が進んでいることを紹介した。
システム自体はKubernetesをベースにしたインフラストラクチャーで、構成情報などはGit上で管理されていることからGitOpsの事例とも言えるだろう。ここでの注目ポイントは自動更新、自動管理と記述されているように徹底的に自動化が進んでいる点だ。
またインフラストラクチャーの開発においては3つの設計上の原則を守るように実装されているという。3つの原則とは、「Be Declarative(宣言的であること)」「「Define by Software(ソフトウェアによる実装が最優先)」「Test Everything(すべてにテストを適用)」だ。
また開発のモデルもトップダウンに設計から入るのではなく、物理サーバーの構成などの最下層から積み上げ式で開発を行い、PoCを行って検証をする方法を採ったという。
ただしこの方法を採ったことで、従来とは異なる問題点が出てきたという。それは工数が読めないこと、そしてオープンソースソフトウェアに依存することでモジュールのアップデートなどに起因する作り直しが発生することだ。
対策として工数は算定せずに実施の順番だけ決めて進めたこと、またカイゼンだけを行う専任のチームを構成して対応したことなどを紹介した。
その後、組織の改革やオープンソースソフトウェアに関する社員教育のポイントなどを紹介した。またNecoプロジェクトの開発の約半分は自動テスト関連だったことを明かし、インフラストラクチャーの開発において、開発そのものよりも自動テストの開発が大きな割合を占めていたことを語った。
最後にクラウドネイティブな開発の方法論として「何をではなくどう使うか?が大事」「プロジェクトは作り続ける」「専門家を育成できる環境作りが大事」などを語ってセッションを終えた。
システムをモノリシックから
マルチクラウドに進化させたプレイド
次に登壇したのは株式会社プレイドの執行役員でCTOの牧野祐己氏だ。プレイドは顧客体験(カスタマーエクスペリエンス)をデータで改善するためのプラットフォームKarteを提供するベンチャー企業だ。牧野氏は運用するサービスをAWS上のモノリシックなシステムからマルチクラウドの分散型システムに進化させた経験を、「ハイスケーラビリティ」というキーワードを軸にアーキテクチャーとその背景について解説を行った。
当初AWSで開発されていたKarteは、意図的にモノリシックなアプリケーションとして開発されていたという。
黎明期のものとして紹介されたこのシステム構成では、複数のリポジトリーを使い、RedisやMongoDBなどを用いてシンプルにシステムを集約することを目的としていた。
その後、データベースを分割し、負荷が高いサービスをより性能の高いインスタンスに移行できるように構成を変え、AWSに加えてGCP上にもアプリケーションを実装し、どのクラウドでも稼働できるように進化していったという。
また、よりクラウドネイティブなシステムとして分散システムを目指すために、Kubernetesへの移行を行ったことを解説した。
この段階では、仮想マシンベースからコンテナベースへとアプリケーションの再設計を行いながら、移行したために想定以上の時間がかかってしまったという。「すべてを分散化することはできないし、する必要がない」と語り、Kubernetesが目的ではなく手段であることを再確認した形になった。
Kubernetes onメインフレームを提供するIBM
次に登壇したのは、CNDT 2020のスポンサーでもある日本アイ・ビー・エム株式会社の高良真穂氏だ。高良氏はIBMのソフトウェアのコンテナ化が進んでいること、IBMとRed Hatのソリューションが補完する形でクラウドネイティブなシステムを顧客に提供できることを強調した。またメインフレームにおいてもKubernetesが提供されていることを紹介し、これはIBMにしかできないことを解説した。
またRed Hatの買収後に多くのオープンソースソフトウェアを提供していることを紹介し、クラウドネイティブなシステムがオープンソースソフトウェアを中心に拡大していることを印象付けた形になった。
継続的なソフトウェアデリバリーの
意義を強調するJFrog
1日目のキーノートの最後に登壇したのはJFrogのデベロッパーアドボケイトである横田紋奈氏だ。
バイナリリポジトリーのArtifactoryを主な製品として展開するJFrogは、ソフトウェアアップデートをスピーディに行うことの重要性を解説する。アンチパターンとして、ソフトウェアを頻繁にアップデートできないことでシステム障害を起こした海外の事例を紹介して、クラウドネイティブなシステムにおいては継続的なソフトウェアデリバリーが必須であることを強調した。
またDevOps、GitOpsなどのキーワードのJFrog的展開として「BinOps(バイナリオペレーション)」を提唱し、ソースコードを中心としたツールや環境に注目が集まる状況に対して、バイナリも重要と解説した。Javaなどでよく使われる用語であるArtifactを、ここではバイナリとして説明した辺りに、デベロッパー以外にもArtifactoryの理解を深めたいという意図が感じられたセッションとなった。
* * *
1日目のキーノートはエンドユーザー2社にスポンサーであるベンダー2社という構成で、エンドユーザーのユースケースが際立った構成となった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNDT 2020開幕、2日目は富士通、レッドハットからの率直な話が聞けた
- KubeConサンディエゴ:CI/CDを始めるJFrogに訊いてみた
- CloudNative Days Tokyo 2019開催。Airbnb、IBM、Canonicalなどが登壇
- CNDT2020シリーズ:サイボウズのSREが語る分散ストレージの配置問題を解決するTopoLVMとは
- オープンソースのストレージ管理ソフトウェアSODAがオンラインカンファレンスを開催
- マルチクラウドを制御するユニバーサルなコントロールプレーンCrossplane
- コンテナセキュリティのSysdigのCEOに、オープンコアベンダーとは異なる戦略について訊いた
- KubeCon EU 2021からセキュアでコンパクトなバイナリーフォーマットWASMのセッションを紹介
- CNDT2020シリーズ:オススメのGitOpsツールをCAのインフラエンジニアが解説
- CNDT2021、NTTデータのエンジニアがコンテナの乗っ取り方とその防ぎ方を解説