Continuous Delivery & DevOps

Start Date: 11/05/2018

Course Type: Common Course

Course Link: https://www.coursera.org/learn/uva-darden-continous-delivery-devops

Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.

About Course

Amazon famously delivers new code every 11.6 seconds. Just a few years ago, this was unthinkable: many ‘cutting edge’ firms would release software quarterly. When it comes to digital innovation, velocity is critical and many would say it’s the most reliable determinant of success. Bringing an organization to the state of the art (or even functional capability) in this area requires strong work in a combination of disciplines and a combination of both technical and managerial skills. There is no single cookie-cutter approach for achieving this capability. Much like agile, the right focus and formulation depends a lot on the facts and circumstances of the team. This course will provide you with the interdisciplinary skill set to cultivate a continuous deployment capability in your organization. After completing this course, you will be able to: 1. Diagnose a team’s delivery pipeline and bring forward prioritized recommendations to improve it 2. Explain the skill sets and roles involved in DevOps and how they contribute toward a continuous delivery capability 3. Review and deliver automation tests across the development stack 4. Explain the key jobs of system operations and how today’s leading techniques and tools apply to them 5. Explain how high-functioning teams use DevOps and related methods to reach a continuous delivery capability 6. Facilitate prioritized, iterative team progress on improving a delivery pipeline

Course Syllabus

If your job is to make software, you’re probably busy. Everyone needs new features yesterday. Stuff breaks. How do you make time to work smarter? How do you know where you should focus the time you do have for process improvement? In this week, we’ll cover the fundamentals of DevOps and continuous delivery with an emphasis on the relationship between required investment and benefits.

Deep Learning Specialization on Coursera

Course Introduction

Amazon famously delivers new code every 11.6 seconds. Just a few years ago, this was unthinkable: ma

Course Tag

Related Wiki Topic

Article Example
Continuous delivery Continuous delivery and DevOps are similar in their meanings and are often conflated, but they are two different concepts. DevOps has a broader scope, and centers around the cultural change, specifically the collaboration of the various teams involved in software delivery (developers, operations, quality assurance, management, etc.), as well as automating the processes in software delivery. Continuous delivery, on the other hand, is an approach to automate the delivery aspect, and focuses on bringing together different processes and executing them more quickly and more frequently. Thus, DevOps can be a product of continuous delivery, and CD flows directly into DevOps.
DevOps Continuous delivery and DevOps are similar in their meanings (and are, often, conflated), but they are two different concepts:
Continuous delivery Continuous delivery is sometimes confused with continuous deployment. Continuous deployment means that every change is automatically deployed to production. Continuous delivery means that the team ensures every change can be deployed to production but may choose not to do it, usually due to business reasons. In order to do continuous deployment one must be doing continuous delivery.
DevOps DevOps integration targets product delivery, continuous testing, quality testing, feature development, and maintenance releases in order to improve reliability and security and provide faster development and deployment cycles. Many of the ideas (and people) involved in DevOps came from the enterprise systems management and agile software development movements.
Continuous delivery Several benefits of continuous delivery have been reported.
DevOps One goal of DevOps is to establish an environment where releasing more reliable applications, faster and more frequently"," can occur. Release managers are beginning to utilize tools (such as application release automation and continuous integration tools) to help advance this goal—doing so through the continuous delivery approach.
DevOps Because DevOps is a cultural shift and collaboration (between development, operations and testing), there is no single "DevOps tool": it is rather a set (or "DevOps toolchain"), consisting of multiple tools. Generally, DevOps tools fit into one or more of these categories, which is reflective of key aspects of the software development and delivery process:
Continuous delivery Several strategies to overcome continuous delivery adoption challenges have been reported.
Continuous delivery Continuous delivery takes automation from source control all the way through production. There are various tools that help accomplish all or part of this process. These tools are part of the deployment pipeline which includes continuous delivery. The types of tools that execute various parts of the process include: continuous integration, application release automation, build automation, application lifecycle management.
DevOps The specific goals of DevOps span the entire delivery pipeline. They include improved deployment frequency, which can lead to:
DevOps Companies with very frequent releases may require a DevOps awareness or orientation program. For example, the company that operates the image hosting website Flickr developed a DevOps approach, to support a business requirement of ten deployments per day; this daily deployment cycle would be much higher at organizations producing multi-focus or multi-function applications. This is referred to as continuous deployment or continuous delivery and has been associated with the lean startup methodology. Working groups, professional associations and blogs have formed on the topic since 2009.
DevOps They have common end goals and are often used in conjunction, to achieve them. DevOps and continuous delivery share a background in agile methods and lean thinking: small and quick changes with focused value to the end customer. They are well communicated and collaborated internally, thus helping achieve quick time to market, with reduced risks.
Continuous delivery Continuous delivery is enabled through the deployment pipeline. The purpose of the deployment pipeline has three components: visibility, feedback, and continually deploy.
Continuous delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
Continuous delivery To practice continuous delivery effectively, software applications have to meet a set of Architecturally Significant Requirements (ASRs) such as deployability, modifiability, and testability. These ASRs require a high priority and cannot be traded off lightly anymore.
DevOps toolchain A DevOps toolchain is a set or combination of tools that aid in the delivery, development, and management of applications throughout the software development lifecycle, as coordinated by an organisation that uses DevOps practices.
DevOps Tools such as Docker (containerization), Jenkins (continuous integration), Puppet (Infrastructure as Code) and Vagrant (virtualization platform)—among many others—are often used and frequently referenced in DevOps tooling discussions.
DevOps Some articles in the DevOps literature assume, or recommend, significant participation in DevOps initiatives from outside an organization's IT department, e.g.: "DevOps is just the agile principle, taken to the full enterprise."
Parasoft Parasoft's various technologies are used for demonstrating industry or regulatory compliance and adopting Agile software development, DevOps, Continuous delivery, Continuous testing, and Test automation.
XebiaLabs XebiaLabs is a software company founded out of the information technology firm Xebia specializing in DevOps and continuous delivery tooling.