SlideShare a Scribd company logo
Introduction  to
Concourse  CI
Toshiaki  Maki  (@making)
Sr.  Solutions  Architect  @Pivotal
2016-‐‑‒04-‐‑‒23  渋⾕谷Java
Agenda
•Concourse  CI?
•Concourse  vs.
•Architecture
•Three  Concepts
•How  to  Install
•Pipeline  Examples
Introduction to Concourse CI #渋谷Java
Concourse  CI
https://concourse.ci
Concourse  CI
https://concourse.ci
Simple
Concourse  CI
https://concourse.ci
ScalableSimple
Concourse  CI
https://concourse.ci
Reusable
ScalableSimple
Concourse  CI
https://concourse.ci
Reusable
ScalableSimple Pipeline
Concourse  CI
•Concourse  is  originally  made  for  Pivotal  
Cloud  Foundry
•But  itʼ’s  independent  from  PCF  can  be  use  
outside  of  PCF  too.
•Written  in  Golang
Concourse  CI
https://www.thoughtworks.com/radar/tools
Concourse  VS
• https://concourse.ci/concourse-‐‑‒vs.html
pipelines	
  s	
  a	
  first	
  class	
  citizen
YAML
Isolated
Nice  UI
Jenkins  as  a  Deployment  Pipeline
Architecture  (Simple)
Architecture  (Worker)
Worker
• Independent
• Stateless
• Multi-‐‑‒platform
• Scale
• Isolated
Simple!
jobs:
-‐‑‒ name:  hello
plan:
-‐‑‒ task:  say-‐‑‒hello
config:
platform:  linux
image_̲resource:
type:  docker-‐‑‒image
source:
repository:  alpine
run:
path:  echo
args:  ["Hello,  world!"]
Three  Concepts
•Tasks
•Resources
•Jobs
Pipeline
Resources
Resources
• Resource  used  by  the  jobs  in  your  pipeline
• For  example:  
• Git repository
• Docker image
• S3
• Pivotal  Tracker
• Semver
• Cloud  Foundry  etc…
• As  well  as  input  that  output  ..
• You  can  create  your  own  resource…
• Slack
• GitHub Pull  Request...
Jobs
Jobs
•Actions  to  be  done  in  your  pipeline
•Compose  by  resource  and  task  together  to  
DO  SOMETHING
•Basically:
• What  I  need  to  do  ?      ===>  Task
• What  I  need  to  use  ?  ===>  Resource
• What  I  need  to  produce  ?  ===>  Resource
Tasks
•Basically  run  script  inside  container.
•Stateless  no  hell  dependencies
How  to  Install
•Vagrant  Image
•Executable  Binaries
•BOSH  Release
https://concourse.ci/installing.html
Easy
Hard Production	
  Ready
Local	
  Dev
