われわれが達成してきたことを一言で言うと、「何もないところにベースとなる道を整えた」ということです。具体的には、基礎となるマイクロサービスのためのアーキテクチャの構築、そして基本的な“DevOps文化”の醸成といったところです。
アーキテクチャとして整えたことは大きく次の4つです。
まずは、APIゲートウェイアーキテクチャへの移行について紹介します。
これが1年前のメルカリのメインアーキテクチャです。モノリスのAPIとそれが使うデータベースがあり、全ての開発がこの中で行われていました。
まずは、この全体に内製のAPIゲートウェイを配置し、メルカリへの全リクエストがAPIゲートウェイ経由になるようにしました。新サービスを作る際には、そのサービスをAPIゲートウェイ配下に作ることができるようになり、モノリスのコードとはある程度独立して、新規マイクロサービスの開発を行えるようになったわけです。
また、既存機能をマイクロサービス化してモノリスと切り離していくときも、このAPIゲートウェイ配下に配置し、APIゲートウェイレベルでリクエストの振り替えを行うことで、段階的にマイクロサービスへ移行できるようになりました。このAPIゲートウェイはGoogle Cloud Platform(GCP)上にデプロイしており、クラウドへの移行も開始しています。
これによって、サービスAが何かデータベースを使いたいときには、クラウドのマネージドサービスのデータベースを使えるようになりました。
また、新しいサービスはコンテナとしてKubernetes上にデプロイしています。Kubernetesを使うことで、コンテナが死んでしまったときに自動的に再起動してくれるセルフヒーリングの機能や、リクエストがたくさん来たときにコンテナを自動的に増やしてくれるオートスケール機能などを使うことができ、オペレーションコストを劇的に減らすことができます。
Copyright © ITmedia, Inc. All Rights Reserved.