building a deployment pipeline - cloudbees...ruby developer qa - jenkins puppet servers puppet...
Post on 16-Oct-2020
32 Views
Preview:
TRANSCRIPT
Jenkins User Conference Israel #jenkinsconf
Noam Shochat
@noamshochat
eToro
www.etoro.com
July 16, 2014
Building a
deployment pipeline
#jenkinsconf
Amount of
Work
Time
Current
What we think
will happen
Reality
Adding automation
● 120 Services
● 300 Servers
● 3 Data centers
● 2 Clouds
● .Net
A little bit about eToro
The problem
● Builds
● Manual deployments
● Lack of uniformity
● Different OS’s
● Slowness
● Different Environments
● Security
Developer Production
The Solution
CI / CD
Code
commit
Deploy and tests in
QA
Productio
n
Build, Unit
tests
We choose Jenkins
BUT…
Not good for:
● Deployment
● Orchestration
So we also choose to use:
● Mcollective + Ruby for orchestration
● Puppet for deployment (and more)
● RabbitMQ for connecting between them
Pipeline
Commit
Build Unit tests Trigger
ruby
DeveloperQA - Jenkins
Puppet
Servers
PuppetPuppet
Integration
tests
Production - Jenkins
Puppet
Servers
PuppetPuppet
Trigger
MCollective
Trigger
MCollectiveTrigger
ruby
In Jenkins
Flow
Flowout.println 'Starting OpenBookSearchAPI Flow'
b=build("OpenBookSearchAPI-Build")
parallel(
{
build("OpenbookSearchAPIBack-iis")
},
{
build("OpenbookSearchAPI-Service-Stop")
build("OpenbookSearchAPI-Service")
build("OpenbookSearchAPI-Service-Start")
}
)
Build
Build
● Mercurial
● Build start by trigger
● MSBuild
● NUnit tests + dot cover
Deployment
Deployment
● Use Ruby for trigger and orchestrate using
MCollective
● Puppet do the deployment
Integration tests
Integration tests
● Canary tests
Health check
Health check
● What is it?
● Json file that checks dependencies and
basic sanity test
Publish
Publish
● Almost in production
● Build version file as the gatekeeper to
production
Production deploy
● Build version file
● rsync
CloudShare
● Jenkins CLI
● Dynamic jenkins agents
● The flow continue the same changes to
same flow
Plugins we’re using
● MSBuild
● HTML Publisher
● Nested View
● Build Flow
● Active directory
● statsd
Our CI/CD servers
Jenkins
master+ MCollective
RabbitMQ WebApp
Servers
Puppet
master
Ruby
script
Q&A
Jenkins User Conference Israel #jenkinsconf
Thank You To Our SponsorsPlatinum
Gold
Silver
top related