Continuous Delivery leveraging on Docker CaaS by Adrien Blind

Post on 07-Jul-2015

6.654 views 0 download

Tags:

description

At Societe Generale GBIS, time to market & quality matters; hence we do love continuous delivery. In this context, we’re considering the Container as a Service pattern: artifacts produced by the continuous integration chain would become self-sufficient “dockerized” application modules, onboarding both code and subsequent system requirements; then, a CaaS cloud would enable to host these containers. In this talk, I’ll present our usecase and current findings, considering both technical & operational aspects. We’ll talk about software factories, immutable IT, registries, containers configuration, API-driven infrastructure, DevOps roles shifts. Finally, we’ll discuss pros/cons of this solution toward regular IaaS and PaaS.

Transcript of Continuous Delivery leveraging on Docker CaaS by Adrien Blind

Continuous Delivery leveragingon Docker CaaS

@AdrienBlind, Société Générale

1 @AdrienBlind

Let’s push some context

• Major CIB european bank, and so relying on a dense & complex IT

• Thousands apps & IT people

• Dozen of thousands servers

• A large technology stack

• IT split in two departments committed on different roles

• Siloted build & operation of applications

• Deliver infrastructure capabilities

@AdrienBlind

Ambition“Build a simple, agile & efficient IS in a

risk controlled environment”

Carlos Goncalves, CIO

• Become a busines partner: generate more business value, adapt to change

• Reduce TTM, strengthen reliability

• Introduced agility in our DNA for some years now (40% apps covered)

• Engage on continuous delivery practices from end-to-end: involve Biz, Craftmanship, DevOps, Architecture for 50% of critical apps

• Transform people (coaching, training) & toolset@AdrienBlind

Focus on delivery

• Promote DevOps practices

• Feature teams engaged on the whole product lifecycle

• Automate infrastructure & application deployments

• Make environments ephemeral and elastic

@AdrienBlind

Leveraging on private IaaS cloud

• IaaS brings flexibility (on demand, self-service, pay-per-use)

• API centric: plug environment creation in continuous

integration

• Post-configure with a conf. mgmt tools (infra as code)

IaaSCapacity (VM, Storage…)

@AdrienBlind

PaaSApp (code)

Leveraging on PaaS cloud

• Provide high-level building blocks: DBs, middlewares, etc.

• API-centric too

@AdrienBlind

IaaSCapacity (VM, Storage…)

PaaSApp (code)

CaaSApp container

Introducing CaaS cloud

@AdrienBlind

The container paradigm

« Self-sufficient artifact enclosing apps modules and

subsequent system requirements »

Software

factoriesCloud

@AdrienBlind

DevOps Roles shift

Apps team focuses on

container’s content

Don’t care about where the

container will run

Knows how to build the container

and operate the app

“You build it, you run it!”

CaaS team concerned

about external shape

Ignore how images are built

Knows how to operate huge

amount of containers

@AdrienBlind

Rebuild vs Upgrade

Full stack

Versioning

& idempotency

Patch

vs

immutable

@AdrienBlind

• Extract data from the container

• Leverage on applicative storage services

• OpenStack Swift, Ceph...

• Hadoop, Cassandra, Elastic Search...

• Externalize on system storage

• Data containers

• Host mounting points

Data consideration

@AdrienBlind

Architecture consideration

• Trends

• Application deploiement frequency

• Micro services

• Commodity infrastructure

• High availability & scalability more and more embedded in apps. New emerging patterns:

• Stateless, design for failure, loose coupling, zerodowntime deployment...

@AdrienBlind

Continuous Delivery chain

001101010011010

110110101111101

110101111010011

Environments

Binary repo.

CVS+

Soft. factoryDeveloper

@AdrienBlindHow to handle subsequent infra conf ?

Continuous Delivery chain

001101010011010

110110101111101

110101111010011

Environments

Registry

CVS+

Soft. factoryDeveloper

Ops

@AdrienBlind

Continuous Delivery chain

001101010011010

110110101111101

110101111010011

Environments

Registry

CVS+

Soft. factoryDeveloper

Ops

@AdrienBlind

Continuous Delivery chain

001101010011010

110110101111101

110101111010011

Environments

Registry

CVS+

Soft. factoryDeveloper

Ops

@AdrienBlind

Continuous Delivery chain

001101010011010

110110101111101

110101111010011

Environments

Registry

CVS+

Soft. factoryDeveloper

Ops

@AdrienBlind

The CaaS provider

• Internal / External offers consider brokering?

• Key services

• Manage underlying IaaS (multihosts, multi-tenancy, system management, SLA...)

• Expose management API for containers and handleorchestration

• Expose transversal services API (load balancers, DNS, service directories)

• But don’t forget to move step by step to make ithappen. Remind how virutalization arrived!

@AdrienBlind

Tips & tricks

• Think DevOps: don’t forget your Ops

• Expect a shift in traditional apps

• Importance of the architecture

• Application configuration management

• Move pro-gres-siv-ely: baby steps first

• Start at the Dev workstation

• Avoid discussing big CaaS cloud, orchestration, right from the begining

@AdrienBlind

Cloud DevOps

Opportunities @AdrienBlind

Take away

Thank You.

21 @AdrienBlind