imagen


Introducción a la competencia

Nativo de la nube

El 3er Desafío de Programación Nativa en la Nube 2022 es una importante competencia de marca nativa en la nube organizada por Alibaba Cloud e Intel, y organizada conjuntamente por Cloud Native Application Platform y Tianchi.
Desde 2015, la competencia se llevó a cabo con éxito durante siete sesiones y se actualizó al primer desafío de programación nativa en la nube desde 2020, atrayendo a más de 36,000 equipos que cubren más de 10 países y regiones.
Esta competencia continuará explorando profundamente los tres campos técnicos populares de malla de servicio, contenedor de borde y sin servidor, brindando un escenario para que los jóvenes amantes de la tecnología desafíen los problemas técnicos de clase mundial, con la esperanza de usar la tecnología para crear un mayor valor para toda la sociedad. . ¡Inscríbete en el concurso ahora!


¡Te esperan grandes recompensas por registrarte!

Nativo de la nube

  • Comparte el premio en efectivo de ¥ 510,000
  • Tres pistas populares para elegir
  • Invita a tus amigos a registrarse para canjear hermosos regalos
  • Completa la experiencia de escena sin servidor para obtener la mochila Alibaba Cloud

Puede elegir 1 o todas las siguientes pistas para escanear el código QR para registrarse:
Pista 1 (malla de servicio)

imagen

Pista 2 (contenedor de borde)

imagen

Pista 3 (sin servidor)

imagen

Se puede encontrar más contenido en el sitio web oficial de la competencia, bienvenido a escanear el código para entender ~

imagen


Antecedentes del concurso

En la era de la nube, los IDE se están volviendo cada vez más livianos y distribuidos. Productos conocidos como VSCode e IntelliJ Idea han lanzado versiones Web IDE. En los campos de programas pequeños, código bajo/sin código, educación de programación en línea, desarrollo integrado front-end, procesamiento de big data y otros campos, Web IDE ha demostrado un valor cada vez más importante. por ejemplo:

  • ¿Puedo usar las sugerencias de código inteligente del IDE para analizar el código del proyecto en github en lugar de clonar todo el proyecto? Intente reemplazar github.com en la URL del proyecto en Github con github.dev, puede usar el ide web de vscode para navegar y modificar el código en el navegador, ¿no es muy conveniente?

  • Participe en el desarrollo de proyectos, ¿puede comenzar a codificar directamente sin perder tiempo instalando herramientas y bibliotecas dependientes? Intente anteponer https://gitpod.io/# a la URL del proyecto de github para crear un entorno IDE web preconfigurado para el proyecto y comience a desarrollarlo de inmediato, ¿no es genial?

  • En escenarios como programas pequeños y código bajo, ¿existe un entorno de desarrollo integral altamente integrado que hace que el ciclo cerrado de desarrollo, depuración y efectos de visualización sea lo más corto posible?

  • Las aplicaciones nativas de la nube inevitablemente dependen de varios servicios en la nube. La depuración de pruebas de integración en una máquina de desarrollo local es demasiado difícil. ¿No sería muy conveniente usar varios productos en la nube o llamar a servicios de flujo ascendente y descendente en el entorno remoto configurado?

  • Para desarrollar aplicaciones X86 en computadoras portátiles de Apple basadas en chips de arquitectura ARM, la configuración de compilación cruzada es compleja y ejecutar aplicaciones X86 en modo analógico tiene un rendimiento bajo y un consumo de energía rápido. ¿Puede desarrollar y depurar programas en un entorno IDE X86 remoto?

  • ...


Análisis del tema

Web IDE es esencialmente un servicio SaaS Incluso con un excelente software IDE liviano como Vscode, aún existen muchos desafíos técnicos para crear un servicio Web IDE confiable y fácil de usar:

  • Aislamiento de seguridad multiinquilino. Para acceder a los activos principales del usuario: el código, Web IDE debe lograr un aislamiento de seguridad entre diferentes inquilinos para garantizar la seguridad de los datos.

  • cuota de recursos. El uso de los recursos por parte de los usuarios debe ser controlable y no derribará todo el sistema ni afectará a otros usuarios.

  • Los datos se guardan en tiempo real. Los usuarios pueden cerrar la página en cualquier momento sin preocuparse por la pérdida de datos.

  • El estado se restaura en tiempo real. Cuando los usuarios quieren seguir trabajando, pueden restaurar al último estado en segundos y seguir trabajando.

  • Alta utilización de recursos y bajo costo. La gran mayoría del uso de IDE está fragmentado y solo se usa durante una pequeña parte del día, por lo que no es aconsejable tener instancias de IDE residentes.

  • ...
     
