By Afzaal Ahmad Zeeshan.
This article will discuss how low-latency solutions are provided on Alibaba Cloud and how customers can integrate their distributed applications with the platform to provide a low-latency solution, and how services differ such as, Alibaba Cloud CDN, based on pricing, feature-set requirements.
Fundamentally, latency follows the low of concealment ¨C data is there, connection is established but there is a noticeable delay in getting response over for the client request and displaying what user has demanded for. There are instant dropouts in transferring data from source to destination. Precisely, overrun time between the data transmitter and data receiver is known as latency. Furthermore, this latency even magnifies when it comes to responding to a user query over cloud. There are a whole number of factors which participate to introduce potential delays in catering the user request.
Imagine that you have services deployed in United States data centers, and you have users across the globe. In this topology, the users from United States would be able to consume your services with a normal (if not good) performance, but the users from across the globe would have to face a poor response time. The problem is not with the server (not even with the load that the web application is under) but because of the delay in the network traffic. Requests of the users and the responses of your web apps must travel the physical wires to reach a destination ¨C let us ignore the OSI model and its processing operations for the data packets.
That is why, cloud-native solutions need to be designed with latency decrease in the mind. There are several options available in which developers can decrease the latency of their solutions, including hybrid clouds, global redundancy and replication of services, caching of the data, CDN and other products. I will enlist most of the products on Alibaba Cloud and show how they can be used in these scenarios.
This would be a theoretical article of mine, so my apologies for a very dry post, but I assure you that this would be worth a read for your cloud-native solution development and deployments. You can visit the links that I have provided in this post, each page has an architectural diagram that compliments the content in this post.
The Radical Pace in the Usage of Cloud Providers
The irrefutable argument is that there is a seamless use of services offered by cloud providers within any organization, and over time this usage is drastically increasing. Services such as data fetching for the real-time computation, data storage solutions, application hosting, audio/video conferencing APIs are the most used cloud applications; primarily these all application heavily consume the bandwidth over the internet where these public cloud services are residing, which results in high latency ¨C the overall load on the servers and the distance of the deployment from the customers. Therefore, measuring latency within the cloud environment is overly complicated and less predictable, and the major reasons include multiple router hops and gateways from cloud provider to the user-end, geographical locations of the data centers and the huge workloads etc.
The undeniable fact is that the IT administration is aware of the potential areas where latency is causing trouble for the business and needs to be reduced but is highly likely not to have the end-to-end control over the network, because the public cloud service providers do not provide any surety for service-level instantaneous data transfer.
Solutions and Latency Management on the Cloud
The prevalent idea implanted by the cloud providers is to minimize the distance from the service provider to their customer, by providing compute and hosting services on demand. Lesser the distance, lower will be the latency. Host your data in the west if you have major customer requests from there, and always create a replication as needed. Similarly, host service in the east if more of the business traffic is coming from that region. The only idea is to know the regional consumption of your customers and distribute your data and service origins accordingly. And there is no stopping from hosting the solution in both regions separately and then using a load balancer to automatically forward the traffic to the closest end point.
Therefore, the ultimate solution which is cost effective as well as efficient for the companies is to architect the solution for the cloud services and let the cloud orchestrators oversee how to provide the best services to your customers.
Henceforth, this article is aimed to discuss the major solutions provided by Alibaba Cloud ensuring the low latency and instantaneous transfer and response for your customers. However, for scoping the article and not to miss the focal point, we intend to walk through and highlight the functional insights of the services from the following aspects:
- Ease of configuration and the pricing model.
- Impact of service on the latency and response time.
- Management overhead and complexity added by the service.
Based on these, I would recommend how to architect your solutions so that you can best utilize the cloud platform and deploy your services where they are most needed.
Alibaba Cloud offers a wide range of powerful cloud level computing solutions which include Elastic Compute Service and GPU based VMs, Container Service for Kubernetes, and other auto scaling and load balancing solutions. All these computing services ensure high computing with powerful and secure virtual cloud servers to accommodate all sort of high computation requirements. Furthermore, the global deployment and high availability of data for your product. Atop of it, to fulfil the requirements of distributed architecture and their regional deployment Alibaba offers the feasibility of 20 international geographical locations which further extends in different regions and zones to manage distributed customer requests.
Using the Alibaba Cloud ECS, you can deploy a single instance in less than 10 minutes on the cloud. You can increase the performance by deploying the service using multiple ECS instances. To further expand the orchestration, you can use the Container Service for Kubernetes and deploy your instances using Kubernetes. Kubernetes as an engine would manage how to deploy the solutions, and as in my other article I discussed, you can use Serverless Kubernetes clusters to add nodes as the demand grows and delete them when they are no longer needed. You can create clusters with up to 100 compute nodes, and scale them down to zero automatically.
Also, you can always use the built-in Auto Scaling services to scale the instances as the need grows.
Online Web Based Solutions
Sometimes the deployment is for web applications, and not complete solutions. For example, a simple blog owner might not require deploying a runtime-driven web application. They might only deploy a web application with PHP or Node.js. On Alibaba Cloud, you can use Simple Application Server for this scenario. The problem with Simple Application Server is that it is a single server and does not provide replication. In this case, Enterprise Distributed Application Service might come in handy when you have to deploy your microservices in a distributed fashion.
I wrote an article that discusses how to create and deploy a Node.js web application on Simple Application Server, you can check the content here.
Databases and Storage Solutions
Database services provided by Alibaba Cloud support ultra-low latency and data synchronization between two nodes. Per the metrics, it allows for up to 3884 TPS and 15500 QPS transfer between the US West (Silicon Valley) and China East (Hangzhou) nodes with an average network latency of only 175ms. You can host your own databases on the cloud using either Hybrid Cloud model, or you can create ECS instances on the cloud to host the database engines. Once again, the latency gain would be provided once you replicate the data across multiple regions on the cloud.
On the other hand, there comes ApsaraDB for Alibaba Cloud which provides a whole number of highly cost-effective and efficient database services which ensure scalability, multi-layer data read/write operations, and low latent high performant data solutions while being distributed in nature following master-slave architectural design. You can explore the benefits of using ApsaraDB for RDS here, and see how different options can help you decrease the cost of the solution, increase the productivity and scale at the any time.
Apart from the databases, you can also use the same features in a storage service. Alibaba Cloud OSS provides support for data replication and migration to multiple regions on the globe. The feature is called Cross-Region Replication.
Like shown, you can replicate the data to two different regions. It provides a better latency, and a good availability in case of a data center down time.
Alibaba Cloud CDN supports global data replication and caching in minutes. Alibaba Cloud CDN supports HTTP and HTTPS based traffic for your solutions, and automatically caches the resources. This is a great way to improve the web site acceleration.
Normally, you would need to use other services in your solutions too, such as authentication, logging and data and metrics collection services. Alibaba Cloud offers PaaS and SaaS based services with specified SLAs that you can use, such as the RAM service is highly available and replicated around the globe to provide access to your engineers to provision cloud resources from anywhere on the globe. RAM should be used instead of your own authentication systems for Alibaba Cloud admin and management suites, as RAM is a free service and provides all the services that you might develop yourself ¨C of course you can create your own solutions, but hey, this would cost you more!
If you are using logging services on the cloud, then it would be useful to use Log Service to store the application logs in your subscription. Log Service is a cloud-native logging service, that provides back up options with OSS and a high throughput for your applications to submit logs and metrics for data and business intelligence purposes.
In the end, it all falls in the hands of the architects and engineers who design and deploy the solutions on the cloud. Providing a better response to your customers should be a high priority in the design phase. After all, the cloud platform is considered to use the cloud resources on demand as needed.