"Hurry up and wait for the database guys."
If you’re trying to promote DevOps and continuous integration in your company, you may find that that has become your watchword.
In many organizations, application developers have taken advantage of continuous integration tools and continuous deployment tools to automate processes like unit testing and static code review. But what good does it do if their colleagues working on the Oracle database can’t use similar tools to speed things up on their side?
It’s not easy to bring database changes into the DevOps pipeline at the same pace that the application side can implement their changes. Database development involves changing code without affecting the sensitive data living in the databases, then performing time-consuming unit tests and code analysis. Application teams have long used automated tools for their build processes, only to hurry up and wait for the database guys.
What would you bring into DevOps first?
If you wanted to ramp up database DevOps, which development tasks would be most important for you?
At Quest®, we spent a couple of years asking that question of Oracle database developers, trying to figure out what would remove the usual bottlenecks that keep them from joining the DevOps party. As a result, we came up with this wish list:
- PL/SQL unit testing so you can ensure that all the PL/SQL code in your build passes all the unit tests
- Static code reviews to help you improve the quality and maintainability of your PL/SQL based on a defined rule set, with quality levels pegged to specified thresholds
- Database, schema and data compare to generate deployment scripts based on comparisons of Oracle database configurations, schema objects and table data between source and target databases
- Script execution for promoting build artifacts and synchronization changes into your target environment
Many database developers would be content with bringing one or two of those tasks into DevOps and ecstatic if they could bring in all four.
Catching up with the app developers
"If we could automate those tasks," said the database developers we talked to, "the app guys wouldn’t complain about having to wait for us. We could implement database changes faster and the whole organization could get a lot more out of DevOps."
DevOps begins to pay off when your database teams and application teams are aligned and share the same processes and systems. Having a way to automate unit testing and static code reviews for Oracle PL/SQL code is critical to achieving this parity.
Database automation with Toad® DevOps Toolkit
We’ve rolled everything we learned about aligning database development and application development into Toad DevOps Toolkit, our product for boosting the velocity of your DevOps pipeline.
The toolkit allows you to execute the most important Oracle database development functions in your DevOps workflow without compromising quality, performance or reliability. Those functions originate from the classic Toad for Oracle desktop tool. By exposing them as programmable objects that can be called by build servers such as Jenkins, Bamboo or TFS, Toad DevOps Toolkit helps improve the functional integrity and quality of your PL/SQL code during an automated build process.
First, Toad DevOps Toolkit helps overcome the obstacle of accessing the right tests by letting you work with all the test suites, unit tests and test cases created in Toad for Oracle Developer Edition and stored in your Code Tester for Oracle repository. In your automated build process, you run a pre-defined script that accesses all the code and unit tests checked into source control. The script then invokes the toolkit, executes the tests and outputs the results, including pass/fail status, into your build web console.
Next, you can perform static code reviews based on predefined Toad Code Analysis rules and thresholds. The resulting pass/fail notifications indicate whether the code is sufficiently sound for production.
To prepare to deploy the build artifacts into the next stage, you can implement a script that invokes Toad DevOps Toolkit from your continuous integration (CI) system and compares the database configuration, schema objects and table data between the source and target databases. You can also configure the toolkit to generate a synchronization script that updates target objects to match the source as part of the build deployment.
Finally, once you’re satisfied with the results of the comparison in CI, you can use Toad DevOps Toolkit to execute the deployment script(s) as part of your continuous deployment (CD) process.
No more hurry up and wait
Toad DevOps Toolkit plays well with virtually any continuous integration and continuous delivery tool, including Jenkins, Bamboo and Team Foundation Server.
Download a 30-day trial version and see how well the toolkit works with Toad for Oracle. It’s a big step toward bringing application and database deployment together and boosting the velocity of your DevOps pipeline.
Download Toad DevOps Toolkit>>