Upload
abhijit-joshi
View
289
Download
0
Embed Size (px)
Citation preview
Continuous Testing using Shippable and Docker
Mukta AphaleDevOps Practice Head, WhiteHedge Technologies
About Me
o C, Java, Ruby developer for about 12 years
o DevOps and Systems enthusiast since 3 years
o Creative at heart, technology geek at profession
o Technology, innovation and the thirst to keep learning are what define me
o Working as DevOps Head at WhiteHedge Technologies
o Love to travel, read and write
Typical DevOps Phases
o Continuous Integration
o Continuous Delivery
o Continuous Testing
o Continuous Monitoring
The Environments
Diagram Credit: https://sdarchitect.files.wordpress.com/2012/10/cicdctcm.png
The Love Triangle
o DevOps = Marriage of Development and Operations
o Where does the Testing Team fit in the definition?
o Testing teams need to assert themselves to fit in all phases of DevOps
Testing in all phases
o Pre-flight testing
o Unit Testing
o Functional Testing
o Integration Testing
o Nightly and Weekend Regression Tests
Test Early.Test Faster.Test Often.Automate.
Testing Maturity
o Key differentiator of best devops infrastructures
o Vital part of devops process
o Test orchestration and automation is still a challenge
o Verify the changes. Verify them fast.
o Test code changes and if they integrate them well
o Ensure changes do not blow up the product!
Credit: http://devops.com/2015/02/02/devops-continuous-testing/
The ChallengeEarly, Frequent and Accurate Testing requires access to real world testing environments.
Service Virtualization in the form of
Containerization, specifically using Docker,
intends to solve this problem.
What is Docker?
Linux Container3 Components:
Docker Engine
Docker Hub
Docker Images
Benefits:
Speed
Portability
Density
Open Source
“Can create lightweight,
self sufficient containers
from any application”
Typical Design
CI – Build
and Unit
Testing
Nightly Builds –
Build, Unit Test
and Deploy to QA
Env
Run Integration
Tests (Selenium
Tests)
Feedback –
Email Test Report
Failing Tests
Polluted the Env.
Even after
successful tests, the
env was changed.
For every
deployment, the Env
has to be setup
After Dockerizing…
Dockerfile (app1)
Dockerfile (app2)
Dockerfile (db)
Docker Hub
Base-Image-App1
Base-Image-App2
Base-Image-DB
CI
Server
Deployment
Script
Test Environment:
App1 App2
DB
Selenium
Tests
Feedback –
Email Test
Report
Shippable
o SaaS Platform
o Reduces the time taken for code to be built, tested and deployed to production
o Shippable CI/CD
o Shippable Formations
Shippable Formations
o Easy way to provision, configure, and deploy multi-container Dev and Test clouds (environments)
o Fully integrated with the updated Shippable CI/CD platform, and together, they create an automated, frictionless pipeline from source control to full-topology environments
o Can mimic your production environment or represent any combination of software component versions you'd like to deploy.
Shippable Formations (Contd.)
Fully orchestrated,
persistent, and 'smart',
i.e. they can
automatically update
themselves when any
new code is committed
into any component of
the application.
Ensures that your Dev
and Test labs always
run the latest code and
are reliable indicators of
how that code will
behave in production.
Why Formations?
o Automation without scripts
o Automated integration/functional testing
o One-click upgrade and rollback
o No more 'works on my machine' bugs
o Developer-focused approach
o Cost effective
LighthouseIt is a docker image watcher. You can add any image from any
registry that you want to track and get notified via email when
there is an update.
Interesting Facts about Shippable
o Shippable was founded in 2013 by Avi Cavale and Manisha Sahasrabuddhe
o It was known as Qhode initially
o Avi managed to raised the first round of funding over a game of table tennis!
o Shippable has raised over $10 million funding till today
o Formations was launched on 18 June 2015
o Shippable runs more than 60,000 containers weekly
o Google Kubernetes can do 150-200 daily builds using Shippable
o Shippable calls itself to be in the era of DevOps 2.0, meaning developers no longer have to write code and scripts in unfamiliar languages to make deployments
WhiteHedge
GET IN TOUCH WITH US
esitate!
http://www.whitehedge.com/devops.html
Mukta Aphale - [email protected]
Abhijit Joshi - [email protected]