社内アプリ開発の障壁を打破:EKSとGitOpsを活用した開発者主導のプラットフォーム構築
本記事は、シンプレクスの全社Platformチームが、社内アプリケーションの開発と公開プロセスを劇的に改善するための新しいPlatform構築について詳述しています。これまで、社内サービスを公開するには、プロジェクトごとにAWS環境を構築し、セキュリティ統制や申請手続きといった複雑な非機能要件をクリアする必要があり、小規模なアイデア段階のアプリケーションであっても高いハードルが存在していました。この複雑さが、開発者が本来の機能開発に集中することを妨げる最大の要因でした。
この課題に対し、Platformチームは、既存のGitHub Actionsのセルフホステッドランナー基盤として運用していたAmazon EKS(Kubernetes)のノウハウを活用し、新しい実行基盤を構築しました。このPlatformの核心は「開発者体験の向上」にあり、開発者がアプリケーションのソースコードと最小限の設定(app.yaml)のみに集中できるように設計されています。具体的な仕組みとして、開発者はテンプレートからGitリポジトリを作成し、コードをプッシュするだけで、GitOpsの仕組みが自動的に動作します。変更がmainブランチにマージされると、共通のGitHub Actions Workflowが定義を検証し、コンテナイメージをビルドしてArtifactoryに格納します。その後、Argo CDがこの変更を検知し、EKS上にアプリケーションをデプロイします。
Platform側は、Kubernetesの標準リソースに加え、独自のCustom ResourceであるSimplexApplicationと、それを管理するkro(Kube Resource Orchestrator)を採用することで、アプリケーションの実行に必要なDeploymentやServiceなどの複雑なインフラ管理を自動化し、開発者から隠蔽しています。これにより、開発者はインフラの複雑さや社内ルールを意識することなく、安全かつ迅速にサービスを立ち上げることが可能になりました。この取り組みは、単なる技術的な改善に留まらず、開発者とPlatformチームが協働し、利用者のフィードバックを元に仕組みを共に育てるという、シンプレクスの文化的な側面も強調されています。今後は、セキュリティやガバナンス要件も標準機能として組み込み、より多くの挑戦を支える共通の選択肢として発展させていく計画です。
背景
従来、企業内でのアプリケーション開発は、セキュリティとガバナンスの観点から、プロジェクトごとにAWS環境の設計・構築が必要であり、利用可能なサービスやリソースに厳格な統制が設けられていました。この複雑な手続きと技術的障壁が、開発者がアイデアを形にする際の大きなボトルネックとなっていました。
重要用語解説
- Amazon EKS: Amazon Elastic Kubernetes Serviceの略。AWS上でKubernetesクラスターを構築・運用するサービスであり、コンテナ化されたアプリケーションを大規模に管理するための基盤を提供します。
- GitOps: インフラやアプリケーションの状態をGitリポジトリで管理し、その状態を自動的に同期・適用する運用手法。コード(Git)を唯一の真実の源泉とします。
- Custom Resource: Kubernetesが標準で提供するリソース(Deploymentなど)に加え、特定の用途に合わせて定義された独自のカスタムリソース。Platform独自の抽象化レイヤーとして機能します。
- 影響: 本Platformの導入により、開発者はインフラの複雑さや手続きの煩雑さから解放され、アプリケーションの実装に集中できるようになります。これにより、開発スピードが飛躍的に向上し、社内におけるイノベーションのサイクルが加速することが期待されます。今後は、セキュリティ要件の標準化が進むと見られます。