Vision

アトラシアンが Jira と Confluence ユーザーを Amazon Web Services に移行した方法と、その過程で学んだこと

アトラシアンが Jira と Confluence ユーザーを Amazon Web Services に移行した方法と、その過程で学んだこと

トム・クレイジット

Jira 画面のサンプル。(Atlassian 画像)

最先端のツールで何ができるべきかを正確に理解しているソフトウェア開発者にサービスを提供することを中心としてビジネスが構築されている場合、ある時点で思い切ってインフラストラクチャを最新化する必要があります。

アトラシアンは、パブリッククラウドが大企業にとって現実的な選択肢となる以前に開発・構築された旧来のホスティング型アプローチでスケーリング問題に直面した後、2年がかりでAmazon Web Services(AWS)への移行を完了したばかりだ。アトラシアンのバグ管理ツール「Jira」とコラボレーションソフトウェア「Confluence」のユーザーは、かつてはアトラシアンのデータセンターにあるサーバー上の専用仮想マシンでアプリケーションを実行していたが、2014年頃からそのシステムが機能不全に陥り始めたと、オーストラリア・シドニーに本社を置く同社のインフラ責任者マイク・トリア氏は最近のインタビューで述べた。

アトラシアンの顧客の約70%は、アトラシアンがホストするインフラストラクチャ上で同社のソフトウェアを実行しており(残りは自社サーバー上で実行していた)、顧客数が増加するにつれて、アトラシアンのインフラストラクチャは数千台のサーバーと数万台の仮想マシンの負荷に耐えきれなくなっていたとトリア氏は述べた。アトラシアンの当初のホスティング型製品はシングルテナントサービスとして構築されており、各顧客はソフトウェアインスタンスごとに専用サーバーを1台ずつ提供されていた。

アトラシアンのインフラストラクチャ責任者、マイク・トリア氏(アトラシアンの写真)

これは、アトラシアンがこのシステムを初めて構築した2010年当時は標準的な手法でしたが、成長に伴う苦労とマルチテナントアーキテクチャの利点により、大規模分散システム全体にわたるアプリケーションのプロビジョニング方法に関する考え方は着実に変化してきました。パブリッククラウドはマルチテナントであり、効率性を重視して複数の顧客が同じサーバーを共有できることを意味します。

そのため、Atlassian が 2013 年と 2014 年にパブリック クラウドの利点を活用する必要があると判断した頃 (「ディスクを頻繁に交換する必要がありました」と Tria 氏は語ります)、同社はコードを AWS に単に「リフト アンド シフト」するのではなく、マルチテナンシーとマイクロサービスを活用するために Jira と Confluence をクラウド ネイティブ方式で書き直すことも決定しました。

そのため、同社はマルチテナントクラウド上で顧客データが混在しないようにするためのツールを複数開発する必要がありました。これは、クラウドコンピューティングへの移行を検討しているCIOにとっての根本的な懸念事項です。アトラシアンは、これらのツールの一部を今後数ヶ月以内にオープンソースプロジェクトとしてリリースしたいと考えています。

「(この移行は)間違いなく私たちがこれまで手がけた中で最大のエンジニアリングプロジェクトです」とトリア氏は語った。

アトラシアンはMicrosoft AzureやGoogle Cloud Platformなど、他のクラウドプロバイダーも検討しましたが、2013年にプロジェクトを初めて計画した時点では、AWSが最も実績のあるプラットフォームだと感じていました。また、AWSが提供するサービスの幅広さにも魅力を感じました。トリア氏によると、AWSが提供する約100のサービスのうち、アトラシアンは3つを除くすべてを利用しています。

同社は12月にクラウド顧客の自社インフラからAWSへの移行を完了したが、そのソフトウェアのエンドユーザーのほとんどはそのことに気づかなかったと同氏は述べた。しかし、すべてが順調に進んだわけではない。

旧システムでは、バグファイリングおよび追跡システム全体にわたって特定の情報を検索したい顧客は、クエリのたびにすべてのデータを再インデックスする必要があり、非常に時間がかかっていました。そこでアトラシアンは、これらのクエリを検索エンジン風のインターフェースから、はるかに高速なPostgresデータベースに移行することを決定しました。

しかし、落とし穴がありました。Postgresのクエリが古いシステムとは異なる結果を返したのです。チームは、新しいシステムで古い結果を再現する方法を模索し、大混乱に陥りました。「おそらく30人から40人の開発者が、ただひたすらキーボードを叩いて、この問題を解決しようとしていたでしょう」とトリア氏は言います。

しかし、結局のところ、Postgresクエリは旧システムよりも優れた結果を生み出しました。それでも、そのことに気づくまでにはかなりの時間がかかり、「再インデックスの手間を別の手間で置き換えたくなかったため、予想以上に時間がかかってしまいました」と彼は言います。

アトラシアンは、マルチテナントアーキテクチャへの移行に伴い、シングルテナントアーキテクチャからパフォーマンスを引き出すために長年培ってきた手法や戦略を放棄せざるを得なかったとトリア氏は述べた。幸いなことに、TrelloやBitbucketといったアトラシアンファミリーの他の製品はクラウド時代に合わせて開発されており、その知識の一部をJiraやConfluenceのチームと共有できたとトリア氏は述べた。

そして先週、同社は冗長性のメリットについて厳しい教訓を突きつけられた。これは今回の移行で既に解決済みだと思っていた問題だった。先週、トリア氏が「ブラックスワンイベント」と呼ぶ、AWSが運営する米国東部リージョンのすべてのアベイラビリティゾーンが停止したという出来事があったのだ。アトラシアンはAWSへのネットワーク接続に複数のアベイラビリティゾーンを使用することで、このような事態に備えた計画を立てていたと思っていたが、先週の悪天候による障害の影響を受けた主要企業の一つであり、この障害ではキャピタル・ワンのサービスとAmazonのAlexaサービスも相当な規模で停止した。

しかし、このインシデントは依然としてパブリッククラウドの宣伝になるとトリア氏は述べた。なぜなら、アトラシアンが自社の従業員によって管理されているシングルテナントのインフラストラクチャを運用していたら、このようなインシデントから回復するにははるかに長い時間がかかったはずだからだ。