Nowadays each and everyone wants their ecommerce shops or stores online 24X7 without any issue or complexity, To get such kind of efficiency and high availability we have to implement certain standards in our Server Architectures which are as follows-:
1 -: Multi Tier Architecture
2 -: CDN Integration
3 -: AutoScaling and Load Balancing
4 -: Full Page Caching
5 -: Centralized Storage
Multi Tier Architecture -: In multi-tier Architecture we implement client-server architecture with separate layers like Presentation, Application Processing and Data Management which are physically separated, So that it helps to reduce the complexity of server’s architecture by dividing it into multiple individual units and provide multiple points of monitoring to track the issues. In web applications Frontend or Cached Proxy Server will do the role of Presentation layer by serving cached static or dynamic content. Backend Servers like apache, nginx will behave like application processing layer and MySQL, Postgresql, dynamoDB will become the Data Management layer.
CDN Integration -: CDN refers to a Content Delievery Network, It is a network of reverse proxy servers distributed around the globe which help to serve the static content like JS, CSS, images, HTML etc. from the nearest hop, It reduces the load or traffic of server by reducing the HTTP requests. It provides the high availability of cached static content by providing multiple points of availability through CDN at the time of main server failure. It also provide various security features like SSL integration, WAF etc. to improve the efficiency and defensiveness agains the Cyber attacks. Some of the examples of CDN are Cloudflare, Cloudfront, MaxCDN etc.
Autoscaling and Load Balancing -: Autoscaling means to scale your server’s configuration or architecture to handle the traffic automatically, Autoscaling is not possible with Vertical Scaling, in which we scale our single server vertically by increasing its resoruces like RAM, processing power, storage etc. because vertical scaling need downtime to upgrade the resources of that server but in Horizontal Scaling, we can increase or decrease the server count without any downtime and maintain the high-availability of our application. In Load Balancing, a reverse proxy server works as a load balancer and distribute the traffic throughout the multiple servers and reduce the chances of single point of failure.
Full Page Caching -: Full Page Caching or FPC helps you to cache some of the static or dynamic pages of your website, so that it can reduce the extra load on your server by reducing the execution time of your backend server for ex-: whenever you access any of the website, most probably the landing page or most of the product pages will be same for all the users that is why it cached the whole page and serve all the users from its cache which results in faster TTFB (Time To First Byte) and response time. Some of the examples of Full Page Caching is Varnish, NGINX etc.
Centralized Storage -: Centralized Storage is the core need of any high end web application because in multi-tier or Auto-Scaling environment we have multiple servers for application processing that is why we need a reliable centralized storage to resolve the issue of redundancy for ex-: If a person stores a image a.png to server1 and next time he want to access it but due to load balancer his request is transfered to server2 then he will get the 404 because that image is stored in server1 so to reduce such kind of issues or redundancy in optimized server architecture we need centralized storage solution. Some of the examples of centralized storage are AWS S3, AWS EFS (Elastic File System).