SlideShare a Scribd company logo
1 of 50
INTRODUCTION TO DEVOPS

Mathieu DESPRIEE!
mde@octo.com!

© OCTO 2013

Rua Funchal 411/5°Andar
Vila Olímpia - São Paulo - Brasil

Tel : (011) 3468.0103
www.octo.com

1
~# devops -?

2
What the management asks

3
A better TTM (Time To Market)
!

Faster from business idea to production

!

Faster to evolve the systems, the technology

!

… while keeping a HIGH level of quality, stability, availability, operability

4
Why is it difficult ?

5
Local goals are divergent

DevOps
	
  
«	
  wall	
  of	
  confusion	
  »
	
  

Local	
  goals
	
  

Local	
  culture
	
  

Deliver	
  new	
  features
	
  
(of	
  good	
  quality)
	
  

Guarantee	
  the	
  run	
  of	
  so;ware	
  
(stability)
	
  

Product	
  oriented
	
  

Service	
  oriented
	
  
(supervision,	
  backups,	
  
provisioning…)
	
  

Try	
  to	
  innovate
	
  

Try	
  to	
  raBonalize
	
  

6
Activities, on Ops side

§  47%	
  of	
  total	
  Bme	
  is	
  dedicated	
  to	
  
deployment	
  

§  Doing	
  the	
  deployment	
  
§  Fixing	
  problems	
  related	
  to	
  deployments	
  

§  InteresBng	
  KPI	
  to	
  follow…	
  

7
How the web giants perform in this?

8
!
!
!

800 dev, 400 ops, 180’000 servers (= 450 servers / ops)
1 deployment each day
Concept of deployment rings

!
!

A deployment somewhere in datacenters every 11 seconds
At any moment, an average of 10’000 servers are being
updated

!
!

Everything is in the cloud (AWS)
« Design For Failure » :
!   the software is designed to tolerate
! they test it all the time, in production.
!   65’000 failure tests, in production, by killing random virtual
machine !!! … and measuring that everything is alright !

!

10 deployments / day
9
Why and how they do this ?

10
DevOps
	
  
1.	
  Infrastructure	
  as	
  Code
	
  

2.	
  ConBnuous	
  Delivery	
  

3.	
  CollaboraBon
	
  
11
{
infrastructure,
as,
code
}
12
!

Because humans make mistakes

!

Because human brain is terribly bad at repetitive tasks

!

Because human is slow compared to a bash script

!

… and because we are humans

13
14
Command and
Control

Configuration

Application Orchestration
•  deploy applicative code
•  … and rollback !
•  deploy database scripts and data
•  start application
•  join clusters…

System Configuration
•  jvm, application servers…
•  middlewares…
•  service configuration (logs, ports,
user and group permissions)
•  registration to supervision

Capistrano
Custom shell scripts
...

Chef
Puppet
CFEngine
…
OpenStack

Bootstrapping

• 
• 

VM Instantiation
OS setup & configuration

Vmware vCloud
Oracle exaLogic
or physical machine config
…

15
Command and
Control

Configuration

Application Orchestration
•  deploy applicative code
•  … and rollback !
•  deploy database scripts and data
•  start application
•  join clusters…

System Configuration
•  jvm, application servers…
•  middlewares…
•  service configuration (logs, ports,
user and group permissions)
•  registration to supervision

Capistrano
Custom shell scripts
...

Chef
Puppet
CFEngine
…
OpenStack

Bootstrapping

• 
• 

VM Instantiation
OS setup & configuration

Vmware vCloud
Oracle exaLogic
or physical machine config
…

16
Command and
Control

Configuration

Application Orchestration
•  deploy applicative code
•  … and rollback !
•  deploy database scripts and data
•  start application
•  join clusters…

System Configuration
•  jvm, application servers…
•  middlewares…
•  service configuration (logs, ports,
user and group permissions)
•  registration to supervision

Capistrano
Custom shell scripts
...

Chef
Puppet
CFEngine
…
OpenStack

