d elivery Webinar Series February 18 2015 Speaker Introduction wwwsynerzipcom 2 Rohit Ghatol 3 Director of Engineering Synerzip Technology Evangelist Contact Details Twitter ID: 269945
Download Presentation The PPT/PDF document "c ontinuous" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
c
ontinuous
d
elivery
Webinar Series – February 18, 2015 Slide2
Speaker Introduction
www.synerzip.com
2Slide3
Rohit Ghatol
3
Director of Engineering @ SynerzipTechnology EvangelistContact DetailsTwitter: @rohitghatolLinkedin: www.linkedin.com/in/rohitghatolHomePage
: http://rohitghatol.com
www.synerzip.comSlide4
DOCKER INTRODUCTION
4
www.synerzip.comSlide5
Docker
As a Technology –
Light Weight Container Technology for VirtualizationFastest Growing Technology (2 Years)First Release March 20130.9 Release in March 2014Colossal Adoption Rate18,876 Star on Github5www.synerzip.comSlide6
Docker
As a Company -
Incubated @ DotCloud (PAAS Company)Changed to Docker Oct 2013Privately Held Company $55 Million in 2 Rounds from 6 InvestorsSold DotCloud to CloudControl Aug 20146www.synerzip.comSlide7
WHO USES DOCKER?
7
www.synerzip.comSlide8
Who uses Docker?
Companies using Docker
8
And many more…
www.synerzip.comSlide9
Who uses Docker?
Docker PAAS Providers
9
And many more…
www.synerzip.comSlide10
Who uses Docker?
10
As an Infrastructure Tool along side
www.synerzip.comSlide11
Continuous Delivery
www.synerzip.com
11Slide12
Continuous Delivery
12
www.synerzip.comSlide13
The Components
13
1.5
HostEnvironment
2.1
App
c
onfig
DB
www.synerzip.comSlide14
Continuous Delivery
14
App
config
DB
1.0
Env
1.2
1.3
Env
2.3
1.5
Env
2.1
App
DB
App
DB
config
config
www.synerzip.comSlide15
The Components
15
Jenkins, Bamboo, etc1.5
Host
Environment
2.1
App
c
onfig
DB
Vagrant, Puppet, Chef etc.
Virtual Machines,
Instructions,
Commands,
Etc.
www.synerzip.comSlide16
CONTINUOUS DELIVERY
THE NEXT STEP…
16www.synerzip.comSlide17
Containers
17
1.5
Env
2.1
App
config
DB
www.synerzip.comSlide18
LANDSCAPE
How companies are deploying SAAS today?
18www.synerzip.comSlide19
Landscape
19
Dev Box
Test
Servers
CI
Staging Area
Production
Area
QA Box
Dev
QA
Ops
DevOps
Tools
-
Chef, Puppet, Anisble, SaltStack,
Vagrant, VirtualBox, VMWare
CIT Tools
–
Jenkins,Bamboo,Travis
, etc
IAAS/PAAS
– AWS, Azure, Google Cloud, Digital
Ocean,Heroku
etc
www.synerzip.comSlide20
DOCKER 101
20
www.synerzip.comSlide21
What is Docker?
Docker provides Docker Daemon to run light weight containers on Linux.
Applications: Are dockerized andRun on Docker Containersfrom laptops to production servers on cloudTheir images are shared on Docker HubApps can be linked (node -> mongo)21www.synerzip.comSlide22
What is a Container?
22
Virtual MachineContainerUsing namespace, cgroups, apparmour, etc. www.synerzip.comSlide23
What is Docker?
23
DockerClient
Docker
Daemon
Public
Repo
Private
Repo
Docker
File
DSL
www.synerzip.comSlide24
Docker File System
24
www.synerzip.comSlide25
Dockerfile
FROM dockerfile/node
Base ImageRUN apt-get update –qq InstructionsRUN mkdir /my/app while building imageADD . /my/appCMD [“node”,”web”] What Command to run25
www.synerzip.comSlide26
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 //operations26www.synerzip.comSlide27
DOCKER USE CASES
27
www.synerzip.comSlide28
CONTINUOUS DELIVERY
28
www.synerzip.comSlide29
Continuous Delivery
29
Continuous Delivery
Operations
Dev
CI
QA
Staging
Prod
High
Availability
Redundancy
SLAs
Area where Docker shines
Kubernetes etc
www.synerzip.comSlide30
Continuous Delivery Use case
30
Dev Box
Test
Servers
CIT
Staging Area
Production
Area
QA Box
Dev
QA
Ops
SUT
Test
Server
V 2.1
V 2.2
V 2.3
Continuous delivery
Rollbacks
www.synerzip.comSlide31
Developer Scenario
31
Dev Box
Dev
Rails
Image
Docker
Hub
Web
(RoR)
Dev
1. Pull
2. Run
3. Customize
4
. Push as
Base Image
Team
5
. Pull
www.synerzip.comSlide32
Developer Scenario
32
Dev Box
Dev
Host Machine
(Developer codes here)
Docker
Web
(RoR)
DB
(MySQL)
~/app/
src
./
src
IDE, Browsers, etc =>
Docker
Hub
Sync
Folder
Code runs here
www.synerzip.comSlide33
CI Scenarios
33
CodePushTest Code
Test Feature
Build App Docker Image
Run
Docker Container with App Image
Publish
App Docker Image
Numerous combinations…
Pull Code
www.synerzip.comSlide34
CI Scenarios – Option 1
34
CodePushPull Code
Test Code
Publish
App Docker Image
Build App
Docker Image
www.synerzip.comSlide35
CI Scenario
35
GithubDocker
Web
(RoR)
DB
(MySQL)
Docker
Hub
Dev Box
Dev
1. Push Code
2. Listen
3. Get Base Image
5
. Run Tests
4
. Pull Code
6
. Build App Image
7
. Push App Image
www.synerzip.com
CI Server
(
Drone, Shippable
, Circle CI,
CodeShip
, Travis CI
, Jenkins
etc)Slide36
CI Scenarios – Option 2
36
CodePushTest Feature
Build App Docker Image
Run
Docker Container with App Image
Publish
App Docker Image
Mark Good App Image
www.synerzip.comSlide37
CI Scenario
37
GithubCI 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.comSlide38
Staging/Prod Scenario
38
Host MachineDocker Container
Web
(RoR)
DB
(MySQL)
Docker
Hub
1. Trigger Event
3. Pull App Image
4
. Run Image
2. Deploy
Docker Container
(AWS, Azure,
Digital Ocean, etc.)
Host Machine
www.synerzip.comSlide39
CLOUD PORTABILITY
39
www.synerzip.comSlide40
Docker
Hub
Cloud Portability Use case40
Amazon AWS
Google Cloud
Microsoft
Azure
Digital Ocean
Deployment
Tool
Docker,
Swarm,
Drone.io
,
Flocker
, Tutum, etc
SAAS
Company
Github
www.synerzip.comSlide41
MEAN STACK
41
www.synerzip.comSlide42
MeanStack Use case
42
Open-Source Full-Stack Solution for MEAN Applicationswww.synerzip.comSlide43
MeanStack Use case
Mean.js
providesCode generator to generate Mean AppMean.js apps typically have Node Js ServerMongo DB databaseProvides Dockerfile and fig.yml to run the app in Docker ContainersOne Docker container for Node Js ServerOne Docker container for Mongo DB Database43www.synerzip.comSlide44
MeanStack Use case
44
www.synerzip.comSlide45
MeanStack Use case
45
Web
DB
Port
3000
Port
27017Docker Containers
fig.yml
www.synerzip.comSlide46
MeanStack Use case
46
dockerfile/nodejs Image
grunt-cli
bower
package.json
…..
Dockerfile
www.synerzip.comSlide47
MICRO SERVICES
47
www.synerzip.comSlide48
Micro Services Use case
48
Micro ServiceRecomm Engine
Node
Mongo
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.comSlide49
………
………
Micro Services Use case49Recomm Engine
Movie Listing
Profile
Preference
Sprint
1
Sprint
2
Sprint
7
Sprint
1
Sprint
2
Sprint
1
Sprint
2
Sprint
3
Sprint
1
Sprint
2
Sprint
3
………
………
Deploy
www.synerzip.comSlide50
Micro Services Use case
50
Recomm EngineNode
Mongo
Solr
Recomm Engine
Recomm Engine
Docker Container
Gateway/Rev Proxy
www.synerzip.comSlide51
Micro Services Use case
Micro services are hard to run
Needs strong DevOps processDocker helps byDefining container/micro service as unitShipping one micro service as one containerMore containers = more scaleBy improving Dev – Operations relationships51www.synerzip.comSlide52
Micro Services Use case
What else is needed?
SchedulingHigh AvailabilityService DiscoveryEtc.52Giant SwarmBy Invitewww.synerzip.comSlide53
FUTURE OF DOCKER
53
www.synerzip.comSlide54
NEW DOCKER PRODUCTS
54
www.synerzip.comSlide55
New Docker Products
Docker Machine
Docker SwarmDocker Compose55www.synerzip.comSlide56
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.56www.synerzip.comSlide57
Docker Machine
$>docker
-machine create -d virtualbox dev$>docker-machine create -d digitalocean --digitalocean-access-token=... staging57www.synerzip.comSlide58
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.58www.synerzip.comSlide59
Docker Swarm
# create a cluster
$ docker run --rm swarm create# Add Machine to clusterdocker run -d swarm join --addr=<node_ip:2375> token://<cluster_id>#Run Docker commands on swarmdocker -H tcp://<swarm_ip:swarm_port> run –d –P dockerfile/node59www.synerzip.comSlide60
Docker Compose
An orchestration
tool for DockerDefinesWhich Docker containers are to be runHow they are connectedWhat ports they exposeAll in single fileInitial design based on Fig.shCurrent status - limbo60www.synerzip.comSlide61
IAAS/PAAS ADOPTION
61
www.synerzip.comSlide62
IAAS/PAAS Adoption
Amazon ECS
Container serviceSupports tasks configurationGoogle CloudBased on Kubernetes Microsoft Azure62www.synerzip.comSlide63
Q & A?
63
www.synerzip.comSlide64
64
84
www.synerzip.com
Ashish Shanker
ashish.shanker@synerzip.com
469.374.0500
64
www.synerzip.comSlide65
Synerzip in a Nutshell
Software product development
partner for small/mid-sized technology companiesExclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phaseBy definition, all Synerzip work is the IP of its respective clientsDeep experience in full SDLC – design, dev, QA/testing, deploymentDedicated team of high caliber software professionals for each clientSeamlessly extends client’s local team, offering full transparencyStable teams with very low turn-overNOT just “staff augmentation”, but provide full mgmt supportActually reduces risk of development/deliveryExperienced team - uses appropriate level of engineering discipline
Practices Agile development – responsive, yet disciplinedReduces cost – dual-shore team, 50% cost advantage
Offers long term flexibility – allows (facilitates) taking offshore team captive – aka
“BOT”
option65www.synerzip.comSlide66
Our Clients
66
www.synerzip.comSlide67
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.comSlide68
Ashish Shanker
ashish.shanker@synerzip.com
469.374.0500
Thanks!
@Synerzip_Agile
linkedin.com/company/synerzip
facebook.com/Synerzip
68
www.synerzip.com