SlideShare a Scribd company logo
1 of 36
Case Study
(Feedback of SpringOnePlatform)
Takahiro Fujii
Takahiro Fujii(@taka_ft)
Assistant Manager
Hotel Booking Team
Front-End Development Group
Booking Platform Team
Travel Platform Group
Introduction
楽天トラベルで開発しています
前回はRESTDocの話をしました
≈
去年
https://2015.event.springone2gx.com/schedule/
今年
https://2016.event.springoneplatform.io/schedule/2016-08-02
すごく色々な話がありそう
Spring Cloud Foundry Cloud Native
CultureAgile CI/CDData Grid DevOps
Microservice
Case Study
何の為のCase Studyなのか。
Spring Cloud Foundry
Cloud NativeCulture Agile
CI/CDData Grid
DevOpsMicroservice
自分達の目標を実現する為に、
どのようにSpring周りの技術を利用していったのか
目的
手段
Agility Productivity Availability
今回FeedBackするセッション
Easy Consumption of Microservices
一貫性を持って、簡単にマイクロサービスの提供・利用ができること
Moving from Monolithic Architecture to Spring Cloud and Microservices
MonoliticからMicroserviceへ移行すること
+ UI変更を柔軟に行えるようにしたい
Operating a High Velocity Large Organization with Spring Cloud Microservices
大規模なサービス・開発で高いQuality / Availability / Velocityを実現す
る
↑目標を実現する為に、
どのようにSpring周りの技術を利用していったのか
GOAL
Make it easy to produce and consume microservices consistently.
(一貫性を持って、簡単にマイクロサービスの提供・利用ができること)
Easy Consumption of Microservices
Krogerというアメリカのスーパーマーケットの会社の方々のCase Study
GOAL
Make it easy to produce and consume microservices consistently.
(一貫性を持って、簡単にマイクロサービスの提供・利用ができること)
ですので、このセッションはAPIを利用する側の話だけではなく、API(主にMicroservice)を提供する側の話でもあります
Easy Consumption of Microservices
大まかな流れ
・クライアントアプリが簡単に沢山のmicroservicesに利用(consume)できるようにしたい
・各チームが簡単にmicroservicesを提供(produce)できるようにしたい
→
・Spring Cloud(Cloud Config/Actuator/Eurekaなど)/Cloud Foundry/Spring Bootを使いたい
→
・Spring Initializerを使って簡単に配布できるようにする
・社内のプロジェクトに適応させつつGoalを満たす為のSpring Initializrのカスタマイズについて(メイン)
Easy Consumption of Microservices
https://start.spring.io/
https://github.com/spring-io/initializr
Spring Initializrのカスタマイズとは
Spring Initializr
Forkして改造していますよという話
Easy Consumption of Microservices
https://start.spring.io/
https://github.com/spring-io/initializr
Spring Initializrのカスタマイズとは
- name: Custom
content:
- name: Jasypt
id: jasypt
description: Provides Jasypt encryption support for property
sources
version: 1.6
groupId: com.github.ulisesbocchio
artifactId: jasypt-spring-boot-starter
Add a custom section(application.yml)
https://github.com/spring-io/initializr/blob/master/initializr-service/src/main/resources/application.yml
下記のファイル一度ご参照ください
自分で3rd partyのライブラリを追加できる(簡単に)
社内のプライベートなライブラリを足したりとかも
Easy Consumption of Microservices
https://start.spring.io/
https://github.com/spring-io/initializr
Spring Initializrのカスタマイズとは
Dependencyに追加できるようになる
Easy Consumption of Microservices
https://start.spring.io/
https://github.com/spring-io/initializr
Spring Initializrのカスタマイズとは
IDEからでも対応できるので安心(もちろんコンソールからでも)
Easy Consumption of Microservices Spring Initializrのカスタマイズとは
Step 1: Let’s add a 3rd party dependency
Step 2: Lets add a VCS .ignore file
Step 3: Lets add a customizable README
Step 4: Wait a minute! You’ve not been writing any unit tests! (Lets write some tests)
Step 5: Let’s make it easier to generate a "standard" Microservice
Step 6: Let’s enhance our Git support
Step 7: Use the GitHub API to finalize automation
その他にも様々な細かいカスタマイズの方法について触れています。
https://github.com/ssherwood/presentations/blob/master/springone-2016/easy-microservices/initializr-guide.adoc
詳細はこちら
・会社の環境にあったinitializrの作成が可能なので、
個人やOpenなプロジェクトに限った利用ではなく、
各社のSpringアプリケーションのinitializrとして利用することができる。
・Microserviceになってアプリの数が増える
→各Microserviceで最低限の統一をしたいとき(Springを使って作るが前提ですが)、
Spring Initializrを使って新規プロジェクトを使ってもらうようにすると便利
・このSessionはほぼカスタマイズの話
Easy Consumption of Microservices Spring Initializrのカスタマイズとは
GOAL
Monolithic(日本でありそうなLegacy architectureでした)
をMicroserviceへ移行すること
+ UI変更を柔軟に行えるようにしたい
Moving from Monolithic Architecture to Spring Cloud and Microservices
Premier Inc. (NASDAQ: PINC) is a healthcare improvement company uniting
an alliance of approximately 3,600 U.S. hospitals and 120,000 other providers.
GOAL
Legacy(Monolithic/日本でありそうなLegacyでした)
をMicroserviceへ移行すること
+
UI変更を柔軟に行えるようにしたい(この会社はDashboardみたいなUIを多く提供しているようです)
Moving from Monolithic Architecture to Spring Cloud and Microservices
大まかな流れ
Microservice Architectureへ移行していった流れとその時とったアクション・課題について
→ Spring Cloud(Cloud Config/Actuator/Eurekaなど)/Spring Bootをどのように活用していったか
→ 主にCloud Configの知見
UI変更を柔軟に行いたい
→Metadata drivenなUIの構築 / Spring Cloud Configを利用してMetadataの中身を変えることで、
再起動なしで(refreshすることで)、素早く、柔軟にUIを変更できるようにした
http://www.slideshare.net/SpringCentral/moving-from-monolithic-architecture-to-spring-cloud-and-microservices
2008 - 2009 2010 - 2014 2015 - now
何やったか ・Struts1 -> Struts2へのバージョン
アップ
・Dojo(UI tool kit/JS framework)使っ
た
・Hibernate(ORM framework)使った
・開発環境・サーバ作るの大変
・ゆるやかにMicroserviceへ(APIなどが出
来てきて
・StrutsからSpringへ移行していきました
・UIをREST APIから分離しました
・Hibernateのベストプラクティスの整理
・Jenkins使い始めた(JenkinsからDeployで
きるようにした)
・フロントエンドをSPAに移行しはじめた
(Dashboard的なアプリ)
・CodeBases(Git)
・Dependencies(Maven)
・Config(SpringCloudConfig)
・Build, Release(Blue/Green), Run(Bamboo)
・Improve Dev/Ops process
Metadata-driven UI framework
・Enterprise logging(ElasticSearch, KIBANA)
・Standardization of best practices across
teams(architecture/framework/versions,logging)
・Container-ready(Docker)
Externalized configuration with live updates
・Insanely fast UI development
課題 ・マニュアルのデプロイ作業
・サービスアウトしないでリリースしてたの
で、リリース時にサービスが瞬断する
・スケールアップが大変
・ORMのことよく分かってない人が沢山の深
刻なパフォーマンス問題を発生させた
・JSPの制限がUIの変更のサイクルを遅くして
いた
・ライブラリのdependencyの把握が全然でき
てない
・Dojoのドキュメントすくなくて辛い
・UIを一つ変更するにも、沢山のアプリやコ
ンポーネントのデプロイ・更新が必要となっ
ていた
なぜかここからUIの課題が中心
・SPAにすることで、最初の学習コ
ストが増えた
・レガシーなブラウザへの対応
・クロスドメイン問題
・それぞれの環境へのデプロイする
のに、設定の変更などが必要なケー
スがあった
次にやろうと思った
こと
・frameworkの数最小限にしたい
・UIの実装もっと簡単にできるようにし
たい
・API化していきましょう
・レスポンシブルなUIにしましょう
・Hibernateともっと真剣に向き合う
・CI/CD使いましょう・しましょう
・UIをMetadata Drivenなものにしていく
・環境に依存する値を切り離す(Cloud
Config)
・ロギングの改善(KIBANAとかElastic
Searchとか)
・コンテナ化可能なアプリにしていく
・残っているMonolithcなアプリを分割し
ていく
・12Factorに準拠したアプリに近づける
Moving from Monolithic Architecture to Spring Cloud and Microservices
Spring Cloud Config/ActuatorをSecureな状態で運用する
spring:
datasource:
username: dbuser
password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'
https://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_encryption_and_decryption
・Config Serverは大切な情報を渡すことが多いので、セキュアでなければならない。
->
・Spring securityを使う
・Sensitive valueはencriptionする(cipherを使って)
Moving from Monolithic Architecture to Spring Cloud and Microservices
Spring Cloud Config/ActuatorをSecureな状態で運用する
endpoints.enabled=false
endpoints.info.enabled=true
とか
management.context-path=/manage
とか
http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-
endpoints.html#production-ready-customizing-endpoints
・Actuatorのエンドポイントを制限する
->
・management.security.enabledを有効にする
・endpointを変更して(management.context-path)intenalでしかアクセス出来ないように
制限をかける
http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-
monitoring.html#production-ready-customizing-management-server-context-path
Moving from Monolithic Architecture to Spring Cloud and Microservices
Metadata Driven UI
"provTimeSeries" : {
"container" : "provReportContainer",
"index" : 4,
"widgetData" : {
"fixtureUrl" : "****",
"fixtures" : true
},
},
"widgetProperties" : {
"chartType" : "Line",
"title" : "Payer Type Trend”
}
Moving from Monolithic Architecture to Spring Cloud and Microservices
Metadata Driven UI
"provTimeSeries" : {
"container" : "provReportContainer",
"index" : 4,
"widgetData" : {
"fixtureUrl" : "****",
"fixtures" : true
},
},
"widgetProperties" : {
"chartType" : "Line",
"title" : "Payer Type Trend”
}
Metadata driven UI各コンテンツの
・タイトル、説明
・グラフの形
・ページのデザインなどを全てcloud configで持ち、
FrontEndはMetaDataの実装しかしない。
Thymeleafで置換する値をconfigからとってくるようなイメージが近いかも
(ここの会社のアプリは基本的にSPAみたいですが)
Challenges
Operating a High Velocity Large Organization with Spring Cloud Microservices
大規模なサービス・開発で高いQuality / Availability / Velocityを実現する
Complex systems / Many teams / non functional qualities / Compliance / Legacy 3rd party applications / Processesなどの課題と向き合う
Operating a High Velocity Large Organization with Spring Cloud Microservices
Capital OneのCase Study
Challenges
大規模なサービス・開発で高いQuality / Availability / Velocityを実現する
Complex systems / Many teams / non functional qualities / Compliance / Legacy 3rd party applications / Processesなどの課題と向き合う
大まかな流れ
Microservies / 12 Factors
・一個一個のサービスは上手に作れるようになってきたけど、、
->
・Orchestrationが大変
・Service discovery(Eureka)使おう + Spring Boot Admin
+ Distributed tracingの話
・Securityの管理をそれぞれやるのも大変
->・Zuul(API gateway)使おう
Hystrixの話などもありました
Eurekaの話はせろさんのslideがおすすめ
http://www.slideshare.net/shintanimoto/spring-boot-netflix-eureka
http://www.oracle.co.jp/jdt2016/pdf/4-E.pdf
あと、guideも
https://spring.io/guides/gs/service-registration-and-discovery/
Operating a High Velocity Large Organization with Spring Cloud Microservices
EurekaはREST API提供しているので、
これを利用してJava以外のアプリ/ SpringBoot以外のJavaでもEureka使える
Eureka Client
https://github.com/Netflix/eureka/wiki/Understanding-eureka-client-server-communication
Eureka REST Operations
https://github.com/Netflix/eureka/wiki/Eureka-REST-operations
Operating a High Velocity Large Organization with Spring Cloud Microservices
+ SpringBootAdmin(3rd partyが作っているツール)
https://github.com/codecentric/spring-boot-admin
Operating a High Velocity Large Organization with Spring Cloud Microservices
https://github.com/codecentric/spring-boot-admin
+ SpringBootAdmin(3rd partyが作っているツール)
Operating a High Velocity Large Organization with Spring Cloud Microservices
If you already using Spring Cloud Discovery for your applications
you don’t have to add the Spring Boot Admin Client to your applications.
Just make the Spring Boot Admin Server a DiscoveryClient, the rest is done by our AutoConfiguration.
http://codecentric.github.io/spring-boot-admin/1.4.1/
Eureka使ってればすぐ全てのSpring Boot Applicationの情報集められます :)
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
API Gatewayはnetflixのzuulを利用して、authentication等を行っている
https://spring.io/guides/gs/routing-and-filtering/
Zuulのguideはこれ
ちなみに、springOnePlatformではzuulのセッションもありまして
Zuul2.0もうすぐ出るみたいです
(あくまで"もうすぐ"としか言ってなかったですが)
- Netty(non-blocking,async)
- RxJava chained filters
と、Reactiveを意識したGatewayとしての機能も盛り込まれている
http://www.slideshare.net/SpringCentral/netflixs-edge-gateway-using-zuul
今回FeedBackしたセッション
Easy Consumption of Microservices
一貫性を持って、簡単にマイクロサービスの提供・利用ができること
Moving from Monolithic Architecture to Spring Cloud and Microservices
MonoliticからMicroserviceへ移行すること
+ UI変更を柔軟に行えるようにしたい
Operating a High Velocity Large Organization with Spring Cloud Microservices
大規模なサービス・開発で高いQuality / Availability / Velocityを実現す
る
Eureka Zuul Hystrix
Config
Initializr
※各セッション他の話題についても触れてはいます
・去年のSpringOneから1年経って、Spring Cloud 周りの知見が溜まってきていて、
このようなCaseStudyが増えたのではないかと思います。
・どの会社も全ての機能を入れている訳ではなく、課題の解決をする為に順々に導入していっている
(Case Study系のセッションでこの会社は完璧にやりきった状態だ…!!
って思うところは僕がみた中では無かったです。)
・それぞれのCase Studyで比較的使いこなしているツールに違いがあって面白かった
・気になっているツールや、似たような課題がある方がいましたら、
セッションのスライドを見てみるといいと思います。
まとめ
おまけ(気になったやつ(tool))
vizceralはexampleのgithub projectがあり、簡単に動かせます。
あのぬるぬるした動きをlocalで体感できます
http://techblog.netflix.com/2016/08/vizceral-open-source.html
https://github.com/Netflix/vizceral
https://github.com/Netflix/vizceral-example
Vizceral(Netflix)
Microservice Dashboard(Ordina)
IGNITE TALKSで紹介されてたツール
https://github.com/ordina-jworks/microservices-dashboard
https://github.com/ordina-jworks/microservices-dashboard-server/tree/master/samples
やっぱりこういうdependencyを把握できるツール流行ってるというかみんな欲しがってるんですね
End.

