Continuous Integration for Beginners
-
Upload
yuece-celikel -
Category
Software
-
view
306 -
download
3
Transcript of Continuous Integration for Beginners
CONTINUOUS INTEGRATIONAND
CONTINUOUS DELIVERY
AGENDA
Extreme ProgrammingWhat is CI
PracticesSource Control ToolsBuild AutomationContinuous Delivery
2
Extreme Programming
Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, courage and respect. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.
3
Extreme Programming
4
What is Continuous Integration?
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
5
Continuous Integration Practices
Maintain a single source repositoryAutomate the buildMake your build self-testingEvery commit should build on an integration
machineKeep the build fastTest in a clone of production environmentEveryone can see what’s happeningAutomate deployment
6
Source Control Tools
7
Source Control Tools (Centralized vs Distributed)
8
Build Automation (Why?)
Early warning of broken/incompatible codeEarly warning of conflicting changesConstant availability of a "current" build for
testing, demo or release purposesHave history of builds and releases in order to
investigate issuesEliminate dependencies on key personnelSave time and money - because of the
reasons listed above
9
Build Automation Tools
10
11
Continuous Delivery
Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.
Martin Fowler
12
Continuous Delivery
Your software is deployable throughout its lifecycle
Your team prioritizes keeping the software deployable over working on new features
Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them
You can perform push-button deployments of any version of the software to any environment on demand
13
14
Extensive automation of all possible parts of the delivery process using a Deployment Pipeline
15
● Octopus Deploy, GoCD● Chef, Puppet, Ansible ● Docker● ZooKeeper, Chaos Monkey
Deployment Strategies
Blue-Green Deployment
16
Deployment Strategies
Canary ReleaseDark LaunchingPhoenix DeploymentEnvironment Promotion
17
18