Author: Jiang Yu | Ali Cloud Serverless product Manager

Breaking the game: Lack of tool chain system

In the previous article “the study would Serverless | Serverless person”, we mentioned the Serverless is changing the future of software development mode and process, and be predicted would lead the cloud over the next decade, but even so, Developers still have a number of concerns when choosing to use Serverless, of which the lack of a toolchain system is undoubtedly the most prominent.

The so-called lack of tool chain: on the one hand, the tool chain on the market is not perfect, which leads to the difficulty of development and deployment, thus increasing the cost; On the other hand, the lack of relevant toolchain further standardizes the Serverless experience at the experience level. The lack of high-quality toolchain makes it more difficult for Serverless developers who are worried about being bound by the manufacturer to unbind themselves from the manufacturer.

In October 2020, China Academy of Information and Communication Technology released the first Survey report on Cloud Native Users in China, which clearly pointed out that before using Serverless architecture, 49% of users considered deployment cost, 26% considered vendor binding, and 24% considered related tools and improvement degree. What these numbers really reveal is that there is a strong need for developers to improve their toolchains.

Some developers, though, think it’s easier to get started with the Serverless architecture with a white screen, and it’s easier to create and update functions to some extent through the console of the various cloud vendors. However, there is no denying that Serverless developer tools have some more important values and functions, such as:

  • Scaffolding enables rapid creation of Serverless architecture applications;

  • In the development process, the developer tools can be used for application debugging;

  • After development, the application can be deployed online with one click through developer tools (possibly including multiple functions and corresponding BaaS products);

  • In the project operation and maintenance phase, use developer tools for project observation and problem location, etc.

For scientific deployment, publishing Serverless architecture applications through some CI/CD platform/tool is usually dependent on developer tools. However, at present, developer tools in the Serverless field are complex and diverse, and many functions are not perfect. The basic manifestations are as follows:

There is no absolutely unified and consistent Serverless developer tools. Each manufacturer has its own developer tools, and the use form and behavior are not the same, which leads to the developers in the research before development, debugging in development, deployment of operation and maintenance and other aspects of the very severe challenges;

The vast majority of Serverless developer tools are more resource arrangement and deployment tools, which can not be called development tools and operation and maintenance tools in a real sense. Especially, how to ensure the consistency of online and offline environments during debugging in development mode?

How to debug the business quickly in operation and maintenance state; How to more simple troubleshooting errors, positioning problems…… There is no unified and complete scheme for Serverless architecture, which leads to high learning cost and use cost for developers.

To sum up, it is particularly important to build a Serverless toolchain system that can improve the efficiency of Serverless application development and reduce the difficulty of using Serverless architecture. Just because of this, Serverless Devs emerges at the right moment.

Serverless Devs is an open source developer platform Serverless dedicated to providing developers with a powerful tool chain system. Through this platform, developers can not only experience multi-cloud Serverless products and deploy Serverless projects rapidly, but also manage projects in the whole life cycle of Serverless applications. Serverless Devs can be easily and quickly combined with other tools/platforms to further improve r&d, operation and maintenance efficiency.

Features of Serverless Devs

Vendor lock-free: Thanks to pluggable features, it is very easy to support project deployment for different cloud vendors, or one-click deployment to different cloud platforms. At present, Serverless Devs has supported ali Cloud function computing, AWS Lambda, Baidu Intelligent cloud function computing, Huawei cloud function workflow, Tencent Cloud function and other cloud FaaS products;

Open source construction: The project is built through open source code and open ecology. Developers can view and participate in the contribution of Serverless Devs developer tools at any time, as well as contribute related components and applications anytime and anywhere. Of course, in addition to this open source form, we also encourage some enterprise teams to build their own private Registry through the Serverless Registry Model to customize some custom components that are difficult to expose;

Documentation on how to quickly develop and publish Serverless Devs applications to Regsitry is available:

​​https://github.com/Serverless-Devs/Serverless-Devs/discussions/439​​

Simple and quick start: Through the model/specification of open Serverless Registry, the project can provide developers with hands-on cases in various forms, fields and scenarios through the application mode, helping developers quickly understand, learn, deepen and get started with Serverless architecture. For example, Serverless: Hello World; Artificial intelligence: target detection; Traditional frameworks: Django-based blog projects, etc.

Scene Experience Address:

​​https://developer.aliyun.com/adc/expo/serverless​​

Flexible and pluggable functions: Serverless Devs developer tool itself does not have any business capabilities. All business capabilities are pluggable to be used in the form of componentalization, and each component can customize corresponding commands and functions according to needs. Developers can select different components in an application to fulfill corresponding business capabilities, so as to meet the demands of different modules;

Application life cycle management: With component-based support, Serverless Devs can play an important role in the whole application life cycle. Taking the FC component of Ali Cloud function computing as an example, developers can carry out project construction and management in project creation, project development, debugging, observability and other aspects.

Good integration and integration: the project has very good integration and integration, can be supported by componentization, very simple organic integration with the traditional ecology. At the same time, Serverless Devs developer tools can also be very simple to be integrated into the massive automation process, such as CI/CD documents, for example, with Github Action integration, integration with Gitee Go, integration with Jenkins and other platform integration cases;

