Competition introduction
The 3rd Cloud Native Programming Challenge 2022 is a top cloud native brand competition hosted by Alibaba Cloud and Intel, and jointly organized by Cloud Native Application Platform and Tianchi.
Since 2015, the competition has been successfully held for seven sessions, and has been upgraded to the first cloud native programming challenge since 2020, attracting more than 36,000 teams covering more than 10 countries and regions.
This competition will continue to deeply explore the three popular technical fields of service mesh, edge container and serverless, providing a stage for young people who love technology to challenge world-class technical problems, hoping to use technology to create greater value for the whole society. Sign up for the competition now!
Great rewards are waiting for you to sign up!
- Share the ¥510,000 cash prize
- Three popular tracks to choose from
- Invite friends to sign up to redeem beautiful gifts
- Complete the serverless scene experience to get the Alibaba Cloud backpack
You can choose 1 or all of the following tracks to scan the QR code to register: Track 1 (Service Grid)
Track 2 (Edge Container)
Track 3 (Serverless)
More content can be found on the official website of the competition, welcome to scan the code to understand~
Contest background
In the cloud era, IDEs are becoming more and more lightweight and distributed. Well-known products such as VSCode and IntelliJ Idea have launched Web IDE versions. In the fields of small programs, Low code/No code, online programming education, front-end integrated development, big data processing and other fields, Web IDE has shown more and more important value. for example:
- Can I use the IDE's smart code hints to analyze the project code on github instead of cloning the entire project? Try to replace github.com in the project url on Github with github.dev, you can use the vscode web ide to browse and modify the code in the browser, isn't it very convenient?
- Participate in project development, can you start coding directly without spending time installing tools and dependent libraries? Try prepending https://gitpod.io/# to the github project url to create a pre-configured Web IDE environment for the project and start developing right away, isn't it cool?
- In scenarios such as small programs and low code, is there a highly integrated, one-stop development environment that makes the closed loop of development, debugging, and viewing effects the shortest?
- Cloud-native applications inevitably rely on various cloud services. Debugging integration tests on a local development machine is too difficult. Wouldn't it be very convenient to use various cloud products or call upstream and downstream services in the configured remote environment?
- To develop X86 applications under Apple's laptops based on ARM architecture chips, the cross-compilation configuration is complex, and running X86 applications in an analog mode has low performance and fast power consumption. Can you develop and debug programs in a remote X86 IDE environment?
- ...
Topic Analysis
Web IDE is essentially a SaaS service. Even with excellent lightweight IDE software like Vscode, there are still many technical challenges to create a reliable and easy-to-use Web IDE service:
- Multi-tenant security isolation. To access the user's core assets - code, Web IDE must achieve security isolation between different tenants to ensure data security.
- resource quota. The use of resources by users must be controllable and will not bring down the entire system and affect other users.
- Data is saved in real time. Users can close the page at any time without worrying about data loss.
- Status is restored in real time. When users want to continue working, they can restore to the last state in seconds and continue working.
- High resource utilization and low cost. The vast majority of IDE usage is fragmented and only used for a small part of the day, so it is unwise to have IDE instances resident.
- ...
The characteristics of Web IDE service determine that it needs a dynamic, fine-grained, multi-tenant, secure and isolated computing platform. Let's imagine:
- How to start an instance running in seconds?
- How to optimize resource utilization for long-tail, low-frequency IDE usage?
- How to ensure that the security isolation of multi-tenancy can reach the virtual machine level and truly achieve data security?
And these requirements fit well with the characteristics of serverless computing. It seems a little weird that a serverless architecture looks good for building out-of-the-box, light-weight web IDE services that go away. After all, serverless computing is characterized by "stateless", and our previous understanding of IDEs often thinks that it is "stateful". For example, how to safely and efficiently store and restore user data? That's one of the technical challenges you'll be solving in this challenge.
Problem solving ideas
The competition team provided an example of Serverless Vscode, running the openvscode server on the function computing platform without changing a single line of code, and realizing simple data saving and recovery capabilities. The entire sample code is less than 500 lines, but it is already a relatively complete Web IDE service. You can expand on this basis, including but not limited to:
- Based on the multi-tenancy isolation capability of serverless cloud services, the example is extended to a multi-tenant IDE SaaS service.
- Optimize the data saving and recovery strategy, even if the user accidentally closes the IDE page, or the instance running the IDE fails, the user can still quickly recover to the previous state.
- Optimize the startup performance of the Web IDE instance, and open the IDE in seconds anytime, anywhere!
- Optimize costs. Maximize resource utilization and reduce costs.
You can also get creative and add more interesting features. E.g:
- For vertical scenarios such as small programs, low code, and data processing, implement a one-stop IDE service similar to CodeSandbox, covering the entire process of development, testing, and deployment
- Realize multi-user collaborative development
- Can install multi-language vscode plug-ins, and write sample code with certain smart tips
- Uploading files can break the limit of the maximum payload of 16M in function calculation
- ...
Please use your ingenuity to solve one or more of the above challenges, and build the most innovative and product-potential Web IDE service based on Serverless architecture! Go Serverless!
Of course, if you have a better solution, you can use this default Serverless Vscode example.
Click here to register now!
Reference documentation
Function Compute official website:
https://help.aliyun.com/document_detail/52895.html
Quickly develop FC cookbooks using Serverless-Devs tools:
https://docs.serverless-devs.com/fc-faq/s_fc_cookbook/readme
Official reference DEMO:
https://github.com/devsapp/start-serverless-webide
【Experience Rewards】Contest Hands-on Lab
During the competition (June 30-September 6), you only need to complete the serverless scenario experience and sign up for the Cloud Native Programming Challenge. After completing the task, you can get an Alibaba Cloud customized backpack, come and experience it!
Scan the code to participate in the experience activity immediately
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。