Bootstrapping

• 
• 

VM Instantiation
OS setup & configuration

Vmware vCloud
Oracle exaLogic
or physical machine config
…

17
Capistrano

!

Consider all of this like code

Custom shell scripts
...

!

This can be stored and versioned in a code
repository (like git)
Chef

!

!

Like software code, you can test it. And make
sure your script won’t fail when you need it at
2:00 am
Can scale to any number of server in parallel…

Puppet
CFEngine
…
OpenStack
Vmware vCloud
Oracle exaLogic
or physical machine config
…

18
Infrastructure as Code

!

Benefits of « Infrastructure as Code »

!   REPETABILITY and RELIABILITY
!

Guarantee that infrastructure is homogeneous

!

Make sure that standards are respected

!

Any new environment is configured quicker

!

Allow developers to do lots of tasks by themselves
!

eg. in qualification environment

19
continuous.delivery()

20
!
!
!

800 dev, 400 ops, 180’000 servers (= 450 servers / ops)
1 deployment each day
Concept of deployment rings

!
!

A deployment somewhere in datacenters every 11 seconds
At any moment, an average of 10’000 servers are being
updated

!
!

Everything is in the cloud (AWS)
« Design For Failure » :
!   the software is designed to tolerate
! they test it all the time, in production.
!   65’000 failure tests, in production, by killing random virtual
machine !!! … and measuring that everything is alright !

!

10 deployments / day
21
Why ?

22
Why deploy continuously ?

!
!

Improve Time To Market
Learn Faster

IDEAS

(and it needs metrics !)

LEARN FAST	


DATA

CODE FAST	


CODE

MEASURE FAST	


23
Why deploy continuously ?

!
!

Improve Time To Market
Learn Faster
(and it needs metrics !)

!

Deploy frequently
= automation
= reliability

24
Why deploy continuously ?

!
!

Improve Time To Market
Learn Faster
(and it needs metrics !)

!

Deploy frequently
= automation
= reliability

!

Deploy more frequently
= smaller code change
= incidents are smaller
= lower TTR (Time To Repair)

25
OK, let’s do that !

…oh, wait…

26
What you need :
! Continuous integration
! TDD - Test Driven Development
(automated unit testing)
! Code reviews
! Continuous code auditing (sonar…)
! Functional test automation
! Strong non-functional tests
(performance, availability…)
! Automated packaging and deployment,
independent of target environment

27
You may also need
! Feature flipping / Feature toggles

Feature flipping allows to enable / disable a
feature while software is running

28
You may also need

Dark Launch @ Facebook :

! Feature flipping / Feature toggles

Dark launching is releasing a new feature, with no
UI changes, but using all the parts of your
infrastructure involved in serving that feature.

! Dark Launch

A good strategy to apply when you're dealing with
massive, large-scale deployments, and when you
want to see how your infrastructure behaves in
conditions that are as close to production as
possible

29
Canary Release

You may also need
! Feature flipping / Feature toggles

Users	
  

! Dark Launch
Router

! Canary Release
Most of users
Version N

Subset of users
Version N+1

30
Blue/Green deployment

You may also need
! Feature flipping / Feature toggles
! Dark Launch

Web server

App server

DB server

! Canary Release
! Blue/Green deployment

Router
Users
	
  

31
You may also need

Datamodel evolution strategy example

! Feature flipping / Feature toggles
! Dark Launch

Deploy application
compatible with
N and N+1

! Canary Release
! Blue/Green deployment
! Datamodel evolution strategies

DB
Prepare hybrid
datamodel :
version N
with N+1 things
CREATE TABLE
ADD COLUMN

DB
Remove old things
Datamodel =
version N+1
DROP TABLE
DROP COLUMN

32
Datamodel evolution strategy example
Datamodel
Version N

Datamodel
Version N

V.1	


Datamodel
Version N+1

Hybrid

V.1 + V.2	


Datamodel
Version N+1

V.2	


33
[ collab
oration ]

34
35
Development process

Business
	
  

