Introduction and Best Practices for Zuora DevOps
Overview
Monetization strategies are complex, but the customer and user experiences must be straightforward. Your monetization platform must provide a consistent customer experience throughout the customer journey, from subscribing to reading invoices to creating and modifying payment methods. The subscription platform's user experience must focus more on business users. It should be easy to use for accounting, finance, and IT admins who manage subscriptions and revenue.
Customers expect services to be available as they need them. Any disruption in the customer experience impacts customer satisfaction and trust. Businesses constantly need to innovate, maintain, and release faster. Implementing a DevOps strategy enables businesses to build a reliable, scalable solution that is resilient to issues, ultimately safeguarding the bottom line and ensuring the success of customer-facing initiatives.
Competition drives the need to “go live faster” and constantly ” iterate” to improve the current application. Constant innovation is required to meet customer expectations, generate revenue, and maintain agility. This makes it even more compelling for subscription businesses to consider faster software release cycles for managing customer engagement and key success metrics like MRR, ARR, etc.
Businesses need to prioritize product readiness and improve the production environment to reduce time to market. DevOps' business value lies in faster releases, high quality, and the optimization of resourcing and tooling costs.
What is DevOps?
DevOps enables coordination and collaboration between traditionally siloed roles through tools, processes, and people. DevOps is a culture or organizational approach in which everyone has access to the DevOps tools and is responsible for all aspects of the product, from development, IT operations, quality engineering, security, and vulnerability compliance to release managers.
Financial processes implemented on Zuora vary ranging from straightforward subscription scenarios to highly complex use cases. Our solutions are tailored to the unique needs of your organization. Zuora provides a range of customizable features from Pricing Models, Payment Methods, and Notifications to customers for managing subscriptions to dunnings and Advanced Custom Fields, and Extension Studios for managing configurations that enable you to create your business' operation-specific solutions.
To cope with the increasing complexity of both internal and external factors, it is inevitable for businesses to adopt a DevOps strategy for achieving :
- Reduced time to market - Shortening the release cycles for bug fixes and new feature releases through automation
- Higher quality and governance - A predictable and repeatable process utilized for development, testing and deployment.
Business value of implementing DevOps
Businesses need to prioritize product readiness and improve the production environment to reduce time to market.
The business value of DevOps lies in:
- Faster Releases
- High quality and optimization of resourcing and tooling costs.
Key Drivers of Growth in DevOps Strategy
- Increasing demand for continuous and faster application delivery
- Increasing growth of microservices architectures over monolith applications. Microservices are created, tested and deployed independently, making it easier and faster to support releases and bug fixes whereas a monolith application requires a complete version release for new releases and makes it difficult to introduce changes.
- Increasing demand for streamlining collaboration between IT and operations teams for breaking the silos and involving all the teams and SMEs engaged in software development and its lifecycle.
DevOps best practices to manage your Zuora landscape
To ensure that your businesses get the most out of Zuora's DevOps initiatives, here are the top 4 Zuora DevOps best practices designed to make agility a core element in Zuora's Application development process:
- Managing Zuora Environments
- Define a testing strategy
- Automated collaboration and Version Controlling
- Monitoring and Observability
Managing Zuora Environments
Develop a testing approach and determine the environments required to execute the testing strategy. A good practice is to have at least three or more stages in the deployment process before releasing to production.
- Development sandbox - The environment where the developers will pursue development and testing. You can have multiple sandboxes for different testing environments. For more information on the various testing environments, see Zuora Testing Environments.
- Merging environment - Integrating environment where the code from all the development environments is synced before the User Acceptance Testing (UAT) is done. Zuora Central Sandbox mirrors production data, making it the ideal environment for testing integrations and syncing all the isolated developments into one and testing how they will function in Production.
- Production environment - This is an operationally live environment where subscribers access the Catalog and Services. It must be highly stable and reliable for handling large volumes of transactions as it directly impacts the customer experience.
The Developer environments should be used for development, testing new and existing customizations and ensuring that Production data, integrations, and applications are not compromised.
There may be a merging environment, often named the SIT environment, where all the changes from various developers are merged and tested. The UAT environment is a production-like environment for understanding how the changes will work in the Production environment.
Zuora recommends refreshing the lower environments with Production data and the Baseline development and testing environments with production data. This ensures that the lower environments accurately mirror the production environment and helps identify and resolve issues early in the development lifecycle.
Define a Testing Strategy
Testing Strategy | Description |
---|---|
Automated tests | These tests cover the vast majority of your use cases. Automated test scripts programmatically perform validations, ensuring efficiency and accuracy. |
Run the UAT in a production-like environment | In the case of major releases and changes directly impacting your business and subscriptions, it is best to run the UAT in a production-like environment. This will help you understand the change and certify that it works as expected. Modifying your changes in production is a poor practice that would result in a loss of control over errors and failures, directly impacting the front end. |
Test using relevant production data and users | Normally, businesses deploy the last successful set of configurations tested in the UAT environment. Regardless of the approach, testing should not be skipped. |
Automated Collaboration and Version Controlling
- Tracking changes and issues in low-code platforms and while working in a shared environment becomes difficult. Implementing version control is essential for tracking changes to metadata. It facilitates improved collaboration among teams for tasks such as peer reviews and implementing merging and branching strategies for deploying programmatically to various tenants. These strategies are essential for managing releases, bug fixes, and maintaining an audit trail of changes, including details on who initiated the changes and when they occurred.
- When the Version Control System acts as a source of truth for a given application, the continuous merging of the changes triggers a series of automated builds and tests. By merging changes continuously, the bugs identified are earlier, fixed and validated faster and released faster. After the success criteria post-testing and integration have been met, the changes can be deployed to production, thus reducing time to market.
Monitoring and Observability
The automated processes integrated with DevOps tools necessitate continuous monitoring and observability across the entire development and release lifecycle. This entails seamless integration between tools and collaboration among IT and operations teams. DevOps monitoring tools play a crucial role in providing visibility throughout these processes, aiding in achieving efficient monitoring and observability across the entire development and release pipeline.
DevOps and Application Lifecycle Management with Zuora
Application Lifefcycle Management (ALM) encompasses the entire software development process, while DevOps focuses on the methodology used within that process. For example, testing is a component of ALM. If an organization decides to incorporate automated testing through source code-driven development, the organization is leveraging DevOps practices. When ALM is synchronized with DevOps, the objective is to achieve quicker and higher quality releases.
What is Application Lifecycle Management?
Application Lifecycle Management (ALM) is a set of processes and tools that an organization can define and implement for maintaining the application, development, testing and deployments.
The following image outlines the five typical phases in ALM:
Zuora Application Lifecycle Management Tools
Zuora provides an extensive framework of tools and isolated sandbox environments. These are designed to support you at various stages of development, testing and monitoring system health. Both the Zuora Central Sandbox and the Zuora Developer Sandbox are interconnected with production for the unification of data. The developers have access to the production data in an isolated environment where they can develop and test. Zuora Developer and Central Sandboxes offer the inherent capability to refresh data from the production environment, enhancing the development and testing processes.
Data security and protection of sensitive information is vital for any organization to meet the compliance and regulatory requirements. Zuora Object Manager may be leveraged for downstream masking, encryption, and scrubbing. Organizations can enhance data security, protect sensitive information, and ensure compliance with regulatory requirements. Zuora Data Migration toolkit provides multiple ways for ingesting data from various sources into Zuora tenant whether the developer requires a subset of data for testing, or migration of data from external sources.
Stages of Application Development
- Step 1: Plan
Planning includes gathering requirements, creating user stories and breaking them down into smaller tasks for the developers to initiate the development.
- Step 2: Create and Test
The build on the requirements and user stories is initiated. The developers verify their changes before merging their work with others. As development expands and operational business complexities increase, optimizing Application Lifecycle Management becomes essential. The key area for optimizing the process end to end is the strategic use of multiple developer sandboxes of different types.
Zuora Developer Sandboxes are dedicated, isolated environments provided to create, modify and test changes using a snapshot of production configuration data. It provides frequent refreshes and is an ideal setup for testing their changes and integrations.
- Step 3: Testing
All the created, modified, and customized artifacts are consolidated, bundled together and moved to a higher environment for user acceptance testing. Zuora Central Sandbox is designed to provide an identical copy of the production environment for various development, testing and training purposes. Central Sandboxes are valuable and highly recommended for UAT, performance and load testing.
- Step 4: Release
Post successful testing and meeting quality benchmarks, deploy the updates to production. Releases in Zuora Tenants can typically fall into one of the two following categories:
- Minor changes - This includes bug fixes or modifying any existing billing documents, adding a new batch or communication profile etc.
- Major Changes - These are changes with a significant impact that may affect the user experience and data accuracy. For example, adding a new workflow for performing mass update action on price changes or data integration from external sources such as Netsuite, Salesforce, SFTP integrations etc.
- Step 5: Monitor
Zuora Platform enables monitoring your deployments and optimizing your UAT with Zuora System Health Dashboards. These dashboards provide visualizations of the usage and performance of Zuora products. This data enables you to understand workload and performance and make data-driven decisions. System Health dashboards can be configured with threshold-based alerts (callouts/ emails) to help you closely monitor your continuous DevOps processes.
- We continuously improve our software application to offer you a better user experience. Our tools and applications help you simplify the complexities of business unit expansions. You can gain visibility into the latest Zuora releases and access the impact.
- The ALM framework within the Zuora Billing Platform offers guidance on the best practices for working with Zuora CPQ and Zuora Connect for Salesforce. Following these best practices will ensure an effective utilization of these tools.