introduction to devops. continuous integration by myroslav dmytrus

27
Introduction to DevOps. Continuous Integration Myroslav Dmytrus .Net developer at Binary Studio

Upload: binary-studio

Post on 21-Jan-2017

55 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Introduction to DevOps. Continuous Integration

Myroslav Dmytrus.Net developer at Binary Studio

Page 2: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Terms

Continuous integration

Continuous delivery /continuous deployment

DevOps

Page 3: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

What is Continuous integration?● A development methodology

● Of daily developer integrations

● Verified by automated builds

● Every commit triggers a build− As soon as you have completed an independent functionality

− A full build on another, empty machine

Page 4: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Review

User 1

User 2

Commit

Commit

Repository CI ServerIntegration Build

Machine

FeedbackMechanism

Page 5: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Why use continuous integration

● Automate the build

● Make the build self testing

● Keep the build fast

● Fix Broken Builds Immediately

● Every Commit Should Build the Mainline on an Integration Machine

Page 6: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

● Maintain a Single Repository

● Everyone Commits To the Mainline Every Day

● Test in a clone of the production environment

● Make it Easy for Anyone to Get the Latest Executable

● Everyone can see what's happening

● Automate deployment

Page 7: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Self-testing build● Directly go from source to running build

− No manual copying

− No click on dialog boxes

− No configuration file editing

● Test with− Unit tests

− Functional tests (web tests)

− Performance tests

● Responsible persons should be notified when anything fails

Page 8: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 9: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Tools

Page 10: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Jenkins

Page 11: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 12: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 13: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 14: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 15: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Continuous Delivery● Continuous delivery/Continuous deployment

● Continuous, successful and repeatable methodology to deploying code

● Automated the steps of taking checked in code and making it run on production servers, used by customers

Page 16: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Continuous Integration

Page 17: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

8 Principles of Continuous Delivery

● The process for releasing/deploying software MUST be repeatable and reliable

● Automate everything

● If somethings difficult or painful, do it more often

● Keep everything in source control

● Done means “released”

● Build quality in

● Everybody has responsibility for the release process

● Improve continuously

Page 18: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Continuous Delivery Vs. Continuous Deployment

Page 19: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Self-hosting / On premise

Page 20: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Page 21: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Virtual machines docker

Server

Hypervisor

Host OS

kernel

bins/libs

app

kernel

bins/libs

app

Server

Host OS

bins/libs

app

bins/libs

app

VM

container

Page 22: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

image containerrun

OS

Software

Application

Docker file

build

Page 23: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

DevOps

Page 24: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

Development Operations

SalesMarketing

Q/AConsulting

ManagementLeadershipCustomers

DevOps

DevOps

Page 25: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

DevOps: the three stage conversation

Page 26: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus

List of DevOps Practices● Infrastructure as Code (IaC)

● Continuous Integration

● Automated Testing

● Continuous Deployment

● Release Management

● App Performance Monitoring

● Load Testing & Auto-Scale

● Automated Environment Deprovisioning

● Automated Recovery

● Feature Flags

Page 27: Introduction to DevOps. Continuous Integration by Myroslav Dmytrus