Databases are a case in point. At various levels of complexity, entire departments have to battle with database proliferation. The tendency in the past has been for developers to create databases for each and every new project – all of which have to be looked after individually by database administrators.
The need for resources to be available on tap in order to respond to market opportunities and customer demand makes this approach unviable. As with so many things, the Cloud affords us a much simpler solution - by enabling a Platform as a Service database (PaaS DB) approach to the storage and management of structured data.
Rooting out silos
Whether it’s supporting e-commerce websites, mobile applications, digital media, data analytics or agile developmental environments, databases have a key part of play in the day to day creation, implementation and upgrading of applications – whether these are used by internal developers, devops, customers or partners.
The typical approach of creating - and having to manage and maintain – separate databases for each project you embark on has fundamental limitations.
Not only is there an ever-growing number of databases to look after, you are also splitting resources into silos. This leads to databases becoming compartmentalised and hard to evolve as a result. Whether it’s adopting new processes or best practices, or simply rolling out upgrades, each database has to be dealt with individually, which is laborious to say the least.
On top of dealing with database-specific issues such a versioning and maintenance, database administrators also need an in-depth knowledge of the underlying projects to support each database. That’s a tall order when the number of databases keeps on growing as business expands.
Illustration 1: Typical approach to database creation:
A PaaS DB overcomes those limitations through creating a shared database infrastructure managed by a Cloud provider.
A managed infrastructure means that the Cloud database provider takes care of the underlying hardware - enabling developers and devops to focus their professional expertise on the job itself, rather than having to worry about the underlying databases.
The provider’s system administrators can allocate more time to optimisation, automation and upgrade processes – on a simplified and centralised database management platform.
Practically, the approach enables horizontal control of database options (e.g. SQL, MySQL, PostgreSQL, MariaDB, NoSQL, HBase, MongoDB, Elasticsearch, Cassandra) while also promoting vertical control in a production environment, where high availability of services is crucial.
As a Cloud platform, a PaaS DB service also offers both scalability and elasticity to scale up or out, provisioning physical resources dynamically, as needed.
Illustration 2: Database as a Service (PaaS database):
What to look out for
Over the past few years, with the introduction of NoSQL and NewSQL among others, the database market is experiencing rapid growth.
A PaaS database solution should enable developers to choose the best database technology for their applications, without having to worry about versioning or maintenance, increasing agility in the process.
When using a PaaS DB service, it is important to ascertain that it complies with the relevant standards which all internal projects must conform to. The ability to establish strict rules for database access is essential, and arranging incremental backups invaluable in terms of reducing impact on day-to-day working.
Another feature to look out for when choosing a PaaS DB provider is automated provisioning, which is beneficial in terms of speeding up time to market for new services or apps.
With simplified database management and the basics taken care of by a Cloud provider, the Cloud-based approach database administration becomes less of a chore and frees up administrators’ time.
Rather than constantly trying to keep up with the idiosyncrasies of each and every database created, they can focus more time on keeping up to date with database technology and its evolution, ultimately providing an edge to developers across all departments.
Boxout: Set it and forget it
To understand the potential use cases of a database-as-a-service solution, consider the following case study.
A web agency with five developers, two sysadmins and two designers derives most of its revenue from local government clients. The agency offers its clients high availability platforms - with associated SLAs - which must be able to support substantial load increases while also enabling the client to extract detailed statistical data on the local residents.
Prior to moving to a database as a service solution, the agency not only lacked visibility of development costs when it came to preparing public bids, it also had to juggle an increasing number of databases with the low number of technical staff available to manage them.
With a Cloud PaaS DB in place, the sysadmin provides a clear financial breakdown of the technical costs to the project manager so a realistic budget can be prepared. Flexible pricing options enable the agency to scale their Cloud database infrastructure as required by the client projects they win.
In the pre-production phase, developers can update the databases easily to reflect client feedback and requests. This extra layer of testing provides extra flexibility before committing to final product validation, and ultimately, to the actual production environment.
In addition to greater financial transparency and ease of budgeting, the agency has also succeeded in minimising staff time by allowing developers and system administrators to focus on the product rather than maintenance of the infrastructure.