By Alberto Roura, Alibaba Cloud Australia MVP
Cirrus Audit Panel is a multicloud resource optimization SaaS platform targeted to SME businesses. It aims to help IT professionals deal with multiple cloud providers and accounts at the same time, all without worrying too much about the technical jargon. You can see how a Virtual Machine performs and costs within seconds, no matter the provider or account.
Currently supporting Alibaba Cloud, Amazon Web Services, and DigitalOcean (with many others to follow), this tool is especially useful for APAC companies, as supports the 2 biggest providers in the area, specially Alibaba Cloud as the main player.
Cirrus Audit LOGO
Traditionally, this type of cloud tools supports one provider only and becomes very slow if a couple of users are using it at the same time, as the same back-end needs to deal with multiple API calls simultaneously. The solution usually comes by throwing a load balancer with multiple ECS instances in it to deal with the growing demand. Expensive, but an easy fix. Of course, this path makes the final subscription price quite high due to the resource footprint. This was never an issue as, at the end of the day, only big companies were dealing with cloud computing extensively.
Well, welcome to 2019! The market is not only experiencing a huge growth, there are also new players in the field and millions of on-premises servers are being migrated to the cloud.
The promise of managed resources and the lack of O&M tasks is especially tempting for small companies, so SME are jumping on it as well, but at a cost. SME companies usually can't afford qualified employees capable of efficiently identifying and optimizing its usage and they end up paying more than what they should. This, added to the high prices of the mentioned optimization tools, makes them unable to really achieve efficiently at all.
So right there is where I was sitting, I needed to develop a platform capable of dealing with thousands of requests but at the same time affordable for small and medium companies. Heck, I even wanted to offer a free plan! That, essentially, meant that the underlying infrastructure capacity needed to adapt precisely and instantly to the demand.
Not an easy task all of a sudden.
Alibaba Cloud to the rescue! Cirrus Audit is leveraging a range of products from this cloud provider such as OSS, API Gateway, Function Compute, Log Store, and Table Store. It makes a really nice serverless ecosystem altogether.
If you are unaware of what serverless is, keep reading. Serverless is a new computing paradigm in which you can build applications composed of micro-services running as a response to events. Under this model the services automatically scales according to the usage. This means that you only get charged when they are executed in 100ms billing blocks, becoming the most "Pay-As-You-Go" model ever. This reduces the overall cost of maintenance for your apps, enabling you to more on the logic and deploying faster. Read more about serverless and Alibaba Cloud in this special article I wrote.
The following diagram exposes how pieces are connected.
Architecture diagram of Cirrus Audit Panel
With the above mentioned, you see how a classic ECS instance under a Load Balancer wasn't an option, as that would make the platform as any other out there, as expensive as any other out there. My goal was to better serve small companies, so only a serverless approach was feasible.
This is a platform I'm entirely developing by myself, both front-end and back-end. Being able to focus 100% on the business logic and then rely in Alibaba Cloud to manage all the scaling and maintenance was very helpful, as is virtually like you have your own DevOps department ready 24h for you.
It took me 4 months and a half to publish a half-polished public BETA. Given the fact that I have a full time job and I don't have much spare time, is not that bad. I had, in average, about 5~7 spare hours available per week, that equates to about 3 full-time weeks. Time I spent coding, not planning or provisioning virtual machines.
To check when something does not look right, I fully rely on Log Store, Alibaba Cloud provides this amazing tool that supports plenty of options to export the data. The search function works perfectly and you have fast access to any event occurred. To log, since I use node, is as easy as placing a console.log().
If I need to choose the top 1 frustration of developing fully serverless, that is the one to do with cold functions. Because cloud providers keep function inside containerized environments, when the function doesn't get called in a while, takes 2~3 seconds to make it work again. After the initial call, it works instantly until again is left with no use for another while. This is important to have in mind if you really need speed. Another factor in quicker cloud functions is if you are attaching it to a VCP or not, as the creation of the environment would be more complex and will take more time, sometimes up to 10 seconds or more.
Special thanks to the team at Alibaba Sydney. Their help made possible the use of the latest and most efficient backend technology I could imagine. Bringing this platform to life is been extremely hard and laborious for me, as I kept challenging myself and my software development notions to make something new and unique.
I would ask anyone reading this post to give it a try and like or share it on your social media. Any of that 2 actions would help me a lot to keep going.
Article originally posted on: https://albertoroura.com/how-i-built-a-serverless-saas-product-on-alibaba-cloud/
Alibaba Clouder - July 12, 2019
Alibaba Cloud MVP - March 4, 2020
Alibaba Clouder - January 30, 2019
roura356a - July 24, 2019
Alibaba Container Service - April 28, 2020
Alibaba Clouder - May 27, 2019
Alibaba Cloud Function Compute is a fully-managed event-driven compute service. It allows you to focus on writing and uploading code without the need to manage infrastructure such as servers.Learn More
Web App Service allows you to deploy, scale, adjust, and monitor applications in an easy, efficient, secure, and flexible manner.Learn More
Resource management and task scheduling for large-scale batch processingLearn More
Realtime Compute offers a highly integrated platform for real-time data processing, which optimizes the computing of Apache Flink.Learn More
More Posts by Alibaba Clouder