Sunteți pe pagina 1din 19

DevOps – Enabling Agility in Business

Rahul Soni - Project Manager

Cognizant Technology Solutions Pvt. Ltd.

1
Abstract
A recent study by Everest Group has revealed:
“24% organizations believe DevOps will be the de-facto development methodology of the future.”
This agile world demands continuous integration and continuous delivery where customer willingness,
culture and maturity become the key to success. Other factors such as people skillset, DevOps tooling
and framework, estimation methodologies and infrastructure scaling also play an important part in DevOps
implementations.

The paper elaborates best practices of DevOps for continuous delivery and continuous integration:
 Open sourced tooling strategy and lifecycle automation
 Customized DevOps frameworks, platforms and release models
 API and test data automation
 Monitoring risk involved with each release
 Communication and collaboration

Adopting these principles can enable organizations to implement high-performing DevOps solutions that
result in:
 200 times more frequently releases
 2,555 times faster lead times
 24 times faster recovery
 22% effort reduction on unplanned work and rework
 29% increased bandwidth to focus on new features, code delivery and deployment

(Source:Puppet State of DevOps Report)


2
What is DevOps ?
 A cultural shift or movement that
encourage great collaboration between
Dev and Ops team to foster building better
build quality software more quickly with
more reliability

 Aims at establishing a culture and


environment where building, testing, and Dev
releasing software, can happen rapidly,
Ops
frequently, and more reliably

 DevOps implementations utilize technology


— especially automation tools that can
Operations
leverage an increasingly programmable
and dynamic infrastructure from a life cycle
perspective.

3
Current View to Drive DevOps

Areas where DevOps adoption is


Key Business Drivers
preferred
 Customer willingness and maturity  Release Management

 Agility in Release with minimal manual  Test Automation Enablement


intervention
 Infrastructure Provisioning supplied by an
 Reduced time to market effective Environment Management

 Faster Deployment and turnaround cycles  Build and Deployment Automation

 Effective Environment Management

4
How Does an Organization Really Start?

Onboard
Analyze & Create Support & The
Business Case Test Platform Enhance
Assess Platform Train Solution
and Value

 Start small… no big changes upfront, don’t set it up for failure

 Progressive change …. start with handpicked projects, then a functional area and then wider
group

 Build a culture of Continuous Integration amongst developers for managing and monitoring
dev & test environments

 Target lower environments first and then hardened environments …

 Start automating around existing tooling first… reuse wherever possible

 Use automation as a key enabler to drive process change … automating the tasks so that
the change process is simplified automatically

5
Best Practices for DevOps Implementation

Open sourced tooling strategy and lifecycle automation


 Traditional workgroup-centric methods and tools lack agility
 Open source development tools act as catalyst agents
 Tools like Git, Subversion, Jenkins, Nexus, Artifactory, Chef, Puppet.
 Target to implement for Hybrid environment – On premise or Off premise Cloud
 Common tooling strategy to be agreed between Dev, QA and Ops that includes
» Communication and Collaboration tools
» Collaborative Development/Build tools
» Continuous Integration tools
» Continuous Testing tools
» Continuous Deployment tools
» Continuous Operation tools
 Identify tools that can do aggregation and co-relation of data from individual tools and provide end to end view of metrics
in the form of dashboard that enables business stakeholders to understand role of DevOps implementation.
 Implement test data tooling i.e. continuous code and data flow with continuous testing in sandbox
 Communication tool automation i.e. continuous feedback loops to fix issues quickly
 Acceptance tests
 Tool to capture all customer feedback, customer impact, frequent performed tasks, their duration and failure rate.

e.g UFT licenses being replaced by Selenium open source tool is getting common.

6
DevOps Representative Tools

7
Customized DevOps Platform and Release models
 Customer centric customized DevOps platform is need of the hour.
 Proof of concept to understand client needs and provide recommendations
 Basic building blocks for Platform creation:
» Assess Enterprise DevOps Strategy
» Identify DevOps Maturity
» Adopt and implement change with focus on people, process and technology
» Measure progress and plan next improvement
 Key differentiators of Platform:
» Change impact based testing
» Continuous Development
» On Demand monitoring of infra and apps
» Shift left performance testing
» Integrated process automation
» Infra as a code
» Data integration
 Release models
» Release model broken into smaller releases
» Independent integration with Agile methodologies with Dev Ops tooling
» Automated Release Management
» Automated apps deployment

8
Cloud Based DevOps Platform

 Cloud – A direct response to the need for agility.


 Enables speed-to-delivery to meet the business needs faster with lower costs for development, testing,
deployment and operations.
 Cloud based Dev Ops platform has clear benefits –
 Cloud computing provides centralized platform(and removes distributed complexity issues) for
testing, deployment, and production and couples well with Dev Ops environment.
 Public and Private cloud computing providers support DevOps and help lowers the cost
associated with on-premises DevOps automation
 Clouds leverage usage-based accounting, which tracks the use of resources by application,
