SlideShare una empresa de Scribd logo
1 de 49
WebMD Adopts Automated Deployment in Support of
Continuous Integration to Transform their SDLC

Teresa Dietrich, Vice President Technical Operations
Derek Chang, Senior Director
We were here…

2
So we assembled a team…

3
To fix our SDLC…

4
And now everyone is happy.

5
Technology @ WebMD
WebMD, Medscape, MedicineNet, eMedicine, UK cobrand
Serving nearly 1 Billion Pageviews a month, 132 million unique
Running over 200 separate applications, vast majority in-house developed
Environments: Dev/Devint, QA01/02, QA00, Production/DR
Two main data centers, geographically diverse
OS: mix of Linux and Windows
Datastores: Sql Server, Oracle, Mongo, Vertica and mysql
Web: mix of Apache and IIS
App: mix of Tomcat, ASP, .Net 3.x and 4.x
Service: ActiveMQ, Memcache

6
Before - State of Deployments
Build repository – a free for all NAS share; manual upload
Package management – HP proprietary package library; manual upload/download
Configuration management – HP proprietary CML
Deployment module – HP software policy
Deployment initiation – SBM ticketing system
Pre/post deployment tasks – custom scripts and manual steps

Dev
Sends
Email

QA
Opens
Ticket

Lead
Assign
Ticket

Engineer
Opens SubTickets

DBA
Runs
Script

Engineer
deploys
build

QA
Smoke
Tests

Ticket
Closed

7
Before – Deployment Metrics
year

total

# of work days

average

daily max

date

2011

2650

251

10.5

34

7/1/2011

2012

3174

251

12.6

50

9/20/2012

Average time to deploy: 55 minutes
8% of tickets rejected thus required clarification
Average build deployment per day: 11.6
Daily Max: 50

8
Before - Pain Points
Require multiple systems
Relies heavily on email for communication
Inconsistent environment setup
Only Ops did deployments in QA and Prod
Error prone
– Wrong information provided in ticketing system
– Tons of customized scripts
– Complexity of deployment procedures
– Manual steps involved in pre and post deployment
High maintenance cost
– Configuration management
– Host inventory
– Deployment scripts

9
Becoming Agile
Hired an Agile consulting group
Signed up for Software to manage Agile Dev
Trained Scrum Masters

Learned to write user stories, plan sprints
and used colored Post-Its

Scheduled daily
Stand-ups.

Woohoo, now we are officially
Agile!
10
Agile Implications for Deployments

11
Transform our SDLC

12
Waterfall

vs

Agile

13
Transform our SDLC

14
Promote Once

vs

Promote Continuously

15
Transform our SDLC

16
Static

vs

Elastic

17
Continuous Integration Team
Formed a CI Team w/ representatives from:
–
–
–
–
–

Dev
WebOps
QA
DBA
Platform Ops

Each team member had to have day to day hands-on
responsibilities.
Each team member had to have the authority to make
decisions on behalf of the organization they represented.
Each team member had to be able to commit to at least 4
hours a week .
Team reported back to Sr Mgmt at specified milestones.
18
Measuring Success
Automated Unit Testing
Build Ready to Build Deployed (by env)
Successful Build Deployment (by env)
Successful Automated Smoke test (by env)
Build Deployment Execution time (by env)
Build from Dev to Production time

19
Automated Deployment
Sr Management created a document with 1 page on
assumptions and 1 page on milestones to kick off the team on
their first assignment.
Assumptions included:
– Standards developed for: build, packaging, config, naming
and monitoring
– Roles and Responsibilities by Environment
– Deployment success and Environment Exit criteria

20
Evaluation Process
#

Procedure

Working
group

Management

P1

principles and assumptions

P2

define evaluation criteria

X

P3

define baseline functionalities and
features
collect list of products to be
evaluated
finalize product evaluation form
and list to be evaluated

X

research products based on
criteria
review/rank products

X

X

X

P9
P10

review and finalize list of products
for POC
vendor demo
In house POC

X
X

X

P11

review POC results

X

Description

X

P4
P5
P6
P7
P8

X

X
X

referrals, forums
X

5-7 products
vendor documentation, forums and
user community

X
POC should include must-have
functionalities defined in F11 below
2-3 vendors
1 product at a time

21
Most Important Features
Efficient configuration management
Host inventory
Capability of easy code promotion, backup and rollback
Comparison – artifact/environment/configuration
Orchestration engine – reusability and visibility
Capability to integrate with other systems
Support

22
Developing the Requirements
Guidelines from Sr Management
Review and understand the tools we were using.
In-depth analysis of current deployment process
Understand our current pain points.
Learn from what products are available on the market.
Learn from what other people are using and doing right.

23
Functional Requirements
#

Functionality

Category

importance

F1
F2

start application
stop application