In general, Serverless Devs is an open source tool chain project in the Serverless domain. It not only represents a simple command line tool, but also refers to a complete tool chain system to a certain extent.

Community URL list (slide) :

Community's official website: http://www.serverless-devs.com/ project warehouse: https://github.com/Serverless-Devs/Serverless-Devs ServerlessDesktop desktop client: https://serverlessdevs.resume.net.cn/zh-cn/desktop/index.html Serverless application developer suite: http://serverless-dk.oss.devsapp.net/docs/tutorial-dk/intro/react Serverless Devs CLI:https://serverlessdevs.resume.net.cn/zh-cn/cli/index.html Serverless The Hub application center: https://serverlesshub.resume.net.cn/#/hubs/special-viewCopy the code

Growth path for Serverless Devs

  • Serverless Devs is officially open source on October 23, 2020.
  • In November 2020, Serverless Devs was included by CNCF Landsacpe, becoming the first Serverless tool in China.
  • In November 2020, selected by InfoQ as one of the top 10 open Source projects in 2020; In the same year, Serverless Developer Meetup was held for the first time, which became a new technology channel for Serverless developers.
  • In December 2020, the number of ServerlessDevs downloads exceeded 5000, and the total number of components & applications used exceeded 1W +;
  • In April 2021, Serverless Developer Meetup was held in Shanghai and Serverless Devs 2.0 was officially released.
  • In July 2021, Serverless Developer Meetup was held in Hangzhou, at which ali Cloud function computing team officially released functions such as end-to-end cloud integration and desktop client.
  • In August 2021, the number of downloads of Serverless Devs exceeded 2W +;
  • In October 2021, Serverless Devs delivered the keynote speech “Serverless Devs: Toolchain Construction for The Whole Life Cycle of Serverless” at the 2021 OpenInfra Days China Conference.
  • In December 2021, Serverless Developer Meetup was held in Shenzhen, and the Serverless Devs Model was tentatively displayed.

Design philosophy of Serverless Devs

The model design principle of Serverless Devs is to make developers more focused on business logic and improve the efficiency of Serverless application development, deployment, operation and maintenance through a more simple, scientific and standardized Serverless tool chain system.

Through this model, developers can use different cloud vendors and open source Serverless products in a more flexible and universal way, thus achieving Serverless application management in a more efficient, concise and convenient way. In Serverless Devs, you typically have two roles:

Open source contributors: Open source contributors will develop components/applications according to the Serverless Package Model and publish the content to the Serverless Hub, that is, it can be used by more people;

Serverless Developer: Use developer tools (including command line tools and desktop tools) to initialize applications and use components; Deploy the business online as expected using developer tools.

On such a Serverless Devs application framework, it is not hard to find that it can have similar naming and modules to any other pattern/ecosystem:

Serverless Hub: a kind of component, application, case center; Similar to Docker Hub;

Serverless Registry: Similar to a component, application management tool, or specification model; Similar to Pypi in Python ecology, similar to NPM in Node.js ecology;

In Serverless Hub, there are actually two types of Package (Component and Application), and two obvious terms can be seen from the figure above: Component and Application:

  • Component: Refers to components; Serverless Package Model is a piece of code developed and published by Package Developer that conforms to the Serverless Package Model specification. This code is usually referenced in the application and loaded in the Serverless Devs developer tools. And perform certain actions according to predetermined rules. For example, deploy the user’s code to the Serverless platform; Build and package Serverless applications; Debug Serverless application, etc.

  • Application: refers to an Application that can be published publicly to Registry by Package Developer for more people to learn and use, for example, a contributor contributes a cat and dog recognition case to Registry; It can also be developed by Serverless Developer, for example someone developed a face recognition application; Usually an application can reference one or more components and be deployed to the Serverless platform using the Serverless Devs developer tools. For example, I developed a cat and dog recognition application. In this application, I referenced the Lambda component to help me deploy some of my business logic to the FaaS platform, and I also referenced the Website component to help me deploy my front-end business code to the object store.

If Serverless improves the efficiency of traditional application development, the Serverless Devs developer tools improve the efficiency of Serverless application development. Over time, Serverless Devs has evolved from version 1.0 to version 2.0. For more information, see Serverless Devs 2.0: New Release makes Serverless Application Development Easier.

conclusion

This paper introduces the past life of Serverless Devs. In fact, we always hope that through the Serverless Devs tool chain mode and ideas, you can experience the multi-cloud Serverless products through the platform and deploy the Serverless project quickly. For application development, the Serverless architecture provides great convenience and more scientific management on traditional projects. In the next article, we will take you through the basics of Serverless Devs. It is very simple, and we will analyze some functional cases. Please follow the Serverless public account to subscribe to this series. Those interested can also join our Serverless Developer technology learning group at the same time next week.

The recent hot

# quick start Serverless#

With the increasing popularity of Serverless, more and more people expect to be able to get started quickly in real work. In order to let more Serverless beginners really learn Serverless theoretical knowledge, flexible application of Serverless technology in the work according to needs, Ali Cloud Serverless team launched the technical atlas, This course includes computer frequency, hands-on experiments, e-books, live broadcast, open source projects in various forms of content, so that developers can learn and use, running to enjoy the Serverless technology bonus. Click “Here” to learn!