Oisix ra 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.oisixradaichi.co.jp

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

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