continuous integration and deployment with docker
TRANSCRIPT
Continuous Integration and Deployment
Ship it! Editing files on serverFTPCapistranogit push
Dev to deployment pipeline HackRun local testsgit pushCI server runs testsDeploy
Oops.. 500 Server Error
Not my problem.
UNIX is case sensitive, OSX is notDifferent versions of packagesDifferent versions of runtimesPermissions problemsNetwork problems
Simple things can go wrong
Containers
Linux Containers (LXC)Shares Kernel on Host Machinevia cgroups can limit CPU, memory, block I/O, network
Fast to boot
Using LXC
Hello Dockerdocker run -d -p 80:80 tutum/wordpress
Docker love-inAmazonDigital OceanRackspaceLinodeMicrosoft
Run anywhereLess vendor lock-inDrives competitionStrong consistencyTrue DevOps
Docker use casesTesting (SOA, microservices)Short lived computation environmentsLong lived application environmentsSoftware experimentation (Docker Hub)
Deployment pipelinegit pushCI Server builds docker imageRun tests inside docker imageCI Server pushes to private Docker HubCI Server notifies Elastic BeanstalkElastic Beanstalk pulls new image and runs it
Everyone is happy
UNIX BeardEnvironment consistencySecurityCan create base imagesControl via Dockerfile
Hipster Developergit push deploymentI AM DEVOPSRemoves environment hellCan focus on code
ClientAWESOME!I have a meeting now.
Thanks!