6 Best Practices for Deploying an Application on Alibaba Cloud (Part 2)
By Shantanu Kaushik
Different roles in the IT industry bring about different responsibilities for one to yield on. As an IT decision maker or a developer, you have to decide which piece of technology to implement and which environment to work with. Choosing between different scenarios which require different speed of development or use cases that require one to make and shift depending on latest trends and practices, makes it a task best automated by using an industry leader in cloud solutions. Alibaba Cloud is one such service provider that in today’s vast and rapidly developing world, provides products and services that are made to prove viable in most scenarios.
Continuing with part-2 of this series, we will be discussing best practices to build and deploy applications to the cloud.
We will be discussing Alibaba Cloud as the default cloud provider for this article as most services like Elastic Compute Service (ECS) and Simple Application Server has been used as case study for this write up.
This article is a continuation of Part 1 of the same topic; we strongly recommend you to read it first here.
Using DevOps & RESTful Services: Application Deployment
DevOps in today’s world is growing faster than a wildfire. It is getting all the attention because of obvious reasons. While talking about application deployment, implementing continuous Integration and delivery on the application that you are building might just be the next best thing that you as a developer can implement.
Building cloud ready applications with a build system that supports multiple environments is the best practice. Alibaba Cloud CI CD provides such a usability to the user that it takes care of the complete process, starting with code submission to application development, it efficiently releases the application, and also supports smart rollback processes that increase the efficiency of the development and deployment process. Automated testing and fault isolation make the DevOps process a breeze.
When deploying applications that are high-demand, an ability to scale out your resources independently, i.e. database and web, carve out a better delivery scenario. Let’s take an example of a single page application that you make using your favourite language. Now, you can use Restful web services to scale out your application from the front-end code and the database.
This will prove to be a good practice as, when you separate your application from front-end code, you get to use your application service with multiple different front-end technologies that you can build on. This in-turn makes your application more scalable to support multiple region-based presentation scenarios and specific design requirements as the business requires.
Disaster Recovery: Application Deployment
Large scale businesses require vital support with business _incentive centric mission critical applications_. These applications are required to provide utmost availability. This is overall the pivot of application building and hosting that a developer or business should focus on.
Alibaba Cloud Simple Application Server provides web application hosting with Multi-AZ disaster recovery. Why is this important? In time critical business centric applications, it is of utmost importance to maintain a consistent user experience. Alibaba Cloud distributes all its resources like servers, DB services and other vital resources panning multiple zones. These resources are distributed across zones that fall in the same region. This enables them to provide a backup backend to an application hosted for that zone.
Why Is Multi-AZ Disaster Recovery Important?
Although, cloud computing architecture supports and provides a security structure of its own. And with Alibaba Cloud, there are multiple layers of security products that a user can deploy in order to keep everything safe, reliable, and available.
However, data center downtime is as inevitable as any other scenario in computing. At this point of time, high-availability of an application may go for a toss. To overcome this scenario a Multi-AZ disaster recovery-based hosting by Alibaba Cloud comes to the rescue. In this framework your application is hosted across data-centers so that the downtime can be minimized or completely taken care of.
Alibaba Cloud Multi-AZ disaster recovery automatically detects any server-side problems and starts the recovery process. It enables a disaster recovery environment and ensures minimum downtime. The database system, ApsaraDB RDS, backs up data automatically and chooses endpoints so that the recovery process can be as simple and quick as possible.
As soon as an error is detected, the Multi-AZ disaster recovery environment switches to and takes all its resources from the production environment, to fully utilize all the resources at its disposal without any additional resources being allocated to the system.
High availability, elasticity, and cost-effectiveness are three strong suites of this environment.
Let’s look at the diagram to understand this architecture better:
I/O Performance: Application Deployment
Deploying an application with Alibaba Cloud ensures that you get proper I/O performance on storage and computing level. Whenever you are deploying applications, you need to make sure that the server side is scalable with higher-availability and performance throttling features.
Alibaba Cloud has upgraded itself from the traditional single instance database design and has come up with its own design that works hand in hand with the SLB (Server Load Balancer) and routes traffic depending on zones across multiple instances of its own Apsara DB for RDS.
Let’s assume you deploy a business application that may be accessed by multiple clients at one time. In this scenario every request coming from the user will be handled by the nearest DNS server and will then be routed to the nearest Content Delivery Network (CDN) for better and faster content delivery. Right after this, the user request passes through the assigned SLB (Server Load Balancer) that is responsible to balance and distribute traffic to multiple Elastic Compute Service (ECS) instances.
Alibaba Cloud Auto Scaling feature is the next to kick in. It adds and removes servers from the SLB and RDS whitelists, based on real time traffic scenario. This send out a request to be met by the Auto Scaling functionality. Auto Scaling is configured on web and application servers, such as Simple Application Server.
To ensure a better I/O performance, Alibaba Cloud has added a cache layer and a read-only database instances. This will ensure that the most queried data will be retained in the cache layer for better delivery and the read request will be distributed evenly across DB instances.
All the DB instances are backed-up using the scalable Object Storage Service by Alibaba Cloud, that support auto scaling for enhanced delivery and no SPOF (Single Point of Failure)
Alibaba Cloud presents itself as a robust, cost-effective, and highly reliable Cloud provider in today’s world. Whether it is DevOps solutions or a CDN or even their own ECS product, they have outdone everyone in this industry.
If you plan to build Cloud ready applications and deploy them using Alibaba Cloud, make sure to follow these six best practices. This will ensure a clear decision and a better setup to keep in mind. Moreover, the products and solutions offered here are on a continuous developmental cycle, which means these products will always be upgraded with better and more user/developer centric functionality.
This concludes our 2-part series on best practices to follow when deploying applications to the cloud.