devops and the new culture

57
DevOps e nova cultura Christophe Marchal | Software Architect

Upload: christophe-marchal

Post on 17-Jul-2015

164 views

Category:

Technology


1 download

TRANSCRIPT

DevOps e nova cultura

Christophe Marchal | Software Architect

What is software development?

2 Different profiles

Deploy!

Simple App

Open a ticket

Simple App

Simple App

Success Application

Application Grow

Deploy!

Application Grow

Too unstable!

Start Some XP Practices

Only commit in trunk

Use of SCM toolContinuous Integration

● unit tests #compilation● integration tests #runtime● acceptance tests #runtime

Continuous Integration

CompilationUnit Tests

Deploy em Staging

Integration Tests

Automatic AcceptanceTests

UserAcceptanceTests

Quality Improvement

Team and Application Grow

● Time spent merging

● Time spent compiling

● Time spent testing

● Time to put a feature in production

● Application Response time

● Hardware consumption

Modularization

Move dependency from Compilation

to Runtime

New DeployService

Service

Success Application

Application Grow

I cannot deploy separately!

This is safe! Only 1 line of code changed

Service Service

Service Service

Service

ServiceService

Service

Service

Service dependencies

SOA

Service Service

Contract

Service

SOA

● Dependency only depends on service contract

● Service contract has versions● No branch

Service

ContractContract

Service

Contract

Contract

● unit tests #compilation● contract tests #compilation● integration tests #runtime● acceptance tests #runtime● performance tests #runtime

Update Services

I only deploy 1 service

This is safe! Only 1 line of code changed

ServiceContract

Business Agility

Sell Services

Release when you want

Build team around services

Client

Business

ServiceContract

ServiceContract

ServiceContract

Build team around services

Every Team as a Lean Startup

Number of ticket

Need to automatize

● unit tests #compilation● contract tests #compilation● integration tests #runtime● acceptance tests #runtime● performance tests #runtime● deploy automation tests #infra

Continuous Deployment

● Availability

● Rollback

● Data synchronization

● Scalability

● Cost/Benefit

Continuous Delivery

CompilationUnit Tests

Deploy Staging

Integration Tests

Automatic AcceptanceTests

UserAcceptanceTests

Stress Test

Deploy Production

Monitor everything

Feature Toggle

Build once, Deploy everywhere

Configuration Management

REST Service

Key Value databaseFilesystemEnvironment Variable

Green/Blue Deploy

Canary Deploy

Deploy the same way everywhere

Virtualization

Provisioning

Operation System

Virtual box images

Local Machine

Operational System

Operational System Application

Application

Operational System

Application

Still not there ...Production Local Machine

Container

Kernel Linux

Docker Repository

Scripting

Example of Application

OS

Connecting to docker containers

Play! Packaged as a docker container

Running everything

Many, many, many services

● discoverability

● job scheduling

● bind containers to physical servers

New Ops Operational System

Failure everywhere ...

Network Failure

Is the server dead?

Domino Effect

Prevention!

Circuit Breaker Pattern

Test On production

Thanks for your time!

Christophe Marchal | Software Architect