Continuous Delivery with Jenkins & Stackato Ho Ming Li John Wetherill Nov 2013
Nov 28, 2014
Continuous Delivery with Jenkins & Stackato
Ho Ming Li
John Wetherill
Nov 2013
Recent Events
DevOps Days x 2
Today’s Speakers
John WetherillDeveloper Evangelist
Ho Ming LiCloud Engineer
What is Continuous Delivery?
• Continuous integration: your application always builds and passes its
tests, including all the pieces from different sub-teams.
• Continuous delivery: your application always builds and deploys to a test
environment and passes its tests.
• Continuous deployment: your application is always ready to deploy to
production through a largely automated process.
source: http://www.softwareknowhow.info/Blogs/tabid/63/EntryId/319/Continuous-Integration-vs-Continuous-Delivery-vs-Continuous-Deployment-what-is-the-difference.aspx
Why CI / CD?
Automate and Streamline Everything!
Increase Operational Efficiency!
Avoids:
1. wait time
2. handoff conflicts
3. human errors
Why CI / CD?
Know results earlier! Fix bugs faster! More stable builds!
Tools
Good ol’ shell scripts with cron!
Extends to other languages and unix utilities
Additional Features:
Tracking, Dashboard
Continuous Delivery
and Stackato
More, Better, Faster
Stackato Private PaaS
A private PaaS enables enterprise developers to leverage all the benefits of a
public PaaS to easily deploy, manage, monitor, and scale applications,
while meeting the security and privacy requirements your enterprise
demands.
Based on Cloud Foundry
Your own Heroku
Your own Google App Engine
Languages/Frameworks
DB/MSG Services
Local/Private/Public
More Options
Any time you want.
Any frequency you want.
Weekly? Daily? Hourly?
On Commit? on Pull Request?
Deploy More
Better
Consistent workflow : work one, work all
Self-service : Better relationship between Dev and Ops
Faster
Automation / No re-configuration
Use containers and not VMs
Overall a Faster Time to Market
Containerization
• resource and process isolation
• namespaces:
* pid
* mnt
* net
* uts
* ipc
* user
• compare with Solaris zones, freebsd jails
Containerization Features for CD
Multitenancy
• dev, qa, prod on same cloud
• no resource contention
Lightweight
• very fast startup (100ms) and teardown
• small memory and disk footprint (COW)
Snapshots / Backups
• bit-for-bit copy of tested image goes to prod
• bit-for-bit copy of crashed image for analysis
Containerization Features for CD
uts namespace
• each container has its hostname
• helpful for updates and rollbacks
net namespace
• multiple virtual interfaces per container
• firewall rules and iptables
• interface pairs for outside communication
• enables multiple services on “same port”
ex: multiple tomcats on 8080
user namespace
• unprivileged user on host can be root in container
Design for CI and for Cloud
• can leverage dns for version-swapping
• statelessness is key
• simplifies updates and rollbacks
• REST
MORE
BETTER
FASTER
Thank you!
www.activestate.com/stackato
#Stackato on Freenode
Ho Ming Li
John Wetherill
Nov 2013