Tester
	
  

End-­‐user	
  

	
  
funcBonal	
  tests	
  
(automated)	
  

FuncBonal	
  requirements	
  

PriorizaBon	
  
Development	
  

So;ware
	
  

36
Ops are the others users of the system

Business
	
  

Tester
	
  

End-­‐user	
  

	
  
funcBonal	
  tests	
  
(automated)	
  

FuncBonal	
  requirements	
  

PriorizaBon	
  
Development	
  

So;ware
	
  

Ops	
  

37
Ops must be involved in all the phases of a project

Business
	
  

Tester
	
  

End-­‐user	
  

	
  
funcBonal	
  tests	
  
(automated)	
  

-­‐	
  FuncBonal	
  requirements	
  
-­‐	
  Non	
  funcBonal	
  requirements	
  

(useful	
  logs,	
  degraded	
  modes,	
  redo	
  
operaBons,	
  integraBon	
  to	
  
supervision,	
  performance,	
  easiness	
  
of	
  deployment)	
  

So;ware
	
  

PriorizaBon	
  
Development	
  

non-­‐funcBonal	
  
tests	
  
(automated)	
  

Ops
	
  
Manager
	
  

Ops	
  

Ops	
  

38
Share the tools

Ops
	
  

Dev	
  

-­‐  Binary	
  repositories	
  
-­‐  ConBnuous	
  integraBon	
  

-­‐  Facilitate	
  /	
  Automate	
  deployment	
  
-­‐  Help	
  dev	
  teams	
  to	
  become	
  autonomous	
  (in	
  
parBcular	
  for	
  deployment	
  before	
  producBon)	
  

-­‐  Facilitate	
  diagnosBcs	
  
-­‐  Get	
  devs	
  interested	
  in	
  «	
  prod	
  things	
  »	
  

-­‐  Give	
  access	
  to	
  logs	
  
-­‐  Give	
  access	
  to	
  supervision	
  
and	
  monitoring	
  

39
Des outils partagés, qui facilitent les interactions

Get	
  devs	
  interested	
  in	
  
«	
  prod	
  things	
  »	
  
	
  
	
  

3.
	
  
COLLABORATIO
N
	
  
(culture,	
  organisaBon…)
	
  

40
Work together

Architecture	
  reviews
	
  
align	
  people	
  on	
  objecBves
	
  

Post	
  Mortem
	
  
idenBfy	
  root	
  causes,	
  without	
  
blaming	
  people
	
  
improve	
  the	
  way	
  you	
  work
	
  

Day-­‐to-­‐day	
  
	
  
share	
  informaBon
	
  

ReporBng	
  
	
  

Go	
  /	
  NoGo
	
  

communicate	
  about	
  how	
  the	
  
system	
  works
	
  
anBcipate	
  problems
	
  

decision	
  to	
  go	
  in	
  producBon	
  
should	
  be	
  a	
  shared	
  decision
	
  
(markeBng,	
  dev,	
  ops,…)
	
  

41
wrap_up

42
tools	
  

for	
  collaboraBon,	
  
measurement,	
  quality	
  
management,	
  automaBon
	
  

architectures	
  

adapted	
  to	
  funcBonal	
  AND	
  
non-­‐funcBonal	
  requirements
	
  

a	
  set	
  of	
  pracBces	
  that	
  aim	
  at	
  improving	
  
collaboraBon	
  between	
  dev	
  and	
  ops

	
  

culture	
  and	
  organizaBon
	
  
to	
  ease	
  collaboraBon
	
  

methodology	
  

for	
  collaboraBon,	
  trust,	
  and	
  
conBnuous	
  improvement
	
  
43
Infrastructure
as
Code

Continuous
Delivery

Collaboration

•  Automate everything
•  Focus on Reliability and Repetability

•  Deploy more often
•  Reduce Time To Repair
•  Need strong investment in software quality

•  Organise work together
•  Share tools
•  Build trust, avoid blaming

44
web giants

devops

