Author: Jiang Yu|Alibaba Cloud Serverless Product Manager
Breaking the game: the lack of tool chain system
In the previous article , "Learn to learn Serverless | Getting to know Serverless for the first time" , we mentioned that Serverless is changing the model and process of future software development, and is predicted to lead the next decade of cloud computing, but despite In this way, developers still have many concerns when choosing to use Serverless, and the most concerned one is undoubtedly the lack of a tool chain system.
The so-called lack of tool chain: On the one hand, the tool chain on the market is not perfect, which makes development and deployment difficult, which increases costs; The lack of tool chain makes it more difficult for Serverless developers who are worried about being bound by manufacturers to be unbundled with manufacturers.
In October 2020, the China Academy of Information and Communications Technology released the first "Cloud Native User Survey Report" in China, which clearly pointed out that before using the serverless architecture, 49% of users considered deployment costs, 26% of users considered vendor binding, and 24% of users considered deployment costs. Users consider the relevant tools and the degree of perfection. What is revealed behind these data is actually the strong demand of developers for improving the tool chain.
Although some developers think that it is relatively easier to get started with the serverless architecture through the white screen operation, and to a certain extent, it is more convenient to create and update functions through the consoles of various cloud vendors. But it is undeniable that serverless developer tools actually have more important value and functions to a certain extent, such as:
- Through scaffolding, applications with serverless architecture can be quickly created;
- During the development process, application debugging can be performed through developer tools;
- After the development is completed, the application can be deployed online with one click through developer tools (may include multiple functions and corresponding BaaS products);
- In the project operation and maintenance stage, use developer tools to observe the project and locate problems;
If you need to achieve scientific deployment, it is usually inseparable from developer tools to release serverless architecture applications through some CI/CD platforms/tools; however, from the current point of view, developer tools in the serverless field are complex and diverse, and many functions are not available. Imperfect, basically manifested in:
There is no absolutely unified & consistent serverless developer tool, each manufacturer has its own developer tool, and the usage form and behavior are not the same, which leads to the developer's research before development, debugging during development, After deployment, operation and maintenance and other aspects face severe challenges;
Most of the serverless developer tools are more resource orchestration and deployment tools, and cannot really be called development tools or operation and maintenance tools, especially how to ensure the consistency of online and offline environments when debugging in the development state;
There is no unified and complete solution for how to quickly debug the business in the operation and maintenance state; how to troubleshoot errors more easily, locate problems, etc., which leads to the cost of learning and using the serverless architecture. It will become very high for developers;
In summary, it is particularly important to develop a serverless toolchain system that can improve the development efficiency of serverless applications and reduce the difficulty of using serverless architectures. It is precisely because of this that Serverless Devs came into being.
Serverless Devs is an open source and open serverless developer platform dedicated to providing developers with a powerful toolchain system. Through this platform, developers can not only experience multi-cloud serverless products with one click, deploy serverless projects at a high speed, but also manage projects in the whole life cycle of serverless applications, and can combine Serverless Devs with other tools/platforms very simply and quickly. Further improve R&D, operation and maintenance efficiency.
Features of Serverless Devs
No vendor lock-in: Thanks to the pluggable feature of functions, it can easily support the deployment of projects from different cloud vendors, or deploy to different cloud platforms with one click. At present, Serverless Devs has supported Alibaba Cloud Function Computing, AWS Lambda, Baidu Smart Cloud Function Computing, Huawei Cloud Function Workflow, Tencent Cloud Cloud Function and other multi-cloud FaaS products;
Open source construction: The project is constructed through open source code and an open ecosystem. Developers can view and participate in the contribution of Serverless Devs developer tools at any time, and can also make contributions to related components and applications anytime, anywhere. Of course, in addition to this open source and open form, we also encourage some enterprise-level teams to build their own private Registry through the Serverless Registry Model to customize some custom components that are inconvenient to expose;
For information on how to quickly complete Serverless Devs application development and publish it to Regsitry, please refer to the relevant documents:
https://github.com/Serverless-Devs/Serverless-Devs/discussions/439
Simple and quick to get started: By opening the model/specification of the Serverless Registry, the project can provide developers with hands-on cases in various forms, fields and scenarios through application models, helping developers to quickly understand, learn, and deepen , Get started with Serverless architecture, such as Serverless in the novice guide: Hello World; artificial intelligence: target detection; traditional framework: Django-based blog projects and other projects;
Scene experience address:
Flexible and pluggable functions: The Serverless Devs developer tool itself does not have any business capabilities. All business capabilities are pluggable in the form of components, and each component can be customized according to needs. Commands and functions; developers can select different components in an application to complete the corresponding business capabilities to meet the demands of different modules;
Application life cycle management: With the support of componentization, Serverless Devs can play an important role in the entire application life cycle. Taking the FC component of Alibaba Cloud Function Computing as an example, developers can Observation and other aspects of project construction and management;
Good integration and integration: The project has very good integration and integration, and can be easily combined with the traditional ecology through the support of componentization. At the same time, Serverless Devs developer tools can also be easily integrated into a large number of automated processes, such as CI/CD documents, such as integration with Github Action, integration with Gitee Go, integration with Jenkins and other platform integrations case;
In general, Serverless Devs is an open source toolchain project in the serverless field. It not only refers to a simple command-line tool, but also refers to a complete toolchain system to a certain extent.
List of community URLs (swipeable):
社区官网:http://www.serverless-devs.com/
项目仓库:https://github.com/Serverless-Devs/Serverless-Devs
ServerlessDesktop桌面客户端:https://serverlessdevs.resume.net.cn/zh-cn/desktop/index.html
Serverless应用开发者套件: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 Hub应用中心:https://serverlesshub.resume.net.cn/#/hubs/special-view
The Road to Growth for Serverless Devs
- On October 23, 2020, Serverless Devs, the serverless developer platform, was officially open sourced;
- In November 2020, Serverless Devs was included in CNCF Landsacpe, becoming the first serverless tool in China;
- In November 2020, it was shortlisted for InfoQ's selection of the top ten open source projects in 2020; in the same year, the Serverless Developer Meetup was held for the first time, becoming a new technology channel for Serverless developers;
- In December 2020, the number of ServerlessDevs downloads exceeded 5,000, and the cumulative usage of components & applications exceeded 1w+;
- In April 2021, the Serverless Developer Meetup was held in Shanghai, and the Serverless Devs 2.0 version was officially released;
- In July 2021, the Serverless Developer Meetup was held in Hangzhou, and the Alibaba Cloud Function Computing team officially released functions such as end-cloud joint debugging and desktop client at the meeting;
- In August 2021, the number of downloads of Serverless Devs exceeded 2w+;
- In October 2021, at the 2021 OpenInfra Days China conference, Serverless Devs brought a keynote speech on "Serverless Devs: Toolchain Construction for the Full Lifecycle of Serverless";
- In December 2021, the Serverless Developer Meetup was held in Shenzhen, and the Serverless Devs Model was tentatively displayed to the outside world;
The Design Philosophy of Serverless Devs
The model design principle of Serverless Devs is to allow developers to focus more on business logic and improve the efficiency of serverless application development, deployment, and operation and maintenance through a simpler, scientific, and standardized serverless toolchain system.
Through this model, developers can use different cloud vendors and open source serverless products in a more flexible and general way, and then implement serverless application management more efficiently, concisely, and conveniently. In Serverless Devs, there are usually 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, which can be used by more people;
Serverless developers: Use developer tools (including command-line tools and desktop tools) to initialize applications and use components; use developer tools to deploy services online as expected.
On such an application framework of Serverless Devs, it is not difficult to find that it can have similar naming and modules as any other mode/ecology:
Serverless Hub: Similar to a component, application, case center; similar to Docker Hub, etc.;
Serverless Registry: Similar to a component, application management tool or specification model; similar to Pypi in the Python ecosystem, similar to NPM in the Node.js ecosystem;
Let's introduce it in detail below. In Serverless Hub, there are actually two forms of Package (component and application). At the same time, we can also see two more obvious words from the above figure: Component and Application:
- Component: refers to a component; it is a piece of code developed and published by Package developer that conforms to the Serverless Package Model specification. Usually, this code will be referenced in the application and loaded in the Serverless Devs developer tool, and according to the predetermined Rules perform certain actions. For example, deploy the user's code to the serverless platform; build and package the serverless application; debug the serverless application, etc.;
- Application: Refers to the application, which can be publicly released to the Registry by Package Developer for more people to learn and use. For example, a contributor contributed a case of cat and dog identification to the Registry; it can also be developed by Serverless Developer, such as a certain A person has developed a face recognition application; usually, an application can reference one or more components and deploy it to the Serverless platform through the Serverless Devs developer tool. For example, I developed an application for cat and dog recognition. In this application I referenced the Lambda component to help me deploy some business logic to the FaaS platform, and I also referenced the Website component to help me deploy the front-end business code to the object store.
If serverless improves the development efficiency of traditional applications, then the Serverless Devs developer tools improve the efficiency of serverless application development. With the development of time, Serverless Devs has also changed from version 1.0 to version 2.0. For details, you can click to read the previous article “Serverless Devs 2.0 New Release, Making Serverless Application Development Easier” .
Epilogue
This article introduces the past and present life of Serverless Devs. In fact, we have always hoped that through the toolchain mode and ideas of Serverless Devs, you can experience multi-cloud Serverless products with one click and deploy Serverless projects at a high speed through this platform; for application development, On traditional projects, serverless architecture provides great convenience and more scientific management. In the next article, we will lead you to realize the basic introduction of Serverless Devs, which is very simple, and will analyze and interpret some functional cases. Welcome to pay attention to the Serverless official account and subscribe to this series continuously. Interested partners can also nail it. Scan the code to join our serverless developer technology learning group, we will see you at the same time next week.
Recently popular
Get started with Serverless quickly
As the popularity of serverless continues to increase, more and more people expect to get started quickly in actual work. In order to allow more serverless beginners to truly learn the theoretical knowledge of serverless and flexibly apply serverless technology in their work according to their needs, the Alibaba Cloud serverless team has launched a technology map . This course includes various forms of computer frequency, hands-on experiments, e-books, live broadcasts, and open source projects. content, so that developers can learn and use it immediately, and enjoy the serverless technology bonus when running. Click " here " to learn!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。