SlideShare a Scribd company logo
Microservices Delivery with
Concourse and Spring Cloud Contract
Takayuki Kaburagi, Platform Architect, Pivotal Japan
@kabupibu
🌞 Microservices
🌞 Microservices Delivery
🌞 Consumer Drive Contract
🌞 Demo
Microservices Architecture
Ÿ 
Ÿ 
👉 リリースサイクルを高速化
Microservices Architecture
❓ 個々のマイクロサービスの環境をどうやって払い出すか
❓ 個々のマイクロサービスの運用どうするか
❓ 死活監視 ❓ 障害対応 ❓ アップグレード
❓ スケールアウト❓ オーケストレーション
❓ 個々のマイクロサービスのビルドをどう管理するか
❓ 開発どうするか
❓ 分散トレーシング
❓ 障害の伝搬
❓ 設定
❓ API管理
❓ 結合テスト
Microservices Architecture
❓ 個々のマイクロサービスの環境をどうやって払い出すか
❓ 個々のマイクロサービスの運用どうするか
❓ 死活監視 ❓ 障害対応 ❓ アップグレード
❓ スケールアウト❓ オーケストレーション
❓ 個々のマイクロサービスのビルドをどう管理するか
❓ 結合テストどうするか
❓ 開発どうするか ❓ 分散トレーシング
❓ 障害の伝搬
❓ 設定
❓ API管理
!
!
💩
Microservices Delivery With Concourse and Spring Cloud Contract
Microservices Delivery With Concourse and Spring Cloud Contract
🙈!
Microservices Delivery With Concourse and Spring Cloud Contract
Microservices Build Pipeline
🌀
👉 CI 必須
How? 🤔
/order-service
/user-service
/search-service
order-service
user-service
search-service
/order-service
/user-service
/search-service
CI
order-service
user-service
search-service🐘
/order-service
/user-service
/search-service
CI
order-service
user-service
search-service
order-service
build
user-service
build
search-service
build
/order-service
/user-service
/search-service
CI
order-service
user-service
search-service
order-service
build
user-service
build
search-service
build
🤔
CI
order-service
user-service
search-service
order-service
build
user-service
build
search-service
build
order-service
repo
user-service
repo
search-service
repo
CI
order-service
user-service
search-service
order-service
build
user-service
build
search-service
build
order-service
repo
user-service
repo
search-service
repo
))
CI
order-service
user-service
search-service
order-service
build
user-service
build
search-service
build
order-service
repo
user-service
repo
search-service
repo
CI
order-service build
unit-test integ-test build deploy tests promotion
❓
Microservices
Ÿ  https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/1.0.x/docs/src/main/
asciidoc/images/Deps.png
Stub
Ÿ  https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/1.0.x/docs/src/main/
asciidoc/images/Stubs2.png
😓
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
👌
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
👌🔥 🔥
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
👌
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
👌🔥 🔥•  Producer ( )
•  Consumer Stub
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
👌
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
👌🔥 🔥Consumer Drive Contract
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
👌
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
👌🔥 🔥Spring Cloud Contract
( Accurest)
Consumer Drive Contract
consumer producerContract💓
Stub
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
😎
Contract💓
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
consumer producer
Stub
req
res
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
😎
Contract💓
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
https://user-service.com/user/1
🙅
{
”name": XXX,
”e-mail": YYY,
”birthday": ZZZ
}
Concourse Demo
greeting-
consumer
greeting-
producer
req
res
Contract💓
{
”name": XXX,
”message": YYY,
”age": ZZZ
}
https://user-service.com/greeting/1
consumer-
repo
producer-
repo
shouldRetrunGreeting.groovy
import org.springframework.cloud.contract.spec.Contract
Contract.make {
request {
method 'GET'
url value(consumer(regex('/greeting/[0-9]{5}')), producer('/greeting/12345'))
}
response {
status 200
body([
message: $(regrex(‘[a-zA-Z]’))]),
name: 'Takayuki',
age: $(regrex(‘[0-9]{10}’))])
headers {
header('Content-Type': value(
producer(regex('application/json.*')),
consumer('application/json')
))}}}
Unit-test
Integration-test
Build
Deploy to staging
Smoke-test
Promotion to production
By CF BG-deploy
❕ !
Contract !
!
Producer
Spring Cloud Pipeline
https://cloud.spring.io/spring-cloud-pipelines/
https://github.com/spring-cloud/spring-cloud-pipelines
Q & A
Ÿ  Groovy Contract
–  Producer
Ÿ  MS
– 
Ÿ  Producer Contract
–  Producer Contract Consumer
–  Contract
Transforming How The World Builds Software

More Related Content

PDF
Azure Day Rome Reloaded 2019 - Building serverless microservices in azure
PDF
Code First Approach for Decentralized API Management
PDF
Akka java-es-cqrs
PDF
Dockerized Microservices
PPTX
Microservices - Event-driven & the hidden landmines
PDF
APIs in a Microservice Architecture
PDF
Scaling with Microservices
PPTX
Serverless Microservices by Unai Zorrilla
Azure Day Rome Reloaded 2019 - Building serverless microservices in azure
Code First Approach for Decentralized API Management
Akka java-es-cqrs
Dockerized Microservices
Microservices - Event-driven & the hidden landmines
APIs in a Microservice Architecture
Scaling with Microservices
Serverless Microservices by Unai Zorrilla

What's hot (8)

PDF
In the Eventual Consistency of Succeeding at Microservices
PPTX
Production ready microservices (by Viktor Bushmin)
PDF
Kubernetes ist der Hammer?!
PDF
クックパッドの開発プロセス
PDF
Akka and Kubernetes, the beginning of a beautiful relationship - JEEConf 19 Kiev
PPTX
Pragmatic approach to Microservice Architecture: Role of Middleware
PDF
Extending the Platform with Spring Boot and Cloud Foundry
PDF
Breaking Down the Monolith - Peter Marton, RisingStack
In the Eventual Consistency of Succeeding at Microservices
Production ready microservices (by Viktor Bushmin)
Kubernetes ist der Hammer?!
クックパッドの開発プロセス
Akka and Kubernetes, the beginning of a beautiful relationship - JEEConf 19 Kiev
Pragmatic approach to Microservice Architecture: Role of Middleware
Extending the Platform with Spring Boot and Cloud Foundry
Breaking Down the Monolith - Peter Marton, RisingStack
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Unlocking AI with Model Context Protocol (MCP)
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
Per capita expenditure prediction using model stacking based on satellite ima...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Unlocking AI with Model Context Protocol (MCP)
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A comparative analysis of optical character recognition models for extracting...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Programs and apps: productivity, graphics, security and other tools
sap open course for s4hana steps from ECC to s4
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
Ad

Microservices Delivery With Concourse and Spring Cloud Contract