ZQ410 Unit 1 Transcript: Designing Software Deployment and Deploying Applications
ZQ410 Unit 1 Transcript: Designing Software Deployment and Deploying Applications
ZQ410 Unit 1 Transcript: Designing Software Deployment and Deploying Applications
Slide 1
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
IBM UrbanCode Deploy is a deployment automation tool that standardizes and simplifies the
process of deploying software components to each environment in the development cycle. In this
unit, you learn about typical deployment problems and key deployment elements and concepts.
Slide 2
Unit objectives
▪ Describe typical deployment problems
▪ Explain the benefits of a DevOps culture
▪ Define model-driven deployment
▪ Define key concepts and terms
▪ Describe the workflow for a basic project
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Slide 3
Topics
• Accelerating software delivery and improving quality with IBM DevOps
• Defining key concepts and workflow in IBM UrbanCode Deploy
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Slide 4
DEPLOYMENTS
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Applications do not need to go through a set number of environments, but these are typical:
• Development (DEV): In the Development environment, developers build and deploy code in
a test lab, and the development team tests the application at the most basic level. When the
application meets certain criteria for advancement, it moves to the next environment.
• System Integration Testing (SIT): In the System Integration Testing environment, the
application is tested to ensure that it works with existing applications and systems. When the
application meets the criteria of this environment, it’s deployed to the next environment.
• User Acceptance Testing (UAT): In the User Acceptance Testing environment, the
application is tested to ensure that it provides the required features for end users. This
environment usually is production-like. When the application passes these requirements, it’s
promoted to the final environment.
• Production (PROD): In the Production environment, the application is made available to
users. Feedback is captured by monitoring the application’s availability and functionality.
Any updates or patches are introduced.
Slide 5
Slow deployment
Costly, error prone manual to development and test Upgrade risks arise from
processes to deliver software environments leave teams managing multiple application
throughout an enterprise waiting and unproductive configurations and versions
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Deployment problems can cause an organization both financial loss and damage to its reputation.
A few examples include the following cases:
• Knight Capital loses $440 million because of a misconfigured release (in only 45 minutes).
• New Zealand’s biggest phone company, Telecom, paid $2.7 million to approximately 47,000
customers who were overcharged after a software glitch.
• A bad software upgrade at RBS Bank left millions unable to access money for 4 days.
Slide 6
DEV OPs
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Test and operations teams had increased pressures to keep up with the increased loads but
continued to use traditional tools.
Slide 7
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
DevOps came into the picture to alleviate some of the pressures between development and
operations teams. DevOps is when operations and development engineers participate together in
the entire software development lifecycle, from design through the development process to
production support. It eliminates the barriers between developing software and production. IBM
DevOps supports the philosophy of lean and agile principles but also focuses on three aspects in
software delivery: continuous testing, continuous delivery, and continuous monitoring.
• Continuous testing means testing earlier and continuously across the life cycle to achieve
continuous feedback on quality. This process is also known as shift-left testing, which
stresses integrating development and testing activities to ensure quality is built-in as early in
the life cycle as possible.
• Continuous delivery is the process of automating the deployment of the software to all of
the environments to achieve consistent results. Using the same automated process with
each environment improves efficiency and reduces the risk introduced by inconsistent
processes.
• Continuous monitoring involves gathering feedback from monitoring data. This data
comes from the servers running the application; from development, QA, and production; or
from metrics tools embedded in the application that capture user actions.
Slide 8
IBM DevOps strategies results in a smooth flow of the delivery pipeline from
development to production
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Applying these DevOps strategies results in the smooth flow of smaller, frequent releases.
Slide 9
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
DevOps works for a variety of industries. Common themes include cutting deployment time and
increasing release frequency.
Slide 10
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Your delivery pipeline includes everything from development to production. Deployment is at the
heart of the DevOps architecture. IBM UrbanCode Deploy is part of the DevOps story. It is a tool
that supports the philosophy and facilitates continuous deployment.
For more information on the IBM UrbanCode Release course, see https://www-
03.ibm.com/services/learning/ites.wss/zz-
en?pageType=course_description&cc=&courseCode=CQ450G.
For more information on the IBM UrbanCode Deploy blueprint designer course, see https://www-
03.ibm.com/services/learning/ites.wss/zz-
en?pageType=course_description&cc=&courseCode=CQ401G.
10
Slide 11
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
By using an environment management and deployment tool like IBM UrbanCode Deploy, you can
design, deploy, and reuse environments quickly and help accelerate the delivery pipeline. IBM
UrbanCode Deploy is an automation tool that manages the software components that get
deployed, the middleware components and configurations that need to be updated, the database
components that need to be changed, and the configuration changes to the environments to
which these components are to be deployed. These tools also capture and automate the
processes to carry out these deployments and configuration changes.
11
Slide 12
Topics
• Accelerating software delivery and improving quality with IBM DevOps
• Defining the key concepts and workflow in IBM UrbanCode Deploy
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
12
Slide 13
Application
Middleware Configuration
Components,
Design Middleware Deploy applications,
and environments
OS Configuration
Hardware
Tool configuration,
System security, and settings
Admins
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
IBM UrbanCode Deploy allows for the separation of responsibilities between development and
operations. Typically, application developers create and deliver code, deploy code to the
development environment for unit testing, and fix defects.
Automation engineers author and maintain components and application processes, create
templates, define the deployment environments, and promote versions to their next environment
(e.g. SIT, QA, PERF, PROD).
System administrators set up and configure the tool for use; ensure that the tools are up to date;
and set up and maintain the security of the system.
13
Slide 14
What:
composite
applications Model-driven
How:
deployment
Deployment reusable
Automation processes
Where:
environment
management
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
IBM UrbanCode Deploy focuses on model-driven deployment. You model a plan to run software
deployments, and then you reuse these processes to create automation.
An application brings together the pieces of your deployment and includes three different parts.
First, it houses the components that you want to deploy. Second, it contains the application
process that conducts deployment flow. And third, it contains information about the environment
that you want to deploy to. This application model answers the questions of what gets deployed
(the components), how it gets deployed (the processes), and where it gets deployed (the
environments).
14
Slide 15
What
Binaries
MyWebApp
Database Schema
Configuration
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Components are containers for deployable artifacts and identify the “what” of a deployment. This
includes any files, images, and databases that are associated with a software project.
15
Slide 16
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Processes describe the “how” of a deployment and perform actions on components. The
component process includes instructions, or steps, that operate on a component. The application
process determines what components are deployed together and in what order.
16
Slide 17
Single DB DB
Server Server Server Load
Balancer
DB DB
DB
Web Web Web
.war Server Server 1 Server 2
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
The “where” part of the model refers to the target’s hosts and environments. You can define
where components are deployed and capture configuration settings for each deployment
environment for an application.
17
Slide 18
Component
Resource Resource group
Application
Agent Plug-in
process
Component
Plug-in step
process
How
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
What
Application: A logical grouping of artifacts with self-contained definitions of automation and target
environment
Component: Files or configuration to be deployed, including the steps to deploy them
Version: A container with the actual deployment artifacts, which are typically produced by an
automated build
Snapshot: A group of component versions that guarantees repeatability and reduces user error
How
Plugin: Provides parameterized steps to perform automation; provided by IBM UrbanCode Deploy
or through integrations
Component process: Composes individual plugin steps to define an automated process for a
component
Application process: Composes individual steps to define an automated process for a component
Where
Agent: Represents the IBM UrbanCode Deploy agent software that is running on a server and is
installed on each server where commands must be executed
Resource: Represents a deployment target, such as a physical server, virtual machine, or
database
Resource group: Represents a logical collection of resources that enable collections of resources
to be easily reused
Environment: Combines resources into a single logical deployment target
The objects for modeling deployments fit into the categories of what, how, and where. You will
learn about each of these objects during this course.
18
Slide 19
The core installation of IBM UrbanCode Deploy includes a server, agents, and a
license server
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
In this course, you will access the server through web browsers, but you can also use REST API
or the command-line client. Agents can be installed on cloud environments, virtual machines,
containers, or physical systems.
19
Slide 20
Create
Run the components
process and add
versions
7 1
Create an Add component
application processes to
process 6 2 components
5 3
Create Create an
environments application
and add base
4 and add
resources components
Create base
resources
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
Modeling software deployment in IBM UrbanCode Deploy includes configuring components and
component processes and then adding those components to applications. Then, you use
processes to deploy the components to environments.
A simple workflow might start with creating components and the component processes. Next, you
might add those components to an application and create resources and environments. Finally,
you’ll create an application process and then run that deployment.
While this slide demonstrates a basic workflow, you can create the pieces of your project in a
different order. For instance, you could create your base resources first.
20
Slide 21
Unit summary
• This unit covered typical deployment problems, the benefits of a DevOps culture, and key concepts
and terms in IBM UrbanCode Deploy
• A deployment is the promotion of an application from one environment to the next
• IBM UrbanCode Deploy supports the principles and practices of DevOps
• The goals of DevOps are continuous testing, continuous delivery, and continuous monitoring
• IBM UrbanCode Deploy focuses on model-driven deployment
• Application objects fit into the what, where, and how of the deployment model
Unit 1: Designing software deployment and deploying applications © Copyright IBM Corporation 2017
This unit covered some typical deployment problems, the benefits of a DevOps Culture, and key
concepts and terms in IBM UrbanCode Deploy.
An important concept is that a deployment is the promotion of an application from one
environment to the next.
IBM UrbanCode Deploy support the principles and practices of DevOps, and DevOps has goals
of continuous testing, continuous delivery, and continuous monitoring.
IBM UrbanCode Deploy uses model-driven deploy, where application objects fit into the what,
where, and how of deployment.
21