Share this page with a friend.

CI/CD

Continuous Integration and Delivery

New requirements for digital transformation

Automate build, test and deployment processes

Speed Wins in Digital Transformation

In the new age of mobility and digital transformation, enterprises need to move faster and more flexibly in application development, testing and QA to keep up with the competition and meet customer expectations for shorter cycle times and higher service levels. This requires integrating the efforts of their development and QA teams and automating manual processes wherever possible. Enterprises that make this shift effectively can improve employee productivity, open up new revenue channels, enhance customer service and engagement, and distinguish themselves from their competition – all while reducing their operational costs in development and QA. Companies that can’t make the shift face increasing costs, customer dissatisfaction, disintermediation, revenue loss and more. Continuous Integration (CI) and Continuous Delivery (CD) are foundational practices being adopted by agile organizations to accelerate their development and test processes to meet the new demands of mobile and IoT. While they are distinct disciplines, most organizations find the greatest impact by adopting them together. The benefits of this approach include reduced time, risk, and expense of software delivery. This paper looks at the benefits of CI and CD together and the requirements for effectively deploying these practices in your organization.

Continuous Integration and Delivery (CI/CD)

Continuous Integration and Delivery (CI/CD) is a set of software practices and techniques that enable the frequent release of small batches of code changes, with extensive visibility and traceability. It typically involves the creation of a largely automated pipeline that orchestrates the build, test and deployment of software across staged environments, ultimately leading to deployment in production.

QA vs. QE – What’s the Big Difference?

difference-between-qe-and-qe

CI/CD offers several important benefits for development and test organizations

Faster identification and resolution of defects

CI/CD allows an elegant way to establish the appropriate quality gates in the development and testing process. A fast feedback loop to the developers ensures that bugs are addressed early in the development cycle.

Reduced overhead cost

Finding a bug at the development stage is the cheapest possible way to find it. If the same bug was to be fixed in any other environment, it would cost more. CI/CD requires some upfront overhead cost, but these are more than offset by the time and expense saved along the way.

Better quality assurance

CI/CD enables QA teams to release deployable software at any point in time. Without it, projects are prone to delayed releases because of unforeseen issues which arise at any point in the traditional development and test process.

Reduced assumptions

CI/CD replaces testing assumptions with knowledge, thereby eliminating all cross-platform errors at the development stage.

Faster time to market

Faster test and QA cycles enable organizations to get quality products and services to market faster and more efficiently.

Software health measurability

By establishing continuous testing into the automated integration process, software health attributes such as complexity can be tracked over time.

Better project visibility

Frequent code integration provides the opportunity to identify trends in build success and failure and make informed decisions to address them. With CI/CD, dev and test teams can access real-time data on the code quality metrics to innovate new improvements and support decisions.

Continuous Integration and Delivery (CI/CD) is a set of software practices and techniques that enable the frequent release of small batches of code changes, with extensive visibility and traceability. It typically involves the creation of a largely automated pipeline that orchestrates the build, test and deployment of software across staged environments, ultimately leading to deployment in production.

CI/CD – Core to Business Agility

Build the Right Product

Continuous Delivery enables a team to get continuous – if not frequent – feedback from business colleagues, user representatives, and ideally real end users.

Earlier Benefits

A clear advantage of building software incrementally and adopting a Continuous Delivery approach is that some benefits can be gained much earlier.

Ability to React Quickly and Respond to Change

This also makes it more viable to react to opportunities and explore new ideas and potential new revenue streams.

Innovation

Developers may be able to create something entirely new. This can potentially be a way to drive real innovation.

Reliability & Consistency

Keeping the changes in very small releases makes it substantially easier to find and fix problems if they do occur, minimizing the time that they have an impact.

Cost/ROI

Automation yields long term reduction in efforts required to manually do SDLC tasks.

Strategic Impact

Better products due to frequent user feedback, higher benefits due to earlier releases, greater customer focus, speed to market, business agility, innovation, reliability and more efficient.

See more at: http://www.allaboutagile.com/7-reasons-why-continuous-delivery-needs-to-be-a-business-initiative/#sthash.Ix5oC4ZT.dpuf

CI/CD and Mobile

