マイクロソフト主催のContainer X mas Partyで知るKubernetes導入のリアルな現実

2019年2月20日(水)
松下 康之 - Yasuyuki Matsushita
日本マイクロソフトは、自らホストするセミナーでKubernetesをベースにしたユーザー事例を公開した。

クラウドネイティブなシステムの中心にあるKubernetesは日々進化しており、ユーザー企業がキャッチアップするのは難しいと思うかもしれない。確かにサイバーエージェントやヤフー株式会社などのように、インターネット技術に詳しいエンジニアが多数在籍する企業であれば試行錯誤も可能だろうが、ITを主たるビジネスのドライバーにしていない一般の事業会社の場合は、困難な道筋である。

そんな中、Red HatやGoogleなどとともにKubernetesの開発をリードするMicrosoftが、日本国内のKubernetesユーザー企業を招いた事例公開が中心のセミナーを実施した。今回はその中から、オイシックス、Fringe81そして日本マイクロソフトのセッションを紹介しよう。

クリスマス気分満点のセミナーだが内容は真剣

クリスマス気分満点のセミナーだが内容は真剣

セミナーは「Container X mas Party」と題されたもので、2018年12月18日に日本マイクソフトの本社セミナールームで開催された。日本マイクロソフトからは、エバンジェリストである川崎庸市氏、佐藤直生氏、真壁徹氏が、ゼットラボ株式会社(ヤフーの子会社でインフラストラクチャーの研究開発を行っている)から須田一輝氏が、オイシックス・ラ・大地株式会社(有機野菜などの食材の通信販売を手がけている)からは長尾優毅氏が、そしてFringe81(インターネット広告配信を手がけている)からは森本真一氏と、多彩な登壇者のセミナーとなった。

モノリシックからマイクロサービスへ オイシックスの事例

オイシックス・ラ・大地株式会社(以下、オイシックス)でインフラストラクチャーを担当するエンジニアの長尾氏は、2000年の創業当初から利用されてきたECサイトの概要について解説した。毎年20%のペースで増加する会員からのトラフィックを処理するためにマイクロサービスの導入に踏み切ったと語り、モノリシックなシステムからマイクロサービスへの移行について説明を行った。

オイシックスのECサイトはJavaで開発されていた

オイシックスのECサイトはJavaで開発されていた

オイシックスのシステムは、ECサイトを実装したWebサイトがビジネスの根幹となる企業のものとしては創業当時の2000年には妥当な構成だったと言える。しかし、増加するアクセスや新規開発からリリースのスピードには追いつかなくなってきたことが、マイクロサービス導入のきっかけだったという。

オンプレミスとクラウドを使ったハイブリッドなモノリシックシステム

オンプレミスとクラウドを使ったハイブリッドなモノリシックシステム

ここからは、「どうやってモノリシックなシステムをマイクロサービスに移行していったのか」という部分の解説となった。

機能単位で切り出してAzureに移行

機能単位で切り出してAzureに移行

マイクロサービスへの移行は、以下の流れで行われた。

  1. モノリシックなアプリケーションの一部の機能を切り出してマイクロサービスとして開発
  2. クライアントからの接続先をマイクロサービス側に切り替え
  3. 元のアプリケーションの機能をクローズ
マイクロサービスへの移行手順

マイクロサービスへの移行手順

そして実例として、まずはログ検索サービスと宅配サービスの受注情報を確定するバッチ処理をマイクロサービスに移行したと説明した。

受注確定バッチ処理をマイクロサービスに移行

受注確定バッチ処理をマイクロサービスに移行

受注情報を確定させる処理については、国内のクラウドサービスに配備されたOracleデータベースに対するトランザクション処理を、複数のPodから並列的に書き込むことでレイテンシーを防げると見込んだが、データベースのコネクション数のボトルネックに遭遇してしまったという。

Oracleへの書き込みもスケールできるはずだったが……

Oracleへの書き込みもスケールできるはずだったが……

コネクション数がボトルネックに

コネクション数がボトルネックに

このボトルネックも現在はチューニングによって解消され、安定稼働しているという。

続いて、商品サービスの参照処理をマイクロサービスに切り出した実例を紹介。

商品サービス参照の処理をマイクロサービス化

商品サービス参照の処理をマイクロサービス化

ここでも従来のOracleデータベースからAzureのRedisへのキャッシュがうまく動かないという現象に直面したが、力技で定期的にAzure側にキャッシュする方法を取ることで対応しているという。

Redisのキャッシュが効かない現象に直面

Redisのキャッシュが効かない現象に直面

またAzure Kubernetes Service(以下、AKS)のモニタリングシステムについても紹介した。メトリクスやログを取得し、条件によってはPagerDutyやSlackを使って通知を行っていることを説明した。

オイシックスのAKSモニタリングの概要

オイシックスのAKSモニタリングの概要

オイシックスにとっては新しいシステムであるAzure、AKSの運用について、いくつかの知見が得られたということで、それらについても解説された。特にAKSの制限を熟知しておく、AKSの設定は変えない、アップグレードは慎重に行うなどを紹介した。意外なところでハマった点として、CronJobがUTCで実行され、日本標準時間を使うように設定出来ないことがあったという。このような細かいことも、実際に使ってみないとわからない部分だろう。

AKSのCronJobはUTCのみ?

AKSのCronJobはUTCのみ?

またAKSのワーカーノードが突然「Not Ready」となる問題にも遭遇したという。他にもAzureのロードバランサーのアウトバウンドIPアドレスがわからないなど、多くの事態を経験した結果得られた「何度も作り直す余裕を持つべき」「すでに公開されている知見は積極的に利用するべき」などのKubernetes利用のポイントを解説した。

オイシックス流のAKS利用のポイント

オイシックス流のAKS利用のポイント

今後は、クライアントからAzureに直接接続、オンプレミスのOracleデータベースをAzureに移行、フロントエンドをVue.jsに移行などのプランを持っているという。

オイシックスのシステムの将来像

オイシックスのシステムの将来像

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています