1 of 58

DevOps :: What’s that?

by Erwan “@labynocle” Ben Souiden

2 of 58

ABOUT ME

SysAdmin / DevOps

Yet another SysAdmin / DevOps at Toucan Toco

Former Weborama, Antelink, Deezer…

Also temporary teacher for Paris XIII

: @labynocle

3 of 58

  • What’s a DevOps?

  • What does a DevOps really do?

  • What are the requirements?

  • Why and how to become a DevOps?

4 of 58

What is a DevOps?

5 of 58

Silicon Valley - s01e02

6 of 58

DevOps is a software engineering culture and practice that aims at unifying software development and software operation.

The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management.

DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives.

Source Wikipedia

DEFINITION

DevOps

7 of 58

DEFINITION

Break the way Devs and Ops teams work together

Photo from devops.ch

8 of 58

DEFINITION

Break the way Devs and Ops teams work together

Photo from devops.ch

9 of 58

DEFINITION

Break the way Devs and Ops teams work together

They have not the same objectives:

  • Devs’ insentives are related to new features or new products
  • Ops’s insentives are related to SLA (the famous 99,999%)

Photo from dashnews.com

10 of 58

DEFINITION

Break the way Devs and Ops teams work together

Real life examples:

  • Devs create the product and features and Ops need to deploy them
  • Ops should monitor the production but don’t know what to do when there are errors
  • Devs need specific version or new services and Ops discover the needs just before the launch

11 of 58

The solution:

  • No more isolated silos
  • More communication, collaboration and common objectives
  • Use common tools and create process to work together

DEFINITION

Break the way Devs and Ops teams work together

Photo from bestdevops.com

12 of 58

DEFINITION

Break the way Devs and Ops teams work together

Real life examples:

  • Ops create tools to let the Devs deploy their projects
  • Ops set dashboards to let Devs follow the production activity and debug issue
  • Devs create status page to let Ops monitor the production
  • Ops work earlier in the project life to help Devs to define the targeted architecture

13 of 58

DEFINITION

Break the way Devs and Ops teams work together

Photo from devops.ch

14 of 58

  • Remember the main goal: reduce the time to market (small iterations, measurable, …)
  • Create a virtuous circle between teams

DEFINITION

DevOps culture comes with agile methods...

Photo from devops.ch

15 of 58

  • Code everything you can (cf IaaC)
  • Use CSM like git (to manage code and configuration)
  • Review, tests, TDD, pair programming...

DEFINITION

...and bring Dev methodologies to Ops

16 of 58

  • Depending on the company, the role can be very different:
    • Devs with infrastructuce/db/network knowledge
    • Ops with code/scripting skills
  • But there are always the same common patterns: create a bridge between teams with process and tools to improve their efficiency

DEFINITION

It’s a culture before a role!

17 of 58

DEFINITION

Finally, what does it mean as a job?

Photo Flickr from rondoudou87

18 of 58

But only one mission

© T O U C A N T O C O

19 of 58

What does a DevOps really do?

20 of 58

Remember the main mission:

© T O U C A N T O C O

21 of 58

© T O U C A N T O C O

Day in a Life #1

Monitoring the infrastructure

Photo Flickr from Olivier Jeannin

22 of 58

Real Life Examples

Setup and maintain an ELK stack

  • to follow the production activity and logs of your infrastructure
  • to monitor your servers’ health
  • to be able to plan the capacity of your infrastructure

23 of 58

Real Life Examples

Photo from blog.syloe.com

24 of 58

Real Life Examples

Perks for the team:

  • able to follow the production activity
  • autonomous to debug an error and to dig the logs
  • easy to cross-reference data from the production and the infrastructure
  • one interface to overview of the infrastructure

25 of 58

Real Life Examples

Defining and updating your NewRelic, DataDog or StatusCake policies

  • to alert the right teams when there is a downtime
  • to only alert the “on duty” team when there is a real issue

26 of 58

Real Life Examples

27 of 58

Real Life Examples

Perks for the team:

  • better “on duty” reactions with less false positives
  • easy way to compute SLA for each services
  • improve company’s serenity

28 of 58

Day in a Life #2

Automate the infrastructure

Photo from rs-online.com

29 of 58

Real Life Examples

