ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.

Slides:



Advertisements
Similar presentations
Continuous integration, delivery and deployment Primož Gabrijelčič thedelphigeek.com Primož Gabrijelčič thedelphigeek.com.
Advertisements

Continuous Integration in a Java Environment. Developers / Time.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
Michael Lepine Agile2013 Recap. What is DevOps?
CONTINUOUS INTEGRATION AND TEST Stephen Oglesby - CSCI577b – April 2011.
High-performing organizations are deploying code 30 times more frequently, with 50 percent fewer failures than their lower-performing counterparts. 1 1.
USING CI & CD WITH MICROSOFT SQL SERVER Tim Giorgi Senior Software Developer Northwest Evaluation
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
1 CMPT 275 Software Engineering Revision Control.
© copyright 2014 BMC Software, Inc. DevOps consultant Niek Bartholomeus Going DevOps with BMC.
Improving Software Quality with Continuous Integration
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
 Definitions  Background/History  Continuous Delivery › How to practice Continuous Delivery  Continuous Integration  Continuous Integration Tools.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
CONTINUOUS DELIVERY / CONTINUOUS INTEGRATION. IDEAS -> SOLUTIONS Time.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx.
Continuous Delivery Ajey Gore Head of Technology ThoughtWorks India.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Continuous Integration and Testing
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Craig Berntson
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Sofia Event Center May 2014 Branimir Giurov C# MVP Solution Architect BulPros Consulting Continuous Integration of Sharepoint 2013 Solutions with.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Cruise Training Introduction of Continuous Integration.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
The Next Level Of Agile: DevOps and CD אוקטובר 2015.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
PRODUCT - ORGANIZATION - AGILE - LEAN CD - Agile on Steroids - (and what Jenkins got to do with it) Paul Bakker linkedin.com/paulgbakker github.com/p-bakker.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
ONAP VNF Requirements project Workflow
Automated Build and Test
Implementing Cloud-based Agile Team Development - Lessons Learned
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Process improvements for better quality
Implementing Cloud-based Agile Team Development - Lessons Learned
Open-O Integration Project Introduction
Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017.
Continuous Integration (CI)
Continuous Integration and Testing
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Enterprise Quality Roadmap
Version Control System
Continuous Integration
Continuous Integration For Databases
X in [Integration, Delivery, Deployment]
Get Good at DevOps: Feature Flag Deployments with ASP
YeahMobi CD Practice based on Container -- openstack meetup
Automated Testing and Integration with CI Tool
Real World Scrum with TFS & VSTS / Azure DevOps
Continuous Integration
Continuous Integration Tool
CONTINUOUS INTEGRATION –WHY WE DO IT?
Bringing more value out of automation testing
Node.js Test Automation using Oracle Developer Cloud- Simplified
Overview on CI Use JJB (Jenkins Job Builder) to manage Jenkins jobs.
Presentation transcript:

ALM Deployment Pipeline Implementation

Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version Control If It Hurts, Do It More Frequently, and Bring the Pain Forward Build Quality In Done Means Released Everybody Is Responsible for the Delivery Process Continuous Improvement Source: Martin Fowler Principles of Software Delivery

Why ? : Quality affect software costs

Teams integrate their work multiple times per day. Each integration is verified by an automated build Significantly reduces integration problems Develop cohesive software more rapidly Source: Martin Fowler Continuous Integration

Five Principles of Continuous Integration Environments based on stability Maintain a code repository Commit frequently and build every commit Make the build self-testing Store every build

Roadmap

Stability & Branching

Stability monitor - Sonar Jenkins builds the code SONAR runs after each build SONAR alert thresholds can 'break' the build Automate quality improvements

Code Quality Static code analysis Looks for common java bugs (Findbugs, PMD).NET - FXCop Check for code compliance (Checkstyle) Unit test analysis Measure coverage (Cobertura) Look for hotspots, areas of low testing and high complexity (SONAR)

Commit frequently and build every commit Performance, performance & performance 1.Build should be quick : Common problems.NET different solutions reference by dll (150 projects – 30 solutions) Build -Solution Creator mvn -T 1C clean install # 1 thread per cpu core” Java parallel build - “ mvn -T 1C clean install # 1 thread per cpu core” 20-50% speed improvement Build only what you need BeforeAfter Compilation Time8:00[mm:ss]4:00[mm:ss]

CI Daily vs. Nightly TestsDailyNightly Unit testFullFull System testsAcceptanceFull Rest testFullFull IntegrationXFull Auto Start 24 X 7 DB upgradeAcceptanceFull UI - SeleniumAcceptanceFull API performanceXFull LoadXFull InstallationXFull SecurityXFull

HP ALM CI Diagram

HP ALM on Jenkins

HP ALM on Jenkins coverage DB Engine OSWEB

Test Performance

Make the build self-testing

Pretested commits - Why Our CI was frequently red and that creates work. During a two-week period we measured that more than 80% of the builds resulted in failure. CI was red More than half of the failures followed a previous failure. That means that by a low estimation 30% of the commits were made while the CI was red.

Pretested commits - Analysis So lets just establish that everyone always runs the tests before publishing their work, right? - Tried it, doesn’t work. Well not? - Because it’s always tempting not to. Why? - Because it’s difficult to be sure whether it’s your bug or someone else’s. Why? - Because other developers commit untested code. Oops! Vicious circle. But that’s not the only reason, what’s more? - It takes time to run the tests and it blocks the development environment. Nasty. Any more? - It takes discipline to run all the tests before every “publication” of my code and discipline is a limited resource. Someone will run out of it and then it will get a lot more tempting for the others to skip it. Oops! vicious circle again.discipline is a limited resource

Pretested commits - how 1.He starts by checking out a new feature branch 2.he commits some modifications locally (since we’re using git) 3.he does some more work and commits again refs/heads/merge-requests/ / 4.then he pushes his branch to the team repository refs/heads/merge-requests/ / 5.Jenkins takes the branch merges it with the stable branch 6.if the code doesn’t merge cleanly nothing is done to the stable branch and the committer is notified by mail. 7.if any tests fail, then again nothing is done to the stable branch and the committer is notified by mail. 8.if the build succeeds, the stable branch is updated* with this latest stable version. (* : in git branches are like post-its that you can move around, so “updating the stable branch” just means “move to post-it named stable to the just tested commit”)

Bug hunt CheckIn 1CheckIn 2 …… CheckIn N Jenkins Break Jenkins

DevOps organization structure DevOps CI Build Management Automation Provisioning, Deployment, Integration Architect Total : 15 persons ~ 10% of whole Project resources

The book story CI Artifact Repository Source