"Serverless technologies provide improved development efficiency and reduced computing costs in scenarios that are CPU and memory consuming, for example, when we make changes to spreadsheets, merge spreadsheets, and compute the rendering results of spreadsheets."
01About Shimo
Shimo is an online document editing and processing tool that provides similar features as Google Docs and Quip. Shimo allows different users to work together in the same document at the same time. The company has provided a variety of services for over 200,000 enterprise users.
02Challenge
Shimo has made great efforts to achieve real-time co-authoring. It has performed in-depth research into the Operational Transformation (OT) algorithm and made several key improvements. This includes the development of a two-dimensional document editing system, on top of the original one-dimensional system. This system eliminates merge conflicts that may occur when multiple users simultaneously edit a piece of text.
Meanwhile, Shimo faces tough challenges in making its real-time editing feature possible. Real-time edits by different users is resource intensive and often overloads the server. When a user types a word on the keyboard, a server saves the edit within a few milliseconds. However, when a large number of users are editing documents on Shimo at the same time, data may be unevenly distributed within a small time frame.
03Why Alibaba Cloud
Alibaba Cloud's serverless architecture, specifically Function Compute, is an ideal solution for Shimo to handle unexpected levels of traffic. Function Compute dynamically allocates execution environments based on the number of requests and schedules computing resources in milliseconds. Function Compute minimizes latency when the workload is heavy and maintains high resource utilization when the workload is low. What's more, with Function Compute, Shimo can save on costs as it only needs to pay for computing resources that are used when the code is running.
Shimo uses Function Compute to build a real-time document editing service, in which the logic of real-time document collaboration is implemented as a function. The intelligent scheduling system of Function Compute automatically allocates execution environments to process the peak load of co-authoring. The scalability of Function Compute ensures that applications are stable and reliable during runtime.
04Architecture
User experience, cost efficiency, and service agility are deciding factors for startups to make a difference in the business world.
Alibaba Cloud Function Compute enables Shimo to scale out computing resources within milliseconds when surging loads occur during peak hours. Compared with deploying physical servers in data centers, Function Compute improves resource utilization by reducing the waste of idle resources, and saves 58% of the server cost.
Shimo no longer needed to be concerned about the load balancing of CPU-intensive computing. The pace of project iteration is gradually accelerated, and its engineers can focus on working with the product team to continuously expand the business value. Function Compute has helped Shimo improve development efficiency and process stability.
05Looking Forward
Shimo will continue to explore the use of serverless technologies in more business scenarios. It believes that serverless technologies can help it improve business stability and make more efficient use of resources on the cloud.