45
How to implement DevOps ?
And how OCTO can help you

46
Progressive implementation

Improve
Quality of Service

Continuous
Improvement

Culture of
collaboration

Speed-up
the provisioning

Infrastructure
as Code

Improve
deployment
reliability

We	
  advocate	
  for	
  a	
  
progressive	
  and	
  iteraBve	
  
implementaBon,	
  adopBng	
  
the	
  principles	
  of	
  conBnuous	
  
improvement	
  from	
  the	
  lean	
  
management	
  

Continuous
Delivery

Improve
Time-To-Market

Improve
Mean Time
To Recover
(MTTR)

47
Diagnostic : Where are you ?
Example of an evaluation
matrix we use : tooling,
processes, architecture,
organization, overall
performance…

48
OCTO Services Offers

Directors	
  

Talks & Seminars
•  “Evangelisation”
Diagnostics & Evaluation
•  DevOps Maturity
•  Organizational Audit
•  Practices Audit

Managers	
  

Architects	
  	
  

(so;	
  &	
  infra)	
  

Devs	
  
Ops	
  

Architecture studies
•  DevOps patterns (Dark Launch...)
•  Software Delivery pipeline
•  Deployment architecture
Coaching
•  State of the art practices (XP, TDD, test for ops)
•  Agile/Kanban for ops
•  Animation/Facilitation

Expertise : Technical Assistance & Training
•  Continuous Delivery platform setup
•  Infrastructure as Code (vagrant, chef, cap...)

49
© OCTO 2013

Rua Funchal 411/5°Andar
Vila Olímpia - São Paulo - Brasil

Tel : (011) 3468.0103
www.octo.com

50

More Related Content

What's hot

Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 

What's hot (20)

Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Understanding DevOps
Understanding DevOpsUnderstanding DevOps
Understanding DevOps
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
devops
devops devops
devops
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOps
 
DevOps Best Practices
DevOps Best PracticesDevOps Best Practices
DevOps Best Practices
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
DevOps
DevOpsDevOps
DevOps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
DevOps
DevOpsDevOps
DevOps
 
DevOps
DevOps DevOps
DevOps
 
DevOps without DevOps Tools
DevOps without DevOps ToolsDevOps without DevOps Tools
DevOps without DevOps Tools
 

Viewers also liked

Viewers also liked (10)

Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
A day in the life with devops automation
A day in the life with devops automationA day in the life with devops automation
A day in the life with devops automation
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...
 
Liquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOpsLiquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOps
 
VMworld 2013: IaaS Case Study: How the University of New Mexico Improved Serv...
VMworld 2013: IaaS Case Study: How the University of New Mexico Improved Serv...VMworld 2013: IaaS Case Study: How the University of New Mexico Improved Serv...
VMworld 2013: IaaS Case Study: How the University of New Mexico Improved Serv...
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Cloudy Open Source and DevOps
Cloudy Open Source and DevOpsCloudy Open Source and DevOps
Cloudy Open Source and DevOps
 
DevOps Demystified
DevOps DemystifiedDevOps Demystified
DevOps Demystified
 
Waterfall-ITIL vs Agile-DevOps
Waterfall-ITIL vs Agile-DevOpsWaterfall-ITIL vs Agile-DevOps
Waterfall-ITIL vs Agile-DevOps
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Similar to Introduction to DevOps

Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 

Similar to Introduction to DevOps (20)

SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Implementing Enterprise DevOps: Real Life Experiences
Implementing Enterprise DevOps: Real Life ExperiencesImplementing Enterprise DevOps: Real Life Experiences
Implementing Enterprise DevOps: Real Life Experiences
 
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
 
My Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOpsMy Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOps
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Testing & Improving Performance in IBM Cognos BI, Plus Automated Cognos Testi...
Testing & Improving Performance in IBM Cognos BI, Plus Automated Cognos Testi...Testing & Improving Performance in IBM Cognos BI, Plus Automated Cognos Testi...
Testing & Improving Performance in IBM Cognos BI, Plus Automated Cognos Testi...
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
Don't Fumble the Data! Integrate Database Automation into your DevOps Toolchain
Don't Fumble the Data! Integrate Database Automation into your DevOps ToolchainDon't Fumble the Data! Integrate Database Automation into your DevOps Toolchain
Don't Fumble the Data! Integrate Database Automation into your DevOps Toolchain
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
Continuous Performance Testing: The New Standard
Continuous Performance Testing: The New StandardContinuous Performance Testing: The New Standard
Continuous Performance Testing: The New Standard
 

More from OCTO Technology

More from OCTO Technology (20)

Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéLe Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
 
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture Test
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend web
 
Refcard GraphQL
Refcard GraphQLRefcard GraphQL
Refcard GraphQL
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/Leaseplan
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Introduction to DevOps

  • 1. INTRODUCTION TO DEVOPS Mathieu DESPRIEE! mde@octo.com! © OCTO 2013 Rua Funchal 411/5°Andar Vila Olímpia - São Paulo - Brasil Tel : (011) 3468.0103 www.octo.com 1
  • 4. A better TTM (Time To Market) ! Faster from business idea to production ! Faster to evolve the systems, the technology ! … while keeping a HIGH level of quality, stability, availability, operability 4
  • 5. Why is it difficult ? 5
  • 6. Local goals are divergent DevOps   «  wall  of  confusion  »   Local  goals   Local  culture   Deliver  new  features   (of  good  quality)   Guarantee  the  run  of  so;ware   (stability)   Product  oriented   Service  oriented   (supervision,  backups,   provisioning…)   Try  to  innovate   Try  to  raBonalize   6
  • 7. Activities, on Ops side §  47%  of  total  Bme  is  dedicated  to   deployment   §  Doing  the  deployment   §  Fixing  problems  related  to  deployments   §  InteresBng  KPI  to  follow…   7
  • 8. How the web giants perform in this? 8
  • 9. ! ! ! 800 dev, 400 ops, 180’000 servers (= 450 servers / ops) 1 deployment each day Concept of deployment rings ! ! A deployment somewhere in datacenters every 11 seconds At any moment, an average of 10’000 servers are being updated ! ! Everything is in the cloud (AWS) « Design For Failure » : !   the software is designed to tolerate ! they test it all the time, in production. !   65’000 failure tests, in production, by killing random virtual machine !!! … and measuring that everything is alright ! ! 10 deployments / day 9
  • 10. Why and how they do this ? 10
  • 11. DevOps   1.  Infrastructure  as  Code   2.  ConBnuous  Delivery   3.  CollaboraBon   11
  • 13. ! Because humans make mistakes ! Because human brain is terribly bad at repetitive tasks ! Because human is slow compared to a bash script ! … and because we are humans 13
  • 14. 14
  • 15. Command and Control Configuration Application Orchestration •  deploy applicative code •  … and rollback ! •  deploy database scripts and data •  start application •  join clusters… System Configuration •  jvm, application servers… •  middlewares… •  service configuration (logs, ports, user and group permissions) •  registration to supervision Capistrano Custom shell scripts ... Chef Puppet CFEngine … OpenStack Bootstrapping •  •  VM Instantiation OS setup & configuration Vmware vCloud Oracle exaLogic or physical machine config … 15
  • 16. Command and Control Configuration Application Orchestration •  deploy applicative code •  … and rollback ! •  deploy database scripts and data •  start application •  join clusters… System Configuration •  jvm, application servers… •  middlewares… •  service configuration (logs, ports, user and group permissions) •  registration to supervision Capistrano Custom shell scripts ... Chef Puppet CFEngine … OpenStack Bootstrapping •  •  VM Instantiation OS setup & configuration Vmware vCloud Oracle exaLogic or physical machine config … 16
  • 17. Command and Control Configuration Application Orchestration •  deploy applicative code •  … and rollback ! •  deploy database scripts and data •  start application •  join clusters… System Configuration •  jvm, application servers… •  middlewares… •  service configuration (logs, ports, user and group permissions) •  registration to supervision Capistrano Custom shell scripts ... Chef Puppet CFEngine … OpenStack Bootstrapping •  •  VM Instantiation OS setup & configuration Vmware vCloud Oracle exaLogic or physical machine config … 17
  • 18. Capistrano ! Consider all of this like code Custom shell scripts ... ! This can be stored and versioned in a code repository (like git) Chef ! ! Like software code, you can test it. And make sure your script won’t fail when you need it at 2:00 am Can scale to any number of server in parallel… Puppet CFEngine … OpenStack Vmware vCloud Oracle exaLogic or physical machine config … 18
  • 19. Infrastructure as Code ! Benefits of « Infrastructure as Code » !   REPETABILITY and RELIABILITY ! Guarantee that infrastructure is homogeneous ! Make sure that standards are respected ! Any new environment is configured quicker ! Allow developers to do lots of tasks by themselves ! eg. in qualification environment 19
  • 21. ! ! ! 800 dev, 400 ops, 180’000 servers (= 450 servers / ops) 1 deployment each day Concept of deployment rings ! ! A deployment somewhere in datacenters every 11 seconds At any moment, an average of 10’000 servers are being updated ! ! Everything is in the cloud (AWS) « Design For Failure » : !   the software is designed to tolerate ! they test it all the time, in production. !   65’000 failure tests, in production, by killing random virtual machine !!! … and measuring that everything is alright ! ! 10 deployments / day 21
  • 23. Why deploy continuously ? ! ! Improve Time To Market Learn Faster IDEAS (and it needs metrics !) LEARN FAST DATA CODE FAST CODE MEASURE FAST 23
  • 24. Why deploy continuously ? ! ! Improve Time To Market Learn Faster (and it needs metrics !) ! Deploy frequently = automation = reliability 24
  • 25. Why deploy continuously ? ! ! Improve Time To Market Learn Faster (and it needs metrics !) ! Deploy frequently = automation = reliability ! Deploy more frequently = smaller code change = incidents are smaller = lower TTR (Time To Repair) 25
  • 26. OK, let’s do that ! …oh, wait… 26
  • 27. What you need : ! Continuous integration ! TDD - Test Driven Development (automated unit testing) ! Code reviews ! Continuous code auditing (sonar…) ! Functional test automation ! Strong non-functional tests (performance, availability…) ! Automated packaging and deployment, independent of target environment 27
  • 28. You may also need ! Feature flipping / Feature toggles Feature flipping allows to enable / disable a feature while software is running 28
  • 29. You may also need Dark Launch @ Facebook : ! Feature flipping / Feature toggles Dark launching is releasing a new feature, with no UI changes, but using all the parts of your infrastructure involved in serving that feature. ! Dark Launch A good strategy to apply when you're dealing with massive, large-scale deployments, and when you want to see how your infrastructure behaves in conditions that are as close to production as possible 29
  • 30. Canary Release You may also need ! Feature flipping / Feature toggles Users   ! Dark Launch Router ! Canary Release Most of users Version N Subset of users Version N+1 30
  • 31. Blue/Green deployment You may also need ! Feature flipping / Feature toggles ! Dark Launch Web server App server DB server ! Canary Release ! Blue/Green deployment Router Users   31
  • 32. You may also need Datamodel evolution strategy example ! Feature flipping / Feature toggles ! Dark Launch Deploy application compatible with N and N+1 ! Canary Release ! Blue/Green deployment ! Datamodel evolution strategies DB Prepare hybrid datamodel : version N with N+1 things CREATE TABLE ADD COLUMN DB Remove old things Datamodel = version N+1 DROP TABLE DROP COLUMN 32
  • 33. Datamodel evolution strategy example Datamodel Version N Datamodel Version N V.1 Datamodel Version N+1 Hybrid V.1 + V.2 Datamodel Version N+1 V.2 33
  • 35. 35
  • 36. Development process Business   Tester   End-­‐user     funcBonal  tests   (automated)   FuncBonal  requirements   PriorizaBon   Development   So;ware   36
  • 37. Ops are the others users of the system Business   Tester   End-­‐user     funcBonal  tests   (automated)   FuncBonal  requirements   PriorizaBon   Development   So;ware   Ops   37
  • 38. Ops must be involved in all the phases of a project Business   Tester   End-­‐user     funcBonal  tests   (automated)   -­‐  FuncBonal  requirements   -­‐  Non  funcBonal  requirements   (useful  logs,  degraded  modes,  redo   operaBons,  integraBon  to   supervision,  performance,  easiness   of  deployment)   So;ware   PriorizaBon   Development   non-­‐funcBonal   tests   (automated)   Ops   Manager   Ops   Ops   38
  • 39. Share the tools Ops   Dev   -­‐  Binary  repositories   -­‐  ConBnuous  integraBon   -­‐  Facilitate  /  Automate  deployment   -­‐  Help  dev  teams  to  become  autonomous  (in   parBcular  for  deployment  before  producBon)   -­‐  Facilitate  diagnosBcs   -­‐  Get  devs  interested  in  «  prod  things  »   -­‐  Give  access  to  logs   -­‐  Give  access  to  supervision   and  monitoring   39
  • 40. Des outils partagés, qui facilitent les interactions Get  devs  interested  in   «  prod  things  »       3.   COLLABORATIO N   (culture,  organisaBon…)   40
  • 41. Work together Architecture  reviews   align  people  on  objecBves   Post  Mortem   idenBfy  root  causes,  without   blaming  people   improve  the  way  you  work   Day-­‐to-­‐day     share  informaBon   ReporBng     Go  /  NoGo   communicate  about  how  the   system  works   anBcipate  problems   decision  to  go  in  producBon   should  be  a  shared  decision   (markeBng,  dev,  ops,…)   41
  • 43. tools   for  collaboraBon,   measurement,  quality   management,  automaBon   architectures   adapted  to  funcBonal  AND   non-­‐funcBonal  requirements   a  set  of  pracBces  that  aim  at  improving   collaboraBon  between  dev  and  ops   culture  and  organizaBon   to  ease  collaboraBon   methodology   for  collaboraBon,  trust,  and   conBnuous  improvement   43
  • 44. Infrastructure as Code Continuous Delivery Collaboration •  Automate everything •  Focus on Reliability and Repetability •  Deploy more often •  Reduce Time To Repair •  Need strong investment in software quality •  Organise work together •  Share tools •  Build trust, avoid blaming 44
  • 46. How to implement DevOps ? And how OCTO can help you 46
  • 47. Progressive implementation Improve Quality of Service Continuous Improvement Culture of collaboration Speed-up the provisioning Infrastructure as Code Improve deployment reliability We  advocate  for  a   progressive  and  iteraBve   implementaBon,  adopBng   the  principles  of  conBnuous   improvement  from  the  lean   management   Continuous Delivery Improve Time-To-Market Improve Mean Time To Recover (MTTR) 47
  • 48. Diagnostic : Where are you ? Example of an evaluation matrix we use : tooling, processes, architecture, organization, overall performance… 48
  • 49. OCTO Services Offers Directors   Talks & Seminars •  “Evangelisation” Diagnostics & Evaluation •  DevOps Maturity •  Organizational Audit •  Practices Audit Managers   Architects     (so;  &  infra)   Devs   Ops   Architecture studies •  DevOps patterns (Dark Launch...) •  Software Delivery pipeline •  Deployment architecture Coaching •  State of the art practices (XP, TDD, test for ops) •  Agile/Kanban for ops •  Animation/Facilitation Expertise : Technical Assistance & Training •  Continuous Delivery platform setup •  Infrastructure as Code (vagrant, chef, cap...) 49
  • 50. © OCTO 2013 Rua Funchal 411/5°Andar Vila Olímpia - São Paulo - Brasil Tel : (011) 3468.0103 www.octo.com 50