CI/CD may have more potential impact on mobile and IoT than any other area of development and test due to the non-stop pressure organizations face to crank out new apps and services. Without CI/CD, dev test organizations face a number of obstacles:

  • Mobile apps live and die by their ratings in an App Store. First impressions are everything in this environment so it’s essential to get an app right – from the start.
  • Dev and test teams are “going commando” without source code management for their mobile app deployment process. No tracking and no rollback can cost valuable cycle time.
  • Organizations are deploying manually between environments – further slowing cycle time and increasing costs.
  • “It works on my device” for developers and then breaks in staging and production.
  • Dev and test teams find themselves stuck in a “hot mess” of hotfixes
  • Configurations are being editing manually, in staging or production environments
  • There are no automated builds or automated tests in place.

CI/CD delivers a number of benefits to mobile initiatives that reach far beyond development and test by
enabling businesses to:

Respond more quickly to market dynamic and get new products and features to market faster

Accelerate their level of innovation

Provide higher reliability

Save time and money

Get more impact from mobile initiatives

CI/CD Challenges

The benefits of a combined CI/CD effort are undeniable, but not without its challenges.

Varied Application Development Stacks

Need to built a platform that lets us create a CD pipeline for each application

Legacy Monolithic Applications

Research is needed on understanding their characteristics and identifying and developing the best strategies or practices to tackle them

No single vendor provides a comprehensive suite of tools

Continuous delivery (CD) means stitching together a tool chain spanning multiple vendor and open source tools

Minimal Automation

In order to meet your throughput and consistency goals, it is usually required to automate a bulk of the manual steps in the process

Limited Environments

Plan to be running delivery pipelines at scale, a dynamic pool of available, “clean” target environments is required

Organization Inertia

Align the organization to understand, adopt, engage and leverage CD and management willingness to “do things right”

Lack of visibility into SDLC Pipeline

Key decision makers and cross functional teams lack unified visibility in an enterprise SDLC dashboard

Fragmented Tool Landscape

There are a plethora of tools that can add value to your CI/CD initiative, but picking the right one and getting them working together requires time, good planning and specialized expertise.

Fragmented CI/CD Tool Landscape

ci-cd-tool-landscape

Role Requirements and Ownership

By the nature of the problem it is addressing, CI/CD is a cross-functional effort spanning the entire software development lifecycle. As such, organizations may find themselves creating roles that require a hybrid set of skills that may fall outside of traditional development, test and QA job descriptions.

Continuous Delivery Impacts Entire SDLC

continuous-delivery-impact

As a result, it’s important to define roles and responsibilities clearly to avoid confusion and accountability gaps.

CI/CD Roles
  • There are no automated builds or automated tests in place
  • Work with Engineering and QA to define important metrics
  • Help IT setup and maintain the hardware lab, including mobile lab if needed
Required Skillsets
  • Writing pipeline as code
  • Groovy scripting
  • VM Configurations
  • Understanding of software execution workflow configurations and dependency managements
  • Jenkins associated plug-ins and their usages
  • Selenium automation

CI/CD Best Practices and
Tools for Success

There are several best practices that have been proven by early adopters in recent years that can guide your CI/CD initiative. These involve incorporating sound design principles for your overall approach, creating a management dashboard to provide the cross-functional visibility that is so critical to success, and selecting the right infrastructure tools to accelerate your CI/CD initiative.

CI/CD Design Principles

Principle Description Rationale
Self-service Projects must be able to on-board through self-service, and manage their own workflows. Speed to adoption: Key driver for rapid experimentation, and to eliminate duplicated efforts and manual process.
Best-practice Support a standard workflow model, not a generic workflow engine. One Standard. Promotes quality, fast on-boarding and developer mobility.
Configurable Technology integration The ability to integrate existing build systems, test frameworks, and source- and component repositories, Still recommended templates for new projects. Separation of concern, Continuity. Allow projects to on-board to CI/CD independently of transition legacy systems.
Flexible Process Ability to adapt workflow to match requirements for process variations. Separation of concern, Continuity. There are both technical and business reasons for process variation. We cannot enforce a strict.
Extensible Use a component-based automation framework, with consistent design patterns for task-automation, resource management, and identity. Build as internal open source. Best-of-breed, Inclusion, Innovation. The system must allow a project to automate special tasks (e.g. run a specific analysis or verification tool), including experimentation with new and emerging technologies
Cloud-Ready/Elastic Build for deployment to AWS, or any other cloud to the extent possible. Cloud Ready. Build and testing generates uneven load, and we can leverage cloud elasticity.
HA/DR CI/CD must make suitable use of runtime services, including monitoring, to ensure availability, and respect of SLAs Fidelity. It’s important that the system be designed to handle adversity. Workflows must be suitably isolated to avoid general system failures.

