This is the sixth session of early talk last month Serverless Special sharing . The whole sharing demonstrates three examples , It introduces Midway Serverless Different functions of the system , Welcome to try .
PPT Download and share ：https://github.com/midwayjs/midway/tree/resource
1\. Personal introduction
Hello everyone , I'm Zhang Ting from the infrastructure group of the Technology Department of Alibaba （ flower ）, His real name is Chen Zhongyin , Usually the community sees Harry Chen,czy88840616 It's all me .
What I bring to you today is 5 Release one in minutes Serverless application, Why 5 Minutes , There's scientific research , The shortest time a person is in a daze is probably 5 minute , If you're not careful, you'll pass by 5 minute , It also shows that in Serverless Under the system , Convenient development and release .
I'm currently in charge of the group Node.js Infrastructure part , Supporting the group Node.js Middleware system ,midway Series and corresponding plug-ins ,Nodejs Monitoring and all kinds of follow-up Node.js Related work , In the open source community , At the same time, it also maintains the whole Midwayjs system , Include Midway,Pandora,Sandbox And the new Midway-Serverless system .
meanwhile , from 2 Years ago , We're doing it all the time Typescript Advance of , And the support of group middleware standard definition , The future should be TS Of the world .
Recently, I'm in charge of the economy Serverless Node.js Direction of infrastructure , Include yml Standardization of , The reuse of capabilities , As well as the framework 、 Runtime 、 Plug in stability .
2\. The outline
- Introduce Serverless Some content of the current group and community system , And the comparison of various cloud platforms , In China, it is mainly Alibaba cloud and Tencent cloud Two families , And we use Serverless Some of the solutions , Share some of what these solutions can do , And some of the risks of these options ;
- Interspersed with some examples , take Midway Serverless The ability of the system is shown to you ;
- Facing the future , Introduce some future directions ;
3\. Why use Serverless system
The first question is , Why would there be Serverless, What does it have to do with the front end ？
This problem , As an infrastructure team , I've been studying and thinking since the end of last year . In fact, at the beginning , It's not about having Serverless. From the year before , The group has a total of about 2000+ Of Node.js application , There are a lot of back-end systems , Mostly everyday CPU lower than 5%, There are even 0.5% Of , Each application will have multiple machines , This causes a great waste of resources to the group . So the first appeal , It's about reducing resource costs , Especially the backstage .
Second pieces , A guest has also introduced , The front end has also reached a bottleneck period , From the very beginning of the cutaway , To the front and back end ,BFF The whole stack , It's time for one to be recognized , The direction of output , signify , From the front end of intelligence , Extend to the entire application , Not just thinking about parts of the page , It also considers data flow globally 、 framework , This is the overall architecture quality of the front end , It's a very big improvement .
For these two purposes , We began to be right about Serverless from 0 Start practicing , The group experienced double promotion last year , It's also extended to basically all of BU, In the backstage ,C There are different practices , It's thriving . Based on these practices , Open source, we aim at Serverless System and design Midway Serverless frame .
4\. Front end appeal
In the domestic community , There are only two cloud service providers , Alibaba cloud and Tencent cloud . Cloud service providers hope to expand the market , It's about revenue , Another one , Cloud resources , It's a resource in itself , Although there are oversold （ Like a core , Sell two cores ） But the resource itself also needs to be delicately managed .
And for community users , Small and medium developers , You talk to him Serverless, He thought about the following questions , What do I do with him , What's the difference from before , Which platform to choose , How simple or first , What about my old code , And most importantly , How much do I have to spend . When it comes to money , Everyone is sensitive , I am also , The other day during the test ,aws Collect from me every day 0.08 cents , I don't know why , I was anxious . That's what we all want from the front end .
5\. Community and Ecology
So since the community has so many cloud platforms to support , Let's take a look at the ecology of the community ？
5.1 Language support
We did a lot of research last year , Then it also includes some foreign platforms , Including Amazon , Google , Microsoft and these domestic manufacturers , There is one characteristic of so many platforms . In terms of language support, it is very biased to , The whole system is about Node.js Support has reached 70% above , And other languages support will be very small , especially Java and .Net These are some of the languages that are very traditional . These languages , It's just Serverless The system will not be very good , This is also determined by its efficiency and speed . One Java start-up ,2G Memory , and Node Account for only a 128M.
5.2 Ability support
So in terms of ability and knowledge , We also made some comparisons among the major manufacturers , As shown in the figure , At the moment, it looks very dense , In fact, the most commonly used system or function system service we can use , It's basically covered, including the common Object storage 、 Message queue 、 Timing task and journal , And the most commonly used front end Http Abilities are very useful .
6\. 2019 The front four directions
￼￼￼￼￼￼ And the other side is closely related to the front end ,2019 Top four directions in , because 2020 The year has not yet come out , So we see Serverless It's one of the big directions , Especially with the strong support of Ali's front-end Committee , We also promote and provide technical support all the way in the group and the community .
How it works , I believe we all know better , This is a very easy to understand picture from Amazon , It's also very popular. The above demonstrates from the call to the final execution and charging , The whole process can be clearly seen , Dynamic expansion of functions , Pay as you go and other advanced features ..
Back to the user itself, we just had some questions , If I were a user , that Serverless What scenarios are they serving , What can I do ？
Use some pictures of friends to show , In the community to do the most static website hosting , I will go GDP Of Epik High And the full stack model that combines these to replace traditional applications .￼￼￼￼￼
7\. What Ali does ？
- Shopping guide scene , Is Taobao home page and flying pig home page these marketing lists , Its flow in double 11 will also be very large , But it was also a smooth ride ;
- Backstage scenes , I just talked about the waste of our resources , We need to save these traditional waste resources , And can hope to gradually , When no one visits , Shrink the container's resources to 0, Then the app goes offline naturally ;
- RPC scene ,hsf The community is Dubbo, We also use functions to carry ;
These can all be part of the front end , In disguised form, the functions of the front end have been gradually expanded .
8\. The goal is
And this year our goal is cost , Of course, it's also a hope , It can transform tradition 80% The ability to support , At the same time, it also saves the machines mentioned above .
There are two kinds of functions in current applications , There are different people pushing , Move big applications directly （ Old application ）, Or rewrite it directly （ New application ）, Just now, the guest Guang Yi introduced the whole original egg The application is deployed to the function system , And the other , It's also what we're leading , Use a new framework that reuses most of the traditional capabilities to support functions .
The two models are natural trial and error , We feel that there is a certain risk in using traditional frameworks to directly add functions , The risk lies in the uncertainty of the traditional framework .
The traditional framework is for multiple processes , I don't know when to start , And state storage , And in the function scenario , We feel like we need to be more pure , It's called and executed differently , That's why the original Midway The core abstraction of , It produces lighter weight , Start faster , Single process design Midway Serverless frame .( We'll merge the two later , Do please look forward to ）
10\. Midway Serverless Architecture
Whole Midway Serverless The system consists of three parts ,CLI part , Local cloud development , debugging , And the community's multi platform release , The second piece is the capabilities of the traditional framework , Dependency injection , Application sub environment configuration , And component reuse , Scalability, etc , The third is standardization , Include yml standard , Front end call function standard , And runtime standards for privatized runtime deployment .
Here's the sample section , This time I've brought three examples , Introduce different abilities separately , If you need to follow me , Some preparatory work needs to be done ahead of time .
11.2 Example 1
The first example , I'll show you how pure functions can be published as HTTP API, And how to develop locally , debugging .
1、 Introduce the directory structure , What each file does ;2、 Introduce f.yml The content of ;3、 Introduce the function entry , General structure , Class writing ;4、 How to test ;
Function demonstration ：
1、f invoke -f index Call function 2、f invoke -p + Changes take effect in real time Modify the text hello world111, In real time , Our local service , It simulates the ability of the gateway 3、 Change the return value to html, increase type , Our definition , Let's get used to it koa People who are familiar with , And through it , It can also be easily used directly koa middleware , Press F12 View request 4、 Start up debugging capability ,invoke -p —debug 5、 Demo deployed to [ Tencent cloud ](https://l.gushuji.site/tencent) and [ Alibaba cloud ](https://l.gushuji.site/aliyun)
11.3 Example 2
The second example is an integrated example , What is integration , It's the front end + Back end development together , Deploy together , It is very suitable for most of the background scenes , And remember , Our examples are all cross cloud , For the second example, I'll post the demo to Alibaba cloud , And for the third example, I'll post the demo to Tencent cloud .
Function demonstration ：
1、f create choice vue Example 2、 Open locally , Introduce vue The components of , Function subdirectories , as well as faas Of vue plug-in unit 3、 start-up http://127.0.0.1:8080/ see vue Rendering , Emphasize that only one port is started locally , The front and back end are developed entirely in one warehouse （ It's just a person 4、F12 Look at the function interface , Modify the function interface , Refresh back to 5、 Try to publish [ Alibaba cloud ](https://l.gushuji.site/aliyun), Pause before release , Introduce high density 6、 Try to visit vue-scf.mdemo.cn
11.4 Example 3
The third example is a complex full stack application , We've added a part of the data , Here we use Alibaba cloud Of OTS To store , In practice, you can also use your own MySQL Or other databases .
Because the code is relatively complex , We stratified it , The rules and user interface are abstracted .
The code structure
1、 Because it contains a secret key , Not uploaded yet , There will be 2、 Introduce the directory structure , Directory of functions , Database hierarchy , decoupling , a key , It looks like an application , It's actually a function by interface dimension 3、 This time we release [ Tencent cloud ](https://l.gushuji.site/tencent), I deleted the previous one , Visit and see qy-scf.demo.cn Confirm that it's not deployed 4、 then deploy, Revisit , Compare the same one in [ Alibaba cloud ](https://l.gushuji.site/aliyun) Code for qy.demo.cn, Do some update operations , Data synchronization on both sides
That's all for the demo , We show three different types of , be based on midway serverless Function development model of , Both simple pure functions provide HTTP Interface , There are also complex applications in the background , Develop daily blogs for small and medium developers , The backstage and the middle office are very helpful .
12\. Facing the future
The third part , We face the future , Look at what you're going to do later .
Serverless Is a very suitable for the front end to explore and explore a new system , His lightweight and face-to-face operation and maintenance allows the front-end not to maintain the server itself , And more focused on the logical part , meanwhile , It's also great for small companies , Individual developers build their own official website 、 Interface , service .
Midway Serverless For us , It's a functional framework in a new scenario , Hope to help users in the function system better in the code level to solve the problem . We are constantly looking for new scenes while pursuing the ultimate starting speed .
in addition , Also at the framework level , We hope to win together with various cloud platforms , Support the whole ecology .
Back , We will also consider using monomers and Serverless application Of each other , Even synergy , stay IoC Systems can be done .
in addition , Will also start to support other platforms , such as aws, And Tencent Component.
Last , We're also continuing to recruit people , Welcome to communicate , This is my wechat and Midway The answer group , Thank you for listening （ read ）.
PPT Download and share ：https://github.com/midwayjs/midway/tree/resource
A brief edition of the lecture notes （ The full version contains a demo. Please see the video and PPT）, Links are as follows ：