operation
operation

must-have
must-have

F3

application configuration management - administration

operation

must-have

F4
F5
F6
F7
F8
F9
F10

application configuration management - versioning
application configuration management - comparison
application build deployment
application build rollback
fail-safe protection
customizable post-deployment operations
single interface for deployment-related operations

administration
administration
operation
operation
usability
operation
usability

must-have
must-have
must-have
must-have
must-have
must-have
must-have

F11 log/report for troubleshooting and auditing

administration

must-have

F12
F13
F14
F15
F16

integration
administration
administration
Operation
integration

must-have
must-have
must-have
must-have
must-have

integration with build server
Visibility into deployment operation
Event and hand-off Notification
Scheduled Deployment
Integration with configuration management solution

24
Functional Requirements
#

Functionality

Category

importance

F17 integration with ticketing system
F18 integration with revision control system

integration
integration

nice-to-have
nice-to-have

F19 integration with software builder

integration

must-have

F20
F21
F22
F23
F24
F25
F26

integration
integration
integration
operation
administration
administration
usability

nice-to-have
nice-to-have
nice-to-have
nice-to-have
must-have
nice-to-have
must-have

F27 deploy unbundled artifacts from multiple sources

usability

must-have

F28
F29
F30
F31

usability
integration
administration
usability

nice-to-have
must-have
must-have
must-have

Integration with testing automation solution
Integration with defect tracking solution
Integration with availability monitoring
database build deployment
security and access control mechanism
agentless architecture
native support for scripting language

mobile app deployment
clustering database connectivity awareness
resource inventory
Support both windows/Linux platform

25
Evaluation Score Card
Danny
3

Carrie
4

Matt
4

SRE
3

Ab

Raj

Yong

total

average

Vendor support

Vito
3

3

3

5

28

3.5

User community

5

4

4

5

4

4

3

5

34

4.25

Documentation

4

5

5

5

5

4

4

5

37

4.625

Cost for license*

1

2

2

1

1

1

2

2

12

1.5?

Cost for infrastructure

2

2

3

3

2

2

1

2

17

2.125

Effort for maintenance

3

4

5

5

3

3

1

1

25

3.125

Cost for development and
implementation

3

4

3

3

4
3

4

3

27

3.375

Interfaces such as API or
web services

5

5

5

3

37

**4.625

Functionality

Refer to table 1

5

4

5

4

5

5

5

5

38

4.75

Usability

Ease of use

4

4

4

4

4

4

5

4

33

4.125

Learnability

4

4

3

3

4

3

5

4

30

3.75

Product support

Cost (lower)

Integrability

5

5

5

4

* including derived maintenance charge and yearly support
** scale will be adjusted prior to vendor evaluation phase

26
Necessary Standards and Adjustments
Change of roles and responsibilities
All configurations go into uDeploy and standards across apps.
Standardize environment setup and rebuild if necessary.
Standardize naming
– Application/component/environment naming
– Versioning and release number
– Configuration key/value pairs
– Agent/resource naming
Automatic smoke testing

27
Identifying All Possibilities
Source: referrals, communities, and conferences
Up to 5 were proposed by each member
28 were identified as potential candidates
3 were given to each team member for initial screening
18 were eliminated for not meeting critical requirements
10 possible candidates moved to the second round

28
Choosing the Contenders
Evaluation criteria: function checklist and vendor documents
Priority ranked 10 remaining products
Top 5 for on-site demo and discussion
Each vendor was given criteria and use cases
Use scorecard to rate and major pros/cons comparison
Top 2 to participate on-site POC

29
Proof of Concept
POC designed by WebMD
Selected 2 most representative applications
Success criteria – use cases and functional requirements
Timeline – 5 days on-site and 2 weeks afterward
Participated in installation, design and implementation
Daily working session

30
Final Selection
Use case verification and documentation
In-depth review and discussion
Pros and cons comparison
The team voted unanimously and chose uDeploy!
Evaluation result was communicated to Sr. Mgmt for final
review
On-site training for the entire Technology organization
Demonstration along with highlights of the selection process

31
Demo

32
Key Benefits of uDeploy
Usability, everything accessible in one tool
Integration capabilities to existing SDLC tools
Application Configuration Management
Ease of promoting builds through environments
Orchestration of 3rd party tools and reuse of templates
Visibility – process, troubleshooting, reporting, approval and
notification

33
After – Deployment Metrics
Duration March/4/2013-June/3/2013
75 components developed – around 30% implemented
419 agents in use
1070 build deployments
– 65 work days
– 15.1 per day
– Daily max: 43 on May/29/2013
Average - End to end time – 3 minutes 11 seconds

