2. Enterprise-level Cloud CI
1. Whom it may benefit
2. The problem (or problems) with CI in a multi-project company
3. Solution architecture: Container Clouds, Microservices, Provider agnosticism
4. Pipeline-as-a-Code on top of Infrastructure-as-a-Code
5. Demo
6. Current state of tools and technologies
Agenda
3. Enterprise-level Cloud CI
Whom it may benefit
January 2017
● DevOps engineers, build/release engineers, architects, CTO
● Businesses: Big enterprise and mid-size/multiple project development
● Applications: Big back-end
4. Enterprise-level Cloud CI
Problems
● Big number of projects, each with its own governance and culture
● The need for unification but open to customizations
● Scaling and Elasticity
● Limited number of DEV/Test environments
● Support and maintenance/Can developers really support the
process?
January 2017
5. Enterprise-level Cloud CI
Usual ways people do it
1. Teams own their own CIs and their own delivery process
2. Most people got at least to using same infrastructure like Private Clouds
3. Or buying a huge proprietary solutions with cost of a small space mission
6. Enterprise-level Cloud CI
The solution: let’s build it!
The building blocks you know and like:
Kubernetes - Private Container Cloud, runs docker, contributed
by Google http://kubernetes.io/
Jenkins - open source automation server https://jenkins.io/
mAny Clouds - AWS, Google, OpenStack, Azure
7. Enterprise-level Cloud CI
Key points
● Build runs in Container Cloud (Kubernetes)
● Infrastructure-as-a-Сode starts from the first DEV environment
● Pipeline as a code gives power and flexibility to developers, keeps unification
or DevOPS/OPS
● Unlimited number of DEV/Test environments / Environment for each commit
● Move to shipping containers into Production instead of binaries
● Integration with everything: Tickets, Dashboards
8. Enterprise-level Cloud CI
Build in Container Cloud: Kubernetes plugin
● Adds Kubernetes as a Cloud Provider
in Jenkins
● Flexible Configuration: separate
Jenkins Agents for each build
configuration, Kubernetes
namespaces, resources limits
● Jenkins Agents Dynamically created
and deleted
January 2017
9. Enterprise-level Cloud CI
Benefits
Hosting agnostic: AWS,GCE, OpenStack1
2
3
Build Agent in container starts much faster than in VMs
Build isolation in containers - much easier
12. Enterprise-level Cloud CI
Benefits
Unlimited number of DEV/Test/Stage/UAT Environments, for each
branch, for each build
1
2
3
No overhead for Virtualization (VMs vs. Containers)
Gets overall process ready for moving to containers in Production
15. Enterprise-level Cloud CI
Some description
● Written in Groovy-based DSL
● The code is stored with the project's
source code
● So version of the pipeline is always in
sync with version of the application
January 2017
17. Enterprise-level Cloud CI
How it affects process and culture
● Move to service model between the teams(Dev - DevOPS - OPS)
● Higher people's mobility between projects and teams
● Closer integration with Production system - a very logical path to Continuous Deployment
● Decoupling people and teams from limited number static environments, hence increases speed
of QA and delivery.