Download - Dev ops 2016 dockerizing the it
DOCKERIZING THE IT INFRASTRUCTURE
Ilmari Kontulainen
@deveoteam
Background
Technical background
10 years in IT industry
Creating value
Technology
Coaching / self improvement
Sports
Personal background
Repository management
Code reviews
Access management
Documentation
Issue tracking
All from the same platform with self service approach
Features and Benefits
History and context
10 years of history
4 years of development
Various technologies
Cloud and on-premises
Support for 4 different operating systems
Three different deployment options
Delivery pipeline
Types of Deployment: Combo, HA, Cluster
Operating systems
Total installation combinations
3 * 6 = 18
Before
90 minute install for Deveo customers
Compiling everything to everything with Chef
Error prone
Debugging sessions
Unsatisfied customers
Avoiding releases
Omnibus
Easily create full-stack installers for your project across a variety of platforms.
Omnibus
project scaffolder
dependency recipes
project configuration
virtual machine system
the project builder
Omnibus
The omnibus project includes a project build caching mechanism that reduces the time it takes to rebuild a project when only a few components need to be rebuilt.
Why not virtual machines?
Creating and destroying virtual machines is time consuming and resource-intensive.
A clean state is needed for each build
Easier to upgrade build tools in images
Cleaning up VMs too error prone
How we did the transition
Listing operating systems
Listing software components
Created dependency recipes for missing components
Set up KitchenCI builds
Added support for separate DB and web app packages
Added support for addition operating systems
How does the pipeline work
Building the packages
Create cloud instances
Deploy to test instances
Test the installation of packages
Benefits
Before: 90 minutes
Now: 9 minutes
Release times: 10 times faster
Shorter installation and upgrade times
Less problems during installations and upgrades
No longer avoiding releases
Future and learnings
SSD speeds docker up quite a lot
Dockerize our test environments
Separately managed internal services
Problem
“Office server”
Typically the largest technical debt for the organisation from IT point of view
Loss of such server is critical
Adding new services takes time
Data safety and backups are often forgotten
Docker for harmonising the IT infrastructure
Benefits
Own namespace and storage for each app
Linking applications together
Building dependencies, e.g. Our CRM needs a DB
Docker native volume and networking support
Version controlled by Docker compose
Convoy for backups and recovery
Convoy
Create thin provisioned volumes
Take snapshots of volumes
Incrementally backup snapshots to object stores, such as Amazon S3
Restore volumes to any hosts
Separation of host and storage
Process
List components, what data do they store, what dependencies they have
for each component:
1. create docker compose file
2. List ports, volumes/mount points
3. Create image that holds application
Results and findings
Before: Deploying new IT services took 3 days
After: Deployment of new services in 1-3 hours
Example: Internal Storage problem
Before: Disaster
After: Full recovery in hours
Conclusion
Conclusion
Faster installations
Less problems with installations
More satisfied customers
No longer avoiding releases
Faster deployments of new IT services
More fault tolerance and ability to recover from disasters
Q & A
Follow us on twitter
@deveoteam