34
Lessons Learned
Change is hard - redefining roles and responsibilities
Bottleneck just shifted forward, on to the next challenge.
DevOps culture - collaboration between Dev, Ops and QA.
Ease of use, less technological expertise required
When a piece of software is the centerpiece of your SDLC, it’s
worth the work to find the right solution.
Cross functional teams work well when they have clear
direction and authority from management.
Integration with other tools is key.
Defining the process, policy and standards are as important as
selecting the right tool.

35
And now how here we are….

36
Appendix 1 – roles and responsibilities
#

SDLC environment

Devint

QA01/QA02

QA00

Production

t1
t2

Environment Prep initiation (ticket or email to identify need)
capacity evaluation/deployment target designation for new application

Dev
Dev/Ops

QA
Dev/Ops/QA-PERF

QA
Dev/Ops/QA-PERF

Ops
Dev/Ops/QA-PERF

t3-1
t3-2

Dev
Dev

ProdOps
ProdOps

ProdOps
ProdOps

ProdOps
ProdOps

t3-3
t3-4
t3-5
t4-1
t4-2
t4-3
t4-4
t4-5

Server provisioning request
database request
mssql
storage request
DNS/VServer provisioning request
middleware installation
setup new uDeploy component template for applications
update existing uDeploy component template for applications
application related config variables/definitions
app related config values*****
middleware related config variables/values*****

Dev
Dev
HPSA - ProdOps and dev self service
Dev; signed off by Ops/QA
Dev; signed off by Ops/QA
Dev; signed off by Ops/QA
Dev
Dev

ProdOps
ProdOps
ProdOps
n/a
n/a
n/a
QA
ProdOps

ProdOps
ProdOps
ProdOps
n/a
n/a
n/a
ProdOps
ProdOps

ProdOps
ProdOps
ProdOps
n/a
n/a
n/a
ProdOps
ProdOps

t4-6
t5
t6
t6-1
t6-2
t6-3
t7

snapshot
approval for deployment
people who push Deployment button
Troubleshoot if deployment fails
Automatic smoke testing
Troubleshoot if smoke testing fails
Testing and Sign-off

snapshot implementation will be based
on discussion with professional service
Dev
Dev
Dev
uDeploy/Selenium
n/a
Dev

QA
QA
QA
uDeploy/Selenium
QA
QA

QA
ProdOps
ProdOps****
uDeploy/Selenium
ProdOps****
QA

Ops management
ProdOps
ProdOps****
uDeploy/Selenium
ProdOps****
QA

*template includes component and process templates, config key/value pairs
**e.g. functional testing for QA01/02; UAT for QA00
***based on promotion approach; will revisit during on-site training as well as professional service engagement
****party initiates communication and troubleshooting, which will involve Dev/Ops/QA
***** values will be contributed by all parties

37
Appendix 2 – provisioning process
#

1 Setup uDeploy access** and perform uDeploy upgrade

Step

initiator
CI

2 Setup devint based on Ops standard

Dev

2.1 Provision new VMs - devint

Deploy infrastructure software and servers
2.2
(IIS/Tomcat/Memcached/ActiveMQ) -devint
2.3 Provision DNS and Netscaler rules - devint

owner
PlatformOps

ticket
firstaid ticket#0 platformOps uDeploy ticket

Dev

SiteOps

firstaid ticket#1 sysops host provisioning

Dev

ProdOps

firstaid ticket#2 ProdOps general

Dev

ProdOps

firstaid ticket#3 ProdOps general

2.4 Provision Storage - devint

Dev

StorageOps

firstaid ticket#4 sysops storage provisioning

2.5 Provision DB - devint

Dev

DBOps

firstaid ticket#5 DBOps general

Dev

Dev/ProdOps

3.1 naming standardization

Dev/ProdOps

Dev/ProdOps

3.2 Component mapping

Dev/ProdOps

Dev/ProdOps

3.3 Server inventory

Dev

ProdOps

3.4 Review/confirm server inventory

Dev/ProdOps

Dev/ProdOps

3.5 Install uDeploy agents

Dev/ProdOps

Sysadmin

3.6 Component/environment mapping

Dev/ProdOps

Dev/ProdOps

3 Application/component/environment population

Dev/ProdOps

Dev/ProdOps

4.1 Collect/Review/consolidate application config

4 Application config

Dev/ProdOps

Dev/ProdOps

4.2 Designate Config namespace

Dev/ProdOps

Dev/ProdOps

4.3 Import config

Dev/ProdOps

Dev/ProdOps

4.4 Build server configuration

Dev

Dev

Dev

Dev/ProdOps

Dev

Dev/ProdOps

Dev

Dev/ProdOps/DBOps

Dev/QA/DBOps/ProdOps

Dev/QA/DBOps/ProdOps

QA

firstaid ticket#6 sysops general

Dev/ProdOps