developer, user, data unlike traditional systems

 Few Cloud based DevOps Platforms are market leaders –


 Amazon’s AWS
 IBM’s Bluemix
 Microsoft’s Azure

 Cloud and DevOps is like Marriage made in Heaven.


 Sound strategy will enable greater business agility by making IT infrastructure more pliable.
9
Containerization

Containerization has gained recent prominence with the open-source Docker.


 Packages software in a format that can run isolated on a shared operating system.
 Unlike VMs, containers do not bundle a full operating system
 Lightweight alternative to full machine Virtualization
 Designed to run on everything from physical computers to virtual machines
 Microsoft’s own containerization technology – Drawbridge to support Windows Server and Azure
.
Benefits of Containerization –

 Reduce onboarding time by 65%


 Quickly build, test and run complex multi-container apps
 No risk of incompatibilities or version conflicts.
 Built in Container Orchestration (Swarm Clustering)

10
Case Study - Dev Ops Platform

What did client want? Situation How did we do it? Benefits


Repetitive and error-prone Increased automation test
Redesigned the branching
Short time to market manual build and deployment coverage – test coverage
strategy
process achieved – 0 to 70% in one year

Reduction in regression testing


Continuous Integration and Lack of separate well defined
Cognizant Dev Ops platform time from hours/day to
Delivery QA or staging environments
30min/day

Reduced manual intervention Build and deploy time reduced


Customized solution for
No well-defined SCM policy by automating build and from 3 weeks to 50 min to less
Automation
deployment than 10 min

Consultative solution Defined and implemented 4 releases per year notched up


Lack of automation
approach SCM and release strategies to 12 releases per year

11
API and Test data Automation
 There is a real need for on-demand, relevant and ‘not-stale’ Test Data now especially with the advent of Continuous
Integration and Continuous Deployment age (CI/CD), where number of iterations of automated tests are expected to be
run.
 Typical challenges around test data in Dev Ops environment
» Refresh of test data in each deployment cycle
» Regulatory compliance and data privatization/security
» Multiple clones of production environment – increased costs and larger maintenance window
» Manual data creation - time consuming and error prone
Proposed Solutions
I. Taking a subset of the production data that is representative
» Industry standard tools like Informatica ILM & CA Datamaker
II. Synthetic Test Data Generation
» Avoid dependency on live data beyond original profiling
» Quick to generate new test data
» Fits well for Agile requirements.
» Informatica ILM, CA Datamaker or via an API Automation framework
III. API framework
» TDM tool for test data generation using Application Intelligence (AI) smart algorithms
» Automates manual test data generation tasks
» Provides flexibility for domain specific test data generation
» Maintains the referential integrity of data against all the databases
» Useful in Agile DevOps world
» Cost effective
12
Continuous Monitoring Risk

 Awareness of risk in next deployment

 Articulation of level of quality or compliance.

 Monitoring during build/test/deploy phases

 Rollback support for code/database change

 Backward and forward compatibility

 Re-use test scripts for prod

 Re-use prod data in dev/test

 Nagios - Popular tool for Continuous Monitoring

13
Communication and Collaboration
Communication and Collaboration are key for success of Dev Ops Implementation.
Major challenges
 Team working in silos – Communication gaps
 Accountability issues
 Geographically distributed teams
 Operational delays
 Adhoc changes to applications or environments disturbs stability
 Frequent meetings and mails
 Limited automation
Proposed Solutions
 Real time feedback and close communication between Dev, QA, Business and Ops
 Automated team collaboration tools – Yammer, Slack, HipChat, Mingle
 These tools easily integrate with Dev Ops environment
 Define clear roadmap for target goal
 Manage cultural diversity for distributed teams
 Encourage discussions
Collaboration is a cultural change that organization needs to embrace and not just limiting itself to tooling and processes.

14
Dev Ops - Key Findings

Based on Gartner report,

By 2020, Dev Ops initiatives will cause 50% of enterprises to implement continuous
testing using frameworks and open-source tools.

By 2020, 50% of IT organizations will apply advanced analytics (Dev Ops with Big
data) in application development to improve application quality and speed of
delivery.
 Enable predicting emerging hotspots in the software caused by changes
 Real time customer feedback
 Defect prediction that are likely to cause escalations in production

By 2018, more than 50-60% of new workload will be deployed in Containers (e.g.
Docker) in at least one stage of application life cycle.

15
Agile – On a Lighter Note…..

16
References & Appendix

 Gartner (http://www.gartner.com/)
 Everest (https://www.everestgrp.com)
 https://techbeacon.com
 Internal Organizational References
 www. docker.com

17
Author Biography

• Rahul Soni has been working as a Senior Delivery Manager with extensive
exposure in managing BFS QA projects, Automation, End to end Program
management and QA Transformation initiatives.
• Progressive experience of 12+ years in IT with extensive exposure to work from
onshore and offshore.
• PMP, CSM, Advanced ISTQB Test Manager and Prince 2 Practitioner Certified.
• Qualification – B.E. (Computers), PGDBM

18
Thank You!!!

S-ar putea să vă placă și