Las características del servicio Web IDE determinan que necesita una plataforma informática dinámica, detallada, multiinquilino, segura y aislada. imaginemos:
  • ¿Cómo iniciar una instancia ejecutándose en segundos?
  • ¿Cómo optimizar la utilización de recursos para el uso de IDE de cola larga y baja frecuencia?
  • ¿Cómo garantizar que el aislamiento de seguridad de la tenencia múltiple pueda alcanzar el nivel de la máquina virtual y lograr realmente la seguridad de los datos?
     
Y estos requisitos encajan bien con las características de la informática sin servidor. Parece un poco extraño que una arquitectura sin servidor se vea bien para crear servicios IDE web livianos y listos para usar que desaparecen. Después de todo, la computación sin servidor se caracteriza por ser "sin estado", y nuestra comprensión previa de los IDE a menudo piensa que es "con estado". Por ejemplo, ¿cómo almacenar y restaurar datos de usuario de manera segura y eficiente? Ese es uno de los desafíos técnicos que resolverás en este desafío.

Ideas para resolver problemas

El equipo de la competencia brindó un ejemplo de Vscode sin servidor, ejecutando el servidor openvscode en la plataforma de computación de funciones sin cambiar una sola línea de código y realizando capacidades simples de recuperación y guardado de datos. El código de muestra completo tiene menos de 500 líneas, pero ya es un servicio Web IDE relativamente completo. Puede ampliar sobre esta base, incluyendo pero no limitado a:

  • Basado en la capacidad de aislamiento de múltiples arrendatarios de los servicios en la nube sin servidor, el ejemplo se extiende a un servicio IDE SaaS de múltiples arrendatarios.
  • Optimice la estrategia de recuperación y guardado de datos, incluso si el usuario cierra accidentalmente la página del IDE o falla la instancia que ejecuta el IDE, el usuario aún puede recuperar rápidamente el estado anterior.
  • ¡Optimice el rendimiento de inicio de la instancia del IDE web y abra el IDE en segundos en cualquier momento y en cualquier lugar!
  • Optimizar costos. Maximice la utilización de los recursos y reduzca los costos.
También puede ser creativo y agregar funciones más interesantes. P.ej:
  • Para escenarios verticales como programas pequeños, código bajo y procesamiento de datos, implemente un servicio IDE integral similar a CodeSandbox, que cubra todo el proceso de desarrollo, prueba e implementación.
  • Realice el desarrollo colaborativo multiusuario
  • Puede instalar complementos de vscode en varios idiomas y escribir código de muestra con ciertos consejos inteligentes

  • La carga de archivos puede romper el límite de la carga útil máxima de 16M en el cálculo de la función

  • ...

¡Utilice su ingenio para resolver uno o más de los desafíos anteriores y cree el servicio Web IDE más innovador y con mayor potencial de producto basado en una arquitectura sin servidor! ¡Vaya sin servidor!
Por supuesto, si tiene una mejor solución, puede usar este ejemplo predeterminado de Vscode sin servidor.
¡Haz clic para leer el texto original y regístrate ahora!


Documentación de referencia

Sitio web oficial de Function Compute:

https://help.aliyun.com/document_detail/52895.html

Desarrolle rápidamente libros de cocina FC utilizando las herramientas Serverless-Devs:

https://docs.serverless-devs.com/fc-faq/s_fc_cookbook/readme

Referencia oficial DEMO:

https://github.com/devsapp/start-serverless-webide


【Recompensas de experiencia】Laboratorio práctico del concurso

Nativo de la nube

Durante la competencia (del 30 de junio al 6 de septiembre), solo necesita completar la experiencia del escenario sin servidor e inscribirse en el Desafío de programación nativa en la nube. Después de completar la tarea, puede obtener una mochila Alibaba Cloud personalizada, ¡venga y experimente!

Escanea el código para participar ahora en la actividad de la experiencia


imagen