Jumpstarting DevOps With Continuous Testing

3y ago
22 Views
2 Downloads
986.96 KB
9 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Amalia Wilborn
Transcription

Cognizant 20-20 InsightsJumpstarting DevOps withContinuous TestingBy tightly connecting testing with development and operations,and automating the design, development, quality assuranceand deployment of new applications and systems, IT organizationscan more effectively collaborate and deliver on the dualmandate of increasing operational agility and speeding software’stime to market.Executive SummaryIT organizations are adopting DevOps practicesto enable more frequent software releasesto production, both to accelerate time tomarket and improve the overall customerexperience. But adopting DevOps practicesrequires a cultural shift in terms of the people,processes and technologies involved in development, testing and operations. Many organizations encounter significant challenges whenembracing DevOps, particularly when implementing it in legacy areas. Such obstacleshave proved far more difficult to overcomecompared with those encountered by digitalnative companies.A popular belief is that DevOps requires throwingaway everything the organization has built andstarting from scratch. However, that is untrue;cognizant 20-20 insights december 2015the critical component of DevOps in large organizations is the need to improve communicationand collaboration between IT team disciplines.Enabling such behavior can be cumbersome,especially when regulatory and audit compliancerequires existing organizational structures toremain as-is.In traditional IT organizations, developers,testers and operations engineers typically playdifferent roles, with varying responsibilities,job descriptions and cultures, and all workingin separate functional areas as distinct entities.The question is whether QA can unify thesevarious groups under the DevOps flag andspur adoption. This white paper will attemptto answer that question and elaborate on theapproach.

