The database is often one of the most overlooked and most complex parts of the software development lifecycle (SDLC). In production and for quality testing, you must have clean and valid data in the application database. To achieve that quality level, organizations like yours often rely on a copy of the production database.
Setting up a production-like database is manual and time-consuming. To carry out this process, you must create data copies by using migration scripts and you must obfuscate sensitive data. Additionally, to analyze the risk involved in this process, you must hold multiple meetings between application developers, database administrators (DBAs), and IT staff.
With a simple plug-in, however, NetApp and Apprenda can greatly simplify the process, freeing your developers to focus on innovation.
Burdensome Complexity and Overhead
When developers receive a copy of the production database for testing and development (test/dev), it quickly becomes “polluted” and is less reliable with every test run. Errors in the code base lead to failure in your test cases. Therefore, the more that less mature instances of the applications touch the database, the greater the discrepancy becomes between the reality and the desired state of the data.
Although your developers can fix errors in the code, polluted data must be restored to its original state right before every new or updated instance of the application is deployed. This requirement increases the amount of complexity and overhead exponentially, especially if your organization uses frequent continuous integration (CI) and continuous deployment (CD) practices.
Because of these complexities and the time that it takes to produce fresh data for preproduction, organizations often forgo this process. This approach reduces the code quality, however, and restricts your developers from being innovative in the application delivery process.
NetApp and Apprenda Automated Solution
NetApp and Apprenda created an automated solution that simplifies the process of generating multiple copies of the production database on demand for preproduction. With this solution, you can use native NetApp® ONTAP® features like NetApp Snapshot™ copy creation and FlexClone® technology to automatically set up a pristine database for test/dev during user acceptance testing (UAT).
At deployment time, you can use a plug-in to directly integrate Apprenda Cloud Platform (ACP) with NetApp SnapCenter® RESTful APIs. The integrated solution or the plug-in works with a wide variety of database engines. In this blog post, we use MySQL as an example. The outlined area in the following diagram illustrates the components of the Apprenda and the NetApp SnapCenter plug-in that give your developers more autonomy to rapidly provision a production-like MySQL database from the developer portal on ACP.
The plug-in relies on Apprenda’s policy deployment engine and the abstraction model. This model frees your platform developers from the need to know the intricacies of database cloning and reduces the need for them to contact other IT departments to achieve their goal.
With Apprenda’s policy engine, operators can securely segment the platform based on your various needs, with SDLC environments being one of them. The established policies determine where application instances are deployed and what databases they are connecting to. To securely separate your preproduction and production environments, the databases that are similar to the applications themselves are segmented based on the deployment policies.
The following diagram shows how the plug-in functions in a continuous Delivery process for developers to test/dev applications with MySQL database during the User Acceptance Testing from ACP.
Apprenda gives you secure segmentation of database workloads and user access based on deployment policies in the CI and CD workflow at the platform layer. With ONTAP, you get on-demand, instant, thin-provisioned clones of your database at the data layer. Your application can connect these clones to the database so that you can start the test/dev process quickly.
Because changes to the clone database don’t affect the production MySQL database, you can test the application in isolation, avoiding any risk to your production environment. You can select different control options (or deployment policies) as extensions in the Apprenda platform. Your operators and developers can then use SnapCenter RESTful APIs for applications that are deployed on Apprenda to perform data management operations, like creating application-consistent backups, cloning, mounting, and starting the database automatically. And they can perform these operations with zero storage touch.
Foster Innovation: Simplify and Enhance Your DevOps Today
With the Apprenda and SnapCenter plug-in, the process is greatly simplified. Your developers answer just a few simple questions about the application. Then with a few clicks, they have immediate access to a clone of the production database that’s ready for testing with their updated code.
This integrated solution or the plug-in can enhance your existing CI and CD automation and provides multiple benefits. It helps increase the quality of testing by automatically refreshing application data, so you don’t have to delay the verification process by using manual data migrations. And you can have fewer meetings between developers, IT staff, and DBAs—people who often don’t speak the same technical language—and less negotiation about database cloning and mounting. You also get a secure and reliable way to fully bootstrap application instances for CI and CD.
Now that you know how to accelerate CI and how to quickly and easily create production-like databases for DevOps, start fostering innovation in your environment. Visit our webpage or contact NetApp today.