DevOps
CSIZG514
Assignment
DevOps in my Organization
10th
November 2018
Premkumar Ekambaram (2017HT66098)
Table of Contents
Solution Overview............................................................................................................. 3
Baseline Solution............................................................................................................... 3
DevOps Solution deployed .........................................................................................................3
How did we adopt DevOps? .............................................................................................. 4
Culture Transformation..................................................................................................... 6
Design Considerations....................................................................................................... 7
Design Guidelines.......................................................................................................................7
Delivery methodologies and DevOps................................................................................. 8
Stages of DevOps adoption in the SDLC ............................................................................. 9
Continuous Business Planning ....................................................................................................9
Continuous Integration.............................................................................................................10
Continuous Deployment...........................................................................................................11
Continuous Testing...................................................................................................................12
Continuous Release Management ............................................................................................13
Continuous Monitoring.............................................................................................................14
Continuous User Feedback Optimization ..................................................................................14
Physical Topology............................................................................................................ 15
Hosting Topology......................................................................................................................15
Appendix A:..................................................................................................................... 17
Appendix B:..................................................................................................................... 18
Solution Overview
The term DevOps is a blend of processes, methods and tools that can be effectively adopted
by the development and operations teams in an IT organization. It is a modern way of
bringing development and operations together to achieve faster releases with better quality IT
solutions in the Production environments.
DevOps is also viewed as the capability of an Enterprise
for continuous software delivery that enables the
business to seize market opportunities and reduce time to
capture customer feedback and take improvement
actions.
Baseline Solution
This document describes the overview of the DevOps process and tools’ chain that is adopted
in my organization XYZ.
XYZ’s intention is to replace the current business support systems within the context of a
larger business transformation program to provide the business with the ability to improve
cost control, increase revenue, serve customers, and support new services and market
segments. For this purpose, XYZ has defined a reference BSS application architecture based
on a suite of best practices and standards offered by the TM Forum FrameworkX.
XYZ has decided to adopt the cloud technology platform offered by Microsoft Azure to
leverage the various solutions offered by its vendor partners to serve its business stake
holders. There is an industry trend to adopt DevOps practices for speedy and high-quality
delivery to the business
DevOps Solution deployed
All new products and support aspects of existing IT infrastructure is envisioned to be
delivered using the DevOps principles of continuous delivery with close collaboration
amongst the team members which includes the business,
the IT development and the operations teams.
The ‘culture’ of the new Organization is expected to
revolve around the objective of ‘Continuous Delivery of
quality IT solutions at a high speed’. Every application
covered under the scope of the XYZ organization; will
be following automated continuous delivery practices
throughout its lifecycle.
Better
Faster
Cheaper
Business
Qualit
y
Operations
Dev
The IT infrastructure environments is equipped with the appropriate team culture, suitable
processes geared for continuous delivery and implemented using integrated automation tool
chains.
The DevOps aim is to achive continuous delivery approach for
• The infrastructure components like VMs and O/S
• The middleware components like app servers, databases etc.
• The application components which include the vanilla solutions deployed
How did we adopt DevOps?
The DevOps culture is planned to be made popular and mandatory using multiprong strategy
viz
• Mass awareness of the DevOps benefits
• Training on DevOps Culture and Processes
• Availability of appropriate tools
• Awareness of adoption technique for each of the applications
Software as a Service (SaaS) is a software licensing and delivery model in which software is
licensed on a subscription basis and is centrally hosted. SaaS is typically accessed by users
West using a thin client via a web browser. The SaaS vendor has the control on the hardware
and the base software. The subscribing client has control only on the configuration of the
instance.
Platform as a Service (PaaS) is a category of cloud computing services that provides a platform
allowing customers to develop, run, and manage applications without the complexity of
building and maintaining the infrastructure typically associated with developing and
launching an app.
Infrastructure as a Service (IaaS) is a form of cloud computing that provides virtualized
computing resources over the Internet. IaaS is one of XYZ main categories of cloud computing
services, alongside Software as a Service (SaaS) and Platform as a Service (PaaS).
On-premise; are Custom Design-developed applications using a high-level language.
On -prem
Application
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
PaaS
Application
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
SaaS
Application
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Managed by the vendor Managed by the Rebus team
IaaS
Application
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
What are the XaaS categories ?
Managed by VendorManaged by XYZ
Every IT application delivery project goes thru the ‘Software Delivery Life Cycle’ which consists
of the following stages:
1. Business Planning
2. Analysis & Design
3. Development
4. Unit Testing
5. Deployment in various staging environments
6. Testing for functionality and NFRs
7. Release management
8. Monitoring (applications and user satisfaction)
DevOps is an approach based on the Lean and Six Sigma principles in which business owners
and the development, operations, and quality assurance departments collaborate effectively
to deliver IT solutions in a continuous manner that enables the business to seize market
opportunities more quickly and reduce the time to market to capture customer feedback.
XYZ decided to adopt a set of relevant SDLC processes which facilitate continuous delivery.
They got implemented using the various tools identified during the solutioning phase.
Appendix A is listing the various tools used for the various SDLC processes.
Every team member in the project delivery cycle should be using the complete framework
from Day 1 of the engagement mainly starting with the business planning stage. A complete
chain of process and tools is used by every member of the XYZ(IT Development and
Operations as well as Business ).
Culture Transformation
The XYZ delivery teams are living the ‘continuous innovation’ objective by following the
continuous delivery approach in its IT delivery practices. A basic component of the new team
foundation is the new culture of adopting any new practice that facilitates this objective of
being able to provide innovative business solutions to keep the organization in the fore front
of the market.
Following communities are members of the larger XYZ DevOps family which has adopted
continuous innovation ways of life.
• The Business stake holders
• The IT delivery team members
o Development Teams (spread across the delivery teams and vendor
organizations
o Operations Teams
o Support teams like vendor management etc
All the stake holders got trained on the concepts of DevOps approach and how they are
implemented using the various tools available in the market. A series of classroom sessions
was conducted to make everybody aware of the DevOps way of delivery. It will be up to
every team member to pick up the essence of the new culture and adopt to his or her role in
the team to deliver the work commitments at a high speed and of highest quality in
collaboration with other team members. The main tenets of the culture are shown in the
picture below.
One Team
Top Down
Support
Accountab
ility
Opsparticipation
fromearlystages
Empathy
Bottom
Up buy in
Empower
ment
Permissio
n
Independ
ence
Break
down silos
Cross functional
meetings
Collaborat
e
Communic
ate
Equality Trust
Common
Language
Common
Goals
No Blame
Game
No fear of
failure
Transpare
ncy
Co-locate
One Dream
Design Considerations
As part of the DevOps program; XYZ engineered a solution consisting of a number of vendor
supplied IT products implemented in a hybrid cloud scenario. Most of these solutions are
availed in a ‘as a Service’ model. Spread across XYZ different Domain service integrators; each
one of these applications are supported using the ‘Continuous delivery’ model supported by
the DevOps practices and tools.
The ‘Continuous Delivery’ approach involves a combination of minimizing the delay
encountered at various stages of the lifecycle. This will involve a detail study of the way each
of these applications pass through the software delivery life cycle (SDLC). Each of the
artefacts; identified as a ‘Configuration Item’ is carefully tracked for its trajectory thru the
SDLC.
The following section documents the design considerations to be considered during
preparation of detail design documentation.
Design Guidelines
The design guidelines for the DevOps based delivery approach are as follows:
• Plan to accept new or changed requirements continuously
• Develop and test against a production-like system using the cloud technology
available
• Iterative and frequent deployments using repeatable and reliable processes
• Continuously monitor and validate operational quality characteristics
• Amplify feedback loops
Analyze
• Analyze each applicationfor the SDLC pattern followed from requirementto release
Refine
• Customize the Process framework to suit every applications’journey
• Configure the applicabletools
Onboard
• Onboardevery application for each of the identifiedDevOpspractices
• Fine Tunethe toolchainas required to suit every application
Retrospect
• Periodicallyreview the progress to revise processes and tools configurations
• Automate, automate, and automate
Delivery methodologies and DevOps
Agile & Waterfall are project delivery methodologies and continuous delivery practices can
be effectively used in both the approaches. The applications in XYZ are expected to be
delivered using suitable methodologies as decided by the individual teams
Framework of SDLC processes is the same across the entire XYZ setup irrespective of the
methodology being adopted by the delivery team. Appropriate tool selection may vary
according to the technology of the application being supported.
The practices will remain the same across both the delivery methodologies. Only the
frequency of usage of such a tooling framework will defer amongst the two approaches.
As a team; XYZ inducted DevOps automation architect and engineers in the early days of the
project to support the adoption of the various tools and onboarding of the applications to the
tool chain. Over a period of time; not exceeding 12 months; every team member started to
pick up the skills required to use the tool being used for their part of the SDLC.
Stages of DevOps adoption in the SDLC
Continuous Business Planning
This practice supports continuous adjustments to software project management based on
early customer and stakeholder feedback. This may be associated with expected date of
availability of the feature as well as the effort required to deliver the same. There will be
changes required all thru out the life cycle to adjust such commitments and keep all the stake
holders informed about it. This is recommended to be achieved by using appropriate delivery
methodology practices and using a good Program management tool like HP ALM in the most
suitable way. Individual application rollouts / support engagements may be managed using
Agile or Waterfall or WaterScrum methodologies but driven only via the tool where
requirements and release schedules are monitored as well. It is mandated to use the Rational
DOORS Next Generation (RDNG) tool to manage all the business requirements at the delivery
level.
Get
Requirement
Analyze
effortand
timelines
Get Release
Expectations
Prepare
Releaseplan
InformBusiness,
Deliveryand
Releaseteams
Manage
Progress
Following continuous delivery practices was adopted by the XYZ’s DevOps team members to
achieve this stage of adoption.
Practices Actors Tools to be used
Capture, Analyze and
priorities requirements
Business Managers from
XYZ, PMs, BAs
Rational Doors NG (Doors),
EA Sparx, Blueworks Live
Project Planning PMs, Release managers HP Octane
Metrics PMs HP Octane and other tools
as appropriate
Dashboards Everybody HP Octane and other tools
as appropriate
Traceability Business, PMs, Business
analysts, Testing, Release
managers
Doors
Continuous Integration
This practice supports the creation of test ready code in the appropriate environment at the
earliest to trigger the functional and nonfunctional testing. For custom developed
applications this may involve a series of software engineering activities like coding; unit
testing; code inspection, security testing before a build is performed which creates an
executable. Continuous Build practice is an integral part of the continuous integration
framework.
For cloud-based solutions the process may differ depending upon the type of contract signed
with the vendors. For SaaS solutions; the vendor may commit to making a modified solution
available in the test environment (which may also be on their cloud environment) within the
expected time limit. Appropriate practices must be adopted for each and every solution
depending upon the SDLC trajectory followed by it for the client’s business.
The ‘continuous inspection’ practices are not formally approved or rejected by the
Architecture Board. Different process was adopted for getting the necessary approvals to use
an open source tool like SonarQube for Java implemented in XYZ network.
Practice Actors Tools used
Get
Requirement
Get Design
Documents
Get Ref.
codeor
create
new
Edit
Analyze
code
Unit
Test
Check
in
Release Planning PMs, Release manager, Test
manager, Developer, Tester
Octane, UCR
Continuous Static code
review
Developer SonarQube
Unit testing Developer Junit for Java, other tools as
appropriate for the
technology used in
supporting the application
Configuration management Developer Git – Bitbucket
Build management Developer Jenkins , Maven
Change management PM, Test manager, Release
manager
Octane, Doors, Sparx
Dashboards Everybody HP Octane and other tools
as appropriate
Traceability PMs, Business analysts,
Developer, Tester, Release
manager
Octane, Doors, HP ALM,
UCR
Once the necessary components are available in the Bitbucket repository, the Jenkins engine
will pick it up to compile and link it producing a binary file which can be used for testing in the
next staging environment. If there are test case failures; the go – no go criterion will be
evaluated to decide the further deployment of the binary or return it back to development.
This cycle of deployment and testing (and / or manual) was used in the SIT , UAT & NFR testing
environments. The more the automation was achieved in lower stages of the SDLC; which
helped XYZ DevOps for the quick progression of the code to the higher environments.
The continuous testing cycles are also addressed the requirements for continuous test data
availability
Continuous Deployment
This practice supports continuous adjustments to software project management based on
early customer and stakeholder feedback. This may be associated with expected date of
availability of the feature as well as the effort required to deliver the same. There will be
Components
Available ?
Analyze
Code
Build
Update
Repository
changes required all thru out the life cycle to adjust such commitments and keep all the stake
holders informed about it. This is recommended to be achieved by using appropriate delivery
methodology practices and using a good Program management tool like HP ALM – Octane in
the most suitable way. Individual application rollouts / support engagements may be
managed using Agile or Waterfall or Waterscrum methodologies but driven only via the tool
where requirements and release schedules are monitored as well. It is mandated to use the
Rational DOORS Next Generation (RDNG) tool to manage all the business requirements at the
program level.
Practice Actors Tools used
Environment management PM, Release manager, Test
manager
UCD, BluePrint Designer,
Deployment automation
( Application, middleware
and databases)
Deployment manager UCD
Once the necessary components are available in the Bitbucket repository, the Jenkins engine
will pick it up to compile and link it producing a binary file which can be used for testing in
the next staging environment. If there are test case failures; the go – no go criterion will be
evaluated to decide the further deployment of the binary or return it back to development.
Continuous Testing
This practice will trigger testing activities as soon as the code has been deployed in a target
environment. The testing may be conducted using either manual or automated or a
combination of both the above techniques. This is one of the most prominent phases of SDLC
where a major time is invested during the lifecycle.
For the DevOps program; a lot of testing is expected to happen the manual way on the CIT
environment. There is an expectation from the testing team to automate as many test cases
as early as possible in the lifecycle so that this inventory can be leveraged in subsequent
stages of SDLC.
The same approach should be adopted for testing across various staging environments and
for functional and nonfunctional testing activities.
Practice Actor Tools used
Test management &
execution
Test manager , Testers HP UFT, ALM
Binary
available ?
Analyze
Dependency
Environment
Mgmt
Test data
Mgmt
Deploy
Inform
Stake
Holders
Test Automation Testers HP UFT, Selenium,
Blazemeter, BrowserStack
Test Data management Testers, Business analysts CA TDM
This cycle of deployment and testing (automated and / or manual) will continue in the SIT,
UAT & NFR testing environments. The more the automation is achieved in lower stages of the
SDLC; the better it will be for the quicker progression of the code to the higher environments.
The continuous testing cycles are also going to address the requirements for continuous test
data availability. Considering the diverse delivery pattern of the program across the different
delivery teams; service virtualization has been provided for by adopting a tool CA Lisa.
Continuous Release Management
This practice supports continuous deployment of tested code into the production
environment against a planned release calendar with minimum of manual intervention. A
combination of IBM UrbanCode Deploy and UrbanCode Release products; is to be used for
managing this important activity in conjunction with the HP Octane , HP ALM and RDNG tools.
Practice Actors Tools used
Release management PM ,Release manager, Test
manager
HP Octane, HP ALM,
UCD/UCR
Environment management PM, Release manager, Test
manager
UCD, BluePrint Designer,
Build Deployed successfully ? Test
Defect
Management
Test Results
available
ReleaseCalendar Release
Update
Dashboards/
Stake holders
Continuous Monitoring
The end objective of the DevOps movement was to offer a satisfactory experience to the end
user. This expectation makes it mandatory to monitor the application behavior rather than
the traditional way of monitoring the various servers. Monitoring the various parameters
associated with an application’s health; can give an insight into its current and projected
behavior. A tool like Dynatrace was proposed to be used to monitor the applications under
the scope. This was configured and implement with agreed ITSM practices and was integrated
with the BMC Remedy and HP Octane program management tools.
Practice Actors Tools Used
Monitor capacity &
Optimize
Operations Dynatrace
Monitor performance &
Optimize
Operations Dynatrace
Event & Incident
management
Operations BMC Remedy
Operational Analytics Operations, PMs, Dynatrace, Octane, Remedy,
myCom-OS
The monitoring tool picked up any possible indications of an unacceptable system behavior
and raised an alert to the BMC Remedy tool. From this point onward the event followed the
lifecycle of any other event reported by the operations help desk and get entry into the SDLC
as a new ‘system’ requirement ( and not as a business requirement ) which will be addressed
by the support teams.
Continuous User Feedback Optimization
The final stage of adopting DevOps practices is allowing the end user to submit any feedback
on the current behavior of the application being used. This can also involve any future
features they would like to see in the solution.
Release
Monitor
application
Problem /
Event ?
Update
Dashboards/
Stake holders
Physical Topology
The DevOps tools Architecture is depicted below which explains in detail the implementation
of the various DevOps tools on the private cloud in the MS Azure platform.
Hosting Topology
The diagram below provides an overview of the overall hosting topology in terms of data
centers (incl. cloud) used to host the IT solution, network connectivity between the data
centers and other data centers or computing locations requiring access to the IT solution
including end user locations.
The diagram below outlines the different logical environments to be used in the XYZ
delivery setup. The DevOps tools was installed on a separate set of virtual machines in the
private cloud of XYZ hosted in the Azure network. The tools will be configured to access the
various environments. All the artefacts related to the SDLC followed by every application
will be flowing thru the applicable DevOps tools only.
The DevOps tools was installed and configured in the VMs hosted in the tool’s environment
on the Azure platform. These various DevOps tools facilitated the movement of the config
items (source code, binary code; config files, xml files etc. ) from the development to the
deployment platforms.
The SaaS vendors will guide on the process to follow to manage the movement of the code
pertaining to the subscribed solutions across the Dev – Test- Prod environments which are
under their control.
Appendix A:
Identified SDLC Process Framework
SDLC - DevOps - Framework DevOps - Capabilities
Continuous Business Planning Capture, Analyse & Prioritize Business
Requirements
Project Planning
Measure to Project Metrics
Traceability
Dashboard portfolio measures
Collaborative Development Release Planning
Collaborative Development
Configuration Management
Build Management
Change Management
Dashboards
Traceability
Continuous Testing Test Management and execution
Test Automation
Test Data Management
Continuous Release and
Deployment
Release Management
Environment Management (provisioning
automation)
Deployment Automation (Application,
Middleware and Databases)
Continuous Monitoring Monitor Capacity and Optimize
Monitor Performance and Optimize
Monitor User Experience and Optimize
Event and Incident Management
Operational Analytics
Appendix B:
SDLC Practices and Tools Used
No COMPONENT DEFINITION Tool Used
1
Collaborative
Development
Enables team communication and
integrates with DevOps tools for in
context discussions
Confluence
Support Level Classification Bronze
2
Requirements
& Design
DOORS,
Blueworks Live,
Sparx EA
Support Level Classification Bronze
3
Track & Plan
Work item backlog management HP Octane
Support Level Classification Bronze
4
Development
Enables developers to write source code
usually with a developer environment
Eclipse, Atom, Sublime
Text, Swagger, etc.
Support Level Classification Bronze
5
Source Control
Source code management and
versioning
Bitbucket
Support Level Classification Bronze
6
Build
Compile, package, unit-test, and
preparation of software assets.
Maven
Support Level Classification Bronze
7
Test
Integration test, UFT, NFT, performance
test
HP ALM,
HP UFT,
HP Performance
Center,
Blazemeter,
Selenium,
BrowserStack,
Rapit,
Cyara,
CA LISA,
CA TDM
Support Level Classification Bronze
8 Continuous
Integration
Jenkins
Support Level Classification Bronze
9
Artefact
Management
Management of the output from the
build
UrbanCode Deploy
Support Level Classification Bronze
10
Release
Management
Enables management, preparation , and
deployment of releases.
HP Octane ,
IBM UrbanCode
Release
Support Level Classification Bronze
11
Deployment
Orchestration
Processes required to get the release
into production
UrbanCode Deploy
Support Level Classification Bronze
12
Cloud
Orchestration
UrbanCode Deploy –
Blue Print Designer/
Heat Engine
Support Level Classification Bronze
13
Configuration
Management Automatically provision of new machines
UrbanCode Deploy –
Blue Print Designer/
Heat Engine
Support Level Classification Bronze
14 Issue
Management
HP Octane ALM
Support Level Classification Bronze

Csi dev ops_2017ht66098_assignment

  • 1.
    DevOps CSIZG514 Assignment DevOps in myOrganization 10th November 2018 Premkumar Ekambaram (2017HT66098)
  • 2.
    Table of Contents SolutionOverview............................................................................................................. 3 Baseline Solution............................................................................................................... 3 DevOps Solution deployed .........................................................................................................3 How did we adopt DevOps? .............................................................................................. 4 Culture Transformation..................................................................................................... 6 Design Considerations....................................................................................................... 7 Design Guidelines.......................................................................................................................7 Delivery methodologies and DevOps................................................................................. 8 Stages of DevOps adoption in the SDLC ............................................................................. 9 Continuous Business Planning ....................................................................................................9 Continuous Integration.............................................................................................................10 Continuous Deployment...........................................................................................................11 Continuous Testing...................................................................................................................12 Continuous Release Management ............................................................................................13 Continuous Monitoring.............................................................................................................14 Continuous User Feedback Optimization ..................................................................................14 Physical Topology............................................................................................................ 15 Hosting Topology......................................................................................................................15 Appendix A:..................................................................................................................... 17 Appendix B:..................................................................................................................... 18
  • 3.
    Solution Overview The termDevOps is a blend of processes, methods and tools that can be effectively adopted by the development and operations teams in an IT organization. It is a modern way of bringing development and operations together to achieve faster releases with better quality IT solutions in the Production environments. DevOps is also viewed as the capability of an Enterprise for continuous software delivery that enables the business to seize market opportunities and reduce time to capture customer feedback and take improvement actions. Baseline Solution This document describes the overview of the DevOps process and tools’ chain that is adopted in my organization XYZ. XYZ’s intention is to replace the current business support systems within the context of a larger business transformation program to provide the business with the ability to improve cost control, increase revenue, serve customers, and support new services and market segments. For this purpose, XYZ has defined a reference BSS application architecture based on a suite of best practices and standards offered by the TM Forum FrameworkX. XYZ has decided to adopt the cloud technology platform offered by Microsoft Azure to leverage the various solutions offered by its vendor partners to serve its business stake holders. There is an industry trend to adopt DevOps practices for speedy and high-quality delivery to the business DevOps Solution deployed All new products and support aspects of existing IT infrastructure is envisioned to be delivered using the DevOps principles of continuous delivery with close collaboration amongst the team members which includes the business, the IT development and the operations teams. The ‘culture’ of the new Organization is expected to revolve around the objective of ‘Continuous Delivery of quality IT solutions at a high speed’. Every application covered under the scope of the XYZ organization; will be following automated continuous delivery practices throughout its lifecycle. Better Faster Cheaper Business Qualit y Operations Dev
  • 4.
    The IT infrastructureenvironments is equipped with the appropriate team culture, suitable processes geared for continuous delivery and implemented using integrated automation tool chains. The DevOps aim is to achive continuous delivery approach for • The infrastructure components like VMs and O/S • The middleware components like app servers, databases etc. • The application components which include the vanilla solutions deployed How did we adopt DevOps? The DevOps culture is planned to be made popular and mandatory using multiprong strategy viz • Mass awareness of the DevOps benefits • Training on DevOps Culture and Processes • Availability of appropriate tools • Awareness of adoption technique for each of the applications Software as a Service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is typically accessed by users West using a thin client via a web browser. The SaaS vendor has the control on the hardware and the base software. The subscribing client has control only on the configuration of the instance. Platform as a Service (PaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. Infrastructure as a Service (IaaS) is a form of cloud computing that provides virtualized computing resources over the Internet. IaaS is one of XYZ main categories of cloud computing services, alongside Software as a Service (SaaS) and Platform as a Service (PaaS). On-premise; are Custom Design-developed applications using a high-level language. On -prem Application Data Runtime Middleware OS Virtualization Servers Storage Networking PaaS Application Data Runtime Middleware OS Virtualization Servers Storage Networking SaaS Application Data Runtime Middleware OS Virtualization Servers Storage Networking Managed by the vendor Managed by the Rebus team IaaS Application Data Runtime Middleware OS Virtualization Servers Storage Networking What are the XaaS categories ? Managed by VendorManaged by XYZ
  • 5.
    Every IT applicationdelivery project goes thru the ‘Software Delivery Life Cycle’ which consists of the following stages: 1. Business Planning 2. Analysis & Design 3. Development 4. Unit Testing 5. Deployment in various staging environments 6. Testing for functionality and NFRs 7. Release management 8. Monitoring (applications and user satisfaction) DevOps is an approach based on the Lean and Six Sigma principles in which business owners and the development, operations, and quality assurance departments collaborate effectively to deliver IT solutions in a continuous manner that enables the business to seize market opportunities more quickly and reduce the time to market to capture customer feedback. XYZ decided to adopt a set of relevant SDLC processes which facilitate continuous delivery. They got implemented using the various tools identified during the solutioning phase. Appendix A is listing the various tools used for the various SDLC processes. Every team member in the project delivery cycle should be using the complete framework from Day 1 of the engagement mainly starting with the business planning stage. A complete chain of process and tools is used by every member of the XYZ(IT Development and Operations as well as Business ).
  • 6.
    Culture Transformation The XYZdelivery teams are living the ‘continuous innovation’ objective by following the continuous delivery approach in its IT delivery practices. A basic component of the new team foundation is the new culture of adopting any new practice that facilitates this objective of being able to provide innovative business solutions to keep the organization in the fore front of the market. Following communities are members of the larger XYZ DevOps family which has adopted continuous innovation ways of life. • The Business stake holders • The IT delivery team members o Development Teams (spread across the delivery teams and vendor organizations o Operations Teams o Support teams like vendor management etc All the stake holders got trained on the concepts of DevOps approach and how they are implemented using the various tools available in the market. A series of classroom sessions was conducted to make everybody aware of the DevOps way of delivery. It will be up to every team member to pick up the essence of the new culture and adopt to his or her role in the team to deliver the work commitments at a high speed and of highest quality in collaboration with other team members. The main tenets of the culture are shown in the picture below. One Team Top Down Support Accountab ility Opsparticipation fromearlystages Empathy Bottom Up buy in Empower ment Permissio n Independ ence Break down silos Cross functional meetings Collaborat e Communic ate Equality Trust Common Language Common Goals No Blame Game No fear of failure Transpare ncy Co-locate One Dream
  • 7.
    Design Considerations As partof the DevOps program; XYZ engineered a solution consisting of a number of vendor supplied IT products implemented in a hybrid cloud scenario. Most of these solutions are availed in a ‘as a Service’ model. Spread across XYZ different Domain service integrators; each one of these applications are supported using the ‘Continuous delivery’ model supported by the DevOps practices and tools. The ‘Continuous Delivery’ approach involves a combination of minimizing the delay encountered at various stages of the lifecycle. This will involve a detail study of the way each of these applications pass through the software delivery life cycle (SDLC). Each of the artefacts; identified as a ‘Configuration Item’ is carefully tracked for its trajectory thru the SDLC. The following section documents the design considerations to be considered during preparation of detail design documentation. Design Guidelines The design guidelines for the DevOps based delivery approach are as follows: • Plan to accept new or changed requirements continuously • Develop and test against a production-like system using the cloud technology available • Iterative and frequent deployments using repeatable and reliable processes • Continuously monitor and validate operational quality characteristics • Amplify feedback loops Analyze • Analyze each applicationfor the SDLC pattern followed from requirementto release Refine • Customize the Process framework to suit every applications’journey • Configure the applicabletools Onboard • Onboardevery application for each of the identifiedDevOpspractices • Fine Tunethe toolchainas required to suit every application Retrospect • Periodicallyreview the progress to revise processes and tools configurations
  • 8.
    • Automate, automate,and automate Delivery methodologies and DevOps Agile & Waterfall are project delivery methodologies and continuous delivery practices can be effectively used in both the approaches. The applications in XYZ are expected to be delivered using suitable methodologies as decided by the individual teams Framework of SDLC processes is the same across the entire XYZ setup irrespective of the methodology being adopted by the delivery team. Appropriate tool selection may vary according to the technology of the application being supported. The practices will remain the same across both the delivery methodologies. Only the frequency of usage of such a tooling framework will defer amongst the two approaches. As a team; XYZ inducted DevOps automation architect and engineers in the early days of the project to support the adoption of the various tools and onboarding of the applications to the tool chain. Over a period of time; not exceeding 12 months; every team member started to pick up the skills required to use the tool being used for their part of the SDLC.
  • 9.
    Stages of DevOpsadoption in the SDLC Continuous Business Planning This practice supports continuous adjustments to software project management based on early customer and stakeholder feedback. This may be associated with expected date of availability of the feature as well as the effort required to deliver the same. There will be changes required all thru out the life cycle to adjust such commitments and keep all the stake holders informed about it. This is recommended to be achieved by using appropriate delivery methodology practices and using a good Program management tool like HP ALM in the most suitable way. Individual application rollouts / support engagements may be managed using Agile or Waterfall or WaterScrum methodologies but driven only via the tool where requirements and release schedules are monitored as well. It is mandated to use the Rational DOORS Next Generation (RDNG) tool to manage all the business requirements at the delivery level. Get Requirement Analyze effortand timelines Get Release Expectations Prepare Releaseplan InformBusiness, Deliveryand Releaseteams Manage Progress
  • 10.
    Following continuous deliverypractices was adopted by the XYZ’s DevOps team members to achieve this stage of adoption. Practices Actors Tools to be used Capture, Analyze and priorities requirements Business Managers from XYZ, PMs, BAs Rational Doors NG (Doors), EA Sparx, Blueworks Live Project Planning PMs, Release managers HP Octane Metrics PMs HP Octane and other tools as appropriate Dashboards Everybody HP Octane and other tools as appropriate Traceability Business, PMs, Business analysts, Testing, Release managers Doors Continuous Integration This practice supports the creation of test ready code in the appropriate environment at the earliest to trigger the functional and nonfunctional testing. For custom developed applications this may involve a series of software engineering activities like coding; unit testing; code inspection, security testing before a build is performed which creates an executable. Continuous Build practice is an integral part of the continuous integration framework. For cloud-based solutions the process may differ depending upon the type of contract signed with the vendors. For SaaS solutions; the vendor may commit to making a modified solution available in the test environment (which may also be on their cloud environment) within the expected time limit. Appropriate practices must be adopted for each and every solution depending upon the SDLC trajectory followed by it for the client’s business. The ‘continuous inspection’ practices are not formally approved or rejected by the Architecture Board. Different process was adopted for getting the necessary approvals to use an open source tool like SonarQube for Java implemented in XYZ network. Practice Actors Tools used Get Requirement Get Design Documents Get Ref. codeor create new Edit Analyze code Unit Test Check in
  • 11.
    Release Planning PMs,Release manager, Test manager, Developer, Tester Octane, UCR Continuous Static code review Developer SonarQube Unit testing Developer Junit for Java, other tools as appropriate for the technology used in supporting the application Configuration management Developer Git – Bitbucket Build management Developer Jenkins , Maven Change management PM, Test manager, Release manager Octane, Doors, Sparx Dashboards Everybody HP Octane and other tools as appropriate Traceability PMs, Business analysts, Developer, Tester, Release manager Octane, Doors, HP ALM, UCR Once the necessary components are available in the Bitbucket repository, the Jenkins engine will pick it up to compile and link it producing a binary file which can be used for testing in the next staging environment. If there are test case failures; the go – no go criterion will be evaluated to decide the further deployment of the binary or return it back to development. This cycle of deployment and testing (and / or manual) was used in the SIT , UAT & NFR testing environments. The more the automation was achieved in lower stages of the SDLC; which helped XYZ DevOps for the quick progression of the code to the higher environments. The continuous testing cycles are also addressed the requirements for continuous test data availability Continuous Deployment This practice supports continuous adjustments to software project management based on early customer and stakeholder feedback. This may be associated with expected date of availability of the feature as well as the effort required to deliver the same. There will be Components Available ? Analyze Code Build Update Repository
  • 12.
    changes required allthru out the life cycle to adjust such commitments and keep all the stake holders informed about it. This is recommended to be achieved by using appropriate delivery methodology practices and using a good Program management tool like HP ALM – Octane in the most suitable way. Individual application rollouts / support engagements may be managed using Agile or Waterfall or Waterscrum methodologies but driven only via the tool where requirements and release schedules are monitored as well. It is mandated to use the Rational DOORS Next Generation (RDNG) tool to manage all the business requirements at the program level. Practice Actors Tools used Environment management PM, Release manager, Test manager UCD, BluePrint Designer, Deployment automation ( Application, middleware and databases) Deployment manager UCD Once the necessary components are available in the Bitbucket repository, the Jenkins engine will pick it up to compile and link it producing a binary file which can be used for testing in the next staging environment. If there are test case failures; the go – no go criterion will be evaluated to decide the further deployment of the binary or return it back to development. Continuous Testing This practice will trigger testing activities as soon as the code has been deployed in a target environment. The testing may be conducted using either manual or automated or a combination of both the above techniques. This is one of the most prominent phases of SDLC where a major time is invested during the lifecycle. For the DevOps program; a lot of testing is expected to happen the manual way on the CIT environment. There is an expectation from the testing team to automate as many test cases as early as possible in the lifecycle so that this inventory can be leveraged in subsequent stages of SDLC. The same approach should be adopted for testing across various staging environments and for functional and nonfunctional testing activities. Practice Actor Tools used Test management & execution Test manager , Testers HP UFT, ALM Binary available ? Analyze Dependency Environment Mgmt Test data Mgmt Deploy Inform Stake Holders
  • 13.
    Test Automation TestersHP UFT, Selenium, Blazemeter, BrowserStack Test Data management Testers, Business analysts CA TDM This cycle of deployment and testing (automated and / or manual) will continue in the SIT, UAT & NFR testing environments. The more the automation is achieved in lower stages of the SDLC; the better it will be for the quicker progression of the code to the higher environments. The continuous testing cycles are also going to address the requirements for continuous test data availability. Considering the diverse delivery pattern of the program across the different delivery teams; service virtualization has been provided for by adopting a tool CA Lisa. Continuous Release Management This practice supports continuous deployment of tested code into the production environment against a planned release calendar with minimum of manual intervention. A combination of IBM UrbanCode Deploy and UrbanCode Release products; is to be used for managing this important activity in conjunction with the HP Octane , HP ALM and RDNG tools. Practice Actors Tools used Release management PM ,Release manager, Test manager HP Octane, HP ALM, UCD/UCR Environment management PM, Release manager, Test manager UCD, BluePrint Designer, Build Deployed successfully ? Test Defect Management Test Results available ReleaseCalendar Release Update Dashboards/ Stake holders
  • 14.
    Continuous Monitoring The endobjective of the DevOps movement was to offer a satisfactory experience to the end user. This expectation makes it mandatory to monitor the application behavior rather than the traditional way of monitoring the various servers. Monitoring the various parameters associated with an application’s health; can give an insight into its current and projected behavior. A tool like Dynatrace was proposed to be used to monitor the applications under the scope. This was configured and implement with agreed ITSM practices and was integrated with the BMC Remedy and HP Octane program management tools. Practice Actors Tools Used Monitor capacity & Optimize Operations Dynatrace Monitor performance & Optimize Operations Dynatrace Event & Incident management Operations BMC Remedy Operational Analytics Operations, PMs, Dynatrace, Octane, Remedy, myCom-OS The monitoring tool picked up any possible indications of an unacceptable system behavior and raised an alert to the BMC Remedy tool. From this point onward the event followed the lifecycle of any other event reported by the operations help desk and get entry into the SDLC as a new ‘system’ requirement ( and not as a business requirement ) which will be addressed by the support teams. Continuous User Feedback Optimization The final stage of adopting DevOps practices is allowing the end user to submit any feedback on the current behavior of the application being used. This can also involve any future features they would like to see in the solution. Release Monitor application Problem / Event ? Update Dashboards/ Stake holders
  • 15.
    Physical Topology The DevOpstools Architecture is depicted below which explains in detail the implementation of the various DevOps tools on the private cloud in the MS Azure platform. Hosting Topology The diagram below provides an overview of the overall hosting topology in terms of data centers (incl. cloud) used to host the IT solution, network connectivity between the data centers and other data centers or computing locations requiring access to the IT solution including end user locations. The diagram below outlines the different logical environments to be used in the XYZ delivery setup. The DevOps tools was installed on a separate set of virtual machines in the private cloud of XYZ hosted in the Azure network. The tools will be configured to access the various environments. All the artefacts related to the SDLC followed by every application will be flowing thru the applicable DevOps tools only.
  • 16.
    The DevOps toolswas installed and configured in the VMs hosted in the tool’s environment on the Azure platform. These various DevOps tools facilitated the movement of the config items (source code, binary code; config files, xml files etc. ) from the development to the deployment platforms. The SaaS vendors will guide on the process to follow to manage the movement of the code pertaining to the subscribed solutions across the Dev – Test- Prod environments which are under their control.
  • 17.
    Appendix A: Identified SDLCProcess Framework SDLC - DevOps - Framework DevOps - Capabilities Continuous Business Planning Capture, Analyse & Prioritize Business Requirements Project Planning Measure to Project Metrics Traceability Dashboard portfolio measures Collaborative Development Release Planning Collaborative Development Configuration Management Build Management Change Management Dashboards Traceability Continuous Testing Test Management and execution Test Automation Test Data Management Continuous Release and Deployment Release Management Environment Management (provisioning automation) Deployment Automation (Application, Middleware and Databases) Continuous Monitoring Monitor Capacity and Optimize Monitor Performance and Optimize Monitor User Experience and Optimize Event and Incident Management Operational Analytics
  • 18.
    Appendix B: SDLC Practicesand Tools Used No COMPONENT DEFINITION Tool Used 1 Collaborative Development Enables team communication and integrates with DevOps tools for in context discussions Confluence Support Level Classification Bronze 2 Requirements & Design DOORS, Blueworks Live, Sparx EA Support Level Classification Bronze 3 Track & Plan Work item backlog management HP Octane Support Level Classification Bronze 4 Development Enables developers to write source code usually with a developer environment Eclipse, Atom, Sublime Text, Swagger, etc. Support Level Classification Bronze 5 Source Control Source code management and versioning Bitbucket Support Level Classification Bronze 6 Build Compile, package, unit-test, and preparation of software assets. Maven Support Level Classification Bronze 7 Test Integration test, UFT, NFT, performance test HP ALM, HP UFT, HP Performance Center, Blazemeter, Selenium, BrowserStack, Rapit, Cyara, CA LISA, CA TDM Support Level Classification Bronze 8 Continuous Integration Jenkins Support Level Classification Bronze
  • 19.
    9 Artefact Management Management of theoutput from the build UrbanCode Deploy Support Level Classification Bronze 10 Release Management Enables management, preparation , and deployment of releases. HP Octane , IBM UrbanCode Release Support Level Classification Bronze 11 Deployment Orchestration Processes required to get the release into production UrbanCode Deploy Support Level Classification Bronze 12 Cloud Orchestration UrbanCode Deploy – Blue Print Designer/ Heat Engine Support Level Classification Bronze 13 Configuration Management Automatically provision of new machines UrbanCode Deploy – Blue Print Designer/ Heat Engine Support Level Classification Bronze 14 Issue Management HP Octane ALM Support Level Classification Bronze