The Role of Testing in DevOpsThe word DevOps was coined by combining thedevelopment and operations functions. DevOpsis not a technology, a process or a standard;rather, it is an IT culture or movement thatemphasizes ways in which development, testingand operations can collaborate more effectively (see Figure 1). DevOps is more about trust,people and teamwork than about process, andcreating software as an ongoing service, not astatic product.1While there are several interpretations of theDevOps definition, all share the same workingunderstanding. Gartner, for instance, definesDevOps as ” a change in IT culture, focusing onrapid IT service delivery through the adoptionDevOps: An Intersectionof Functionsof agile, lean practices in the context of asystem-oriented approach. DevOps emphasizespeople (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilizetechnology — especially automation toolsthat can leverage an increasingly programmable and dynamic infrastructure from a lifecycleperspective.”2DevOps has emerged for the following reasons: The existence of traditionally siloed teamstructures that did not scale to meet the variedneeds of modern enterprises. The philosophical disconnect between development, testing and operations teams, whichresulted in poor communication, collaborationand integration. The accelerating progression of digital technologies, which has evolved faster than theunderlying processes used to deploy, extendand manage om our perspective, four key activities defineDevOps (see Figure 2). Further, the role oftesting in DevOps can be best understood bycomparing how testing is approached in Agilevs. DevOps, as illustrated in Figure 3 (next page).Figure 1DevOps at a GlanceCollaborative Development:Increased collaboration between teamsPlan andMeasureContinuous Integration & Continuous Testing:Integration of software testing with deployment and operationsMonitor andOptimizeContinuous Release and Deployment:Release andDeployIncreased delivery speed and frequencyContinuous Monitoring:Improved quality by monitoring production performanceFigure 2cognizant 20-20 insightsDevelop andTest2

DevOps vs. AgileTesting in AgileTesting in DevOpsTest as early and as oftenas possibleTest continuouslyAutomate testing as muchas possibleAutomate almosteverythingContinuous integration and Continuous integration andtesting is a step forwardtesting is mandatoryPotentially shippable codeat the end of a sprintPotentially shippable codefollowing every integrationAs illustrated in Figure 5, the three main focalpoints of DevOps practices are automated buildand testing, configuration management, andcontinuous integration/continuous deployment.As a result, a new software development lifecycle(SDLC) is emerging, according to ForresterResearch (see Figure 6, next page). According toa Forrester4 survey, the characteristics of the newSDLC include: Faster release cycles: More than 24% ofcompanies have daily and weekly software releases. Changing requirements and lack of coordination between groups: Roughly 47% believethese disconnects were primary points of failure during a release review. The emergence of DevOps: Approximately66% of CIOs have this on their IT agenda.Figure 3DevOps: An Industry PerspectiveAccording to a recent industry report publishedby online educational resources purveyorDevOps.com,3 over 70% of IT organizations haveembraced DevOps in some form. The rush toDevOps is on, and for some, the journey has justbegun (see Figure 4).DevOps Adoption 2015Have few DevOps-powered projects30%Have DevOps-like initiatives in progress26%Have adopted DevOps24%Have not adopted DevOps but plan toHave no plans to adopt DevOps10%9%Source: DevOps.com and ElasticBox, d/.Response base: 300 participants, including DevOps specialists, IT engineers and executivesacross a wide range of organizations.Figure 4DevOps at a GlanceAutomated build & testing68%64%Configuration managementCI/CD63%62%Monitoring and metrics54%Collaboration between Dev & Ops53%Infrastructure as code49%Cloud application management41%Security & compliance36%Containerization29%Microservice managementSource: DevOps.com and ElasticBox, d/.Response base: 300 participants, including DevOps specialists, IT engineers and executivesacross a wide range of organizations.Figure 53

A New Software DevelopmentLifecycle Is EmergingOld SDLCNew cialized rolesEmpowered teamsResistant to changeOptimally responsiveOutsourcedAutomatedProject optimizationPortfolio optimizationSource: Forrester ResearchFigure 6Adoption ChallengesOrganizations born in the cloud era (aka, digitalnatives) adopt DevOps from day one; as such,DevOps practices match more organically withtheir DNA. DevOps is also gaining momentumwith legacy organizations but at a slower pacedue to a variety of challenges.The reasons are manifold. For starters, applications that large companies depend on typicallycontain extremely complex business logic;many have been in use for more than a decadeand have been updated and extended with newmission-critical functionality. Additionally, thereare development, operations and testing teamprocesses and practices, as well as the organization’s expectations that revolve around them.The Agile movement, for instance, has radicallychanged how applications are built and deployedby more closely aligning IT with the business,while operations and QA remain in silos.Typical challenges in IT organizations seeking toembrace DevOps include: Traditional Ops: This group spends the majority of its time putting out production fires, dealing with recurring failures and making urgentfixes. Test environment overhead: Each environment (testing, development, pre-production/staging and production) is unique. Operationsmust have a laser focus on production environment issues and, as such, does not have timeto work on improving infrastructure. cies without service virtualization techniquescause testing delays. A huge technical debt is accumulating in theseIT disciplines,5 and collaboration is often lackingbetween IT teams. The solution is to build DevOpspractices incrementally, one step at a time.Continuous Testing: A Step in theRight DirectionIn our view, continuous testing (CT) is the firststep in the right direction when embarking on aDevOps journey. CT is a metaphor for a continuousfeedback mechanism that drives software deliverythrough the SDLC tunnel. Automated feedback ateach checkpoint is an auto-trigger for the nextprocess in the delivery chain if the feedback isto move forward, or green. If the feedback is tonot move forward, the process immediately isstopped, and corrective measures are taken.Traditional IT organizations can shorten thepath to implement CT by reusing and realigningexisting test automation capabilities (as revealedin Figure 7, next page).Establishing a CT ecosystem involves the followingsteps at a high level: Shifting automation test scripts to an enterprise version control tool to establish asingle source of truth. Testing organizationshave commonly stored automation scriptsin test management tools or a shared folderstructure. However, an automation code base,just like an application code base, should reside in a version control repository. Integrating the automation suite with abuild deployment tool to enable centralizedexecution and reporting. Classifying the automation suite in multiplelayers of tests to enable faster feedback ateach checkpoint. Typical tests include:Traditional testing: Several thousand interdependent regression test cases run throughthe application user interface for severaldays, causing longer test cycles and manualhandoffs, resulting in much slower feedback.A loosely defined test data management strategy and downstream/upstream dependen-cognizant 20-20 insightsTraditional development: Late code integration results in integration issues and late defect fixes, leading to longer cycles. Scheduledelays often occur due to the absence of automated build verification and deployment procedures. Health check: An automated check verifiesservices are up after deployment. Typically,health checks run for just a few minutes. Smoketests: This most critical set ofautomated tests ensures that key systemfeatures are operational and no blocking4

defects occur. Smoke tests are typicallyexecuted in less than 15 minutes, and asthe CT process matures, the response timeshould be further optimized.alignment with recurring build frequencies. Fullregression: This is the final feedbackfrom the CT ecosystem. The goal is tominimize feedback time by running a parallelexecution of automated tests throughmultiple threads or machines. Intelligent regression: If execution time foroverall regression is significantly high, CTsetup becomes less effective due to longerfeedback cycles. In such a scenario, a subsetof regression carved out at run-time basedon criticality and impacted areas can onlybe executed to provide feedback withina reasonable timeframe. Full regressionexecution can be shifted to overnightor during the weekend depending on itsAll of the above tests run as part of the builddeployment process. If any fail, the deploymentprocess is halted, and everyone involved indelivering software – developers, testers andoperations staff – is notified immediately, triggeringcorrective action. Shorter feedback loops enablethe team to fail fast and recover quickly.Transitioning to DevOpsCT EcosystemContinuous TestingAccessingenvironmentsDev TeamDev code:new userstoriesDefect fixes:code commitAuto-detectbuild/pollingthe updatedcodeResultsInstantfeedbackon qualityTesting jobsTest LabUpdatedautomationscriptVersion ControlRepository Virtualizedservices Productiondata subsetTriggers build verification tests Health checks Smoke tests Intelligent regressionDev/QAEnvironmentsCode deployments inDev/testing environmentsUpdatedautomationscriptBuildquality InCI Server Automated security scan Static code analysis Unit test Code coverage analysis Automated build creationTest TeamFigure 7cognizant 20-20 insights5Build verification results tostakeholders throughe-mail or real-time dashboard Smoke results Critical scenarioresults RegressionresultsStakeholders

Quick TakeThe Virtues of Continuous Testing:Improved Availability,Faster DeploymentA leading North American property and casualtyinsurance carrier leveraged our automated continuous testing solution to sustain the fast-paced continuous softwaredelivery driven by distributed teams operating from threedifferent geographies.Through successful adoption of the CT model, the teamimproved test environment availability by up to 98%from 70%, reduced deployment time by 60%,and saved 800 hours per release,spanning 10 weeks.A key success factor was the team’sability to deliver new features morefrequently and get immediate feedback in minutes through continuousfrictionless automated testing.Intelligent Test Automation Is KeyTest automation is a clear winner over manualprocesses in DevOps organizations. But automationtests commonly face the following challenges: Tests built on commercial tools slow downover time and face scalability challenges, oftenresulting from license constraints. Often, automation is built using different toolsfor UI, APIs, mobile coverage, etc. The business’s influence over regressiondefinition often pushes testing teams to buildlong-running tests.Introducing intelligence into existing automationtests and migrating tests to more open sourcetools such as Selenium can further enhance theeffectiveness of a DevOps setup.6As Figure 8 shows (see next page), establishingintelligent regression models, such as a Mondayto-Friday weekend model, is critical to providingearly testing feedback in the CT process.Subsets of the total regression suite (smoketests, health checks and intelligent regressionsets) should be carved out to accelerate test runsduring weekdays, using principles such as:cognizant 20-20 insights98%70% A dynamic regression scope for each buildbased on the type of code change; automatically generated release notes will feed into theregression job. An intelligent test automation frameworkcapable of turning test scenarios on and offbased on application changes. Test cases traceable to the code files. A risk-based approach with near zero risk.A centralized repository of code-to-test casetraceability.Integration of NonfunctionalTesting with CTThe core philosophy of CT processes is to testevery change made to the application under testas early as possible. However, if nonfunctionaltests such as performance and security are notincluded in the overall CT process, only a portionof the puzzle is solved. Issues identified latercan override all CT efficiencies gained from afunctionality standpoint and still jeopardize therelease schedule.As CT practices evolve and mature, the ability tointegrate nonfunctional testing into the overall6

dBuildBuildHealth CheckHealth CheckHealth CheckHealth CheckHealth CheckFull SmokeFull SmokeFull SmokeFull SmokeFull SmokeDaily RunDaily RunDaily RunDaily RunDaily RunFailedFailedFailedFailedDefect FixDefect FixDefect FixDefect FixNFailedWeekend RunIntelligent Regression Model Testing Schedule: An Illustrative ViewYDefect FixFigure 8CT process remains an outlier but is seen as acore best practice. However, there are knownchallenges for integrating nonfunctional testsinto the CT process, especially in load testing,such as: Non-availability of dedicatedgenerate the desired user load. Capacity constraints impacting the ability toscale the CT environment and sustain the sizeof load tests.serversto In order to effectively utilize available resourcesand establish the ability to run the load testson-demand without wasting time and resources,organizations should consider building a cloudinfrastructure. Tools such as Apache JMeter arequickly emerging as a tool of choice for performance testing in DevOps organizations.Quick TakeThe Virtues of Continuous Testing:Accelerated Error DetectionOur Quality Excellence and Assurancebusiness unit helped a leading NorthAmerican property and casualty insurancecarrier identify defects 200% faster inits claims center by establishing theculture of failing fast through acontinuous testing model empoweredby an intelligent regression model.Through intelligent regression,updated application code wasimplemented by the automated testsin a few minutes post–deployment,compared with days in the past.cognizant 20-20 insightsOn-demand utilization of monitoring tools toidentify the bottlenecks.7

Looking ForwardThe notion that traditional IT organizationscannot do DevOps without throwing away whatthey have built over a period time is a myth.Testing teams can play a key role in overcomingthe challenges of transitioning to DevOps byorchestrating a CT infrastructure and creatingan early feedback loop with development.By successfully implementing CT as a first step,the dots of DevOps can be connected with development and operations to create automatedbuild deployments, code coverage analysis,production monitoring and on-demand environment provisioning – enabling a full cycle of CTand CD to be established.In summary, unlike any other tech movement,DevOps is not only driven by a passionateand enthusiastic tech crowd, but it has alsoresonated with business groups, many of whichare first-line customers of IT’s latest digitalproducts and services.Gene Kim, co-author of The Phoenix Project,describes DevOps as important to businessestoday because it solves the most importantbusiness problems of our generation – enablingorganizations to make the transition fromgood to great.7 Decision-makers often wonderabout how much return on investment aDevOps establishment can provide. Accordingto Kim, the opportunity cost of wasted ITspending is some 2.6 trillion – which is enoughmotivation for every company to embraceDevOps because after all, every company is anIT company.Footnotes1DevOps is an approach to software development that is focused on streamlined communication, collaboration, integration, automation (of testing as well as coding) and measurement of cooperationbetween software developers and other IT functions. The term was popularized through a series of“DevOps Days” starting in 2009 in Belgium. Since then, DevOps Days conferences have been held inmany countries worldwide. Source: https://en.wikipedia.org/wiki/DevOps. For more on DevOps, readour white papers “How DevOps Drives Real Business Growth,” vOps-Drives-Real-Time-Business-Growth.pdf, and “DevOps Best Practices CombineCoding with Collaboration,” -Best-PracticesCombine-Coding-with-Collaboration nn.pdf.2“DevOps,” Gartner, http://www.gartner.com/it-glossary/devops/.3“The Real Value of DevOps: 2015 Survey Report,” DevOps, /4Kurt Bittner with Phil Murphy, John R. Rymer, Jeffrey S. Hammond, Tom Grant, Ph.D., StevenKesler, “Continuous Delivery Is Reshaping the Future Of ALM,” Forrester Research, July 2013,https://www.forrester.com/Continuous Delivery Is Reshaping The Future Of ALM/fulltext/-/Eres99321.5Technical debt is a widely used term that describes the material liability or exposure inherent in anenterprise’s current IT. It was originally an estimate related to the code or software developmentneeded to complete an application, or elevate it to acceptable quality, performance and sustainability.Many organizations now view it as the estimate of the financial costs and effort needed to remediatethe systems, infrastructure, data, tools, skills, IT processes and governance to bring the enterprise’s ITto a point of industry parity.6Selenium is an open source suite of tools (http://www.seleniumhq.org/) to automate Web browsersacross many platforms. Selenium runs in m

Continuous Testing: A Step in the Right Direction In our view, continuous testing (CT) is the first step in the right direction when embarking on a DevOps journey. CT is a metaphor for a continuous feedback mechanism that drives software delivery through the SDLC tunnel. Automated feedback at each checkpoint is an auto-trigger for the next

Related Documents:

Understand the basics of the DevOps cycle Become familiar with the terms and concepts of DevOps Comprehend the beginning of the DevOps cycle . DevOps and Software Development Life Cycle 3. DevOps main objectives 4. Prerequisites for DevOps 5. Continuous Testing and Integration 6. Continuous Release and Deployment 7. Continuous Application .

DevOps Roadmap DevOps Journey DevOps Process. Adoção do DevOps O enfoque incremental concentra-se na ideia de minimizar o risco e o custo de uma adoção de DevOps, ao mesmo tempo em que . O blog a seguir explica como o DevOps pode melhorar o processo de negócios.

DEVOPS INNOVATION Gordon Haff @ghaff William Henry @ipbabble Cloud & DevOps Product Strategy, Red Hat 17 August 2015. What is DevOps? Source: DevOps Days DC 2015 word cloud from Open Spaces. DevOps applies open source principles and practices with. DEVOPS: THE WHAT & THE WHY TOOLS drawing . Linux Collaboration Summit: Linux Foundation .

International DevOps Certification Academy aims to remove these barriers set in front of the DevOps Professionals in developed and emerging markets by saving them from paying unreason-able fees for DevOps Classroom Trainings and DevOps Certification Examinations before they certify their knowhow in DevOps.

DevOps lifecycle: 1. Continuous Development 2. Continuous Testing 3. Continuous Integration 4. Continuous Deployment 5. Continuous Monitoring 1. Continuous Development This is the phase that involves planning and coding of the software application's functionality. There are no tools for planning as such, but there are several tools for

3. DevOps and Mainframe: Mission Possible? 4. DevOps Best Practices for z Systems 5. Building for the modern omni channel world 6. DevOps Success Stories in the Enterprise https://ibm.biz/mmdevops 7. Making a DevOps transition 8. Where DevOps can take you

at oreil.ly/devops A New Excerpt from High Performance Browser Networking HTTP/2 Ilya Grigorik DevOps in Practice J. Paul Reed Docker Security . web operations, DevOps, and web performance with free ebooks and reports from O'Reilly. J. Paul Reed DevOps in Practice. 978-1-491-91306-2 [LSI] DevOps in Practice

An introduction to the digital agenda and plans for implementation Authors Matthew Honeyman Phoebe Dunn Helen McKenna September 2016. A digital NHS? Key messages 1 Key messages Digital technology has the potential to transform the way patients engage with services, improve the efficiency and co-ordination of care, and support people to manage their health and wellbeing. Previous .