DevOps and Microservices. Cristian Klein

Similar documents
From Continuous Integration To Continuous Delivery With Jenkins

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Con$nuous Integra$on Development Environment. Kovács Gábor

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Embracing Failure. Fault Injec,on and Service Resilience at Ne6lix. Josh Evans Director of Opera,ons Engineering, Ne6lix

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

UP! TO DOCKER PAAS. Ming

Orchestrating the Continuous Delivery Process

Jinkun Jang Samsung Electronics

The Road to Digital Transformation: Increase Agility Building and Managing Cloud Infrastructure. Albert Law Solution Architect Manager

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

DevOps Online Training

TM DevOps Use Case TechMinfy All Rights Reserved

Fixing the "It works on my machine!" Problem with Docker

INFRASTRUCTURE AS CODE

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Logging, Monitoring, and Alerting

DEVOPSIFYING NETWORK SECURITY. An AlgoSec Technical Whitepaper

Application Deployment

Teaching Elephants to Dance (and Fly!)

DEVOPS COURSE CONTENT

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

Kuber-what?! Learn about Kubernetes

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

DevOps and Continuous Delivery USE CASE

Agile CI/CD with Jenkins and/at ZeroStack. Kiran Bondalapati CTO, Co-Founder & Jenkins Admin ZeroStack, Inc. (

CLOUD WORKLOAD SECURITY

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

The Road to Istio: How IBM, Google and Lyft Joined Forces to Simplify Microservices

What is database continuous integration?

Strengthen and Scale security using DevSecOps

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Puppet Enterprise And Splunk PlaJorm: Improve Your ApplicaGon Delivery Velocity

How can you implement this through a script that a scheduling daemon runs daily on the application servers?

Testing your puppet code

Continuous Delivery for Cloud Native Applications

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

Puppet on the AWS Cloud

Implementing ATDD: A Practical Approach

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

An Architecture for Self-Organizing Continuous Delivery Pipelines

I keep hearing about DevOps What is it?

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer

DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair

Pipeline as Code for your IAC. Kris

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

Elizabeth Lawler CEO & Co-Founder Conjur,

Serverless Architecture meets Continuous Delivery. Andreas

CLOUD SERVICES. Cloud Value Assessment.

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

devops with

Microservices on AWS. Matthias Jung, Solutions Architect AWS

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

Continuous Delivery of your infrastructure. Christophe

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server

Enabling Developers with Open Source Nicholas Parks, Cloud Architect, Kenzan

InterSystems Cloud Manager & Containers for InterSystems Technologies. Luca Ravazzolo Product Manager

Roles. Ecosystem Flow of Information between Roles Accountability

DevOps Agility in the Evolving Cloud Services Landscape

Deployment Patterns using Docker and Chef

PEACHTECH PEACH API SECURITY AUTOMATING API SECURITY TESTING. Peach.tech

How Can Testing Teams Play a Key Role in DevOps Adoption?

BUILDING A GPU-FOCUSED CI SOLUTION

DevOps Technologies. for Deployment

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

CLOUD-NATIVE APPLICATION DEVELOPMENT/ARCHITECTURE

Creating a Hybrid Gateway for API Traffic. Ed Julson API Platform Product Marketing TIBCO Software

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

DevOps Course Content

FROM VSTS TO AZURE DEVOPS

Put Security Into Your DevOps NOW. Or Prepare for the Flood Matthew Fisher Solution Architect, Fortify Federal 08MAR2018

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

Continuous Integration and Delivery with Spinnaker

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Nailing Serverless Application Development

Continuous Integration and Deployment (CI/CD)

The four forces of Cloud Native

Puppet and RBS Presents: Driving Digital Transformation in the Real World with VMware vrealize

How to Keep UP Through Digital Transformation with Next-Generation App Development

Vagrant and Ansible. Two so2ware tools to create and manage your custom VMs

Git Basi, workflow e concetti avanzati (pt2)

A DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES. Chris Van Tuin Chief Technologist, West

Aspirin as a Service: Using the Cloud to Cure Security Headaches

Strategies for Selecting the Right Open Source Framework for Cross-Browser Testing

l e a n Lean Software Development software development Faster Better Cheaper

CONTINUOUS INTEGRATION CONTINUOUS DELIVERY

DevOps in an ITIL Shop. Not just compatible; DevOps achieves ITIL s promise.

DevOps Tooling from AWS

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Direc>ons in Distributed Compu>ng

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

Red Hat OpenShift Roadmap Q4 CY16 and H1 CY17 Releases. Lutz Lange Solution

ContainerOps - DevOps Orchestration. Quanyi Ma

Deploying and Operating Cloud Native.NET apps

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Transcription:

DevOps and Microservices Cristian Klein

Agenda Mo*va*on DevOps: Defini*on, Concepts Star as Code DevOps: Caveats Microservices 2017-05-11 DevOps and Microservices 2

Why DevOps from 50,000 feat 2017-05-11 DevOps and Microservices 3

Google Search Example Business Hypothesis: Users want 30 results instead of 10 Build (A/B tes*ng): Users A served 30 results Users B served 10 results Measure amount spent on Google Search Measure: Users A spent less 3me on Google Search. Learn: Displaying 30 results takes longer than 10 results Display only 10 results OR make 30 results faster 2017-05-11 DevOps and Microservices 4

Some Ideas of Lean Startup Faster learning => more compe33ve Discover requirements Instead of deba*ng them 2017-05-11 DevOps and Microservices 5

2017-05-11 DevOps and Microservices 6

2017-05-11 DevOps and Microservices 7

Misalignment of Incen*ves 2017-05-11 DevOps and Microservices 8

Wall of Confusion 2017-05-11 DevOps and Microservices 9

2017-05-11 DevOps and Microservices 10

Agenda Mo*va*on DevOps: Defini3on, Concepts Star as Code DevOps: Caveats Microservices 2017-05-11 DevOps and Microservices 11

DevOps: Defini*on "DevOps" is an emerging set of principles, methods and prac1ces for communica3on, collabora3on and integra3on between so@ware development (applica*on/sozware engineering) and IT opera3ons (systems administra*on/infrastructure) professionals. 2017-05-11 DevOps and Microservices 12

DevOps Pipeline 2017-05-11 DevOps and Microservices 13

DevOps (cont.) Acknowledges the interdependence of sozware development and IT opera*ons Aims to help organiza*ons rapidly produce quality sozware products and services Responds to the demands of stakeholders for an increased rate of produc*on releases Supports the use of agile development processes Aligns Dev and Ops incen*ves 2017-05-11 DevOps and Microservices 14

Down*me Budget Example Google s Site Reliability Engineers: SRE is what happens when you ask a sozware engineer to design an opera3ons team. A is allowed to be down 15 minutes in a month. Down*me budget spend => no more new features Devs are incen*vized to: invest more in tes3ng, resilience, automa3on,... Ops: get paged less o@en only for truly new issues 2017-05-11 DevOps and Microservices 15

State of DevOps Report Annual report by Puppet Survey from 2016 Companies that uses DevOps vs they who don t. Lead 1me - 1me between commit and produc1on 16

2017-05-11 DevOps and Microservices 17

Apart from that? Worker 2.2 *mes more likely to recommend their organiza*on to a friend as a good workplace 18

Agenda Mo*va*on DevOps: Defini*on, Concepts Star as Code Micro-services 2017-05-11 DevOps and Microservices 19

Pipeline as Code Infrastructure as Code Configura3on as Code Star as Code 20

Lessons Learned from 597 outages 2009-2015 Gunawi, 2017-05-11 Haryadi S., et al. "Why Does the Cloud DevOps Stop and Computing? Microservices Lessons from Hundreds of Service Outages. 21 Proceedings of the Seventh ACM Symposium on Cloud Computing. ACM, 2016.

Mo*va*on Many DevOps tasks are: Dull Error-prone Stressful Time-consuming Such as: Server cra@ing SoZware configura3on Deploying code Solu*on: Automate! 2017-05-11 DevOps and Microservices 22

Why as code? Code is: human readable machine executable Can be: versioned audited commented tested scaled (configure 10,000 servers) 2017-05-11 DevOps and Microservices 23

Playbooks instead of Tribal Knowledge 2017-05-11 DevOps and Microservices 24

Approaches to as code Impera*ve (how?) Copy this file Install this package Declara*ve (what?) Ensure this file is up-to-date Ensure this package is installed and up-to-date Most tools offer both 2017-05-11 DevOps and Microservices 25

Pipeline as Code: Jenkins stage('checkout'){ checkout scm } stage('deploy'){ echo 'Push to Repo' sh './dockerpushtorepo.sh' stage('test'){ env.node_env = "test } sh 'ssh deploy@xxxxx.com dockerrun.sh } sh 'node -v' sh 'npm prune' sh 'npm install sh 'npm test stage('build Docker'){ sh './dockerbuild.sh } stage('cleanup'){ sh 'npm prune' } sh 'rm node_modules -rf' mail body: 'project build successful', from: 'xxxx@yyyyy.com', replyto: 'xxxx@yyyy.com', subject: build successful to: 'yyyyy@yyyy.com 2017-05-11 DevOps and Microservices 26

Pipeline as Code: Travis sudo: required language: ruby services: - docker before_install: - docker pull carlad/sinatra - docker run -d -p 127.0.0.1:80:4567 carlad/sinatra /bin/sh -c "cd /root/sinatra; bundle exec foreman start;" - docker ps -a - docker run carlad/sinatra /bin/sh -c "cd /root/sinatra; bundle exec rake test" script: - bundle exec rake test 2017-05-11 DevOps and Microservices 27

Configura*on Management as Code Describe systems once Predictable results Handle differences in environments Dev vs. staging vs. produc*on No Snowflakes! Server configura*on *me Seconds 2017-05-11 DevOps and Microservices 28

Infrastructure as Code: Pets vs. Cakle 2017-05-11 DevOps and Microservices 29

IaC and CMaC Tools Declara*ve configura*on language Plain-text configura*on in source control Fully programma*c, no manual interac*ons 30 2017-05-11 DevOps and Microservices 30

Puppet overview 1. Describe what you want to be configured 2. (Don t care how it is done) 3. Describe dependencies file package service types win *nix deb rpm POSIX win providers Puppet DSL 2017-05-11 DevOps and Microservices 31

Puppet example: Apache server Manifests Resources Name Attributes and values Ordering and dependencies package { "httpd": name => "httpd.x86_64", ensure => "present", } file { "http.conf": path => "/etc/httpd/conf/httpd.conf", owner => root, group => root, mode => 0644, source => "puppet:///modules/apache/httpd.conf", require => Package["httpd"], } service { "httpd": ensure => running, enable => true, subscribe => File["http.conf"], } 2017-05-11 DevOps and Microservices 32

Puppet building blocks Manifests Variables and (custom) facts Node declarations Classes and Modules Defined resource types Templates Console if $operatingsystem == 'CentOS' node 'www1.example.com' { include common include apache } node 'db1.example.com' { include common include mysql } file { "http.conf": path => "/etc/httpd/conf/httpd.conf", owner => 'root', group => 'root', mode => '0644', content => template('config/httpd.erb'), } 2017-05-11 DevOps and Microservices 33

A Puppet run 1. Retrieve plugins from server 2. Get facts on client and send them to master 3. Compile catalog and send it to the client 4. Apply catalog on client 5. Process report 2017-05-11 DevOps and Microservices 34

Challenge: Idempotence Applying the same playbook twice MUST give the same results Hummer, Waldemar, et al. "Testing idempotence for infrastructure as code. Distributed Systems Platforms and Open Distributed Processing. 2013. 2017-05-11 DevOps and Microservices 35

DevOps: Dangers To err is human, but to err and deploy it to all systems simultaneously is DevOps A. CockcroZ, prev. Neolix Architect 2014 Gmail outage: "The incorrect configura*on was sent to live services over the next 15 minutes, caused users requests for their data to be ignored, and those services, in turn, generated errors. 2016 Amazon WS S3 outage: Unfortunately, one of the inputs to the command was entered incorrectly and a larger set of servers was removed than intended. Don t roll out system-wide un*l it works 2017-05-11 DevOps and Microservices 36

2017-05-11 DevOps and Microservices 37

Con*nuous Monitoring 2017-05-11 DevOps and Microservices 38

Agenda Mo*va*on DevOps: Defini*on, Concepts Star as Code Microservices 2017-05-11 DevOps and Microservices 39

Microservices (One) Defini*on: Loosely coupled service oriented architectures with bounded contexts Loosely coupled: asynchronous service updates Bounded context: Limited knowledge of surrounding services 2017-05-11 DevOps and Microservices 40

Microservices: More about coupling Organiza3onal coupling Centralized database schemes Enterprise service bus centralized messaging 2017-05-11 DevOps and Microservices 41

Microservices: Conway s Law Conway s law (1967): Any organiza*on that designs a system (defined broadly) will produce a design whose structure is a copy of the organiza*on s communica*on structure 2017-05-11 DevOps and Microservices 42

Microservices: Avoiding Organiza*onal Coupling 2017-05-11 DevOps and Microservices 43

Microservices: Data Coupling 2017-05-11 DevOps and Microservices 44

Microservices: Proper*es Polyglot Mul*ple languages, plaoorms, etc. Immutable code pakern Keep old code / exis*ng service Deploy new version Eventually, re-route traffic A/B tests, feature flags, version rou*ng Canary tes*ng Try out new features with developers and testers only Add a few real users, measure improvements Make default for all users, but keep old version 2017-05-11 DevOps and Microservices 45

Microservices: Benefits Small, easy to understand code base Easy to scale (next slide) Easy to throw away Easy to deploy Easy to use different tools (polyglot) Resilient systems 2017-05-11 DevOps and Microservices 46

Microservices: Scaling 2017-05-11 DevOps and Microservices 47

Microservices: Drawbacks Higher communica*on overhead Nanoservices an*-pakern Integra3on tes*ng more complicated Moving responsibility more difficult Needs communica*on between different teams 2017-05-11 DevOps and Microservices 48

Conclusions Need to deploy code rapidly and reliably DevOps bridges the gap between development and opera*ons Automa3on key to success Many tools/services out there to help Microservices: preferred architecture for DevOps Hot research area! Make beker use of opera3ons feedback during development 2017-05-11 DevOps and Microservices 49