Looking for continuous delivery options that are also cloud agnostic? Docker could be your answer.
This webinar answers some of your basic questions about Docker and gives you an overview of how to setup Docker for Continuous Delivery. We will also touch upon more advanced topics like Cloud Portability, Microservices deployment and MEAN stack enablement.
Get details at https://www.synerzip.com/webinar/docker-containers-for-continuous-delivery-webinar-february-2015/
5. Docker
As a Technology –
• Light Weight Container Technology for
Virtualization
• Fastest Growing Technology (2 Years)
• First Release March 2013
• 0.9 Release in March 2014
• Colossal Adoption Rate
• 18,876 Star on Github
5
www.synerzip.com
6. Docker
As a Company -
• Incubated @ DotCloud (PAAS Company)
• Changed to Docker Oct 2013
• Privately Held Company
• $55 Million in 2 Rounds from 6 Investors
• Sold DotCloud to CloudControl Aug 2014
6
www.synerzip.com
15. The Components
15
Jenkins, Bamboo, etc
1.5
Host
Environment
2.1
App
config
DB
Vagrant, Puppet, Chef etc. Virtual
Machines,
Instructions,
Commands,
Etc.
www.synerzip.com
21. What is Docker?
Docker provides Docker Daemon to run light
weight containers on Linux.
Applications:
• Are dockerized and
• Run on Docker Containers
– from laptops to production servers on cloud
• Their images are shared on Docker Hub
• Apps can be linked (node -> mongo)
21
www.synerzip.com
22. What is a Container?
22
Virtual Machine Container
Using namespace, cgroups,
apparmour, etc.
www.synerzip.com
25. Dockerfile
FROM dockerfile/node Base Image
RUN apt-get update –qq Instructions
RUN mkdir /my/app while building image
ADD . /my/app
CMD [“node”,”web”] What Command to run
25
www.synerzip.com
26. Dockerfile
//Build an Image
$> docker build –t “rohitghatol/node” .
//Run an Image
$>docker run –d –p 80:3000 rohitghatol/node
//Push to Docker Hub
$>docker push rohitghatol/node //developer
$>docker pull rohitghatol/node //operations
26
www.synerzip.com
30. Continuous Delivery Use case
30
Dev Box
Test
Servers
CIT
Staging
Area
Production
Area
QA Box
Dev QA
Op
s
SUT
Test
Server
V 2.1 V 2.2 V 2.3
Continuous delivery
Rollbacks
www.synerzip.com
36. CI Scenarios – Option 2
36
Code
Push
Test Feature
Build App
Docker Image
Run Docker
Container with
App Image
Publish App
Docker Image
Mark Good
App Image
www.synerzip.com
37. CI Scenario
37
Github
CI Server
(Drone.io, inhouseCI, etc)
Docker
Web
(RoR)
DB
(MySQL)
Docker
Hub
Dev Box
Dev
1. Push Code
3. Listen
2. Create App Docker
Image
5. Run Tests
4. Pull Run
App Image
6.
Accept/Reject
Image
www.synerzip.com
40. Docker
Hub
Cloud Portability Use case
40
Amazon AWS
Google Cloud
Microsoft Azure
Digital Ocean
Deployment
Tool
Docker, Swarm,
Drone.io, Flocker,
Tutum, etc
SAAS
Company
Github
www.synerzip.com
43. MeanStack Use case
• Mean.js provides
– Code generator to generate Mean App
– Mean.js apps typically have
• Node Js Server
• Mongo DB database
– Provides Dockerfile and fig.yml to run the app in
Docker Containers
• One Docker container for Node Js Server
• One Docker container for Mongo DB Database
43
www.synerzip.com
48. Micro Services Use case
48
Micro
Service
Recomm
Engine
Node
Mong
o
Solr
Recomm
Engine
Recomm
Engine
Movie
Listing
Play
PSql
Movie
Listing
Movie
Listing
Movie
Listing
Profile
RoR
My
SQL
Redis
Profile
Preference
RoR
Redis
Preference
www.synerzip.com
50. Micro Services Use case
50
Recomm
Engine
Node
Mong
o
Solr
Recomm
Engine
Recomm
Engine
Docker Container
Gateway/Re
v Proxy
www.synerzip.com
51. Micro Services Use case
• Micro services are hard to run
• Needs strong DevOps process
• Docker helps by
– Defining container/micro service as unit
– Shipping one micro service as one container
– More containers = more scale
– By improving Dev – Operations relationships
51
www.synerzip.com
52. Micro Services Use case
• What else is needed?
– Scheduling
– High Availability
– Service Discovery
– Etc.
52
Giant Swarm
www.synerzip.com
56. Docker Machine
• Machine makes it really easy to create
Docker hosts on local hypervisors and cloud
providers.
• It creates servers, installs Docker on them,
then configures the Docker client to talk to
them.
56
www.synerzip.com
58. Docker Swarm
• Swarm is a simple tool which controls a
cluster of Docker hosts and exposes it as a
single "virtual" host.
• Swarm uses the standard Docker API as its
frontend, which means any tool which
speaks Docker can control swarm
transparently.
58
www.synerzip.com
59. Docker Swarm
• # create a cluster
$ docker run --rm swarm create
• # Add Machine to cluster
docker run -d swarm join --addr=<node_ip:2375>
token://<cluster_id>
• #Run Docker commands on swarm
docker -H tcp://<swarm_ip:swarm_port> run –d –P
dockerfile/node
59
www.synerzip.com
60. Docker Compose
• An orchestration tool for Docker
• Defines
– Which Docker containers are to be run
– How they are connected
– What ports they expose
– All in single file
– Initial design based on Fig.sh
• Current status - limbo
60
www.synerzip.com
62. IAAS/PAAS Adoption
• Amazon ECS
– Container service
– Supports tasks configuration
• Google Cloud
– Based on Kubernetes
• Microsoft Azure
62
www.synerzip.com
65. Synerzip in a Nutshell
• Software product development partner for small/mid-sized technology companies
– Exclusive focus on small/mid-sized technology companies, typically venture-
backed companies in growth phase
– By definition, all Synerzip work is the IP of its respective clients
– Deep experience in full SDLC – design, dev, QA/testing, deployment
• Dedicated team of high caliber software professionals for each client
– Seamlessly extends client’s local team, offering full transparency
– Stable teams with very low turn-over
– NOT just “staff augmentation”, but provide full mgmt support
• Actually reduces risk of development/delivery
– Experienced team - uses appropriate level of engineering discipline
– Practices Agile development – responsive, yet disciplined
• Reduces cost – dual-shore team, 50% cost advantage
• Offers long term flexibility – allows (facilitates) taking offshore team captive – aka
“BOT” option
65
www.synerzip.com
67. Next Webinar
Life Cycle of a User Story
Complimentary Webinar:
Tuesday, March 17, 2015 @ noon CST
Presented by: Michael Hall, CEO and Founder of Three
Beacons. Michael is a software practitioner and team
leader, Certified Scrum Master, Certified Scrum Product
Owner, and an early adopter of Agile methods since 2001.
Three Beacons is a leading provider of agile training and
consulting services. See www.threebeacons.com for a
complete description of Agile training courses available.
67
www.synerzip.com