5 Process Development
5.1 Develop Application Process if necessary
Develop or Reuse component template (IIS/Tomcat/Windows
5.2
service/DB deployment,…,etc)
Designate roles for each environment (configuration, deployment,
6
approval)***
7

Set up additional notification if necessary; with product email alias

** provision user accounts and assign members to each privileged groups as shown in table 2 below
*** admin for each environment will be responsible to designate roles

38
Appendix 3 - guidelines
Creation of automation templates should be done at the rollout of the tool and not for each product or
application. Types of templates may include Applications, Configurations and DB changes. Before a build
is automated for the first time through the tool in DevInt, an existing template must be identified or a new
template must be developed.
If a new template is needed, there should an agreement that none of the existing templates are
appropriate and involvement from a cross functional team to develop a new one.
The Automated Deployment Process begins in the DevInt environment.
The exit criteria from each environment should be at least one successful automated deployment using
the prescribed tool. Success is defined as a successful unit test in DevInt or a successful smoke test in QA.
Until the tool is identified, assumption is that the configuration lives with the build. When QA is
referenced below, the assumption is that it is a member of the new Deployment Management team not a
general QA analyst.
We need to define, review and agree to a set of standards with regards to builds, build packaging,
configurations, naming and monitoring to ensure the success of the automation deployment process.
The groups listed below each environment have the responsibility of creating and executing the
deployment and first level troubleshooting within that environment.

39
Appendix 4 – demo summary
Application: https://deploy.webmd.net/#application/73d7afd9-ca16-41d8-b67c-5ec00857d0c2
– Quick summary of state of component/environment and configuration
Component: https://deploy.webmd.net/#component/ac0dbc11-ce86-4b87-9623-661575815d2f
– History view of who did what where.
Environment: https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b9-94c5df514ee4
– Where you see version history and request details
Host inventory https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b9-94c5df514ee4/inventory
Application property https://deploy.webmd.net/#application/d7de8f89-d861-458d-81c5-1778f7360dcb/properties
Component property https://deploy.webmd.net/#component/ac0dbc11-ce86-4b87-9623-661575815d2f/properties
Environment and environment-component property https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b994c5df514ee4/properties
Global/system property: https://deploy.webmd.net/#system/properties
More to come – process, resource, version - properties/configuration management
Application process https://deploy.webmd.net/#applicationProcess/222e0a13-874d-4df1-b5ac-87e69af6f360/13
– Manage component operations during deployment – sequence, lock, decision point and approval
Component process https://deploy.webmd.net/#componentProcess/9b7208f5-3190-486c-994e-0922075f7d28/43
– Where deployment actions take place – stop iis, check application pool, download artifact, search and replacement,
start iis
– Component process template
Environment specific process https://deploy.webmd.net/#environment/08dd45de-a528-46ee-b07e5bbf527616c4/approvals
Plugins
Rest API
Everything is versioned!
Snapshot https://deploy.webmd.net/#application/d7de8f89-d861-458d-81c5-1778f7360dcb/snapshots
40
Appendix 5-1: application view

41
Appendix 5-2: process template

42
Appendix 5-3: component view

43
Appendix 5-4: component process

44
Appendix 5-5: Component property

45
Appendix 5-6: component-environment view

46
Appendix 5-7: environment property

47
Appendix 5-8: environment inventory

48
Appendix 5-9: artifact view

49

Más contenido relacionado

La actualidad más candente

Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
 
Software Process @ Fountain Park Ltd
Software Process @ Fountain Park LtdSoftware Process @ Fountain Park Ltd
Software Process @ Fountain Park LtdVille Tapio
 
Automate the sdlc process
Automate the sdlc processAutomate the sdlc process
Automate the sdlc processMichael Deady
 
Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Ganesh Samarthyam
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)NavneetKumar383
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)Yuriy Kravchenko
 
SDLC or Software Development Life Cycle
SDLC or Software Development Life CycleSDLC or Software Development Life Cycle
SDLC or Software Development Life CycleJyothi Vbs
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and MethodsRiant Soft
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzSusan Yoskin
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologiesAnkita Lachhwani
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano Malavolta
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewStewart Rogers
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Muhammad Ahmed
 

La actualidad más candente (20)

Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
 
Software Process @ Fountain Park Ltd
Software Process @ Fountain Park LtdSoftware Process @ Fountain Park Ltd
Software Process @ Fountain Park Ltd
 
Automate the sdlc process
Automate the sdlc processAutomate the sdlc process
Automate the sdlc process
 
Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)
 
SDLC or Software Development Life Cycle
SDLC or Software Development Life CycleSDLC or Software Development Life Cycle
SDLC or Software Development Life Cycle
 
