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.

Bikash Roy Choudhury

Bikash Roy Choudhury is a Principal Architect at NetApp. He is responsible for designing and architecting solutions for DevOps workflows relevant across industry verticals including high tech, financial services, gaming, social media, and web-based development organizations that address customer business requirements in these markets. He also works on validating solutions with Red Hat (RHOSP-IaaS), Apprenda (PaaS), Docker Containers, CloudBees Jenkins, IBM Bleuemix PaaS and Perforce Helix using RESTful APIs and integrating them with NetApp ONTAP software in private, hybrid, and public clouds. In his current role, Bikash drives integrations with strategic DevOps partners, including Red Hat, CloudBees, Perforce, Apprenda,
JFrog Artifactory, IBM, and Iron.io.

Bikash has over 16 years of data management platform experience. Before joining NetApp, he worked for eight years at key accounts as a professional services engineer. For three years he was a systems administrator working on various UNIX platforms. Bikash received an MSCIS from the University of Phoenix, San Jose, and a BSc in computer science engineering from a distinguished engineering college in India.

Michael Michael

Michael Michael (or M2 as he's known) is Apprenda's Senior Director of Product Management. Michael also leads the Kubernetes SIG-Windows which is tasked to bring Windows Server support natively to Kubernetes. He is an experienced, detail-oriented software engineer with problem-solving and program-management skills. Prior to Apprenda, Michael spent 12 years at Microsoft as a Principal Program Manager working on Virtualization, Azure, and Windows Server technologies. Michael holds a Master in Computer Science from Stanford University, a Technology M.B.A., and a Bachelor of Science in Computer Science from the University of Texas at Austin. Many Apprenda employees believe he could one day play ping-pong professionally.