アプリケーションのライフサイクル管理を4ステップで解説
日本における採用事例には、まずLINEヤフーが挙げられる。運用しているAPIの数も、トラフィック量も膨大であることは想像に難くない。同社ではサービス開発と展開のスピードを高めるために、KongのAPIゲートウェイほかメッセージキューイングサービスやFaaSを実装することで、コード作成時間を大幅に短縮できるようになったという。
加えてLINEヤフーではロギングと認証認可をKong GatewayのAPIゲートウェイレイヤに一元化することで運用管理の負担を減らすことにも役立てることができた。またマルチテナント機能を活用することで、サービス開発とプラットフォーム運用を分離し、100を超えるクラウドワークスペース間の相互運用性を実現した。
もう1社はインターネット関連の大手日本企業。大規模有名サイトを運営しており、ピークトラフィック時のレイテンシの長さが課題となっていた。そこでKong Gatewayを導入することで低レイテンシ向けに最適化したカスタムプラグインを開発することで、本番環境で150個のプラグインを使用している状態ですべてのリクエストのレイテンシを4ms未満にできた。
それまでは手動でスケーリングしていたところをCI/CDパイプラインで実施できるようになり、効率的にスケールアウトできるようになったことで100k以上のTPSで処理できるようになった。他にもGUIのKong Manager(運用管理ツール)で運用や設定、性能を可視化できるようになるなど運用面でも改善できた。さらにKongではロギングやメトリクス情報をエクスポートできるため、慣れ親しんだロギング基盤でレイテンシなどを確認できるようになった。全社的にシンプルな運用と保守管理が実現した。
次にアプリケーションのライフサイクル管理の実現について考えて行こう。Shi氏は4つのステップに分解した。1ステップ目はアプリケーションを実装して公開、2ステップ目はオペレーション、3ステップ目はログからトレースを確認、4ステップ目は可視化して分析する。そうしてアプリケーションをアップグレードして実装するというライフサイクルを回していく。
それぞれの段階でKong Gatewayをどのように活用するかも併せて見ていこう。1ステップ目の実装では、シンプルにサービスとルートの登録をするだけでKongで管理できるようになる。外部に公開する時には、Kong Gatewayで決められたポリシーを適用して、複数の方法(HTTPやgRPCなど)で公開できる。
2ステップ目のオペレーションでは、GUIとCLIの2通りで操作できる。人間が操作する時にはGUIで、CI/CDに組み込み自動化する時にはCLIを使うといいだろう。3ステップ目のアクセス情報(ログ)出力では、Prometheusのプラグインでメトリクス情報を出力したり、HTTPでリクエストとレスポンスのログをエンドポイントに出力することもできる。複数のサービスや複数のAPIがあれば、Kongに集約したり、下図のようにFilebeatを使うこともできる。
4ステップ目のログ可視化では、Kong Gatewayのダッシュボードを使うことはもちろん、プラグインを通じて他の基盤(例えばElasticsearch)と連携してログを可視化することもできる。
そうして一周し再び実装する時、つまりアプリケーションをアップグレードする時には、Kongのカナリアリリースのプラグインが有効だ。例えば元のバージョンは70%、新しいバージョンは30%とするなど、ユーザーからの流量を分けるように設定できる。最初は少なめの流量で様子を見て、大丈夫そうなら増やして行くことで安全にアップグレードすることができる。
最後にShi氏はデモを披露した。まずはアプリケーションをKong Gatewayに登録し、人気の流量制限とキャッシングのプラグインを実装、さらにHTTPロギングのプラグインを実装したところで、ダッシュボードでログを確認する。最後に新しいバージョンのアプリケーションをカナリアリリースでアップグレードする様子を披露し、講演を締めた。
Kongについて詳しく知りたい方はこちら!
APIマネジメントプラットフォームのリーディング企業であるKongは、世界中の企業が「APIファースト」企業になることを使命としています。本記事でご関心を持たれた方は、下記メールアドレス宛にお問い合わせください。
Kongに関するお問い合わせはこちら:info-jp@konghq.com