はじめに
今回 Developers Summit 2019で下記内容を登壇させて頂きました。
[SpringBootでマイクロサービス作って苦労した話〜] (https://event.shoeisha.jp/devsumi/20190214/session/1961/)
思ったより・・・資料が拡散した感があったので、資料では読み取れない部分を補足します。
資料
- Spring Bootでマイクロサービス作って苦労したお話
https://speakerdeck.com/broadleaf/developersummit2019-springboot
補足
背景:マイクロサービスアーキテクチャっぽいサービス開発
- マイクロサービスアーキテクチャっぽい?
- データストア、完全に分断してない。いくつかのサービスでCassandraのクラスタを共有していたりする。
- サービスの粒度
- 顧客管理、自社管理、売上管理と粒度は大きい(荒い)。
起動が遅い:Application Class-Data Sharing(JEP310)を導入する
- fatJarにしない。fatJarにしちゃうと、Spring Bootの独自のクラスローダーで読み込まれるからあんまり効果無い。
- fabric8やjibだとどうやってApplication Class-Data Sharing有効化すればいいかわからなかった。なのでDockerのmulti-stage buildsで独自にビルド。
- AdoptOpenJDKのイメージをベースに、独自でjlinkで小さくなったベースイメージを使ってる。
- Application Class-Data Sharingは素敵。
テストが遅い
- parentのpom.xmlの変更には気を付けろ!
反省:先に考えておくこと
- Dynamic Configuration実現するためには、分散アーキテクチャだと多分使うのはSpring Cloud Config。
- Kubernetesで動かすのであれば、Spring Cloud Kubernetes要チェック!configmapこんな感じで使いたかった!ってなる。
最後に
私は、日本語フォントだと、Noto Sans Mono CJK JPフォント愛用してます。
PDFに変換すると・・・ビットマップに変換されてしまい、コピペできなくなります。
なので、メイリオに一括変換してPDFにしているのですが、結果一部体裁が崩れている箇所があります。申し訳ございません…。
ご来場された方々、本当にありがとうございました。
また、Ask The Speakerで色々お声をかけて頂き、本当に嬉しかったです。