Continuous deployment best practices, methods and tools.

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Configuration management
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
© 2010 Wipro Ltd - Confidential SGSN Automation Testing Using TTCN3 Authors: Jyothi Gavara Nikhil Rahul Ekka.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Automating Drupal Deployment Dominique De Cooman.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
This chapter is extracted from Sommerville’s slides. Text book chapter
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
1 ©equinox limited 2005 What the hell is Configuration Management anyway? Martin White Equinox Software Architects August 2005.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Continuous Processes By Kelvin Zhu CSCI577B Spring 2013.
Software Quality Assurance
In the Labs… X-Bot 2003 by Overtech Technologies.
Isolated Database Environments Kevin Howell February 2014.
Rob Davidson, Partner Technology Specialist Microsoft Management Servers: Using management to stay secure.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
CLM Case Study An investigation of deployment options for IBM Rational Team Concert in a ClearCase/ClearQuest environment July 18, 2011 Michael Gormley.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
An Introduction to Git David Johndrow COMP 490 – Senior Design & Development 2/11/16.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
2014 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 2014 #GHC
Developing SQL/Server database in Visual Studio Introducing SQL /Server Data Tools Peter Lu.Net Practices Director Principle Architect Nexient March 19.
IBM Software Group ® Jazz Team Build – Part 1 Overview Jonathan.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
SG scmGalaxy Author: KaliPrasad / Rajesh Kumar
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Anjana & Shankar September,2010 Introduction to Programming Tools.
Slide 1. What's New in NetBeans IDE 7.1 Name Title.
Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Containers as a Service with Docker to Extend an Open Platform
Microsoft Azure Deployment Planning Services
Fundamentals Sunny Sharma Microsoft
Software Configuration Management CSC-532
SA Capstone Requirements and Design Week 10 SYST Winter 2016
Continuous Delivery- Complete Guide
Constructing Deploying and Maintaining Enterprise Systems
Git and GitHub primer.
Infrastructure Orchestration to Optimize Testing
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Get the Most Out of GoAnywhere: Agents
Selenium Automation Framework
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Building a Continuous Integration Pipeline using VSTS
Advanced Integration and Deployment Techniques
DevOps Deep Dive DevOps Deep Dive What you will learn
YeahMobi CD Practice based on Container -- openstack meetup
Simplified Development Toolkit
11/29/2018 2:52 AM MDC317A Continuous Delivery - The Agile End to End Story for Developers & IT Pros! Morgan Webb Technical © 2013.
Automated Testing and Integration with CI Tool
Microsoft Virtual Academy
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Dynamic Process for Source Control
JENKINS TIPS Ideas for making your life with Jenkins easier
Real World Scrum with TFS & VSTS / Azure DevOps
Continuous Integration Tool
CI/CD Workflow and Event Pages
Configuration management suite
Erik Vollebekk Application Architect
Continuous Integration and Delivery (CI/CD) in Azure Data Factory
SSDT, Docker, and (Azure) DevOps
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Presentation transcript:

Continuous deployment best practices, methods and tools. Software Testing and Configuration Management Continuous deployment best practices, methods and tools. Giorgos Mitropoulos

Definition Continuous Deployment (CD) is an emerging software development process that aims to immediately deploy software to customers as soon as new code is developed.

Objective CD is used by big organisations such as Facebook, Microsoft, and IBM which successfully implement and use the process, and can result in a number of benefits for organisations, such as: new business opportunities, reduced risk for each release, and prevent development of wasted software.

Schematically The schema illustrates a logical flow diagram for an example software project scenario involving a continuous deployment system.

How we do it?

Development workflow Continuous deployment implies a clearer development process. We need to know what is going out when we release, not a dump of the current state. Release by feature.

Development workflow 1 - Track requests 2 - Branch 3 - Continuously test 4 - Pull request 5 - Deploy (staging) 6 - Promote

Track requests The team decides what needs to change in the system, or what new feature should be included.

Branch They start work on the new feature as an isolated branch. At the same time the master branch stays stable and untouchable.

Continuously test After and while developing the code, the new branch gets continuously tested.

Pull request When the new part is ready, human judgement is needed to evaluate it and decide if it should be updated to the master branch or not.

Deploy and promote If the pull request gets accepted, the procedure starts for the new feature to be updated to the system. Final step is the “Last mile” which is the time for the uploading of the new part.

Tools

Tools There are many tools that help us with continuous deployment and do a lot of work for us. Which tools to use as part of the continuous deployment flow depends on individual preference and the specifics of a project. Some of the most famous are Bamboo, Jenkins, and Docker.

Bamboo Bamboo is a continuous integration server from Atlassian. It is used to build, test and deploy applications automatically as per requirements. It supports builds in a number of programming languages using various build tools and can also integrate with a large number of software for a variety of purposes. Bamboo is free for open-source projects. Commercial organizations are charged based on the number of build agents needed.

Jenkins Jenkins is an open source automation server written in Java. It helps to automate the non-human part of the whole software development process, with now common things like continuous integration, but by further empowering teams to implement the technical part of a Continuous Delivery. It is a server-based system running in a servlet container such as Apache Tomcat. It supports SCM tools including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC, and can execute Apache Ant and Apache Maven based projects as well as arbitrary shell scripts and Windows batch commands. Jenkins is free software.

Docker Docker is an open-source project that automates the deployment of Linux applications inside software containers. Docker provides an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines.

In conclusion... Continuous deployment is a modern process of deploying software anytime, used by some of the most important companies. In order to be done succesfully, there must be clear motivation according to its usage, branching and affective workflow, and cooperative tools and people.

Thank you!