Continuous Delivery concept overview. Continuous Integration Systems. DevOps role.
Continuous Integration, Continuous Quality, Continuous Delivery
-
Upload
wakaleo-consulting -
Category
Technology
-
view
9.458 -
download
1
Transcript of Continuous Integration, Continuous Quality, Continuous Delivery
Training and Consulting Services in
TDD, BDD and ATDD
Automated Acceptance and Regression Testing
Build Automation and Continuous Delivery
Clean Coding Practices
4
Continuous DeliveryGetting value to the business.
Fast.Often.
Continuous Delivery: everyone wants it
5
But Continuous Delivery is impossible without Continuous Quality
Quality must be built in to the process
“We are going to build an online classifieds website”
Successful projects start with a shared vision
You define goals to achieve your vision
“Let’s increase advertising revenue by letting sellers post their classified ads
“Let’s get more sales for our advertisers by making the ads easier to find online.”
Goals that will deliver business value
Features help deliver these goals
“Let’s get more sales for our advertisers by making the ads easier to find online.”
Notify potential buyers about new itemsIn order to increase sales of advertised articlesAs a sellerI want previous buyers to know about new items that they might be interested in buying
Search for online adsIn order to increase sales of advertised articlesAs a sellerI want buyers to be able to easily find ads for articles they want to buy
We use examples and stories to explore the features
“Searching by category”
Search for online ads
“Searching by keyword and category”
“Searching by keyword and location”
“Filter ads by price”
We use examples and stories to explore the features
Searching by keyword and location
Search for online ads
Given Sally wants to buy a puppy for her son
When she looks for ads in the ‘Pets and Animals’ category containing
the word ‘puppy’ in New South Wales
Then she should obtain a list of ads for puppies in New South Wales.
Acceptance Criteria illustrate and validate the stories
We automate the acceptance criteria
Scenario: Searching by keyword and location
Given Sally wants to buy a puppy for her son When she looks for ads in the ‘Pets and Animals’ category containing the word ‘puppy’ in New South WalesThen she should obtain a list of ads for puppies in New South Wales.
search_by_keyword_and_location.story
And we implement the acceptance criteria
search_by_keyword_and_location.story
Scenario: Searching by keyword and location
Given Sally wants to buy a puppy for her son When she looks for ads in the ‘Pets and Animals’ category containing the word ‘puppy’ in New South WalesThen she should obtain a list of ads for puppies in New South Wales.
We can now execute our automated acceptance tests
“Searching by keyword and location” is now a pending test
...and implement the application code for that feature
When it is implemented, it will be displayed as a passing test
...and implement the application code for that feature
And the corresponding feature is now partially completed
Jenkins - it’s how we automate stuff, boss.
Compile and Test
Quality Gateways
Release Candidates
Reporting and Documentation
Automated Deployment
Continuous Delivery
A simple build pipeline
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Each step is a quality gateway
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Build and initial tests
Fail fastLet people knowNever ignore a broken build
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Build and initial tests
Fail fastLet people knowNever ignore a broken build
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Build and initial tests
Fail fastLet people knowNever ignore a broken build
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Build and initial tests
Fail fastLet people knowNever ignore a broken build
Instant Messaging PluginEmail-ext Plugin
Hudson Sounds Plugin...
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Acceptance Tests
Progress reportsLiving DocumentationHelp for testers
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Acceptance Tests
Progress reportsLiving DocumentationHelp for testersMake them fast
Distributed buildsSelenium Grid
SauceLabs...
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Acceptance Tests
Progress reportsLiving DocumentationHelp for testersMake them public
NotificationsHTML Publisher Plugin
...
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Acceptance Tests
Progress reportsLiving DocumentationHelp for testers
HTML Publisher Plugin
Make them public
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Checking Code Quality
If a metric matters, fail the buildProactive Code QualityComplements Sonar
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Checking Code Quality
If a metric matters, fail the buildProactive Code QualityComplements Sonar
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Checking Code Quality
If a metric matters, fail the buildProactive Code QualityComplements Sonar
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Checking Code Quality
If a metric matters, fail the buildProactive Code QualityComplements Sonar
Enforcing code quality
Cobertura PluginCheckstyle PluginFindBugs Plugin
...
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Generating a release candidate
Build a release candidate earlyReuse, don’t rebuild
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Generating a release candidate
Build a release candidate earlyReuse, don’t rebuild
Choose a release strategy
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Generating a release candidate
SCM server
SCM commit
SNAPSHOT
1.0.1
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Generating a release candidate
SCM server
SCM commit
SNAPSHOT
1.0.1
What about maven?
Generating a release candidate
What about maven?Strategy 1 : The Maven Release Plugin
but not as we know it...
1.0.65
mvn release
1.0.0-SNAPSHOT
Generating a release candidate
What about maven?Strategy 2 : Just set the version
1.0.65
mvn versions:set
1.0.0-SNAPSHOT
mvn install
Artifactory PluginNexus Plugin
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Generating a release candidate
Build a release candidate earlyReuse, don’t rebuild
Choose an archiving strategy
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Generating a release candidate
Build a release candidate earlyReuse, don’t rebuild
Copy Artifacts PluginArtifactory Plugin
Nexus Plugin...
1.0.1
maven
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Deployment
Automate your deploymentsReuse deployment processesDeploy your environments too
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Automated Deployment
Automate your deploymentsReuse deployment processesDeploy your environments too
Deployer PluginSSH Plugin
...
Visualizing the build process
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
Visualizing the build process
Build and Fast Tests
Slower Tests
Acceptance Tests
Code Quality Metrics
Release Candidate
Deploy to Test
Deploy to UAT
Deploy to ProducLon
1.0.1
PROD
UAT
TEST
John Ferguson SmartEmail: [email protected]: hGp://www.wakaleo.com
TwiGer: wakaleo
どうもありがとうございまし
Thank You