Vagrant
$  vagrant  init concourse/lite
$  vagrant  up
Vagrant
BOSH
$  bosh-‐‑‒init deploy  bosh.yml
$  bosh  target  <Director's  IP>
$  bosh  upload  stemcell https://d26ekeud912fhb.cloudfront.net/bosh-‐‑‒stemcell/aws/light-‐‑‒bosh-‐‑‒stemcell-‐‑‒3215.4-‐‑‒aws-‐‑‒
xen-‐‑‒hvm-‐‑‒ubuntu-‐‑‒trusty-‐‑‒go_̲agent.tgz  
$  bosh  upload  release  https://bosh.io/d/github.com/concourse/concourse?v=1.1.0
$  bosh  upload  release  https://bosh.io/d/github.com/cloudfoundry-‐‑‒incubator/garden-‐‑‒linux-‐‑‒release?v=0.337.0
$  bosh  update  cloud-‐‑‒config cloud.yml
$  bosh  deployment  concourse.yml
$  bosh  -‐‑‒n  deploy
BOSH
BOSH
VPC(10.0.0.0/16)
Private(10.0.16.0/20)
ELB Web DB Worker
NAT
BOSH
Director
BOSH
-‐‑‒ name:  worker
instances:  3
vm_̲type:  worker
$  bosh  -‐‑‒n  deploy
concourse.yml
BOSH
VPC(10.0.0.0/16)
Private(10.0.16.0/20)
ELB Web DB Worker
NAT
BOSH
Director
Worker
Worker
Installation  Manual
https://blog.ik.am/entries/383
Hello  Pipeline
jobs:
-‐‑‒ name:  hello
plan:
-‐‑‒ task:  say-‐‑‒hello
config:
platform:  linux
image_̲resource:
type:  docker-‐‑‒image
source:
repository:  alpine
run:
path:  echo
args:  ["Hello,  world!"]
pipeline.yml
Script
Task
Job
Deploy  Pipeline
$  fly  -‐‑‒t  lite  login  -‐‑‒c  http://192.168.100.4:8080
$  fly  -‐‑‒t  lite  set-‐‑‒pipeline  -‐‑‒p  hello-‐‑‒world  -‐‑‒c  hello.yml
$  fly  -‐‑‒t  lite  unpause-‐‑‒pipeline  -‐‑‒p  hello-‐‑‒world
Trigger  Job
$  fly  -‐‑‒t  lite  trigger-‐‑‒job  -‐‑‒j  hello-‐‑‒world/hello
Introduction to Concourse CI #渋谷Java
Build  Java  Project
resources:
-‐‑‒ name:  source-‐‑‒repo
type:  git
source:  {uri:  'https://github.com/making/ci-‐‑‒demo',  branch:  master}
jobs:
-‐‑‒ name:  unit-‐‑‒test
serial:  true
public:  true
plan:
-‐‑‒ get:  source-‐‑‒repo
trigger:  true
-‐‑‒ task:  unit
config:
platform:  linux
image_̲resource:
type:  docker-‐‑‒image
source:  {repository:  java,  tag:  8-‐‑‒alpine}
inputs:
-‐‑‒ name:  source-‐‑‒repo
run:
path:  sh
args:
-‐‑‒ -‐‑‒c
-‐‑‒ |
cd  source-‐‑‒repo
./mvnw test
Resource
Task
Java  Image
Script
Input
$  fly  -‐‑‒t  lite  set-‐‑‒pipeline  -‐‑‒p  java-‐‑‒demo  -‐‑‒c  pipeline.yml
$  fly  -‐‑‒t  lite  unpause-‐‑‒pipeline  –p  java-‐‑‒demo
Introduction to Concourse CI #渋谷Java
-‐‑‒ name:  deploy-‐‑‒to-‐‑‒cf
serial:  true
plan:
-‐‑‒ get:  source-‐‑‒repo
trigger:  true  
passed:  [  unit-‐‑‒test  ]  
-‐‑‒ task:  unit
config:
platform:  linux
image_̲resource:
type:  docker-‐‑‒image
source:  {repository:  java,  tag:  8-‐‑‒alpine}
inputs:
-‐‑‒ name:  source-‐‑‒repo
outputs:  
-‐‑‒ name:  output
run:
path:  sh
args:
-‐‑‒ -‐‑‒c
-‐‑‒ |
cd  source-‐‑‒repo
./mvnw package  -‐‑‒Dmaven.test.skip=true
cp target/*.jar  ../output/demo.jar
-‐‑‒ put:  cf
params:
manifest:  source-‐‑‒repo/manifest.yml
path:  output/demo.jar
current_̲app_̲name:  concourse-‐‑‒ci-‐‑‒demo
Output  =  Deploy  to  Cloud  Foundry  
-‐‑‒ name:  cf
type:  cf
source:
api:  {{cf-‐‑‒api}}
username:  {{cf-‐‑‒username}}
password:  {{cf-‐‑‒password}}
organization:  {{cf-‐‑‒org}}
space:  {{cf-‐‑‒space}}  
skip_̲cert_̲check:  true
$  git clone  https://github.com/Pivotal-‐‑‒Field-‐‑‒Engineering/PCF-‐‑‒demo.git
$  cd  ci
$  fly  -‐‑‒t  lite  set-‐‑‒pipeline  -‐‑‒p  demo  -‐‑‒c  pipeline.yml -‐‑‒l  credentials.yml
$  fly  -‐‑‒t  lite  unpause-‐‑‒pipeline  -‐‑‒p  demo
Write  Once
Run  Anywhere
https://blog.ik.am/entries/380
Announce
http://bit.ly/concourse-­‐tokyo1

More Related Content

PDF
Install Concourse CI with BOSH
PDF
Concourse CI Meetup Demo
PDF
Concourse updates
PDF
Auto-scaled Concourse CI on AWS w/o BOSH
PDF
Spring Cloud Servicesの紹介 #pcf_tokyo
PDF
Short Lived Tasks in Cloud Foundry #cfdtokyo
PDF
Bosh 2-0-reloaded
PDF
Why PCF is the best platform for Spring Boot
Install Concourse CI with BOSH
Concourse CI Meetup Demo
Concourse updates
Auto-scaled Concourse CI on AWS w/o BOSH
Spring Cloud Servicesの紹介 #pcf_tokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
Bosh 2-0-reloaded
Why PCF is the best platform for Spring Boot

What's hot (20)

PDF
Cloud Foundry Meetup Tokyo #1 Route service
PDF
Spring Boot 1.3 News #渋谷Java
PDF
Managing your Docker image continuously with Concourse CI
PDF
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
PDF
Why you can't ignore GitLab
PDF
今すぐ始めるCloud Foundry #hackt #hackt_k
PDF
Concourse x Spinnaker #concourse_tokyo
PDF
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
PDF
"13 ways to run web applications on the Internet" Andrii Shumada
PDF
Extend and build on Kubernetes
PDF
GlassFish Embedded API
PDF
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
PDF
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
PPT
Sleep Peacefully as Maven Tycho Builds your Product
PDF
Kubernetes API - deep dive into the kube-apiserver
PDF
HOW TO DRONE.IO IN CI/CD WORLD
PPTX
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
PDF
JCConf 2015 Java Embedded and Raspberry Pi
PDF
Ansible Introduction
PPTX
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Cloud Foundry Meetup Tokyo #1 Route service
Spring Boot 1.3 News #渋谷Java
Managing your Docker image continuously with Concourse CI
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
Why you can't ignore GitLab
今すぐ始めるCloud Foundry #hackt #hackt_k
Concourse x Spinnaker #concourse_tokyo
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
"13 ways to run web applications on the Internet" Andrii Shumada
Extend and build on Kubernetes
GlassFish Embedded API
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Sleep Peacefully as Maven Tycho Builds your Product
Kubernetes API - deep dive into the kube-apiserver
HOW TO DRONE.IO IN CI/CD WORLD
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
JCConf 2015 Java Embedded and Raspberry Pi
Ansible Introduction
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Ad

Viewers also liked (20)

PDF
Team Support in Concourse CI 2.0 #concourse_tokyo
PDF
ConcourseCi overview
PDF
Cloud Foundy Java Client V 2.0 #cf_tokyo
PPTX
Concourse.ci vs Jenkins
PDF
Implement Service Broker with Spring Boot #cf_tokyo
PDF
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
PDF
Spring ❤️ Kotlin #jjug
PDF
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
PPTX
Spring Cloud Netflixを使おう #jsug
PDF
Introduction to Cloud Foundry #JJUG
PDF
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
PDF
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
PDF
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
PDF
From Zero to Hero with REST and OAuth2 #jjug
PDF
Concourse and Database
PDF
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
PDF
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
PDF
最近のSpringFramework2013 #jjug #jsug #SpringFramework
PDF
Spring Bootキャンプ @関ジャバ #kanjava_sbc
PDF
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Team Support in Concourse CI 2.0 #concourse_tokyo
ConcourseCi overview
Cloud Foundy Java Client V 2.0 #cf_tokyo
Concourse.ci vs Jenkins
Implement Service Broker with Spring Boot #cf_tokyo
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
Spring ❤️ Kotlin #jjug
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Spring Cloud Netflixを使おう #jsug
Introduction to Cloud Foundry #JJUG
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
From Zero to Hero with REST and OAuth2 #jjug
Concourse and Database
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Spring Bootキャンプ @関ジャバ #kanjava_sbc
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Ad

Similar to Introduction to Concourse CI #渋谷Java (20)

PDF
Concourse bosh orchestration cloud foundry
PPTX
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
PDF
Docker, Kubernetes, and Mesos recipes for Java developers
PPTX
habitat at docker bud
PDF
Docker for Dummies
PPTX
Containerizing a REST API and Deploying to Kubernetes
PPTX
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
PDF
Docker and IBM Integration Bus
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
PDF
How to create your own hack environment
PPTX
Taking Docker to Dance: Continuous Delivery on AWS
PPTX
Docker Container As A Service - JAX 2016
PDF
Deploying WSO2 Middleware on Containers
PDF
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
PDF
Bring-your-ML-Project-into-Production-v2.pdf
PPTX
Deploying applications to Windows Server 2016 and Windows Containers
PDF
Making a small QA system with Docker
PDF
Continuous Integration and DevOps with Open Build Service(OBS)
PDF
Microservices, la risposta che (forse) cercavi!
Concourse bosh orchestration cloud foundry
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Docker, Kubernetes, and Mesos recipes for Java developers
habitat at docker bud
Docker for Dummies
Containerizing a REST API and Deploying to Kubernetes
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
Docker and IBM Integration Bus
Scaling Docker Containers using Kubernetes and Azure Container Service
How to create your own hack environment
Taking Docker to Dance: Continuous Delivery on AWS
Docker Container As A Service - JAX 2016
Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
Bring-your-ML-Project-into-Production-v2.pdf
Deploying applications to Windows Server 2016 and Windows Containers
Making a small QA system with Docker
Continuous Integration and DevOps with Open Build Service(OBS)
Microservices, la risposta che (forse) cercavi!

More from Toshiaki Maki (12)

PDF
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
PDF
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
PDF
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
PDF
Spring Boot Actuator 2.0 & Micrometer
PDF
Open Service Broker APIとKubernetes Service Catalog #k8sjp
PDF
Spring Cloud Function & Project riff #jsug
PDF
Introduction to Spring WebFlux #jsug #sf_a1
PDF
BOSH / CF Deployment in modern ways #cf_tokyo
PDF
Zipkin Components #zipkin_jp
PPTX
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
PDF
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Spring Cloud Function & Project riff #jsug
Introduction to Spring WebFlux #jsug #sf_a1
BOSH / CF Deployment in modern ways #cf_tokyo
Zipkin Components #zipkin_jp
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
A Presentation on Artificial Intelligence
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
KodekX | Application Modernization Development
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
DOCX
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
A Presentation on Artificial Intelligence
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Understanding_Digital_Forensics_Presentation.pptx
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
The AUB Centre for AI in Media Proposal.docx

Introduction to Concourse CI #渋谷Java