On the path to digital transformation
In technology as in business and life, change is the only constant. The role of information technology (IT) has changed in the past two decades from a business support function to a change agent and a business enabler. The IT team’s remit has quickly evolved from maintaining networks, servers, database management systems, and IT systems, to impacting business strategies, driving market competitiveness, and creating opportunities for corporate growth. As a result, organizations today increasingly look to IT as a driving force to enable their business transformation into, and beyond, the fourth industrial revolution.
Much like former industrial revolutions, the current digital transformation that is sweeping the world has improved the quality of life for communities across the globe. Technology has made it possible for consumers to afford new products and services that enhance their personal and working lives. From buying and selling online to booking holidays to enjoying blockbuster movies at home, the consumerization of technology has revolutionized how brands communicate with their customers and has improved how consumers access products and services anytime, anywhere.
By capitalizing on the advances of digital transformation, many organizations are ruthlessly competing for ways to bring added value to their various stakeholders, making their products and services easier to access and consume by commercial and individual consumers alike. However, this ever accelerating race to be the first and best at offering products and services requires an overwhelming amount of digital innovation at the foundational backend. This innovation needs to take place at all levels and layers of the IT development stack.
This innovation-fueled digital transformation needs to occur in areas of the IT stack that can absorb changes, such as your development and test facilities that are designed to work through changes, as well as other parts of your IT infrastructure that are auxiliary to your core business.
To stay at the edge of technological innovation requires continuous and incremental upgrades to be carried out in areas of the IT stack that are always on and that cannot afford any downtime, such as your mission and brand-critical application infrastructure. If your website, database or online payment system is down, it won’t take long for you to realize the impact on your bottom line.
Upgrades and IT security: challenges of “Always On”
These fast advances in technology come with their own challenges. When people build software, they inadvertently make mistakes. These mistakes open attack vectors for hackers who make a living out of actively looking for loopholes, back doors, and vulnerabilities to gain access to sensitive customer data.
This constant cat and mouse chase between IT innovators and hackers is giving IT leaders a "management nightmare." The old "patching-Tuesday," where IT teams used to meet over strong coffees to implement tried and tested scripts and roll out changes and upgrades, is now ancient history. The sheer volume, complexity, and urgency to change, improve, and adapt to a constantly evolving technology landscape requires IT environments to deal with change on the fly. Modern IT requires rolling upgrades.
High availability in IT infrastructure
With the advent of the internet and the consumerization of IT that followed, our world has profoundly changed. Smartphones made online shopping extremely accessible and customized. Location-aware services took us a step further into personalized shopping experiences, and social media channels brought immediacy to people’s engagement with social circles and commercial brands. The instant communication services introduced by social media channels led users to start expecting instant gratification in their personal lives. When I post something on social channels, I expect to see as many thumbs up as I can get, as soon as I can get them.
This demanding shift in personal behavior has given rise to a new consumer trend, where instant gratification has become an expectation in business with the requirement of high availability in IT infrastructure. If an ad pops up for a discount on my favorite coffee, I feel a craving to have that coffee right at the minute. As consumers, we do not wish to be on the phone for 30 minutes to speak to a brand. We expect immediate answers to be available online for our product and service-related questions. This is all well and good when you are the customer, but for brands to be able to offer and execute on the promise of instant gratification, they need the infrastructure on which they run their businesses to be up to that demanding level of speed and agility.
Instant customer gratification requires an always on technology infrastructure, because to satisfy needs and wants instantly, we need to be available all the time. This applies to customer-facing applications and to the backend services that are required to drive and fulfill this level of customer service.
It’s not good enough to ensure your website enables your potential customers to place an order, although that’s a vital part of the gratification experience. If the item that your customer ordered takes too long to ship, chances are you’re not going to have a happy and satisfied customer.
So, as the strength of the chain depends on the weakest link, we need to be able to proactively respond to the events that drive consumer and enterprise satisfaction at every touch point of the consumer journey. The customer-facing website must always be available; the application server that handles communication services must always be on; the backend systems that connect to the inventory or database application must always be up-to-date; the stock and order management process needs to seamlessly interact with the supply chain and shipping companies; and the email notifications and mobile alerts need to keep the customer apprised of the product’s journey until it satisfactorily arrives at their doorstep.
As if the standard challenges around PostgreSQL extreme high availability are not enough, we also have to ensure we keep our systems up-to-date with the latest features and security standards. Patching and extending systems requires them to be unavailable—during a restart, for instance.
PostgreSQL database already has impressive features and functionalities to maximize resilience to these changes. A feature that reduced a minor PostgreSQL upgrade to just a restart, tools such as pg_upgrade that help abstract away so much of the complexity, that even a major upgrade of PostgreSQL gets to be little more than some actions around a restart of the system.
But that’s still not good enough. In our world of instant gratification with SLAs that add up and trickle down, even a database system restart causes enough downtime to cause costly and painful effects somewhere else in the supply chain. Therefore, changes must not cause downtime. However awkward and hard-to-achieve this might be, this is our challenge to deliver.
What affects PostgreSQL database high availability?
This brings us to our piece de resistance, which goes beyond the availability of the database. There are multiple layers in an application lifecycle that influence availability at PostgreSQL-level that we can review here:
- Server platform availability
- PostgreSQL availability
- Availability-tooling availability
- Application schema availability
- Higher stack availability
Server platform availability
From a PostgreSQL perspective, the server or platform, where you run the database management system, is something we rely on to always be available. Features and functionalities like storage, compute power, memory, networking are all things that we trust. Based on the principle of "horses for courses," which is applicable for Open Source solutions, vendors and parties that build operating systems, disk-drives, CPUs, and other components that are required to achieve this platform, will do what they need to be and stay available, always.
PostgreSQL itself can be made highly available. There are a number of options available to achieve this; that’s not necessarily the biggest challenge. One of the most interesting things about PostgreSQL is that it is being developed by The PostgreSQL Global Development Group, who build PostgreSQL to answer to the market's ever changing demands. PostgreSQL is not some isolated piece of technology that is guarded from change. It is designed, from its core, to adapt and adopt change.
This motion brings minor and major releases that need to be applied to the PostgreSQL server software. This must happen without downtime. For environments that require PostgreSQL to be "always on," EDB Postgres Distributed fulfills the requirement by supporting you to add, and subsequently recycle nodes to in the EDB Postgres Distributed cluster, rolling in the new major release. With minor releases, you may only need to detach, upgrade and re-attach the node.
In addition to the PostgreSQL server software, the extreme high availability software, EDB Postgres Distributed itself grows and changes overtime. EDB Postgres Distributed is equipped with technology that allows replication between cluster nodes to continue between different versions of the cluster software. This means that you can adopt changes and additions to the software without having to stop or impact the system's availability, which in turn lets you grow and expand your feature portfolio in a super agile manner.
Application schema availability
I really need to start with a caution here! The power that can be made available here comes with critical responsibilities. This is true for similar technologies for other vendors, as much as it is true for EDB Postgres Distributed.
That being said and reckoned with, EDB Postgres Distributed will give you possibilities for rolling application schema upgrades. And this adds ultimate opportunities for when you want or need to build applications that never, ever have to go down. It goes beyond the opportunity this blog post gives us, to explore this in any form of detail, so stay tuned for more on this in the near future.
Higher stack availability
Concluding our journey is the higher end of the stack. We have rediscovered the age-old truth that a chain is as strong as its weakest link. We can do everything to ensure the lower parts are more reliable than you could ever imagine, without the top being fully up to scratch, our demanding users will not be "instantly gratified."
As daunting as it may sound, your users want you to always be there... don’t worry, it’s not impossible.
Using PostgreSQL, with the right tooling such as EDB Postgres Distributed and strategic approaches, you can satisfy your users’ craving for instant gratification. What seemed impossible only a few years ago can now be done with Postgres.
To learn more, check out our white paper, Postgres-BDR: The Next Generation of PostgreSQL High Availability.