More Related Content

What's hot

マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017Yusuke Suzuki
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadogtyamane
 
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールkintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールYuki Okada
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Takeshi Hirosue
 
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Yasuaki Matsuda
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フローYuki Okada
 
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現Shigeru Tatsuta
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on LinuxYasuaki Matsuda
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだNarichika Kajihara
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェストIssei Hiraoka
 
20190427 global azurebootcamp
20190427 global azurebootcamp20190427 global azurebootcamp
20190427 global azurebootcampTomoyuki Obi
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何かYusuke Suzuki
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Kazushi Kamegawa
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみたHiroshi Ohnuki
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Issei Hiraoka
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Takuya Iwatsuka
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...TIS Inc.
 

What's hot (18)

マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールkintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
 
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
20190427 global azurebootcamp
20190427 global azurebootcamp20190427 global azurebootcamp
20190427 global azurebootcamp
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何か
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
 

Viewers also liked

#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書
#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書
#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書Toshiaki Maki
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)Rakuten Group, Inc.
 
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来Yuichi Hasegawa
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
 
Spring 12年の歴史
Spring 12年の歴史Spring 12年の歴史
Spring 12年の歴史movmov
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
 

Viewers also liked (6)

#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書
#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書
#JJUG_CCC Fall 2014 #ccc_r53 Spring Bootハンズオン~Spring Bootで作るマイクロサービスアーキテクチャ!手順書
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
 
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
 
