Devops in Practice

The end of development, QA, operations and infrastructure as we know it.

About me

  • Lead developer at 8 Securities
  • Back-End development (mainly ASP.NET)
  • DevOps / Cloud Architecture and Web Services (Azure & AWS)
  • Agile development and project management

What is Devops

Wiki:

DevOps is a culture, movement and practice that emphasizes the collaboration and communication of both software developers and information technology professionals while automating the process of software delivery and infrastructure changes.

It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.

Replaced "Agile Infrastructure" in 2008

Delivery Workflow

  • Code - Code development and review, version control, code merging
  • Build - Turning code into libraries
  • Run units tests
  • Package Management - libraries versioning
  • Staging Deployment
  • Integration/Regression/Load tests
  • Production Deployment
  • Monitor - Application performance monitoring, canary tests, user experience monitoring
  • Scaling - Scale up/out of stateless and stateful services

Tools

  • Code
    • Text editors/IDEs (Vim, Emacs, Sublime Text, Visual Studio, Visual Studio Code, Eclypse, WebStorm...)
    • Version Control Systems (Git, Mercurial, SVN, TFS...)
  • Build - Maven, MSBuild, Gradle, Gulp, Webpack...
  • Unit Tests - JUnit, NUnit...
  • Package Management - npm, bower, nuget...
  • Staging Deployment -Your cloud APIs, scripts, Puppet, Chef, Docker, Vagrant...
  • Deployment Tests - Often test scripts
  • Production Deployment - Same as Staging Deployment
  • Monitor - Your cloud metrics, Cron job for canary tests...
  • Scaling - Your cloud scaling features

Orchestration Systems

  • Docker Swarm
  • Kubernetes
  • ECS
  • OpenStack
  • Azure Service Fabric
  • ...

Cloud hosting services

  • Amazon Web Services
    • Elastic Beanstalk
  • Microsoft Azure
    • App Service​
    • Cloud Service (Web Role, Worker Role)
  • Google Cloud Platform
    • App Engine
  • Heroku

Continuous integration Tools

  • Jenkins
  • Teamcity
  • Travis CI
  • Visual Studio Team Services (VSTS)
  • CircleCI
  • ...

Automating all your continuous integration, testing and development pipeline

Architecture

  • Microservices
  • Serverless services
    • AWS Lambda,
    • Azure Functions
    • Third parties 

 

Continuous integration

  • Code - Code development and review, version control, code merging
  • Build - Turning code and config files into libraries
  • Units Tests
  • Package Management - libraries versioning
  • Staging Deployment
  • Integration/Regression/Load tests
  • Production Deployment
  • Monitor - Application performance monitoring, canary tests, user experience monitoring
  • Scaling - Scale up/out of stateless and stateful services

What does it Mean

  • In IT, if you are not a coder, your job is probably redundant 
  • The 10x engineer is not a myth
  • Infrastructure/Operations has no power leverage anymore
  • Political wars increasing big companies' IT rigidity => Huge window of opportunity for startups to grow

CI/CD

Build Server

Code Repo

Build

Run unit tests

Clone

Run integration tests

https://my.service.com/

Swap

Destroy

https://my.service.com/

Webhook

Demo & Questions

DevOps in Practice

By Ambroise Couissin

DevOps in Practice

  • 141