SDLC Final (1)
SDLC Final (1)SDLC Final (1)
SDLC Final (1)
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
Leading Bank Leverages Growth through Implementation and Upgrade Services
Leading Bank Leverages Growth through Implementation and Upgrade ServicesLeading Bank Leverages Growth through Implementation and Upgrade Services
Leading Bank Leverages Growth through Implementation and Upgrade Services
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
SDLC Modernization
SDLC ModernizationSDLC Modernization
SDLC Modernization
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)
 

Similar a Automated Deployment in Support of Continuous Integration to Transform SDLC

Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseCollabNet
 
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsSmarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsJean-Yves Rigolet
 
SUNIL_Senior_Test_Analyst
SUNIL_Senior_Test_AnalystSUNIL_Senior_Test_Analyst
SUNIL_Senior_Test_AnalystSunil Deva
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...Siva Rama Krishna Chunduru
 
DevOps Powered by Splunk
DevOps Powered by SplunkDevOps Powered by Splunk
DevOps Powered by SplunkSplunk
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101Sanjeev Sharma
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for ChangeEric Wyles
 
Pure App + Patterns + Prolifics = Feeding Change
Pure App + Patterns + Prolifics = Feeding Change Pure App + Patterns + Prolifics = Feeding Change
Pure App + Patterns + Prolifics = Feeding Change Prolifics
 
Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...DevOps for Enterprise Systems
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAdam Stephensen
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQMIBM Rational
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseDBmaestro - Database DevOps
 
Anitha_Resume_BigData
Anitha_Resume_BigDataAnitha_Resume_BigData
Anitha_Resume_BigDataAnitha Bade
 
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 MeetupPreparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 MeetupYashrajNayak4
 

Similar a Automated Deployment in Support of Continuous Integration to Transform SDLC (20)

Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the Enterprise
 
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsSmarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
 
kishore
kishorekishore
kishore
 
SUNIL_Senior_Test_Analyst
SUNIL_Senior_Test_AnalystSUNIL_Senior_Test_Analyst
SUNIL_Senior_Test_Analyst
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
 
DevOps Powered by Splunk
DevOps Powered by SplunkDevOps Powered by Splunk
DevOps Powered by Splunk
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Developer want change Ops want control - devops
Developer want change Ops want control - devopsDeveloper want change Ops want control - devops
Developer want change Ops want control - devops
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
Pure App + Patterns + Prolifics = Feeding Change
Pure App + Patterns + Prolifics = Feeding Change Pure App + Patterns + Prolifics = Feeding Change
Pure App + Patterns + Prolifics = Feeding Change
 
Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterprise
 
DevOps and SF.pdf
DevOps and SF.pdfDevOps and SF.pdf
DevOps and SF.pdf
 
Anitha_Resume_BigData
Anitha_Resume_BigDataAnitha_Resume_BigData
Anitha_Resume_BigData
 
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 MeetupPreparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
 
Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014
 

