A highly available cloud computing architecture that accepts and processes user requests without service interruption. Setting up a highly-available architecture involves numerous components to ensure uninterrupted service.
For a business that handles high magnitude concurrent requests, it is imperative to have a server structure that is highly reliable and highly available.
Containers: Containers are packages of a web application code with dependencies such as specific versions of programming language runtimes and libraries required to run the application.
Content Delivery Networks (CDN): A CDN or a content delivery network is a geographically distributed cluster of servers that operate together to provide fast web page content delivery. A CDN reduces latency for the user and load on the application by having cached content on the edge servers.
Cache Servers: A cache server is an intermediary, high-speed server that stores and delivers previously requested and computed data. A cache server usually stores session data, front-end components, improving the performance and scalability of the application.
Load Balancers: Load Balancers are virtual instances that effectively distribute incoming network traffic across a server pool - a group of application servers. Visualise a load balancer as a 'traffic cop" who routes requests to servers that can fulfil them. Load-Balancers are essential for high-traffic and high-demand applications.
Auto-Scaling: Auto-scaling is a typical cloud feature that allows businesses to scale up automatically or down server resources based on defined server utilisation or traffic. Auto-scaling provides a cost-effective solution for high-demand applications by scaling up during the spike and down during the drop.
Storage: Storage in the cloud refers to data storage as a service - a cloud computing model of storing data on the internet. There are different types of storage - Object Storage, Files Storage and Block storage. Cloud storage brings down storage ownership costs significantly and allows faster rendering.
Database: Cloud provides a database as a service. A business can set up database servers on virtual machines or opt for database-specialised instances offered by the service provider.
Queues: Queues are service-to-service calls used in web applications to process and delete messages asynchronously. Queues are used in batch processing and to handle requests during a spike.