AI時代の開発を止めないために
GitLabのAlways On基盤を高可用化

    AI時代の開発プラットフォームとして世界中の企業や政府組織から厚い信頼を寄せる「GitLab」
    その信頼性をさらに高めるため GitLab 社とサイオステクノロジーが導き出した「止まらない開発基盤」の正体とは
    Senior Solution Architect の小松原つかさ氏が、ミッションクリティカルな現場でも通用する高可用化の秘訣を語ります 。

    統合型DevOpsプラットフォームとして広がるGitLab

    ソースコードを共有・管理するシステムとしてGitHub(ギットハブ)の名前を目にすることは多い。実は、同様の機能を提供する統合型DevOpsプラットフォームとして、企業や国家組織などが多く利用するGitLab(ギットラボ)がある。パブリックなOSS開発で広く使われるGitHubに対して、GitLabはエンタープライズのプライベート環境構築に強みを持つという特徴がある。

    GitLabでChannels & Alliances―Senior Solution Architectを務める小松原つかさ氏は、「現代では多くの技術があり、AIも進展しています。その中で、代表的な開発プラットフォームとしてGitHubとGitLabが広く利用されています。GitHubはMicrosoft傘下に入り、無償のサービスを核に開発人口を着実に広げています。もう1つのGitLabは、企業向けに絞って開発プラットフォームを提供しています」と語る。

    いずれもバージョン管理システム(Git)によるソースコードの管理を中核の機能とする。GitLabは、Gitによるソースコードの管理に加えて、プロジェクト管理/課題管理、CI/CD(継続的インテグレーション/継続的デリバリー)、セキュリティ確保の各機能も提供し、主に企業での開発プラットフォームとして利用されている。さらに「GitLabならば、機密性の高い開発(完全オフライン環境=Air-gapped環境)にも適した環境を構築できます。迷ったらGitLabを使ってほしいとアピールしているのはそのためです」(小松原氏)。GitHubも企業向けのクローズド環境を提供しているが、GitLabは企業内で完結した開発環境を構築できる点が特徴だからだ。

    GitLab Channels & Alliances―Senior Solution Architect 小松原つかさ氏 の画像
    GitLab Channels & Alliances
    Senior Solution Architect 小松原つかさ氏

    そもそもGitLabは、オープンソースソフト(OSS)として提供されていた。2014年に、GitLabが法人化して製品として提供を始めた。その後、コロナ禍の最中に100%リモートワークでニューヨーク証券取引所に上場したことで話題になった。
    ユーザーは多岐にわたるが、企業や組織の開発プラットフォームということで、名前を明かせるケースは少ない。そうした中でも、「米軍が開発プラットフォームとして採用していることは公表されています」(小松原氏)ということで、その信頼性には折り紙付きと考えてもよさそうだ。

    GitLabには、複数の製品が体系的に用意されている。GitLabがホストするクラウド型の「GitLab.com」、GitLabインスタンスをユーザーが自己管理する「Self-Managed」には、個人などが対象の「Free」、AIエージェント機能を搭載した有料版の「Premium」「Ultimate」がそれぞれ用意される。さらにエンタープライズや政府組織などに向けたシングルテナント版の「GitLab Dedicated」もある。「上位のサブスクリプションほど、セキュリティなどを含めて多くの機能があると考えていいでしょう」と小松原氏は説明する。

    AIが加速させる開発とGitLabの役割

    そうした中で、GitLabのユーザーは「有償版にシフトするお客様が増えています」(小松原氏)という。その背景には、生成AIの登場と進化によりソフト開発のスピードが加速している現実がある。「生成AIツールが多く登場し、誰もがプロンプトを入力するだけでプログラムができてしまいます。プログラミングに詳しい人ならAIが書いたプログラムに問題があったことを理解できるかもしれませんが、知らない人の場合は『どこをどう修正したのかわからない』『AIの提案をそのまま受け入れてしまい、本来慎重に対応すべき部分に影響を与え、予期せぬ不具合を引き起こしてしまう』といったことが起きます。GitLabでは、AIで開発する際は制御された開発環境の中で作業して、トラブルが起きるリスクを抑制できます」(小松原氏)。

    さらに、多くの人がプログラムを書けるようになると、プログラムを確認する「レビュー」の負荷が増大する。週1回で良かったレビューが、毎日複数回になることもある。レビューの負荷増大はレビュー漏れのリスクを高める。GitLabでは、コード変更の影響範囲を可視化し、セキュリティリスクを自動検出する機能により、増大するレビュー作業を効率化する。開発を取り巻く環境の変化が、高度な機能を備える統合型DevOpsプラットフォームとしてのGitLabの価値を高めているというわけだ。

     

    AI時代に欠かせないGitLabによるDevOps/DevSecOps

    GitLabを使って、生成AI時代のスピード感に対応した開発プラットフォームを用意すると、今度はその企業に変化が起き始める。ふくおかフィナンシャルグループ傘下のネットバンクであるみんなの銀行では、GitLabをプラットフォームとして採用してアプリの内製化に舵を切った。企業が主体的に開発をハンドリングし、内製化のための環境を整備すると「優秀なエンジニアを呼び込めるようになり、エンジニアが増えたお客様の開発スピードはさらに向上します」と小松原氏は開発のスピードアップへの寄与を説明する。

    AIを使った開発についても、セキュリティリスクなどから禁止する従来企業は少なくない。しかし「AIを使えない企業には人材が集まりにくくなっている一方で、AIを使って開発できる会社には優秀な人材が集まりやすくなります。GitLabにはオンプレミスでAIを使ったプログラム開発機能があり、閉じた世界でAIを育てながら競争力を高めることもできます」(小松原氏)。インターネットに接続しない環境でもAIを活用した開発が可能になり、規制が厳しい業界や新しいサービスの導入が難しい顧客に向けても、開発環境の変化に対応する。

    開発のハブとなるGitLabに求められる可用性

    AI時代に強みを持つ統合型DevOpsプラットフォームとしてGitLabの活用が進むと、一方でGitLabがソフト開発のハブになっていく。「プロトタイプを作らせたり、新しいシステムを作らせたりする環境は、四六時中稼働していないと開発のスピード感を阻害します。そのため、GitLabそのものがダウンすると問題が大きくなります」と小松原氏は課題を語る。

    社会インフラなどミッションクリティカルなシステムでは、GitLabが止まると開発が遅れて社会に影響が出ることもある。「リリース期間やテスト期間がすべて遅れることになります。また新サービスを大々的に提供するタイミングでGitLabが止まると、ビジネスチャンスを逃すリスクも拡大します。決済システムが連携しているようなサービスでは、影響が大きいと考えられます」(小松原氏)。

    すなわち、活発なサービス開発とGitLabの高度な活用が進むほどGitLabの可用性を担保する仕組みの必要性が高まる。GitLabは1台で1000人規模の開発プラットフォームとして運用が可能だという。しかし、止まった瞬間に1000人の開発がストップする。もちろん、GitLabの機能でクラスター構成を取る方法はある。しかし、と小松原氏は続ける。「GitLab公式の高可用性構成では、データベース、Redis、ストレージなど役割ごとに複数台のサーバーが必要となり、それぞれに高いスペックが求められます。また、構成が複雑になるため、障害時の復旧手順も煩雑になります」。国家レベルやエンタープライズのような大規模ユーザーならば対応可能だが、GitLabを1台で利用しているようなユーザーにとっては負担が大きすぎる。

    そうした中、GitLabの認定プロフェッショナルサービスパートナーのトレンドソリューションズで、GitLabをクラスタリングして冗長化する案件に取り組むことになった。GitLabの機能を使うと大規模な構成になってしまう。また、GitLabでディザスタリカバリー(DR)構成を採ったとしても、マスターとレプリカの間で同期を取る仕組みがなく、リカバリー時にデータの同期を保証できない。これらの課題に対して、トレンドソリューションズでは、可用性を担保するとともに、マスターとレプリカのデータ同期を実現する方法を求めていた。そこで同社は過去に導入実績があった、サイオステクノロジーの高可用性クラスターソフト「LifeKeeper」に目をつけた。LifeKeeperを使うことで、複数台のサーバーを用意しなくても、2台の冗長構成を採れる。その案件によって、GitLabの安定稼働を守るためにLifeKeeperが有効に機能することが確認された。

    「稼働系と待機系の2台が同期していて、稼働系に問題があれば待機系が自動的に立ち上がってきます。ダウンしない開発プラットフォームを、少ないコストと手間で実現できました」(小松原氏)。

    トレンドソリューションズが検証したGitLabをLifeKeeperで冗長化する構成イメージ

     

    GitLab社とサイオステクノロジーで検証済みの構成

     

    CI/CDの側面でも、可用性の担保の必要性は高い。小松原氏は、「GitLabの利用が拡大し、管理が開発部門から情報システム部門に移管されるようになると、BCP(事業継続計画)も考慮した運用が求められるようになります。情報システム部門で長期的に運用するためには、手順書通りの設定で自動的に切り替えられる必要があります。導入実績が多く、世の中のデファクトスタンダードであるサイオステクノロジーのLifeKeeperならば、シンプルで運用管理も容易で情報システム部門の負担を高めずに可用性を担保できます」と見ている。

    AI時代の開発基盤は「常時オン」が前提に

    GitLabは、システム開発やソフト開発の潮流の変化にも対応する。「これまでの開発は、エンジニアが担当していました。しかし、今後は企画や営業などの業務部門の人材がAIを使ってどんどんシステムやソフトを作ってしまうようになります。ニュータイプの開発者が増えていると感じています」(小松原氏)。既存のソフト資産を踏まえながらAIに新しいソフトを作らせるとき、開発プラットフォームとしてのGitLabが止まるということは今までとは違うレベルで業務に対しての影響が大きい。

    開発プラットフォームが常に動いている必要性は、今後AI時代が進むに連れ、さらに高まっていく。開発プラットフォームの停止は、従来は計画的なメンテナンス時間内に収めることができた。しかしAI活用が進み、非エンジニアも含めた開発参加者が増えると、システム停止の影響範囲が広がる。「予期せぬダウンタイムを最小化する仕組みが、これまで以上に重要になっています」(小松原氏)。

    GitLabそのものも、AIの活用で機能を強化している。チャット機能だけでなく、脆弱性を見つけるAIや、それらを修正するAIも用意する。Webアプリケーションだけでなく、カメラやロボットなど現実世界と連携するアプリケーションでは、繊細な動作が求められる。自社でAIによるシステム開発支援機能を導入できない企業でも、AIを使えるGitLabを使うことで先端の開発プラットフォームを手に入れられる。小松原氏は、「LifeKeeperとの連携により、GitLabが常に利用できる環境が用意できます。こうした環境を活用して、Made in Japanの開発に全力を投入してほしいと思います」と、今後の日本のシステム開発、ソフト開発の隆盛を期待するエールを送った。