Dev ops 2016 dockerizing the it

Post on 15-Apr-2017

498 views 0 download

Transcript of 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