Abstraction can protect a database from even the busiest platform and also ensure that applications always contact an online database server. Previous chapters in this book have already emphasized the importance of masquerading the primary database node to enable maintenance and availability. Two tools that are very popular for this purpose are virtual IP addresses and HAProxy software.
Yet there's always more to the story; abstraction isn't merely about indirection.
Modern applications, microarchitectures, and web services often involve hundreds or even thousands of servers and virtual machines (VMs). If we follow a simple and naive development cycle where applications have direct access to the database, each of these servers may require dozens of connections per program. Should each of these applications maintain their own connection pool...