Whether you're a CIO or a developer you can't assume that the cloud just magically gives you high availability (HA). Cloud gives you the tools. We think a little healthy skepticism on the part of the customer that the cloud will be available all the time is actually a good thing. A customer should say, “I build my systems to be resilient and accommodate failure that the provider experiences. I'm going to use whatever services the cloud providers offers to build the best system I can, but I have to plan for all scenarios.”
We applaud that skepticism! It’s up to you to implement the cloud products and managed services offered by the cloud provider in a way that gives you the resilience you need. To build highly availability applications, you have to design systems to handle both routine interruptions and unplanned failures of components and infrastructure — from a single instance all the way through the data center.
A platform offering that can simplify building that in terms of scale, configuration, and managed infrastructure services has a lot to offer. That’s why we sat down with CenturyLink Cloud’s VP of Product Richard Seroter to discuss how his teams help customers scale their applications.
Can you give an example of HA?
It depends on your perspective and the questions you're trying to answer. For example, I might be more concerned with HA in terms of system-wide redundancy across a footprint of global data centers and how I can ensure that. On the other hand, my interest in HA might have to do with the full application stack and how to build highly available apps from end to end. For a network engineer, the interest might be how to create redundancy across the cloud network backbone. The goal is the same for all of them: You want to ensure cloud friendly apps are highly available and scale easily.
Are there different dimensions to scalability?
Yes. You want the ability to scale up, scale out, and scale across. Vertical scaling is going to let you add or remove server resources like CPU or RAM on demand for a single server or group of servers. Horizontal scaling lets you increase or decrease the capacity in your application environment, for example, adding additional servers or shutting them down until needed. A data center footprint that is dispersed geographically gives you breadth. This kind of scalability ensures that applications and environment can responds to activity at the right time in the right way. All the while, you want to pay only for the services you consume.
What are some considerations for architecting HA?
It starts with the database. A mission critical enterprise revolves around its data. The apps, servers, operating systems, networks, and infrastructure are there so that customers can access the data. The goal is to build high availability across the spectrum of components starting with the data and then moving outward to the data center infrastructure.
Typically, data is stored in a Storage Area Network (SAN) arrays or file-based Network Attached Storage (NAS). There is some level of redundancy built in so that if a single array component fails, the data is still be accessible to your customer. The data is often replicated across physical disks in the event of a drive failure. However, there are newer scenarios where apps use less redundant (but cheaper) underlying storage and rely on smarter databases to manage replication and redundancy.
If you require granularity at the database level, there are service options to think about like a Database as a Service (DBaaS). Does the cloud provider offer those options where all of the scaling and redundancy is covered for you?
What comes to mind for the server component?
The servers are a critical component. You want to think about redundancy, the ability to configure servers with capacity to scale horizontally and vertically that have load balancing to improve uptime, built-in disaster recovery, optimized infrastructure, and multiple connections to the backbone networks. A cloud service provider should be able to simplify the complexity behind that so you get the availability you want to pay for. But it still comes down to using the tools given by a cloud provider for virtual private servers, network, storage, and load balancing to work within that framework.
What are the main considerations for the network aspect?
The reliability of the network component is critical to building HA. There are questions that involve load balancing, dedicated private connections, data center cross-connects, MPLS, latency management, firewall policies, and VPNs.
For example, you may want to use DNS services to route between load balancers in the same data center or different data This way, if one data center is down, your public site continues to function because the DNS record just routes to the secondary as a primary. Considerations like these answer how you're able to have apps that span data centers for redundancy. The cloud provider offers the base. The customer chooses the level of redundancy.
What's the role of the data center footprint?
Replication of data within a data center across multiple machines, and then replicating the data to a sister cluster in another facility is always a good practice because the result is a high availability cluster. The locations should be distributed nationally and/or internationally to survive even a data center outage. Data centers should have either direct connectivity or blended transit for carrier neutral. Similarly, you want the cloud provider to protect data centers with industry standards related to physical and logical security along with best practices for compliance standards like SOC, ISO, and PCI.
Cloud services, cloud apps, managed services, colocation, redundancy, and network are all combined together on the CenturyLink Cloud Platform. We provide the foundation. We give you built-in redundancy. We simplify and automate service delivery through an intuitive Control Portal. We manage complex IT tasks and network connectivity for our customers. It's highly available on a cloud platform.
We provide some great built in capabilities for resilient applications, but still work with customers to assemble them in the most effective ways for their apps. The bottom line is that CenturyLink Cloud has a solution that most competitors can’t match. Learn more with our Seven Secrets for High Availability in the Cloud.