Devops Comes to Database Developers and Dbas
Total Page:16
File Type:pdf, Size:1020Kb
DevOps Comes to Database Developers and DBAs — It’s About Time Written by Daniel Norwood, Director of Product Marketing, Dell Software, and Robert Reeves, CTO, Datical Introduction Now your organization can apply automation to your database development lifecycle, breaking down silos Application teams have tools for managing their between development and operations teams and bringing development lifecycle — from source code control and you into the DevOps fold. With the right tools, database automated testing to continuous integration and automated developers and DBAs can finally keep up with the increasing deployment. But as a database developer or DBA, you’ve pace of application releases while protecting precious lacked the proper tooling to help you keep pace with the rest business data. of your organization. This white paper will explore the importance of bringing agile You face increasing pressure to deliver database changes and DevOps to database development and the obstacles faster, while you’re also responsible for ensuring that organizations face along the way. It describes what to look databases are always available and applications run at peak for when selecting tools to bring the database into the world performance. The conventional wisdom dictates that you of DevOps. Finally, it demonstrates how the right tools can have to choose between speed and quality, that you can’t go bring automation to database development and the value of faster and reduce risk at the same time. DevOps to the entire organization. Wrong. Background: Agile and DevOps … and DevOps solves the release bottleneck … Agile development is at the core of DevOps and the faster pace of As development teams became more application releases. agile, it naturally led to the use of more software tools for process automation Agile solves the development and collaboration. Eventually, the bottleneck … collaboration reached past the point In a Tech Beacon survey called of deployment and into operations. As “Is agile the new norm?”, 67 percent of depicted in Figure 1, the development respondents said that they were purely and operations teams have grown to agile or leaning toward it. Companies work together to manage code from turn to agile to lower or eliminate design through operations and back in the barriers between the business a truly collaborative cycle. and development. They find benefits As collaboration improved and more of agile development in all of their processes were automated, the value most important metrics: enhanced delivered to the organization increased collaboration, higher software quality, as well. The Puppet Labs State of greater customer satisfaction and lower DevOps Report shows that the value 67 percent of survey cost of development. goes far beyond speed of delivery. respondents said With agile, new features and bug fixes Compared to companies that have not that they were purely get to market much faster and are on adopted DevOps, high-performing point with customer requirements. IT organizations enjoy 60 times fewer agile or leaning Gone are the days of spending a year failures and recover from those failures and a half at the drawing board and 168 times faster than their lower- toward it. coming back with a product; mobile performing peers. They also deploy 30 app release schedules have set the times more frequently with 200 times expectation that users should wait no shorter ramp-up. more than a couple of weeks or days for changes. Design Code Build Test Release Deploy Operate DevOps Continuous delivery Continuous integration Value delivered Agile Collaboration required Figure 1: Evolution from agile to DevOps 2 Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Change Figure 2: The process of database change has become the bottleneck in an otherwise agile process … so what about the database based on the database’s current state development bottleneck? at that time. Agile and DevOps have brought • Whereas application developers have Organizations about great progress in application the option of reverting to a previous development through the use of version, database developers have cannot enjoy all the automation tools and software. to jump through many more hoops However, those tools are not a good to undo changes, even restoring the benefits of true agile entire database in worst cases. fit for the work of database developers and DevOps if they and DBAs, and the lack of proper tools Application teams typically check leaves them out of the agile movement. in their code, and then a series of do not include the automated processes follows: build, database. Organizations cannot enjoy all the test, review, stage, deploy. The benefits of true agile and DevOps changes propagate automatically if they do not include the database. through test environments and Application releases may be ready as eventually into production as they pass often as every few minutes, but as automated validation. However, in Figure 2 shows, if they depend on cases where there are dependencies database updates that take place every on database code changes, the rest of month or quarter, then the organization the organization must wait because as a whole misses the value of agile. processes at this level are still manual. Why is database development Going faster and lowering costs slower? without increasing risk Given that database development The reasons for going agile are to needs to join the rest of the reduce risk, lower cost and increase organization, what gets in the way of speed. These also apply to automating accelerating it? the database development cycle. The answer goes to the nature of The dominant theme in database databases and database development: development has been the trade- of between speed and quality (risk). • For standard application development, In order to avoid risk, database making changes to the front-end application code is often more developers work methodically and forgiving because it is possible to carefully, looking through every script revert to a previous build if something in an attempt to reduce risk. That does goes wrong. There may be some not lower cost or increase speed. service interruption, but the risk of losing data is usually low. Nor does it make the business more responsive. If database changes are the • With database development, it’s bottleneck and slowing them down necessary to preserve the state of is seen as the best way to protect the the database and protect its data throughout code changes. This is database, then organizations that crave accomplished with complex scripting stability will never be completely agile. 3 Database developers and DBAs Automation tools for faster stuck in the middle database development without What sufers when developers try to compromising quality work faster? The combination of Toad and Datical DB extends the benefits of DevOps • Best practices — All professional automation to the database environment. programmers know that there are It ofers database developers and certain practices to follow to write code properly. When time does DBAs the opportunity to accelerate not allow, those practices often development while mitigating risk and go unobserved. inherently reinforcing best practices. Toad and Datical work together to create • Proper testing — In the rush to get an agile pipeline for database changes at code out, many development teams each step in the database development feel there is no time to create proper lifecycle (see Figure 3). unit tests. As a result, testing at the developer level becomes limited to 1. Track discrete changes to debugging code and ensuring that it is not faulty. That is necessary as a first code (Toad) step, but it is not enough. The loss of Some developers simply rely on pulling If database changes unit tests increases dependency on the master version of source code are the bottleneck test teams later in the process, slowing from the database, but how do they the release process. Ironically, cutting know it wasn’t changed without their this corner actually slows things more. and slowing them knowledge? And what was changed • Code reviews — Although they cannot before they got there? What happens down is seen as aford it, DBAs spend a lot of time in if two developers need to change the best way to code review meetings. They and their the same piece of code? Managing managers find themselves playing the code artifacts in a version control protect the database, role of code police, trying to uphold system (VCS) is the best practice and code quality one line at a time. then organizations foundation for speeding things up. Even after navigating obstacles and A VCS is a reliable means of ensuring that crave stability trying to build up their team for faster that the right version of code is on its development, most DBAs and database way into the build system and that the will never be developers are able to trim release code object has full integrity. Version cycles down to two or four weeks completely agile. control also ensures that multiple at best. That kind of improvement developers in a live environment are is of little help when the application not overwriting one another’s changes. development team is comfortably It is indispensable to application releasing several times a day. development, so Toad ofers integration In short, the dilemma is to find the right with systems like Git, Microsoft automation tool that will speed up TFS, CVS, ClearCase, Perforce database development and lower cost and SVN, right in the integrated without risking the integrity of the data. development environment (IDE). 1 2 3 4 5 Code Track discrete Automate Automate Automate Automate changes changes testing code reviews staging deployment Toad Dactical Figure 3: Toad and Datical — DevOps automation for database development 4 150× Managing code artifacts in a version control system is Relative cost fix to a bug the best practice and foundation for speeding things up.