Uncategorized

How Database Automation ‘Liberates’ Software Developers

App need data. As such, software application developers need data – they ‘put’ it in our apps and enable us to do stuff with our devices and enjoy the technology services that we choose to enable our lives with. Take those two realities together and we get a third home truth, developers need to use databases as part of their applications.

As much as apps need data and developers need databases, there’s something of a love-hate relationship going on here i.e. database are generally run and operated by DataBase Administrators (DBAs) and other members of the (Ops as in DevOps) operations team including System Administrators (sysadmins) and others. That disconnect is married with the fact that developers like to code, they don’t like to wrangle with data builds, batches and backups that happen at the database level every day.

Is there hope, or will this disarticulation always be so… and could the modern age of AI and automation come to the rescue? In order to answer this question, we need to step back and look at how software developers get to their roles in contemporary organizations and consider what their view of the world looks like today.

The path to developer

Speaking to Dave Stokes in his capacity as technology evangelist at open source database software and services company Percona, the story starts to become clearer. He explains that, typically, if somebody wants to become a software developer, the traditional approach is to study Computer Science at university. Today there are of course multiple conversion courses and software bootcamps that help individuals to enter the industry too.

But although these courses get people used to working with tools to get up and running quickly, they don’t necessarily go into areas like relational theory (a fundamental model used by databases to organize data into ‘related’ tables composed of columns and row with unique identifiers) and databases themselves. Because they don’t go into the theory, developers don’t learn about how to manage these services.

But says Stokes, the challenge is even bigger than that. The Percona tech guru reminds us that today we know that with he move to DevOps and Site Reliability Engineering (SRE) means that developers are now more responsible for supporting the applications that they have built. This means that developers take on more responsibility for managing infrastructure, including databases. It also means that there are less ‘out and out’ DBAs than there used to be.

Automation powers-up

“While the role of the DBA has been subsumed into SRE and DevOps duties, how are developers able to get the most out of their applications and data? The answer, of course, is automation,” says Stokes. Why not use services that can take on the dull but necessary tasks involved? To start off, developers can improve common tasks around their databases for essential tasks such as backup and management. Using [software code] scripts and tools, developers can easily automate these processes so that they don’t have to run them manually.”

In the era of cloud and the proliferation of the service-based computing that has given us Everything-as-a-Service (also known as XaaS), developer teams can also look at the option of outsourcing their data infrastructure management using a Database-as-a-Service (DBaaS) provider to handle a lot of these tasks. They can even consider implementing their own DBaaS approach if they are confident in using Kubernetes (a centrally important and widely popular cloud ‘container’ orchestration technology) if they don’t want to rely too much on a specific service provider.

Building on platform engineering

“For developers that want to stick with open source, platform engineering approaches can help as well,” says Percona’s Stokes, echoing the real zeitgeist of modern and still-emerging methodologies cenatralizing around enterprise technology today. “Platform engineering takes the developer-friendly self-service approach that cloud providers offer and then helps them bring that into their own environment. This means that they have more control over how and where they run their infrastructure, but still provide that developer experience that is so important for productivity.”

From a database perspective, this means automating the processes that developers go through in order to request, build and access a database instance when they need it. This makes it easier to carry out the phases of development and testing and then move into production (that point when apps are actually deployed), while still running the databases and other elements that they choose.

Developer liberation epiphany

“Another area where developers can look to gain automation advantage is around how they get recommendations on database system settings. If a developer-programmer team unit lacks expertise in this area (and many will), how can they know when to use ‘default settings’ and understand when they need to implement a change based on application workloads? For databases, looking at areas where developers can improve performance for queries is seen as something of a dark art. But these systems produce data in their own right. With enough data – and the right comparisons – teams can look for improvements and get recommendations on where they can make changes,” clarified Percona’s Stokes, in something of an enlightening (and hopefully liberating) revelation.

Stokes says that even if a software programmer is a relative a novice to the world of databases, using other people’s experiences through automated recommendations can help. This can be very helpful around areas like availability and durability for an application, where developers would otherwise have to understand database clustering and performance in some detail. Beyond performance, they can look at other database management requirements, such as checking for access control to instances or for insecure connections.

Right things vs. right way

“One thing to bear in mind is the difference between automating the right things and automating things in the right way. The difference here is not just applying automation to make an existing approach keep ticking over, but instead to look at how teams can improve their approach overall. Understanding areas like queries and auditing what the development team wants to achieve in an application can help. This may start with one approach to data, but application needs will evolve over time. This means that there always need to be space for that open question: should we carry on with our existing automated approach, or should we look at updating or replacing it?,” questions Stokes.

All of this also matters from a cost perspective.

If a developer team automates database services in an environment to deliver data queries, they may have a set of queries that are not very efficient for what the application base needs today. This means they can end up paying more for the data infrastructure than they need to. Percona’s Stokes likens this process to going up a hill on a bike in low gear i.e. it uses extra unnecessary effort to complete the journey.

“Just because you can work and travel [in low-gear] that [massively] hard using automation, it doesn’t mean that you should,” he said. “Just like applications never stay still, the way any given developer team approach databases automation will inevitably have to change at some point too.”

The advice here is simple in many ways. More of our IT teams can do more with more automation and alleviate burdens that are encumbering the fast roll-out of applications and data services that often need to change rapidly (remember Covid-19?) and serve our dynamic world economies. But, with great power always comes great responsibility, so looking at what we automate as well as why and how we automate is also crucial.

Automation is everywhere and it starts beneath the surface.

Let’s automate, but collaborate to mitigate as we assimilate, carefully deliberate and integrate with a view to facilitate and liberate.

Looking to hire skilled software developers? Contact TP&P Technology – Leading Software Outsourcing Company in Vietnam Today

Article resource: https://www.forbes.com/sites/adrianbridgwater/2023/05/15/how-database-automation-liberates-software-developers/?sh=ba2bf5abdf32

Leave a comment