Automate build, test and deployment processes<

White paper

CI/CD Continuous Integration & Delivery

NEW REQUIREMENTS FOR DIGITAL TRANSFORMATION
INTRODUCTION
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.

automated pipeline

Continuous Integration & Delivery (CI/CD)

QA vs. QE – What’s the big difference?

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.

Automated pipeline CI CD
CI/CD offers
important benefits for development & test organizations
Faster Identification & resolution of defects
Faster Identification & 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
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
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.

Better Project visibility
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.

Reduced assumptions
Reduced assumptions

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

Faster time to market
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
Software health measurability

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

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 build 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 and consistency
Keeping the changes in very small releases makes it substantially easier to find and fix problems if the don occur, minimizingthe 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.

CI/CD & 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
benefits to mobile initiatives that reach far beyond development & testing

This enables businesses to:

get new products and features to market faster

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

Impactful mobile initiatives

Get more impact from mobile initiatives

accelerate innovation

Accelerate their level of innovation

Save time and money

Save time and money

Provide higher reliability

Provide higher reliability

undeniable BENEFITS
combined CI/CD 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

CI/CD tools

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
FRAGMENTED CI/CD TOOL LANDSCAPE
CI/CD role requirement and ownership

ROLE requirements & 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 Impacts Entire SDLC

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

CI/CD Best practices & 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 Dashboard
OUR offerings
INFOstretch & CI/CD

Apexon’s CI/CD offerings feature a number of important advantages for those organizations looking to accelerate their move to 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.

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

A Flexible & Mobile-Ready Plugin
A Flexible & Mobile-
Ready Plugin

Apexon 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.

Enterprise-Ready & Continuous Quality
Enterprise-Ready &
Continuous Quality

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

On-Demand Availability
On-Demand
Availability

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

Foster agility with rich reports
Faster Issue
Resolution

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

Unlimited Scalability & Device Elasticity for Your Entire Release Cycle
Unlimited Scalability &
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.

Leverage Existing Processes & Assets Within Your Organization
Leverage Existing
Processes & Assets Within
Your Organization

With Apexon, 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
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.

Apexon
Accelerating Continuous Integration
Apexon CI/CD offerings
User roles
User roles
  • Developer
  • Products Manager Developer
  • QA Engineer
  • Release Engineer
  • Operations Engineer
Build Automation
Build Automation

Activities

  • Requirements
  • Scripted Builds
  • Build once – Deploy Anywhere

Tools

  • JIRA / Rally
  • Jenkins / CloudBees
  • Maven / Gradle
  • Artifactory / JFrog
Test Automation
Test Automation

Activities

  • Unit Tests / API Tests / Functional Tests / System Tests
  • TDD / BDD
  • Analytics / Security

Tools

  • JACoCo, Clover
  • Crucible, SonarQube
  • Cucumber, JBehave
  • AppDynamics, Fortify
Deployment Automation
Deployment Automation

Activities

  • Zero Touch Continuous Deployment
  • Distributed Build Machines

Tools

  • Docker, Electric Cloud, Open Stack
  • PuppetLabs, Chef
Dashboard & reporting
Dashboard & reporting
  • Product > Sprint > User > Story > Build
  • Real Time Execution Details
  • Drill Down Reports
  • Integration with ALM Tools
  • Auto Notification of Pipeline Status
Web Application, Mobile Application (Native App, Responsive Web App)
Platform-as-a-Service (PasS) – IBM Bluemix, RedHat, OpenShift, Microsoft Azure, Amazon AWS
brief examples
clients working with Apexon to accelerate their adoption of CI/CD
CI CD Services for multinational hospitality company

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.

CI CD Services for leading weight management company

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%.

CI CD Services for large healthcare provider

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