Spring 12年の歴史
Spring 12年の歴史Spring 12年の歴史
Spring 12年の歴史
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and Beyond
 

Similar to JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform

Istio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud FoundryIstio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud FoundryKazuto Kusama
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005知礼 八子
 
Intalio Cloudの詳細
Intalio Cloudの詳細Intalio Cloudの詳細
Intalio Cloudの詳細Tomoaki Sawada
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud FoundryTomohiro Ichimura
 
SIビジネスのデジタル・トランスフォーメーション
SIビジネスのデジタル・トランスフォーメーションSIビジネスのデジタル・トランスフォーメーション
SIビジネスのデジタル・トランスフォーメーションMasanori Saito
 
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~Recruit Technologies
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Keita Onabuta
 
Cloud Native and Agile Approach
Cloud Native and Agile ApproachCloud Native and Agile Approach
Cloud Native and Agile ApproachShinya Yanagihara
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~apkiban
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternTakekazu Omi
 
くまあず Nchikita 140628-2
くまあず Nchikita 140628-2くまあず Nchikita 140628-2
くまあず Nchikita 140628-2wintechq
 
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜Teruo Adachi
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果Hideaki Tokida
 
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理政雄 金森
 
Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Tsukasa Kato
 
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ  〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ  〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送Google Cloud Platform - Japan
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」Terui Masashi
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?Akira Inoue
 

