introduction to devops. continuous integration by myroslav dmytrus

Post on 21-Jan-2017

58 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to DevOps. Continuous Integration

Myroslav Dmytrus.Net developer at Binary Studio

Terms

Continuous integration

Continuous delivery /continuous deployment

DevOps

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

Review

User 1

User 2

Commit

Commit

Repository CI ServerIntegration Build

Machine

FeedbackMechanism

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

● 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

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

Tools

Jenkins

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

Continuous Integration

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

Continuous Delivery Vs. Continuous Deployment

Self-hosting / On premise

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

image containerrun

OS

Software

Application

Docker file

build

DevOps

Development Operations

SalesMarketing

Q/AConsulting

ManagementLeadershipCustomers

DevOps

DevOps

DevOps: the three stage conversation

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

top related