While setting up continuous delivery for your product, one of the biggest challenge is to implement continuous testing. We are gradually moving away from manual testing to automation. But how do we integrate the automated tests into your system? How to run integration tests everyday considering that the test environment can get polluted with failed tests? Docker is a type of a virtualisation platform, a container. Shippable is a hosted cloud platform that provides hosted continuous integration, deployment, and testing to GitHub and Bitbucket repositories.
2. @muktaaDevOps@WhiteHedge.com
About Me
• C, Java, Ruby developer for about 12 years
• DevOps and Systems enthusiast since 3 years
• Creative at heart, technology geek at profession
• Technology, innovation and the thirst to keep
learning are what define me
• Working as DevOps Head at WhiteHedge
Technologies
• Love to travel, read and write
8. @muktaaDevOps@WhiteHedge.com
The Love Triangle
• DevOps = Marriage of
Development and
Operations
• Where does the Testing
Team fit in the
definition?
• Testing teams need to
assert themselves to fit
in all phases of DevOps
9. @muktaaDevOps@WhiteHedge.com
Testing in all phases
• Pre-flight testing
• Unit Testing
• Functional Testing
• Integration Testing
• Nightly and Weekend Regression Tests
Test Early.
Test Faster.
Test Often.
Automate.
10. @muktaaDevOps@WhiteHedge.com
Testing Maturity
• Key differentiator of best devops infrastructures
• Vital part of devops process
• Test orchestration and automation is still a
challenge
• Verify the changes. Verify them fast.
• Test code changes and if they integrate them well
• Ensure changes do not blow up the product!
Credit: http://devops.com/2015/02/02/devops-continuous-testing/
11. @muktaaDevOps@WhiteHedge.com
The Challenge
Early, 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.
12. @muktaaDevOps@WhiteHedge.com
What is Docker?
Linux Container
3 Components:
Docker Engine
Docker Hub
Docker Images
Benefits:
Speed
Portability
Density
Open Source
“Can create lightweight, self
sufficient containers from
any application”
14. @muktaaDevOps@WhiteHedge.com
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
22. @muktaaDevOps@WhiteHedge.com
Shippable Formations
• Easy way to provision, configure, and deploy multi-
container Dev and Test clouds (environments)
• Fully integrated with the updated Shippable CI/CD
platform, and together, they create an automated,
frictionless pipeline from source control to full-topology
environments
• Can mimic your production environment or represent any
combination of software component versions you'd like to
deploy.
23. @muktaaDevOps@WhiteHedge.com
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.
32. @muktaaDevOps@WhiteHedge.com
Interesting Facts about Shippable
• Shippable was founded in 2013 by Avi Cavale and Manisha
Sahasrabuddhe
• It was known as Qhode initially
• Avi managed to raised the first round of funding over a game of
table tennis!
• Shippable has raised over $10 million funding till today
• Formations was launched on 18 June 2015
• Shippable runs more than 60,000 containers weekly
• Google Kubernetes can do 150-200 daily builds using Shippable
• 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
Assumption: everyone knows about docker. If not, then 2 min explaining what is docker.
Prior to code integration to trunk, developers pre-flight test their code to make sure it doesn’t blow up the trunk. During the CI cycle and code commits from multiple developers integration testing is used to verify merges. During the continuous testing phase where nightly and weekend regression runs are automated for trunk and release branches it is testing that does the job of finding problems before the software release. During the development process the verdicts trends from testing are a primary measurement of progress. During the release deployment phase more testing verifies the release packages are ready for release. Rest assured test team, you are needed. What DevOps really does is bring testing into the mainstream of development processes, and avoids the problems created by having “big-bang” testing left to the end of the cycle, such as release delays, and quality issues.
Shippable CI/CD: Shippable CI/CD is our Continuous Integration and Deployment Platform. It uses Build Minions, which are Docker-based containers to run your workloads. After building and testing your code, you can have Shippable create a Docker image from your Build Minion and push it to Docker Hub or Google Container Registry (private registry support coming soon!).
Go to Shippable CI/CD Overview to learn more.
Shippable Formations Shippable Formations gives developers an easy way to provision, configure, and deploy multi-container Dev and Test clouds (environments) with zero DevOps code. It is fully integrated with the updated Shippable CI/CD platform, and together, they create an automated, frictionless pipeline from source control to full-topology environments that can mimic your production environment or represent any combination of software component versions you'd like to deploy.
Go to Shippable Formations Overview to learn more.