見出し画像

世界を狙う!グローバル向けkintoneを支えるチーム

こんにちは。サイボウズでグローバル向けkintoneの開発・運用に携わっている上岡(@ueokande)です。 この記事では、グローバル向けkintoneを支えるチームについて紹介します。

kintoneのグローバル進出

サイボウズは「チームワークあふれる社会を創る」という企業理念のもと、クラウドサービス「kintone」を開発しています。 kintoneは最近ニュースやメディアに取り上げられることが増えて、おかげさまでたくさんの方に認知してもらえるようになりました。 サイボウズは日本にとどまらず、世界で一番使われるグループウェアメーカーを目指しています。 2014年に世界トップレベルのITサービスがひしめくアメリカへ進出しました。 直近ではアジア圏への展開もしており、サイボウズ全体でkintoneのグローバル展開に力を入れています。

国内のkintoneはcybozu.comという自社クラウド基盤で運用していますが、グローバル向けkintoneは現在AWSを使って運用しています。 元々はグローバル向けkintoneも国内の自社クラウド基盤で運用していましたが、以下の効果を期待してAWSに移行しました。

  • US 国内のAWSデータセンターからサービス提供することで、USのお客様のセキュリティニーズを満たしつつより高いパフォーマンスを実現できる

  • 日本国内向けサービスとは独立してアップデート可能なため、停止時間の削減とスピーディなサービスの改善を実現できる

  • インフラのアーキテクチャを刷新し、クラウドネイティブな開発運用プロセスを確立できる

  • 販売管理システムが日本から独立したことで、US 市場向けのサブスクリプションモデルやセールス施策を展開しやすくなる

移行プロジェクトは2018年にスタートし、2019年にAWSで運用しているkintoneの提供を開始しました。

移行プロジェクトは無事終わりましたが、現在も社内の中でもモダンで攻めたアーキテクチャや開発・運用体制を実施しています。

チームの活動

お客様が触るkintoneのWeb UIやAPIは、プロダクト開発チームが開発しています。 自分たちのチームでは、kintoneを本番環境で動作させるためのバックエンドサービスの開発・運用や、インフラの管理などをしています。 こういったサービスの開発と運用、そして継続的な改善サイクルを1つのチームで完結しており、高速なフィードバックを実現しています。

具体的な業務内容は以下の通りです。

  • AWSやOSSミドルウェアを活用したシステム設計や構築

  • kintoneを支える非同期処理やメール配信基盤などのバックエンドサービスの開発・運用

  • サービスのSLI・SLO設計や、それに基づくモニタリングシステムの開発

  • 本番環境で発生する障害への対応

これだけでは業務を想像しにくいと思うので、いくつかの例を紹介します。

CI/CDパイプラインの設計と手動オペレーションの最小化

本番環境を触るのは怖いですよね?本番適用ってドキドキしませんか? kintoneをAWSに移行するとき、システムのアーキテクチャだけでなくCI/CDパイプラインも再構築しました。 Infrastructure as Codeはもちろんのこと、本番環境への適用や切り戻し作業も、GitHub上でマージするだけです。 活動の一部はCybozu Inside OutやSpeaker Deckに公開しているので、興味のある方はご覧ください。

メール配信基盤の設計・構築

kintoneでは、ユーザーの招待や更新を知らせるためにメールを利用しており、メール送信は重要な機能の1つです。 AWS上で運用しているkintoneは、メールの送信にAmazon Simple Email Service (SES)を採用しています。 Amazon SESはフルマネージドのメール送信サービスですが、無造作にメールを送ってよいというわけではありません。 AWSは保有するIPアドレスからのメール評価を良好に保つため、メールの送信量や報告されたバウンス・苦情が増え続けると、メール送信をブロックすることがあります。 Amazon SESの管理者は、メールの送信量の制限や、バウンス・苦情が報告されたアドレスに再送しないよう管理する必要があります。 こういったAmazon SESに関する機能強化や運用改善は、AWS版kintoneをリリースしてから現在まで、幾度か繰り返してきました。 活動の一部はCybozu Inside Outで紹介しているのでぜひご覧ください。

SLI/SLOの設計

SLO(Service-level objective: サービスレベル目標)は、チーム内・チーム外で目指すべき定量的な運用指標です。 SLOを決めておくことで、サービスの健康状態を知るための手がかりや、普段の開発・運用タスクの優先度を決める指標にもなります。 またSLOがあることで、サービスを監視するアラートを勘で設定せずに、定量的な目標に沿った閾値を設定できます。

多くのWebサービスでは、社外に公開するかどうかにかかわらず、顧客価値やユーザー体験に基づくSLOを設定することが多いです。 サイボウズのkintoneでもセキュリティや稼働率の目標はありますが、社内のコミュニケーションで利用できる機能レベルやユーザービリティに則したSLOは設定できていませんでした。 そこでAWS版kintoneでは、当社の国内向けプロダクトに先駆けて、機能レベルやAPIレベルでのSLOを設定し、それに基づく運用体制や監視体制を構築しました。 社内でも経験がほとんどなかったので、チームでいろいろ試行錯誤しながら、SLOを設計し定期的な改善を繰り返してきました。 活動の一部はCybozu Inside OutやSpeaker Deckに公開しているので、興味のある方はご覧ください。

今後の課題

AWS版kintoneがリリースされてから、2022年9月で3年が経過します。 今後もUSだけでなく、アジアやオセアニアをはじめとするグローバル展開により一層注力していく予定です。 グローバルで戦うためには、もっと速いスピードで進化し続け、技術的に難易度の高いチャレンジにも取り組んでいく必要があります。

SLOやモニタリングの改善

SLI・SLOの取り組みについて紹介しましたが、まだまだ改善の余地はたくさんあります。 機能毎のSLOやモニタリングを仕掛けることはできましたが、本番環境では何が起こるか分かりません。 kintoneは柔軟性ある機能をお客様に提供すると同時に、自分たちが想像しない使い方をされるケースがあります。 そういった使われ方に対して、多くのお客様では問題が無いのに、アラートが反応することが幾度とありました。 実際のお客様の体験に則ったSLOやモニタリングは、今後も継続的に改善していく予定です。

スケール可能なシステム

AWSでkintoneを提供してからしばらく経ちますが、まだ国内と比べると顧客数・データ量は少ないです。 システム内部にも、2019年ローンチ当時のままの設計がいくつも残っています。 現在の顧客数ではまだ運用に耐えることができますが、サイボウズが目指すのは世界一のグループウェアメーカーです。 今後kintoneを世界中で安心して使ってもらうには、より堅牢でスケーラブルなアーキテクチャを考えていく必要があります。

国内プロダクト開発の加速

グローバル向けkintoneは無事AWSに移行しましたが、国内でもインフラの移行プロジェクトが稼働しています。 国内ではNecoと呼ばれるKubernetesを利用したインフラ基盤へ移行する予定です。 移行に必要なのはアプリケーションのコンテナ化だけでなく、安定運用のための体制や運用指標です。 kintoneのAWS移行も、何度もトラブルに見舞われたり試行錯誤を繰り返しました。 今後はチームで溜まった知見を、国内プロダクトのKubernetes移行やプロダクト開発に還元するフェーズです。

一緒に働く仲間を募集中です!

国内のプロダクト開発に先駆けて、いろいろなチャレンジや攻めたアーキテクチャを実現してきました。 しかしまだまだやることは山積みです。 サイボウズではグローバル向けAWS版kintoneのバックエンド開発ができるメンバーを募集しています。 チームワークあふれる社会の実現に向けて、世界中にチームワークを広める役割を担うkintoneを一緒に開発しませんか? We are hiring!