Último

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Último (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Automated Deployment in Support of Continuous Integration to Transform SDLC

  • 1. WebMD Adopts Automated Deployment in Support of Continuous Integration to Transform their SDLC Teresa Dietrich, Vice President Technical Operations Derek Chang, Senior Director
  • 3. So we assembled a team… 3
  • 4. To fix our SDLC… 4
  • 5. And now everyone is happy. 5
  • 6. Technology @ WebMD WebMD, Medscape, MedicineNet, eMedicine, UK cobrand Serving nearly 1 Billion Pageviews a month, 132 million unique Running over 200 separate applications, vast majority in-house developed Environments: Dev/Devint, QA01/02, QA00, Production/DR Two main data centers, geographically diverse OS: mix of Linux and Windows Datastores: Sql Server, Oracle, Mongo, Vertica and mysql Web: mix of Apache and IIS App: mix of Tomcat, ASP, .Net 3.x and 4.x Service: ActiveMQ, Memcache 6
  • 7. Before - State of Deployments Build repository – a free for all NAS share; manual upload Package management – HP proprietary package library; manual upload/download Configuration management – HP proprietary CML Deployment module – HP software policy Deployment initiation – SBM ticketing system Pre/post deployment tasks – custom scripts and manual steps Dev Sends Email QA Opens Ticket Lead Assign Ticket Engineer Opens SubTickets DBA Runs Script Engineer deploys build QA Smoke Tests Ticket Closed 7
  • 8. Before – Deployment Metrics year total # of work days average daily max date 2011 2650 251 10.5 34 7/1/2011 2012 3174 251 12.6 50 9/20/2012 Average time to deploy: 55 minutes 8% of tickets rejected thus required clarification Average build deployment per day: 11.6 Daily Max: 50 8
  • 9. Before - Pain Points Require multiple systems Relies heavily on email for communication Inconsistent environment setup Only Ops did deployments in QA and Prod Error prone – Wrong information provided in ticketing system – Tons of customized scripts – Complexity of deployment procedures – Manual steps involved in pre and post deployment High maintenance cost – Configuration management – Host inventory – Deployment scripts 9
  • 10. Becoming Agile Hired an Agile consulting group Signed up for Software to manage Agile Dev Trained Scrum Masters Learned to write user stories, plan sprints and used colored Post-Its Scheduled daily Stand-ups. Woohoo, now we are officially Agile! 10
  • 11. Agile Implications for Deployments 11
  • 18. Continuous Integration Team Formed a CI Team w/ representatives from: – – – – – Dev WebOps QA DBA Platform Ops Each team member had to have day to day hands-on responsibilities. Each team member had to have the authority to make decisions on behalf of the organization they represented. Each team member had to be able to commit to at least 4 hours a week . Team reported back to Sr Mgmt at specified milestones. 18
  • 19. Measuring Success Automated Unit Testing Build Ready to Build Deployed (by env) Successful Build Deployment (by env) Successful Automated Smoke test (by env) Build Deployment Execution time (by env) Build from Dev to Production time 19
  • 20. Automated Deployment Sr Management created a document with 1 page on assumptions and 1 page on milestones to kick off the team on their first assignment. Assumptions included: – Standards developed for: build, packaging, config, naming and monitoring – Roles and Responsibilities by Environment – Deployment success and Environment Exit criteria 20
  • 21. Evaluation Process # Procedure Working group Management P1 principles and assumptions P2 define evaluation criteria X P3 define baseline functionalities and features collect list of products to be evaluated finalize product evaluation form and list to be evaluated X research products based on criteria review/rank products X X X P9 P10 review and finalize list of products for POC vendor demo In house POC X X X P11 review POC results X Description X P4 P5 P6 P7 P8 X X X referrals, forums X 5-7 products vendor documentation, forums and user community X POC should include must-have functionalities defined in F11 below 2-3 vendors 1 product at a time 21
  • 22. Most Important Features Efficient configuration management Host inventory Capability of easy code promotion, backup and rollback Comparison – artifact/environment/configuration Orchestration engine – reusability and visibility Capability to integrate with other systems Support 22
  • 23. Developing the Requirements Guidelines from Sr Management Review and understand the tools we were using. In-depth analysis of current deployment process Understand our current pain points. Learn from what products are available on the market. Learn from what other people are using and doing right. 23
  • 24. Functional Requirements # Functionality Category importance F1 F2 start application stop application operation operation must-have must-have F3 application configuration management - administration operation must-have F4 F5 F6 F7 F8 F9 F10 application configuration management - versioning application configuration management - comparison application build deployment application build rollback fail-safe protection customizable post-deployment operations single interface for deployment-related operations administration administration operation operation usability operation usability must-have must-have must-have must-have must-have must-have must-have F11 log/report for troubleshooting and auditing administration must-have F12 F13 F14 F15 F16 integration administration administration Operation integration must-have must-have must-have must-have must-have integration with build server Visibility into deployment operation Event and hand-off Notification Scheduled Deployment Integration with configuration management solution 24
  • 25. Functional Requirements # Functionality Category importance F17 integration with ticketing system F18 integration with revision control system integration integration nice-to-have nice-to-have F19 integration with software builder integration must-have F20 F21 F22 F23 F24 F25 F26 integration integration integration operation administration administration usability nice-to-have nice-to-have nice-to-have nice-to-have must-have nice-to-have must-have F27 deploy unbundled artifacts from multiple sources usability must-have F28 F29 F30 F31 usability integration administration usability nice-to-have must-have must-have must-have Integration with testing automation solution Integration with defect tracking solution Integration with availability monitoring database build deployment security and access control mechanism agentless architecture native support for scripting language mobile app deployment clustering database connectivity awareness resource inventory Support both windows/Linux platform 25
  • 26. Evaluation Score Card Danny 3 Carrie 4 Matt 4 SRE 3 Ab Raj Yong total average Vendor support Vito 3 3 3 5 28 3.5 User community 5 4 4 5 4 4 3 5 34 4.25 Documentation 4 5 5 5 5 4 4 5 37 4.625 Cost for license* 1 2 2 1 1 1 2 2 12 1.5? Cost for infrastructure 2 2 3 3 2 2 1 2 17 2.125 Effort for maintenance 3 4 5 5 3 3 1 1 25 3.125 Cost for development and implementation 3 4 3 3 4 3 4 3 27 3.375 Interfaces such as API or web services 5 5 5 3 37 **4.625 Functionality Refer to table 1 5 4 5 4 5 5 5 5 38 4.75 Usability Ease of use 4 4 4 4 4 4 5 4 33 4.125 Learnability 4 4 3 3 4 3 5 4 30 3.75 Product support Cost (lower) Integrability 5 5 5 4 * including derived maintenance charge and yearly support ** scale will be adjusted prior to vendor evaluation phase 26
  • 27. Necessary Standards and Adjustments Change of roles and responsibilities All configurations go into uDeploy and standards across apps. Standardize environment setup and rebuild if necessary. Standardize naming – Application/component/environment naming – Versioning and release number – Configuration key/value pairs – Agent/resource naming Automatic smoke testing 27
  • 28. Identifying All Possibilities Source: referrals, communities, and conferences Up to 5 were proposed by each member 28 were identified as potential candidates 3 were given to each team member for initial screening 18 were eliminated for not meeting critical requirements 10 possible candidates moved to the second round 28
  • 29. Choosing the Contenders Evaluation criteria: function checklist and vendor documents Priority ranked 10 remaining products Top 5 for on-site demo and discussion Each vendor was given criteria and use cases Use scorecard to rate and major pros/cons comparison Top 2 to participate on-site POC 29
  • 30. Proof of Concept POC designed by WebMD Selected 2 most representative applications Success criteria – use cases and functional requirements Timeline – 5 days on-site and 2 weeks afterward Participated in installation, design and implementation Daily working session 30
  • 31. Final Selection Use case verification and documentation In-depth review and discussion Pros and cons comparison The team voted unanimously and chose uDeploy! Evaluation result was communicated to Sr. Mgmt for final review On-site training for the entire Technology organization Demonstration along with highlights of the selection process 31
  • 33. Key Benefits of uDeploy Usability, everything accessible in one tool Integration capabilities to existing SDLC tools Application Configuration Management Ease of promoting builds through environments Orchestration of 3rd party tools and reuse of templates Visibility – process, troubleshooting, reporting, approval and notification 33
  • 34. After – Deployment Metrics Duration March/4/2013-June/3/2013 75 components developed – around 30% implemented 419 agents in use 1070 build deployments – 65 work days – 15.1 per day – Daily max: 43 on May/29/2013 Average - End to end time – 3 minutes 11 seconds 34
  • 35. Lessons Learned Change is hard - redefining roles and responsibilities Bottleneck just shifted forward, on to the next challenge. DevOps culture - collaboration between Dev, Ops and QA. Ease of use, less technological expertise required When a piece of software is the centerpiece of your SDLC, it’s worth the work to find the right solution. Cross functional teams work well when they have clear direction and authority from management. Integration with other tools is key. Defining the process, policy and standards are as important as selecting the right tool. 35
  • 36. And now how here we are…. 36
  • 37. Appendix 1 – roles and responsibilities # SDLC environment Devint QA01/QA02 QA00 Production t1 t2 Environment Prep initiation (ticket or email to identify need) capacity evaluation/deployment target designation for new application Dev Dev/Ops QA Dev/Ops/QA-PERF QA Dev/Ops/QA-PERF Ops Dev/Ops/QA-PERF t3-1 t3-2 Dev Dev ProdOps ProdOps ProdOps ProdOps ProdOps ProdOps t3-3 t3-4 t3-5 t4-1 t4-2 t4-3 t4-4 t4-5 Server provisioning request database request mssql storage request DNS/VServer provisioning request middleware installation setup new uDeploy component template for applications update existing uDeploy component template for applications application related config variables/definitions app related config values***** middleware related config variables/values***** Dev Dev HPSA - ProdOps and dev self service Dev; signed off by Ops/QA Dev; signed off by Ops/QA Dev; signed off by Ops/QA Dev Dev ProdOps ProdOps ProdOps n/a n/a n/a QA ProdOps ProdOps ProdOps ProdOps n/a n/a n/a ProdOps ProdOps ProdOps ProdOps ProdOps n/a n/a n/a ProdOps ProdOps t4-6 t5 t6 t6-1 t6-2 t6-3 t7 snapshot approval for deployment people who push Deployment button Troubleshoot if deployment fails Automatic smoke testing Troubleshoot if smoke testing fails Testing and Sign-off snapshot implementation will be based on discussion with professional service Dev Dev Dev uDeploy/Selenium n/a Dev QA QA QA uDeploy/Selenium QA QA QA ProdOps ProdOps**** uDeploy/Selenium ProdOps**** QA Ops management ProdOps ProdOps**** uDeploy/Selenium ProdOps**** QA *template includes component and process templates, config key/value pairs **e.g. functional testing for QA01/02; UAT for QA00 ***based on promotion approach; will revisit during on-site training as well as professional service engagement ****party initiates communication and troubleshooting, which will involve Dev/Ops/QA ***** values will be contributed by all parties 37
  • 38. Appendix 2 – provisioning process # 1 Setup uDeploy access** and perform uDeploy upgrade Step initiator CI 2 Setup devint based on Ops standard Dev 2.1 Provision new VMs - devint Deploy infrastructure software and servers 2.2 (IIS/Tomcat/Memcached/ActiveMQ) -devint 2.3 Provision DNS and Netscaler rules - devint owner PlatformOps ticket firstaid ticket#0 platformOps uDeploy ticket Dev SiteOps firstaid ticket#1 sysops host provisioning Dev ProdOps firstaid ticket#2 ProdOps general Dev ProdOps firstaid ticket#3 ProdOps general 2.4 Provision Storage - devint Dev StorageOps firstaid ticket#4 sysops storage provisioning 2.5 Provision DB - devint Dev DBOps firstaid ticket#5 DBOps general Dev Dev/ProdOps 3.1 naming standardization Dev/ProdOps Dev/ProdOps 3.2 Component mapping Dev/ProdOps Dev/ProdOps 3.3 Server inventory Dev ProdOps 3.4 Review/confirm server inventory Dev/ProdOps Dev/ProdOps 3.5 Install uDeploy agents Dev/ProdOps Sysadmin 3.6 Component/environment mapping Dev/ProdOps Dev/ProdOps 3 Application/component/environment population Dev/ProdOps Dev/ProdOps 4.1 Collect/Review/consolidate application config 4 Application config Dev/ProdOps Dev/ProdOps 4.2 Designate Config namespace Dev/ProdOps Dev/ProdOps 4.3 Import config Dev/ProdOps Dev/ProdOps 4.4 Build server configuration Dev Dev Dev Dev/ProdOps Dev Dev/ProdOps Dev Dev/ProdOps/DBOps Dev/QA/DBOps/ProdOps Dev/QA/DBOps/ProdOps QA firstaid ticket#6 sysops general Dev/ProdOps 5 Process Development 5.1 Develop Application Process if necessary Develop or Reuse component template (IIS/Tomcat/Windows 5.2 service/DB deployment,…,etc) Designate roles for each environment (configuration, deployment, 6 approval)*** 7 Set up additional notification if necessary; with product email alias ** provision user accounts and assign members to each privileged groups as shown in table 2 below *** admin for each environment will be responsible to designate roles 38
  • 39. Appendix 3 - guidelines Creation of automation templates should be done at the rollout of the tool and not for each product or application. Types of templates may include Applications, Configurations and DB changes. Before a build is automated for the first time through the tool in DevInt, an existing template must be identified or a new template must be developed. If a new template is needed, there should an agreement that none of the existing templates are appropriate and involvement from a cross functional team to develop a new one. The Automated Deployment Process begins in the DevInt environment. The exit criteria from each environment should be at least one successful automated deployment using the prescribed tool. Success is defined as a successful unit test in DevInt or a successful smoke test in QA. Until the tool is identified, assumption is that the configuration lives with the build. When QA is referenced below, the assumption is that it is a member of the new Deployment Management team not a general QA analyst. We need to define, review and agree to a set of standards with regards to builds, build packaging, configurations, naming and monitoring to ensure the success of the automation deployment process. The groups listed below each environment have the responsibility of creating and executing the deployment and first level troubleshooting within that environment. 39
  • 40. Appendix 4 – demo summary Application: https://deploy.webmd.net/#application/73d7afd9-ca16-41d8-b67c-5ec00857d0c2 – Quick summary of state of component/environment and configuration Component: https://deploy.webmd.net/#component/ac0dbc11-ce86-4b87-9623-661575815d2f – History view of who did what where. Environment: https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b9-94c5df514ee4 – Where you see version history and request details Host inventory https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b9-94c5df514ee4/inventory Application property https://deploy.webmd.net/#application/d7de8f89-d861-458d-81c5-1778f7360dcb/properties Component property https://deploy.webmd.net/#component/ac0dbc11-ce86-4b87-9623-661575815d2f/properties Environment and environment-component property https://deploy.webmd.net/#environment/ac5bcdf6-c412-4ab4-82b994c5df514ee4/properties Global/system property: https://deploy.webmd.net/#system/properties More to come – process, resource, version - properties/configuration management Application process https://deploy.webmd.net/#applicationProcess/222e0a13-874d-4df1-b5ac-87e69af6f360/13 – Manage component operations during deployment – sequence, lock, decision point and approval Component process https://deploy.webmd.net/#componentProcess/9b7208f5-3190-486c-994e-0922075f7d28/43 – Where deployment actions take place – stop iis, check application pool, download artifact, search and replacement, start iis – Component process template Environment specific process https://deploy.webmd.net/#environment/08dd45de-a528-46ee-b07e5bbf527616c4/approvals Plugins Rest API Everything is versioned! Snapshot https://deploy.webmd.net/#application/d7de8f89-d861-458d-81c5-1778f7360dcb/snapshots 40
  • 42. Appendix 5-2: process template 42
  • 45. Appendix 5-5: Component property 45