CI/CD Tools

As referenced above, there are a number of tools out there supporting different aspects of CI/CD, but Jenkins has proven to be the best software platform for CI/CD. Fortunately, most development organizations are already using open source Jenkins in some capacity today and comfortable with it. As with any critical piece of infrastructure software, organizations typically need the enterprise-grade features, reliability and deployment expertise to take full advantage of it and minimize the risk to your organization. This is especially true with CI/CD.

CloudBees, the enterprise Jenkins company, is a proven entity in CI/CD. CloudBees provides solutions that enable DevOps teams to respond more rapidly to the software delivery needs of the business. Building on the strength of Jenkins, the CloudBees Jenkins Platform provides a wide range of CI/CD solutions that meet the unique security, scalability and manageability needs of enterprises. The CloudBees Jenkins Platform supports many of the world’s largest and most business-critical deployments.

ci-cd-tools

Infostretch and CI/CD

Some enterprises may not have the necessary skill set or infrastructure in place to fully embrace CI/CD. There is lots of cost and complexity, and non-stop technical evolution makes it difficult to keep up. And their existing enterprise tools and processes may not translate effectively to mobile.

Infostretch fills this gap for many leading enterprises. Leveraging proven continuous integration and delivery approaches with tools like Jenkins, and a proven delivery maturity model, Infostretch helps development and test organizations embrace CI/CD to improve service quality and speed time to market while reducing development and operational costs.

Infostretch’s CI/CD offerings feature a number of important advantages for those organizations looking to accelerate their move to CI/CD:

A Flexible and Mobile-Ready Plugin

Infostretch supports your most complex use cases by automatically deploying mobile apps, executing your test code, and assuring high quality delivery of any mobile app style.

Unlimited Scalability and Device Elasticity for Your Entire Release Cycle

You can ramp up from single device testing to full, cross-platform load testing on hundreds of devices worldwide.

Enterprise-Ready and Continuous Quality

Our SLA based cloud and local deployment services are consistent, stable and secure – great for global, distributed team collaboration.

Leverage Existing Processes and Assets Within Your Organization

With Infostretch, you can connect your existing mobile app development tools to the Jenkins plugin to execute your test code against your “hybrid” MobileCloud lab of real devices.

Enhance Mobile CI/CD Workflow in Real User Conditions

You can test on real devices, in real-time with real network conditions across different geographies.

On-Demand Availability

Execute tests anytime, from anywhere with continuous access to a cloud-based test bed of active, carrier connected mobile devices.

Faster Issue Resolution

Foster agility with rich reports that include screenshots and videos to clearly demonstrate what went wrong and where.

Infostretch Accelerates Continuous Integration

infostretch-ci-cd-offerings
infostretch-ci-cd-offerings

Below are three brief examples of clients working with
Infostretch to accelerate their adoption of CI/CD

leading-hotel-chain

Deployed multiple Agile development and test automation initiatives for Native, Mobile Web and desktop leveraging Jenkins, Selenium and Cucumber. Support for up to 17 languages and 11 brands.

Learn More
leading-weight-chain

Deployed CI with Jenkins to automate 60% of mobile and web app testing. Covered multiple geographies, devices and apps; backend web services; reduced release cycle time by 84%.

Learn More
leading-healthcare-chain

Optimized automation execution using Jenkins and Selenium-based framework; enabling faster feedback on new code; significant operational cost savings.

Learn More

Latest News, Events, and Thought Leadership

Hear us Speak on “How Varian Achieved Quality@Speed in Regulated Environments”
Learn More
Manish Mathuria, CTO
Oct 16, 2017 @ 4:25pm to 4:50pm
Austria Center, Vienna, Austria
Oct 17, 2017
See More Events
Software Quality at Speed in Agile and DevOps Environments
Register Now
August 1, 2017
10AM PT / 1PM ET
Online
August 2, 2017
See More News
Test Automation for AEM Applications: A Primer
Read More

Adobe Experience Manager (AEM) has amassed a loyal following and it is easy to see why. AEM enables web and mobile...

See More Blogs