Click to learn more about author John Pocknell.
With the rise of IoT, social media and cloud infrastructure continuing to increase the rate at which data is growing, businesses need to capitalize on the tremendous value that insights from this data can bring to driving growth and market share.
This need has, in turn, led to the broadening adoption of a DevOps culture and associated automated processes that help increase the speed of the delivery pipeline for application changes, in order that businesses can react faster to changes in market dynamics.
It’s now clear that DBAs need to work more closely with developers as the database development lifecycle is quickly becoming a core part of DevOps CI/CD processes for many organizations. In fact, more than half of developers in a recent survey reported deploying database changes to production weekly or more frequently, and 78% said they are responsible for both application and database deployment.
With database administrators (DBAs) and developers gradually becoming more involved in agile processes such as Continuous Integration (CI) and Continuous Delivery (CD), in order to move changes to production faster, they find themselves struggling with things like data provisioning for debugging and code testing. This often conflicts with the need to protect personal and sensitive data under regulations like GDPR or CCPA. However, enabling developers with the data they need (i.e. real data vs. synthetic data) to ensure code defects don’t make their way into production, is essential. Especially with work from home, segmenting and protecting that data is important before it’s given to someone in an unprotected environment.
While the adoption of database DevOps is clearly happening, the way DBAs and developers are traditionally siloed inhibits agility and efficiency, leading to costly and detrimental impacts on productivity. DBAs need to be engaged and integrated into the DevOps culture, through increased team collaboration and management of the release process, to ensure success from development to production within the software development lifecycle.
By bringing the two teams together, there will be a stronger culture of trust as each team becomes better acquainted with the needs of the other and develops a shared understanding of why database changes are being made, familiarity with application function, data model best practices and the influences on poor application performance.
To break down silos and ensure collaboration, there are 3 key ways to fold DBAs into the DevOps process.
1. Nurture Understanding Between Teams
Ensure DBAs, development managers, and team leads work together to better understand each other’s roles and the needs of both in order to drive toward the common goal of delivering value to the business faster. DBAs can often guide development teams in areas such as data modelling to ensure efficient data structures and other areas that can potentially affect database performance and reliability. Likewise, developers can better articulate the importance of the need to access protected production data for QA and testing in order to reduce defects and issues in production.
2. Move Towards Automated Processes
Monitor the transition from manual development and release processes to automated ones. Unfortunately, it’s not always obvious where data lives, and managing that manually is no easy feat. To ensure data is staying protected but developers still have access to the data they need, the task can be automated. Using automation, questions of what constitutes personal data can be asked and reports based on responses to identify that data that shouldn’t be exposed can be filed, solving complex problems of data privacy identification. This also supports DBA and development teams in working more closely together and communicating more effectively.
3. Ensure Releases Are Robust
Identify potential issues with deployment scripts before errors make their way into production and confirm releases are robust and won’t disrupt or break the production system. Deployment scripts are historically created by developers, who have the knowledge of the application, then used by DBAs to make the actual changes to the production database. They need to be 100% accurate to avoid having to roll back changes in the unfortunate event that production applications experience problems. By following DevOps CI/CD practices, it’s also safer to release smaller changes more often to reduce this risk further while enabling DBAs to work closer in hand with DevOps teams.
DBA Best Practices for Protecting Data
When developers are used to having access to production data, but the personal data within that must be protected with certain privacy regulations that have to be followed, DBAs must think about the appropriate level of data protection that enables meaningful testing while adhering to data privacy regulations.
Data masking is an important practice to put in place to ensure personal data is properly protected and is typically used in non-production settings. DBAs can implement encryption or redaction in production settings, and use third-party tools to ease the process of data discovery, classification and protection. Implementing transactional auditing is also an important part of capturing all events relating to personal and sensitive data. Applying these can support data protection and enable developers with what they need to do their jobs.
Being able to apply the right level of protection to where it’s needed gives DBAs the confidence they need that the non-production data that developers must have for testing is secure and complies with data privacy regulations. Guidance from DBAs can also help ensure data privacy issues don’t creep into the developers code.
Ultimately, the days of siloed database teams and processes are dwindling and DevOps has become the new reality. The more interconnected development, testing, QA, UAT and operations teams are, the more effective IT can be. While some may believe that it’s too time consuming or expensive to make the shift, the reality is that those who don’t convert to DevOps will fall behind.
When DBAs become fully integrated into the database change management process, they can collaborate more closely with developers and better manage database changes in a DevOps world. Taking a strategically planned approach to integrating DBAs and developers into the DevOps culture, combined with sound automated processes means faster delivery of high quality database changes, further agility for the overall IT environment and ultimately a more successful business.