introduction to devops. continuous integration by myroslav dmytrus
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