Oisix.daichi Creator's Blog(オイシックスドット大地クリエイターズブログ))

オイシックスドット大地株式会社のエンジニア・デザイナーが執筆している公式ブログです。

Microsoft Hackfest(ハックフェスト)- Azureで作るマイクロサービス基盤

主にインフラ担当の長尾です。

先日、Microsoftの寺田佳央さん(Javaの神)にハックフェストを開催していただき、当社のエンジニア5名、Alterboothの加藤さん、松村さんの2名で参加してきました。 f:id:oitech:20180503092859j:plain

ハックフェストとは?

マイクロソフトのトップエンジニアの方々とテーマを決めて一緒に解決をしていく夢のようなイベントです。
しかも今回担当してくださったのが、日本に2人しかいないJavaチャンピオンの寺田さんということで、開発言語にJavaを使っているオイシックスとしては嬉しすぎる機会でした。

テーマ

当社が運営しているECサイト「oisix.com」は、17年間機能拡張を重ねた結果、開発スピードの低下やスケーラビリティの低さに悩まされてきました。今回はこの課題を解決するために、Spring Bootでマイクロサービス化して切り出していくというテーマを設定し、最も古く切り出し難易度が高いショッピングカート部分のマイクロサービス化に5日間で取り組みました。

System Architecture

f:id:oitech:20180504110447p:plain Application

  • Java8
  • Spring Boot

Data

  • Azure Database for MySQL
  • Azure Redis Cache

Container Orchestration

  • Kubernetes on Azure (ハックフェストではACS、production環境ではAKSへ移行したい!)
  • Istio
  • Weave Scope

Logging & Monitoring

  • LogAnalytics
  • Azure Container Monitoring
  • Application Insight
  • Jaeger


5日間で構築したシステムはこのような構成になっています。
アプリケーションの詳細については、また別の機会に投稿したいとおもいます。

初めてAzureに触れてみた感想

元々想定していなかったのですが、AzureのサービスにはLogAnalytics、Application Insight等のモニタリング機能が充実していたので、積極的に利用させていただきました。 以下の画面は「Azure Container Monitoring」のdefault状態なのですが、このままでも十分活用できそうなレポートにまとまっていて便利です。
f:id:oitech:20180504115015p:plain

「Application Insight」は既存のAPMから乗り換えてもいいかなと思ったり・・・。
この辺りのサービスはAzure外部からも利用できるのようなので、既存のサービス(AWS利用)にも展開していきたいとおもいます。

istioすごい(サービスメッシュ)

istioを使ってBlue-Green・デプロイメント、カナリア・デプロイメント、ローリング・デプロイメントを検証してみました。istioなしで実装するには、かなりしっかり作り込まないと難しいと思うのですが、istioではyamlを書くだけで簡単に動かすことができます。サーキットブレイカーも簡単に実装することができました。(実際に発動するまで負荷をかけるのが大変でしたが…)

この辺りは寺田さんのGithubに詳しく掲載されております。(情報量がすごい) github.com

モブプログラミング

初めてのモブプログラミング経験で最初は若干戸惑いましたが、5日間でその威力を実感しました。
同じ課題に対してそれぞれが別の角度から見ているので、問題にぶつかった時の解決スピードが速い・・・!

後日、持ち帰って試しに障害対応をモブで実践してみたのですが、やはり原因にたどり着くまでが速いですね。

最後に

f:id:oitech:20180507183950p:plain
5日間我々をサポートしてくださった寺田さん、加藤さん、松村さん。ハックフェストの機会を作ってくださった小島さん。本当にありがとうございました! www.alterbooth.com


Oisix.daichiでは一緒にマイクロサービスしてくれるエンジニアを募集しております。
興味のある方はぜひお声がけください!

recruit.oisixdotdaichi.co.jp

Oisix.daichi Creator's Blogはオイシックスドット大地株式会社のエンジニア・デザイナーが執筆している公式ブログです。

オイシックスドット大地株式会社では一緒に働く仲間を募集しています