Keytrade BankがGitLabでバージョン管理、CI/CD、全社的なコラボレーションを改善
Keytrade Bankはコード管理、バージョン管理、CI/CDのためにGitLabを導入し、4つのツールを置き換えてワークフローの効率を向上させました。
GitLabのおかげで、DevとOpsの間で共通のツールを持てるようになりました。DevOpsは本当にメンタリティであり、社内にその文化を根付かせようとしています。GitLabは、以前にはなかった2つのチーム間の共通ソリューションであるため、まさにそれを実現できるのです。このレベルでのワークフローが大幅に簡素化されました。
Keytrade Bankは、オンラインバンキングとトレーディングにおけるベルギー市場のリーダーであり、デジタルプラットフォーム上で幅広い商品とサービスを提供しています。同行はCrédit Mutuel Arkéaグループの一員です。Keytrade Bankでは、銀行に一度も足を運ぶことなく、普通預金口座、貯蓄口座、カード、住宅ローン、トレーディングや投資など、銀行に求めるすべてのサービスを利用できます。同行は、顧客が銀行取引や投資取引を24時間365日、完全に自立して管理できるようサポートしています。
Keytrade Bankでは、開発から本番環境までのワークフローチェーンにおいて、複数の異なるツールを使用していました。さらに、チームは特定のニーズに対応するための社内スクリプトも作成していたのです。さまざまなツールが導入されていたため、チームは常にツール間でコンテキストスイッチを繰り返す必要がありました。各ツールにはそれぞれ固有の問題があり、それらのツールの専門家は管理とメンテナンスに多くの時間を費やしていたのです。こうしたサイロ化されたツールは、多くの手動プロセス、多くのブラックボックス、そしてワークフロー全体の可視性の欠如を招いていました。
また、マネージャーは、プロジェクトの各部分の担当者、作業の方法やタイミングといった業務の監査を行う手段も不足していました。経営陣にとって全員の作業内容を把握することは非常に重要ですが、既存のツールチェーン全体の可視性では、それはほぼ不可能な状態だったのです。DevOps・クラウドエンジニアのNiels Peto氏は、「以前であれば、DevとOpsの間で問題の原因を突き止めようとして、社内で責任の押し付け合いがもっと多く発生していたでしょう。今では、問題を特定し、解決方法を見つけることがはるかに容易になりました」と述べています。チームは、これらの問題を解決し、社内および顧客とのコミュニケーションにおけるエラーを回避する方法を模索していました。顧客とのコミュニケーションは最優先事項であり、Keytrade Bankは顧客に最高のサービスを提供するための最適なソリューションを求めていたのです。
「以前にも他のサプライヤーを試しましたが、GitLabほどのサポートと自動化レベルを備えたものはありませんでした」とPeto氏は語ります。GitLabは、開発者に複数の機能を備えた単一のソリューションを提供しています。DevOps・クラウドエンジニアのNicolas Pepinster氏は、「GitLabにより、開発から本番環境までを網羅するソリューションを手に入れました。以前と同じことができるだけでなく、より多くの機能が提供されるため、さらに多くのことが可能です。これが変更を決めた主な理由であり、非常に満足しています」と述べています。「GitLabは常に開発を続けており、新機能を頻繁にリリースしてくれるので、とても満足しています。」
チームは現在、アーティファクト管理にNexusを使用しており、将来的にGitLabレジストリでこのツールを完全に置き換える方法を検討しています。さらに、以前はOpenShiftコンテナレジストリを使用していましたが、現在はAWS S3バックエンドを使用した統合GitLabレジストリでコンテナイメージを保存しています。GitLabにより、統合された単一のソリューションを提供し、ツールチェーンの複雑さを軽減できるようになりました。
Keytrade Bankは現在、Bank AssemblyプラットフォームにGitLabを使用しています。Keytrade Bankの各チームは、それぞれ独自のアプリケーションセットを使用して、銀行が提供するさまざまな製品に取り組んでいます。Bank Assemblyは、複数のツールに基づく横断的なプラットフォームを提供することを目的にゼロから構築されており、プラットフォームの中核として特にGitLabが選ばれました。Bank Assemblyには、組み込みのパイプラインが一式用意されています。チームはリポジトリ内にすべてのYMLを作成しており、アプリケーションがYMLからe-cloudを生成するため、ブロック内の必要な部分を利用できます。すべてがGitLabを通じて行われるため、バージョンの切り替えも容易です。
Pepinster氏によると、「すべてのチームがBank Assemblyプラットフォームに組み込まれ始めており、CI/CD、インフラストラクチャ、オンプレミス統合、AWSなど、あらゆる面でGitLabを中心的なポイントとして使用しています。」Keytrade Bankは、omnibusを使用してAWS上にGitLabサーバーをインストールしました。Aurora RDSによる外部PostgreSQLを構成し、GitLab Runnerについては、オンプレミスとAWSの両方にデプロイしています。AWS上のGitLab RunnerはEC2インスタンスであり、GitLabサーバーからジョブを取得すると新しいEC2スポットインスタンスを起動します。これにより、インフラストラクチャの容量を気にすることなく、チームは効率的に負荷を処理できるのです。GitLab Runnerは機能チームごとの専用AWSアカウントにデプロイされているため、ニーズに応じてセットアップを容易に調整できます。
Keytrade BankのアプリケーションはAWS上に主にEKSを使用してGitLabでデプロイされています。チームはまた、Lambdaを使用してアプリケーションに関する重要な情報を表示するシンプルなダッシュボードをデプロイしています。他のテクノロジーと同様に、GitLabはLambdaおよびそれに関連するTerraform構成のデプロイにも使用されています。GitLabの導入以来、マネージャーはワークフローを適切に監査できるようになりました。Pepinster氏は、「誰が何をいつ行ったかを確認できるようになりましたが、以前はそうではありませんでした。銀行には多くの監査担当者が訪れるため、経営陣がこれらの情報をすべて把握できることは非常に重要です。今では非常に容易になりました」と述べています。
GitLabは、コンタクト管理開発チームでも使用されています。このチームは顧客管理を担当しており、顧客との主要なコミュニケーションチャネルです。物理的な支店がないため、このチームは銀行にとって極めて重要な存在となっています。Keytrade Bankは、ビジネス側がJiraからソフトウェアデリバリーライフサイクル全体を管理できるよう、GitLabとJiraを統合しています。Jiraでは、タスクがライフサイクル中に通過する一連のステータスと遷移を含むワークフローを開発しました。新しいブランチが作成されると、タスクを「open」から「code to be reviewed」まで移動させる遷移がトリガーされます。この遷移により、先に作成されたソースブランチを使用して、GitLabで新しいマージリクエストが自動的に作成されるのです。レビューはGitLab上で他の開発者によって行われ、マージリクエストの結果(クローズまたはマージ)が別のJira遷移をトリガーします。
デプロイについても同様のプロセスが適用されます。権限を持つユーザーのみが「to be deployed in prod」への遷移をトリガーできます。これにより、Gitタグが作成され、対応するパイプラインがトリガーされて本番環境にアプリケーションがリリースされます。Keytrade Bankの最新プロジェクトであるPSD2は、欧州の基準に従って公開する必要があるAPIのセットです。PSD2はその開始当初からGitLabで直接作成されました。このプロジェクトはクラウド、オンプレミス、AWS、Terraformを使用しており、すべてのツールがGitLabで管理されています。PSD2には約10のマイクロサービス、クラウド上の2つのサードパーティ、およびオンプレミスの1つのティアがあります。Pepinster氏は、「ベルギーで行ったことを将来のプロジェクトに再利用できるようにすることが目標です。たとえば、ルクセンブルクでの導入などです。PSD2プロジェクトはGitLabを使用した最初の大規模プロジェクトでしたが、開発から本番環境まで非常にうまくいきました」と述べています。
GitLabは、Keytrade Bankにおけるコミュニケーション、コラボレーション、ワークフロー効率の基盤です。プロジェクトが拡大するにつれて、GitLabはコード管理、バージョン管理、継続的インテグレーションとデプロイのハブであり続けるでしょう。
ケーススタディに記載されている情報や関係者はすべて、発表時点のものです。



