Implementing reliable transaction processing for large-scale systems is beyond the capability of many software developers. However, commercial relational database management system (RDBMS) products enable developers to create many applications that they otherwise could not. Although using an RDBMS solves many software development problems, one longstanding issue persists—how to ensure code and data consistency between the RDBMS and the application.
This challenge of managing the state of code and data is a particularly thorny one during the software development and testing (dev/test) life cycle. As code is added and changed in the application, testers must have a known state for the code and data in the database. For example, if a test is designed to add 10 customer accounts to an existing database and then test for the total number of customers, the team must ensure that they are starting with same set of base customers every time. For larger applications with hundreds or thousands of tests, this activity becomes a challenge even for experienced teams.
Container technology enables development teams to quickly provision isolated applications without the traditional complexities. For many companies, to boost productivity and time to value, the use of containers starts with the departments that are focused on software development. The journey typically starts with installing, implementing, and using containers for applications that are based on the microservice architecture. In the past, integration between containerized applications and database services like Microsoft SQL Server were clumsy at best. Often they would introduce delays in the agile development process.