Enterprise flight into DevOps space

Andrey Adamovich, Aestas/IT

About me

Andrey Adamovich

The story

Once upon a time...

Silos

An email arrives...

Story

...let's get to work

Story

...two days later...

Story

...five days later...

Story

Another email

Hi Jack, I got a call from Sandy, the secret project's PM, she says that the DEV servers are not ready yet, I really want you to understand how critical is this project for the organization, please, don't let me down... Francis, VP

Jack's boss

Hi Jack, I understand you have been working on the secret project servers setup recently, don't forget that we need to keep the documentation up-to-date yeah?

No problem! We know how to write docs.

Story

... in the meanwhile ...

Story

The dreaded CR

Hey Jack, we can't deploy anymore to our DEV servers. What the hell is going on?

Fixing

Story

...things get worse...

Story

Worst than down...

UNKNOWN STATE I

Story

UNKNOWN STATE II

  • Too many people working on too many issues
  • Each server is managed independently and without cohesion

Chaos (r)

The "secret" project moves into QA

Story

The GO LIVE!

Story

Are you serious?

  • Jack and his team can't keep up with the work: Hundreds of servers to configure, monitor, backup, restore, fix ...

  • Documentation is left behind

Let's throw more people at it

Story

...it's going to work, right?

Story

Problems?

  • More people fiddling with the servers
  • No coordination
  • Recipe for disaster

What about monitoring?

Do we have it?

YES!

But...

Story

Well...

Sorry!

No happy ending?

Where is the problem?

Communication I

Story

Communication II

Foreign countries

Stability vs. agility

Postpone the pain?

Story

Fear of deploy

  • Because systems are fragile, each deployment is like a trip to the nearest casino
  • Devs and SysOps make development cycles longer to be as far as possible from the deploy date
  • Slower time to market, systems are down more often
  • Nobody is happy

Unplanned vs. failed

Story

Unplanned vs. unique

Story

DevOps!

Fix communication

Fix communication

The feedback loop

  • Through configuration management and deploy automation, we can deploy more often and reduce risk
  • The feedback loop gets shorter
  • Functionalities are rolled out with higher frequency
  • Systems are always in a known state
  • Changes to the system can be simulated and impacts calculated

Sharing responsibility I

Share responsiblity

Sharing responsibility II

  • The focus of DevOps is on automating the tasks performed during the build, QA and deployment stage
  • The risk of deployment errors is reduced drastically by having a strong automated testing suite, automated deployment workflow, well defined/automated rollback process

Reduce failed changes

Story

Reduce number of unique configs

Story

Great!

Now we've heard about DevOps!

Let's do it!

It will save us!

Let's hire a DevOps consultant!

DevOps engineer

What?

OK, we have one now...

DevOps engineer

DevOps is not a religion!

DevOps religion

Aha!

We need an internal DevOps team!

DevOps engineer

They will work hard!

They will make DevOps happen!

Wait, another department?

What's the point?

Failed expectations

Most start with the tools

Tools are as important as...

Internal culture!

How Devs and Ops can help each other?

TALK!

TALK MORE!

SHARE!

SHARE EVERYTHING!

Hints for developers

Logging

  • Whenever you add new logging statement to your code, remember that the guy on the other side can actually read it
  • Logging level, message and frequency of logging can help or disturb

Monitoring

  • Embed monitoring capabilities into your code
  • Know monitoring channels that your operations use: JMX, SNMP, HTTP

Configuration

  • Structure application configuration
  • Backward-compatibile, good defaults, good naming

Automation

  • Automation over documentation
  • Automate everything repeatable:

    • build
    • release
    • deploy
    • test

Hints for operations

Problem solving

  • Get developers to solve production problems
  • Look at how they did it
  • Post-mortem analysis

Monitoring

  • Create dashboards! Many, but meaningful dashboards!
  • Analyze your data!
  • Create alerts!

Logging

  • Aggregate logs
  • Analyze logs
  • Rotate logs
  • Clean logs

Prepare for disaster!

  • Backups!
  • Test your backups. Seriously!
  • Capacity planning.

Automation

  • Infrastructure as code
  • Everything in version control

Technologies to follow

Virtualization

  • VirtualBox
  • Qemu
  • Docker
  • Vagrant
  • Parallels

Clouds

  • AWS
  • VMWare
  • Azure
  • Google Cloud
  • OpenStack

Infrastructure provisioning

  • Puppet
  • Chef
  • Ansible
  • Salt

Infrastructure monitoring

  • Logstash
  • Kibana
  • Grafana
  • ElasticSearch
  • Graphite

DevOps companies

  • Spotify
  • Netflix
  • Etsy
  • Twitter
  • Amazon
  • Google
  • GitHub

Reading material

The Phoenix Project

Phoenix Project

Continuous Delivery

Cd

Release It

Release It

DevOps blogs

Questions?

Thank you!

Have a nice flight!