Dev ops 2016 dockerizing the it

30
DOCKERIZING THE IT INFRASTRUCTURE Ilmari Kontulainen @deveoteam

Transcript of Dev ops 2016 dockerizing the it

Page 1: Dev ops 2016 dockerizing the it

DOCKERIZING THE IT INFRASTRUCTURE

Ilmari Kontulainen

@deveoteam

Page 2: Dev ops 2016 dockerizing the it

Background

Page 3: Dev ops 2016 dockerizing the it

Technical background

10 years in IT industry

Creating value

Technology

Coaching / self improvement

Sports

Personal background

Page 4: Dev ops 2016 dockerizing the it
Page 5: Dev ops 2016 dockerizing the it

Repository management

Code reviews

Access management

Documentation

Issue tracking

All from the same platform with self service approach

Features and Benefits

Page 6: Dev ops 2016 dockerizing the it

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

Page 7: Dev ops 2016 dockerizing the it

Delivery pipeline

Page 8: Dev ops 2016 dockerizing the it

Types of Deployment: Combo, HA, Cluster

Page 9: Dev ops 2016 dockerizing the it

Operating systems

Page 10: Dev ops 2016 dockerizing the it

Total installation combinations

3 * 6 = 18

Page 11: Dev ops 2016 dockerizing the it

Before

90 minute install for Deveo customers

Compiling everything to everything with Chef

Error prone

Debugging sessions

Unsatisfied customers

Avoiding releases

Page 12: Dev ops 2016 dockerizing the it

Omnibus

Easily create full-stack installers for your project across a variety of platforms.

Page 13: Dev ops 2016 dockerizing the it

Omnibus

project scaffolder

dependency recipes

project configuration

virtual machine system

the project builder

Page 14: Dev ops 2016 dockerizing the it

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.

Page 15: Dev ops 2016 dockerizing the it

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

Page 16: Dev ops 2016 dockerizing the it

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

Page 17: Dev ops 2016 dockerizing the it

How does the pipeline work

Building the packages

Create cloud instances

Deploy to test instances

Test the installation of packages

Page 18: Dev ops 2016 dockerizing the it

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

Page 19: Dev ops 2016 dockerizing the it

Future and learnings

SSD speeds docker up quite a lot

Dockerize our test environments

Page 20: Dev ops 2016 dockerizing the it

Separately managed internal services

Page 21: Dev ops 2016 dockerizing the it

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

Page 22: Dev ops 2016 dockerizing the it

Docker for harmonising the IT infrastructure

Page 23: Dev ops 2016 dockerizing the it

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

Page 24: Dev ops 2016 dockerizing the it

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

Page 25: Dev ops 2016 dockerizing the it

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

Page 26: Dev ops 2016 dockerizing the it

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

Page 27: Dev ops 2016 dockerizing the it

Conclusion

Page 28: Dev ops 2016 dockerizing the it

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

Page 29: Dev ops 2016 dockerizing the it

Q & A

Page 30: Dev ops 2016 dockerizing the it

Follow us on twitter

@deveoteam