Mais conteúdo relacionado Semelhante a Building a Scalable CI Platform using Docker, Drone and Rancher (20) Mais de Shannon Williams (10) Building a Scalable CI Platform using Docker, Drone and Rancher1. © 2015 Rancher Labs, Inc.© 2015 Rancher Labs, Inc .
Building a Scalable CI
Deployment with Docker, Drone
and Rancher
August 13, 2015
#ranchermeetup
2. © 2015 Rancher Labs, Inc.
Shannon Williams
Co-Founder/VP Marketing
@smw355
1
Darren Shepherd
Co-Founder/Chief Architect
@ibuildthecloud
Freenode: darren0
#ranchermeetup
3. © 2015 Rancher Labs, Inc.
Bill Maxwell
Director of DevOps
@CloudNautique
2
Brad Rydzewski
Founder of Drone.io
@bradrydzewski
@droneio
www.drone.io
#ranchermeetup
4. © 2015 Rancher Labs, Inc.
First things first…
This is a not a !
3
#ranchermeetup
#ranchermeetup
5. © 2015 Rancher Labs, Inc.4
There are rules for a meetup!
• Questions are always welcome
• Demo, then demo some more
• Keep the slides to a minimum
• Open to proposals
• Give away stuff with your logo on it
#ranchermeetup
6. © 2015 Rancher Labs, Inc.
Tweets = Shirts
First 10 Rancher Screenshots posteds
on Twitter about today’s
#RancherMeetup will get a Rancher
shirt
Follow @rancher_labs
5 #ranchermeetup
7. © 2015 Rancher Labs, Inc.
Agenda
• Why is Docker becoming so popular in DevOps
• How we run our CI process at Rancher
• Demo: Drone, Docker, Rancher
• Drone.io Overview and RoadMap
• Latest Rancher News: LibCompose, Rolling Upgrades, Virtual Host
LB, Sidekicks, etc.
6 #ranchermeetup
8. © 2015 Rancher Labs, Inc.
Containers are growing in popularity because
they improve the entire DevOps pipeline
• Quick onboarding of developers
• Consistent software builds
• Accurate test environments
• More frequent code releases
• Immutable production environments
• Orchestrated upgrades
7
9. © 2015 Rancher Labs, Inc.
Many organizations are looking at how to
incorporate Docker into their pipelines
Source Code Repo
CI/CD
Build and Test tools
Docker Tools
8
Develop Build Package Test Deploy/Upgrade Operate
10. © 2015 Rancher Labs, Inc.
Open source software for
building a Private
Container Service
9
11. © 2015 Rancher Labs, Inc.
What is a container service?
Central service where users and
teams can create container
environments for running services and
applications
Includes:
1. Container Orchestration
2. Container Infrastructure
3. Container Management
10
12. © 2015 Rancher Labs, Inc.
Environment
What is a container service?
11
Private Container Service
Resources
Resources (Clouds, VMs, Servers)
Environment
Resources
DevOps
Pipeline
User Directory Container Registry
Ops
Tools
13. © 2015 Rancher Labs, Inc.
Build Environment
DevOps builds software in the container service
- DevOps teams create Build Environments
- Adds resources and Jenkins slaves
- Developer Pushes Code to Repo
- Jenkins creates build containers
- Build and Unit Tests run in build container
- Outputs Artifacts
- Jenkins creates Packaging container
- Push Docker Image to registry
- Build environments scale elastically
Build
Docker File
Packaging
Docker File
Test
Code
Build Docker
File
Develop Build Package Test Deploy/Upgrade Operate
14. © 2015 Rancher Labs, Inc.
Test Environment
DevOps tests software in the container service
- Create Test Environments
- Upload Compose & Test files
- Build triggers Jenkins
- Jenkins triggers Rancher to deploy compose
- Rancher creates containers, networks,
storage, etc.
- Test container conducts integration tests
Develop Build Package Test Deploy/Upgrade Operate
Test docker-compose.yml
lb:
image: haproxy
links:
- web
tomcat:
image: app:buildn
links:
- db
- cache
cache:
image: memcache
db:
image: mysql:testn
Hosts
db
- mysql:testn
cache
- memcache
Lb
-haproxy
tomcat
-app:buildn
Test
Test
Compose Images
15. © 2015 Rancher Labs, Inc.
Production Environment
Hosts
DevOps runs production in the container service
- Production Compose
- Rancher deploys
environment
- Update Scaling
- Health Checks & HA
- Upgrade
- Backup & Recovery
Develop Build Package Test Deploy/Upgrade Operate
docker-compose.yml
lb:
image: haproxy
links:
- web
tomcat:
image: app:buildn
links:
- db
- cache
cache:
image: memcache
db:
image: mysql
lb
tomcat
CacheMySQL
Health Check Interval: 2 sec
Timeout: 2 sec
Failure Retry Frequency: 3
Success Retry Frequency: 2
Recovery Delay: 30 sec
tomcat(build n+1)
17. © 2015 Rancher Labs, Inc.
CI / CD @ Rancher Labs
• Primarily
Developers
• Distributed
• GitHub Focused
17
The Team
18. © 2015 Rancher Labs, Inc.
Solution Space
- Low Administrative Overhead
- GitHub Integration
- Docker Integration
18
?
19. © 2015 Rancher Labs, Inc.
Selection Drone.IO
- Built around Docker
- State is stored in
Database
- Single container
deployment
- Simple GitHub
integration
19
20. © 2015 Rancher Labs, Inc.
Pipeline View
GitHub Drone
Tests
Master
Builds
Build
Build
Build
Build
refresh
Developer Pushes
Code
Run
Tests
WebHook
Status
API
21. © 2015 Rancher Labs, Inc.
Scaling Drone
- Number of
Developers
- Build frequency
- Multiple projects
- Open Source
21
22. © 2015 Rancher Labs, Inc.
Rancher
With
- Private Networking
- Native Docker
We Get
- Easily Distributed
Drone!
22
Rancher
Drone
Worker
Worker
Worker
Worker
Worker
Worker
24. © 2015 Rancher Labs, Inc.24
Brad Rydzewski
Founder of Drone.io
@bradrydzewski
@droneio
www.drone.io
#ranchermeetup
Latest news about
Drone.io
25. New in 0.4
● Improved Yaml
● Improved UX
● Matrix Builds
● External Plugins
26. build:
image: golang
commands:
- go test -v
compose:
postgres:
image: postgres
environment:
- PG_USER=foo
- PG_PASS=bar
Composable Builds
build configuration
similar to docker
compose
29. docker run plugins/drone-slack << EOF
{
“repo”: { ... },
“build”: {
“number”: 1,
“status”: “success”
}
“slack”: {
“token”: “...”
}
}
EOF
External Plugins
Plugins accept build
details via stdin
30. Latest Rancher Enhancements
30
Load Balancing
• Virtual Host Support for LB Services
• Labels/Scheduling for Load Balancers in UI
• Internal Load Balancing
• Load Balancing External Services
• Supporting CNAME for External Services
Service Discovery and Management
• Cross Stack Linking
• Service Sidekicks
• Rancher Compose CLI support for Rolling Upgrades
Other
• Support Random IP for DNS
• Improved Rancher Server SSL Support
31. © 2015 Rancher Labs, Inc.31 #ranchermeetup
http://info.rancher.com/beta
32. © 2015 Rancher Labs, Inc.
Getting Started
Rancher and RancherOS live in GitHub – Get Involved, Join the Beta
32 #ranchermeetup
http://github.com/rancher
33. © 2015 Rancher Labs, Inc.© 2015 Rancher Labs, Inc .
Thank you
rancher.com