Similar to JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform (20)

Istio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud FoundryIstio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud Foundry
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005
 
Intalio Cloudの詳細
Intalio Cloudの詳細Intalio Cloudの詳細
Intalio Cloudの詳細
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
 
SIビジネスのデジタル・トランスフォーメーション
SIビジネスのデジタル・トランスフォーメーションSIビジネスのデジタル・トランスフォーメーション
SIビジネスのデジタル・トランスフォーメーション
 
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020
 
Cloud Native and Agile Approach
Cloud Native and Agile ApproachCloud Native and Agile Approach
Cloud Native and Agile Approach
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design Pattern
 
くまあず Nchikita 140628-2
くまあず Nchikita 140628-2くまあず Nchikita 140628-2
くまあず Nchikita 140628-2
 
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
 
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理
 
Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう!
 
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ  〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ  〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
 
VIOPS09: その鐘を鳴らすのはあなた
VIOPS09: その鐘を鳴らすのはあなたVIOPS09: その鐘を鳴らすのはあなた
VIOPS09: その鐘を鳴らすのはあなた
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 

JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform

  • 1. Case Study (Feedback of SpringOnePlatform) Takahiro Fujii
  • 2. Takahiro Fujii(@taka_ft) Assistant Manager Hotel Booking Team Front-End Development Group Booking Platform Team Travel Platform Group Introduction 楽天トラベルで開発しています 前回はRESTDocの話をしました
  • 5. すごく色々な話がありそう Spring Cloud Foundry Cloud Native CultureAgile CI/CDData Grid DevOps Microservice
  • 7. Spring Cloud Foundry Cloud NativeCulture Agile CI/CDData Grid DevOpsMicroservice 自分達の目標を実現する為に、 どのようにSpring周りの技術を利用していったのか 目的 手段 Agility Productivity Availability
  • 8. 今回FeedBackするセッション Easy Consumption of Microservices 一貫性を持って、簡単にマイクロサービスの提供・利用ができること Moving from Monolithic Architecture to Spring Cloud and Microservices MonoliticからMicroserviceへ移行すること + UI変更を柔軟に行えるようにしたい Operating a High Velocity Large Organization with Spring Cloud Microservices 大規模なサービス・開発で高いQuality / Availability / Velocityを実現す る ↑目標を実現する為に、 どのようにSpring周りの技術を利用していったのか
  • 9. GOAL Make it easy to produce and consume microservices consistently. (一貫性を持って、簡単にマイクロサービスの提供・利用ができること) Easy Consumption of Microservices
  • 10. Krogerというアメリカのスーパーマーケットの会社の方々のCase Study GOAL Make it easy to produce and consume microservices consistently. (一貫性を持って、簡単にマイクロサービスの提供・利用ができること) ですので、このセッションはAPIを利用する側の話だけではなく、API(主にMicroservice)を提供する側の話でもあります Easy Consumption of Microservices 大まかな流れ ・クライアントアプリが簡単に沢山のmicroservicesに利用(consume)できるようにしたい ・各チームが簡単にmicroservicesを提供(produce)できるようにしたい → ・Spring Cloud(Cloud Config/Actuator/Eurekaなど)/Cloud Foundry/Spring Bootを使いたい → ・Spring Initializerを使って簡単に配布できるようにする ・社内のプロジェクトに適応させつつGoalを満たす為のSpring Initializrのカスタマイズについて(メイン)
  • 11. Easy Consumption of Microservices https://start.spring.io/ https://github.com/spring-io/initializr Spring Initializrのカスタマイズとは Spring Initializr Forkして改造していますよという話
  • 12. Easy Consumption of Microservices https://start.spring.io/ https://github.com/spring-io/initializr Spring Initializrのカスタマイズとは - name: Custom content: - name: Jasypt id: jasypt description: Provides Jasypt encryption support for property sources version: 1.6 groupId: com.github.ulisesbocchio artifactId: jasypt-spring-boot-starter Add a custom section(application.yml) https://github.com/spring-io/initializr/blob/master/initializr-service/src/main/resources/application.yml 下記のファイル一度ご参照ください 自分で3rd partyのライブラリを追加できる(簡単に) 社内のプライベートなライブラリを足したりとかも
  • 13. Easy Consumption of Microservices https://start.spring.io/ https://github.com/spring-io/initializr Spring Initializrのカスタマイズとは Dependencyに追加できるようになる
  • 14. Easy Consumption of Microservices https://start.spring.io/ https://github.com/spring-io/initializr Spring Initializrのカスタマイズとは IDEからでも対応できるので安心(もちろんコンソールからでも)
  • 15. Easy Consumption of Microservices Spring Initializrのカスタマイズとは Step 1: Let’s add a 3rd party dependency Step 2: Lets add a VCS .ignore file Step 3: Lets add a customizable README Step 4: Wait a minute! You’ve not been writing any unit tests! (Lets write some tests) Step 5: Let’s make it easier to generate a "standard" Microservice Step 6: Let’s enhance our Git support Step 7: Use the GitHub API to finalize automation その他にも様々な細かいカスタマイズの方法について触れています。 https://github.com/ssherwood/presentations/blob/master/springone-2016/easy-microservices/initializr-guide.adoc 詳細はこちら
  • 18. Premier Inc. (NASDAQ: PINC) is a healthcare improvement company uniting an alliance of approximately 3,600 U.S. hospitals and 120,000 other providers. GOAL Legacy(Monolithic/日本でありそうなLegacyでした) をMicroserviceへ移行すること + UI変更を柔軟に行えるようにしたい(この会社はDashboardみたいなUIを多く提供しているようです) Moving from Monolithic Architecture to Spring Cloud and Microservices 大まかな流れ Microservice Architectureへ移行していった流れとその時とったアクション・課題について → Spring Cloud(Cloud Config/Actuator/Eurekaなど)/Spring Bootをどのように活用していったか → 主にCloud Configの知見 UI変更を柔軟に行いたい →Metadata drivenなUIの構築 / Spring Cloud Configを利用してMetadataの中身を変えることで、 再起動なしで(refreshすることで)、素早く、柔軟にUIを変更できるようにした
  • 20. 2008 - 2009 2010 - 2014 2015 - now 何やったか ・Struts1 -> Struts2へのバージョン アップ ・Dojo(UI tool kit/JS framework)使っ た ・Hibernate(ORM framework)使った ・開発環境・サーバ作るの大変 ・ゆるやかにMicroserviceへ(APIなどが出 来てきて ・StrutsからSpringへ移行していきました ・UIをREST APIから分離しました ・Hibernateのベストプラクティスの整理 ・Jenkins使い始めた(JenkinsからDeployで きるようにした) ・フロントエンドをSPAに移行しはじめた (Dashboard的なアプリ) ・CodeBases(Git) ・Dependencies(Maven) ・Config(SpringCloudConfig) ・Build, Release(Blue/Green), Run(Bamboo) ・Improve Dev/Ops process Metadata-driven UI framework ・Enterprise logging(ElasticSearch, KIBANA) ・Standardization of best practices across teams(architecture/framework/versions,logging) ・Container-ready(Docker) Externalized configuration with live updates ・Insanely fast UI development 課題 ・マニュアルのデプロイ作業 ・サービスアウトしないでリリースしてたの で、リリース時にサービスが瞬断する ・スケールアップが大変 ・ORMのことよく分かってない人が沢山の深 刻なパフォーマンス問題を発生させた ・JSPの制限がUIの変更のサイクルを遅くして いた ・ライブラリのdependencyの把握が全然でき てない ・Dojoのドキュメントすくなくて辛い ・UIを一つ変更するにも、沢山のアプリやコ ンポーネントのデプロイ・更新が必要となっ ていた なぜかここからUIの課題が中心 ・SPAにすることで、最初の学習コ ストが増えた ・レガシーなブラウザへの対応 ・クロスドメイン問題 ・それぞれの環境へのデプロイする のに、設定の変更などが必要なケー スがあった 次にやろうと思った こと ・frameworkの数最小限にしたい ・UIの実装もっと簡単にできるようにし たい ・API化していきましょう ・レスポンシブルなUIにしましょう ・Hibernateともっと真剣に向き合う ・CI/CD使いましょう・しましょう ・UIをMetadata Drivenなものにしていく ・環境に依存する値を切り離す(Cloud Config) ・ロギングの改善(KIBANAとかElastic Searchとか) ・コンテナ化可能なアプリにしていく ・残っているMonolithcなアプリを分割し ていく ・12Factorに準拠したアプリに近づける
  • 21. Moving from Monolithic Architecture to Spring Cloud and Microservices Spring Cloud Config/ActuatorをSecureな状態で運用する spring: datasource: username: dbuser password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ' https://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_encryption_and_decryption ・Config Serverは大切な情報を渡すことが多いので、セキュアでなければならない。 -> ・Spring securityを使う ・Sensitive valueはencriptionする(cipherを使って)
  • 22. Moving from Monolithic Architecture to Spring Cloud and Microservices Spring Cloud Config/ActuatorをSecureな状態で運用する endpoints.enabled=false endpoints.info.enabled=true とか management.context-path=/manage とか http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready- endpoints.html#production-ready-customizing-endpoints ・Actuatorのエンドポイントを制限する -> ・management.security.enabledを有効にする ・endpointを変更して(management.context-path)intenalでしかアクセス出来ないように 制限をかける http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready- monitoring.html#production-ready-customizing-management-server-context-path
  • 23. Moving from Monolithic Architecture to Spring Cloud and Microservices Metadata Driven UI "provTimeSeries" : { "container" : "provReportContainer", "index" : 4, "widgetData" : { "fixtureUrl" : "****", "fixtures" : true }, }, "widgetProperties" : { "chartType" : "Line", "title" : "Payer Type Trend” }
  • 24. Moving from Monolithic Architecture to Spring Cloud and Microservices Metadata Driven UI "provTimeSeries" : { "container" : "provReportContainer", "index" : 4, "widgetData" : { "fixtureUrl" : "****", "fixtures" : true }, }, "widgetProperties" : { "chartType" : "Line", "title" : "Payer Type Trend” } Metadata driven UI各コンテンツの ・タイトル、説明 ・グラフの形 ・ページのデザインなどを全てcloud configで持ち、 FrontEndはMetaDataの実装しかしない。 Thymeleafで置換する値をconfigからとってくるようなイメージが近いかも (ここの会社のアプリは基本的にSPAみたいですが)
  • 25. Challenges Operating a High Velocity Large Organization with Spring Cloud Microservices 大規模なサービス・開発で高いQuality / Availability / Velocityを実現する Complex systems / Many teams / non functional qualities / Compliance / Legacy 3rd party applications / Processesなどの課題と向き合う
  • 26. Operating a High Velocity Large Organization with Spring Cloud Microservices Capital OneのCase Study Challenges 大規模なサービス・開発で高いQuality / Availability / Velocityを実現する Complex systems / Many teams / non functional qualities / Compliance / Legacy 3rd party applications / Processesなどの課題と向き合う 大まかな流れ Microservies / 12 Factors ・一個一個のサービスは上手に作れるようになってきたけど、、 -> ・Orchestrationが大変 ・Service discovery(Eureka)使おう + Spring Boot Admin + Distributed tracingの話 ・Securityの管理をそれぞれやるのも大変 ->・Zuul(API gateway)使おう Hystrixの話などもありました
  • 28. EurekaはREST API提供しているので、 これを利用してJava以外のアプリ/ SpringBoot以外のJavaでもEureka使える Eureka Client https://github.com/Netflix/eureka/wiki/Understanding-eureka-client-server-communication Eureka REST Operations https://github.com/Netflix/eureka/wiki/Eureka-REST-operations Operating a High Velocity Large Organization with Spring Cloud Microservices
  • 31. If you already using Spring Cloud Discovery for your applications you don’t have to add the Spring Boot Admin Client to your applications. Just make the Spring Boot Admin Server a DiscoveryClient, the rest is done by our AutoConfiguration. http://codecentric.github.io/spring-boot-admin/1.4.1/ Eureka使ってればすぐ全てのSpring Boot Applicationの情報集められます :) Operating a High Velocity Large Organization with Spring Cloud Microservices
  • 32. Operating a High Velocity Large Organization with Spring Cloud Microservices API Gatewayはnetflixのzuulを利用して、authentication等を行っている https://spring.io/guides/gs/routing-and-filtering/ Zuulのguideはこれ ちなみに、springOnePlatformではzuulのセッションもありまして Zuul2.0もうすぐ出るみたいです (あくまで"もうすぐ"としか言ってなかったですが) - Netty(non-blocking,async) - RxJava chained filters と、Reactiveを意識したGatewayとしての機能も盛り込まれている http://www.slideshare.net/SpringCentral/netflixs-edge-gateway-using-zuul
  • 33. 今回FeedBackしたセッション Easy Consumption of Microservices 一貫性を持って、簡単にマイクロサービスの提供・利用ができること Moving from Monolithic Architecture to Spring Cloud and Microservices MonoliticからMicroserviceへ移行すること + UI変更を柔軟に行えるようにしたい Operating a High Velocity Large Organization with Spring Cloud Microservices 大規模なサービス・開発で高いQuality / Availability / Velocityを実現す る Eureka Zuul Hystrix Config Initializr ※各セッション他の話題についても触れてはいます
  • 34. ・去年のSpringOneから1年経って、Spring Cloud 周りの知見が溜まってきていて、 このようなCaseStudyが増えたのではないかと思います。 ・どの会社も全ての機能を入れている訳ではなく、課題の解決をする為に順々に導入していっている (Case Study系のセッションでこの会社は完璧にやりきった状態だ…!! って思うところは僕がみた中では無かったです。) ・それぞれのCase Studyで比較的使いこなしているツールに違いがあって面白かった ・気になっているツールや、似たような課題がある方がいましたら、 セッションのスライドを見てみるといいと思います。 まとめ
  • 35. おまけ(気になったやつ(tool)) vizceralはexampleのgithub projectがあり、簡単に動かせます。 あのぬるぬるした動きをlocalで体感できます http://techblog.netflix.com/2016/08/vizceral-open-source.html https://github.com/Netflix/vizceral https://github.com/Netflix/vizceral-example Vizceral(Netflix) Microservice Dashboard(Ordina) IGNITE TALKSで紹介されてたツール https://github.com/ordina-jworks/microservices-dashboard https://github.com/ordina-jworks/microservices-dashboard-server/tree/master/samples やっぱりこういうdependencyを把握できるツール流行ってるというかみんな欲しがってるんですね
  • 36. End.