continuous integration: saas vs jenkins in cloud
TRANSCRIPT
![Page 1: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/1.jpg)
Continuous Integration
SaaS vs Jenkins in cloud
![Page 3: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/3.jpg)
Why I should prefer on premise Jenkins
vs SaaS like Travis or CircleCI?
![Page 4: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/4.jpg)
What is Jenkins?
![Page 5: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/5.jpg)
Jenkins is a famous cross-platform,
continuous integration and continuous delivery
application
![Page 6: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/6.jpg)
cross platform
support SCM tools
released under MIT license
Java based (war file)
![Page 7: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/7.jpg)
job execution monitoring
reports, notifications
rich of plugins(Docker, Github, Slack, Build Pipeline)
hooks, triggers, conditionals
![Page 8: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/8.jpg)
![Page 9: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/9.jpg)
Let’s talk about $$$
170 US$
130 US$
Travis Startup AWS c4.xlarge
costs estimated on demand c4.xlarge up for 24h/day
![Page 10: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/10.jpg)
I have also to configure and maintain Jenkins…
![Page 11: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/11.jpg)
![Page 12: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/12.jpg)
![Page 13: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/13.jpg)
switch on/off every day???!!
![Page 14: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/14.jpg)
Waste
Boring
Stressful
![Page 15: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/15.jpg)
![Page 16: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/16.jpg)
![Page 17: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/17.jpg)
AWS CLI + CRONJOBS
![Page 18: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/18.jpg)
!/bin/bash
EC2_ID=i-abcdefgh EIP=52.*.*.*. IAM=ideato_jenkins
aws ec2 start-instances --instance-ids ${EC2_ID} profile ${IAM}
aws ec2 associate-address --instance-id ${EC2_ID} --public-ip ${EIP} --profile ${IAM} exit 0
jenkins_on.sh
![Page 19: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/19.jpg)
!/bin/bash
EC2_ID=i-abcdefgh IAM=ideato_jenkins
aws ec2 stop-instances --instance-ids ${EC2_ID} —profile ${IAM}
exit 0
jenkins_off.sh
![Page 20: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/20.jpg)
Let’s talk again about $$$
54 US$
130 US$
Travis Startup AWS c4.xlarge
costs estimated on demand c4.xlarge up for 8h/day
![Page 21: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/21.jpg)
Save more money?
![Page 22: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/22.jpg)
Put your Jenkins on Reserved Instances
![Page 23: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/23.jpg)
Reserved Instances capacity reservation for one or three years inside an AZ
help AWS on capacity planning
hourly billing rate lower
![Page 24: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/24.jpg)
Reserved Instances
switch AZ within the same region
Change the instance size within the same instance type
not just EC2
billing mechanism
![Page 25: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/25.jpg)
Reserved Instances reservation cannot be refundable
applied to a single instance types
restricted inside a region
![Page 26: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/26.jpg)
Reserved Instances
all upfront 3y save up 70%
all upfront 1y save up 30%
![Page 27: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/27.jpg)
Let’s talk again about $$$
34 US$
130 US$
Travis Startup AWS c4.xlarge
costs estimated on reserved 1y upfront c4.xlarge up for 8h/day
![Page 28: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/28.jpg)
Ok but….
![Page 29: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/29.jpg)
different stacks?!• OS (Debian vs RedHat) • PHP(5.x), Java, Python • Elasticsearch(0.9->1.7) • Mongo • MySQL,PostgreSQL
![Page 30: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/30.jpg)
On Travis I just have to edit.travis.yaml
![Page 31: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/31.jpg)
![Page 32: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/32.jpg)
![Page 33: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/33.jpg)
~= Python virtualenv
![Page 34: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/34.jpg)
not suited for CI system
one virtualenv active at once
![Page 35: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/35.jpg)
Containers history
1979 - chroot
unix syscall to change root directory
of a process to a new location only visible by that process
![Page 36: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/36.jpg)
Containers history
2007 - cgroups
used for limiting, isolating and accounting
defining CPU, RAM, I/O
![Page 37: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/37.jpg)
Containers history
2008 - LXC
first implementation of Linux containers with several features:
cgroups, namespace, CAP, API bindings on Ruby,Python..
![Page 38: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/38.jpg)
Containers history
2013 - Docker
![Page 39: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/39.jpg)
![Page 40: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/40.jpg)
it’s a container
technology
![Page 41: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/41.jpg)
was LXC
![Page 42: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/42.jpg)
isolation
![Page 43: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/43.jpg)
encapsulation
![Page 44: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/44.jpg)
portability
![Page 45: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/45.jpg)
was LXC now runc
(Open Container Initiative)
![Page 46: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/46.jpg)
difference between VM &
Docker??
![Page 47: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/47.jpg)
Containers vs VMs
![Page 48: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/48.jpg)
![Page 49: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/49.jpg)
![Page 50: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/50.jpg)
AUFSAdvanced Unification FileSystem
Layered FS
Copy on Write
enable Docker Image layers
![Page 51: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/51.jpg)
Docker Images
read only layer
used to be containers
composed by layers
![Page 52: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/52.jpg)
![Page 53: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/53.jpg)
Our Docker Images
![Page 54: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/54.jpg)
Our Docker ImagesFROM ubuntu:trustyRUN apt-get install -yq \
software-properties-common \ python-software-properties \ git \ vim \ wget \ curl
![Page 55: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/55.jpg)
Our Docker Images
![Page 56: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/56.jpg)
Our Docker ImagesFROM ideato/trustyENV DEBIAN_FRONTEND noninteractiveRUN add-apt-repository -y ppa:ondrej/php5RUN apt-get install -yq --no-install-recommends \
php5 \ php5-cli \ php5-common \ php5-dev \ php5-gd \ php5-curl \ php5-mcrypt \ libapache2-mod-php5
![Page 57: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/57.jpg)
Our Docker Images
![Page 58: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/58.jpg)
Our Docker Images
FROM ideato/trusty_php:5.5RUN apt-get install -yq mysql-server-5.5RUN wget https://phar.phpunit.de/phpunit.pharRUN chmod +x phpunit.phar RUN mv phpunit.phar /usr/local/bin/phpunit
![Page 59: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/59.jpg)
Workflow…
projects should have their Dockerfile
![Page 60: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/60.jpg)
Workflow..
these Dockerfiles should be built on top of CI Images
![Page 61: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/61.jpg)
Our Docker Images
![Page 62: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/62.jpg)
Example ProjectFROM ideato/trusty_php_CI:5.5ENV DB defaultRUN apt-get install -yq \
npm \openjdk-7-jre \openjdk-7-jdk \nodejs
RUN wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.debRUN dpkg -i elasticsearch-1.7.3.debADD bin/run_tests /ENTRYPOINT [“./bin/run_tests”]
![Page 63: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/63.jpg)
Example Project #!/bin/bashcd /exampleproj/workspaceservice mysql startservice elasticsearch startbin/idx build
![Page 64: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/64.jpg)
Our Jenkins
web hook
![Page 65: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/65.jpg)
Our Jenkins
web hook
docker build -q -t ideato:exampleproj -f Dockerfile .
![Page 66: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/66.jpg)
Our Jenkins
web hook
docker build -q -t ideato:exampleproj -f Dockerfile .
docker run --rm=true -v $WORKSPACE:/example_project -t ideato:exampleproj
![Page 67: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/67.jpg)
Our Jenkins
web hook
docker build -q -t ideato:exampleproj -f Dockerfile .
docker run --rm=true -v $WORKSPACE:/example_project -t ideato:exampleproj
channel notification
![Page 68: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/68.jpg)
Resuming….
1 day for Jenkins setup ~ 280$
(one time cost) +
AWS c4.xlarge 34$ x 12 ~ 600$ vs
TravisCI Startup Plan 130€ x 12 = 1560$
![Page 69: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/69.jpg)
oh wait…
~ 1/3 build time than Travis
![Page 70: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/70.jpg)
in the next few months…
![Page 71: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/71.jpg)
![Page 72: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/72.jpg)
built in support for delivery pipelines
![Page 73: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/73.jpg)
pipeline as code
![Page 74: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/74.jpg)
Jenkinsfile!!!
![Page 75: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/75.jpg)
better UX on pipeline
![Page 76: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/76.jpg)
![Page 77: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/77.jpg)
finally batteries included
![Page 78: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/78.jpg)
![Page 79: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/79.jpg)
fully backward compatible
![Page 80: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/80.jpg)
try it !docker pull jenkinsci/
jenkins:2.0-alpha-3
![Page 81: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/81.jpg)
what else?
![Page 82: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/82.jpg)
on dev we are using OSX + Vagrant + Ansible
and no Docker atm
![Page 83: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/83.jpg)
why?
![Page 84: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/84.jpg)
Add more complexity to FE devs
![Page 85: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/85.jpg)
customers won’t pay to migrate old projects
![Page 86: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/86.jpg)
no native support until now…
![Page 87: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/87.jpg)
https://blog.docker.com/2016/03/docker-for-mac-windows-beta/
![Page 88: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/88.jpg)
no more VirtualBox, native hypervisor support
Mac -> xhyve Windows -> HyperV
![Page 89: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/89.jpg)
on Mac, Docker Engine will run inside a Alpine Linux
on top of xhyve
![Page 90: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/90.jpg)
native Windows/Mac app
![Page 91: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/91.jpg)
on OSX….
![Page 92: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/92.jpg)
volume mounting for code/data
with auto update on file changes
(GIT, Sublime,PhpStorm)
![Page 93: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/93.jpg)
tools integrated inside Docker Toolbox
Docker Engine, Docker Compose, Kitematic
![Page 94: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/94.jpg)
LinksJenkinsCI Jenkins 2.0 AWS Reserved Instances Docker Docker on OSX & Windows
![Page 95: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/95.jpg)
Thanks!
![Page 96: Continuous Integration: SaaS vs Jenkins in Cloud](https://reader031.vdocuments.net/reader031/viewer/2022030305/5870e0741a28abcf288b4989/html5/thumbnails/96.jpg)
Questions ??