Create and update your infrastructure with Terraform projects

  • automatically add or remove servers from your cloud infrastructure
  • update your network filtering rules for all your cloud ressources
  • set your DNS entries automatically according to your infrastructure changes

30 of 58

Real Life Examples

31 of 58

Real Life Examples

32 of 58

Real Life Examples

Perks for the team:

  • Teams could be autonomous to upgrade and change the infrastructure
  • You always know the current state of the infra
  • Easy way to rebuild the infrastructure and to duplicate environments (dev, preprod, prod…)
  • Adapt your infra on the fly to your current needs

33 of 58

Real Life Examples

Automate your production stack with Ansible playbooks

  • deploy a new version of your product stack
  • apply security patchs
  • upgrade database engine
  • never need to directly connect to servers and manually run commands

34 of 58

Real Life Examples

Photo from fabulous-lab.com

35 of 58

Real Life Examples

Perks for the team:

  • Teams could be autonomous to upgrade and change the way we deploy theirs projects
  • You always know the current state of the configuration
  • Easy way to reconfigure from scratch a server
  • Scale up

36 of 58

© T O U C A N T O C O

Photo Flickr from Sebastian Grote

Day in a Life #3

Be the link between Tech (and all other) teams <> the Infra

37 of 58

Real Life Examples

Create Docker images and Docker Compose stack for the dev teams

  • let the Devs to easily work locally
  • create a common environment for all the teams

38 of 58

Real Life Examples

39 of 58

Real Life Examples

Perks for the team:

  • Devs work without specific Ops knowledges
  • Devs’ onboarding is faster
  • the Devs are totally autonomous to test new configs or services
  • reduce the gap between environments (dev and production)

40 of 58

Real Life Examples

Setting up a Git workflow with Jenkins integration to have a continuous integration and delivery process

41 of 58

Real Life Examples

Photo from qatouch.com

42 of 58

Real Life Examples

Photo from cloudbees.com

43 of 58

Real Life Examples

Perks for the team:

  • deploy a new version is totally tested, automated and monitored
  • all teams have a global view on the deploys and tests

44 of 58

Real Life Examples

Document and keep logs of every main events in the infrastructure

  • to communicate with all the teams
  • to keep a factual trace of the events
  • to plan the next actions

45 of 58

Real Life Examples

Perks for the team:

  • Transparency on all events, PoCs, projects, tests or meetings
  • Teams could be up-to-dated by reading reports
  • Serenity because knowledge is sharing
  • Onboarding is faster

46 of 58

Toucan Toco DevOps Stack

47 of 58

What are the requirements?

48 of 58

© T O U C A N T O C O

Photo Flickr from Alex W Boyd

Tech Skills

  • Linux Knowledges
  • Scripting (bash, Python, Ruby…)
  • Open Source Friendly
  • Network Notions
  • Database Concepts

49 of 58

© T O U C A N T O C O

Photo Flickr from me :)

Human Skills

  • Calm
  • Pragmatic/Meticulous
  • “Good” Communicator
  • Team Player
  • Curious
  • … and Humble

50 of 58

© T O U C A N T O C O

Photo Flickr from Alex W

Working Skills

  • Capacity to Adapt
  • Not Afraid to Learn
  • Manage Priorities
  • Fluent in Writing Well-Documented Procedures
  • Capacity to Get Things Done

51 of 58

Why becoming a DevOps?

52 of 58

Because it’s cool!

© T O U C A N T O C O

Photo Flickr from Leonardo Rizzi

53 of 58

© T O U C A N T O C O

Photo from “Operation Swordfish”

But not only...

  • Lot of things to learn
  • Very exciting
  • Always something to do
  • Global vision
  • Big hiring!!

54 of 58

© T O U C A N T O C O

Photo from “Operation Swordfish”

However...

  • Could be stressful
  • “Alone in the front of the dark screen” symptom
  • Behind the scene
  • Nobody “wants” to understand
  • “Fireman” symptom

55 of 58

How to become a DevOps?

56 of 58

  • No real “official” school (even if it’s changing)

  • Some famous trainings/pro certifications exist

  • In small companies, most of the time the DevOps part is managed by the Backend team

  • Please, please… DevOps aren’t all failed Devs…

  • and DevOps is not just about sharing “on duty” calls :)

57 of 58

Conclusion

Photo from XKCD

58 of 58

Questions?