¿Quieres construir una aplicación de nivel empresarial? ¡Desmonta una!

Rate this content
Bookmark

Construir aplicaciones de nivel empresarial es un desafío. Entonces, ¿cómo puedes aprender a construir una? ¡Comienza desmontando una! ¡Dale la bienvenida a Contoso Real Estate, una implementación de referencia de código abierto que presenta una arquitectura componible con micro-frontends y un backend nativo de la nube, que proporciona el entorno perfecto para la exploración y el aprendizaje prácticos.

En esta charla, daremos una vuelta a la implementación utilizando GitHub Codespaces como nuestro entorno de desarrollo local para explorar el código, construir y previsualizar la aplicación y desplegarla en la nube con un solo comando. Nos sumergiremos bajo el capó para entender la estructura del proyecto (monorepo), la experiencia del desarrollador (herramientas) y los insights de la aplicación (monitorización). ¿Quieres unirte a mí en esta aventura de desmontaje? ¡Solo trae tu navegador y una cuenta de GitHub!

FAQ

Nithya Narasimhan es un defensor de la Cloud en el equipo de defensa de la IA en Microsoft.

Una aplicación de calidad enterprise se refiere a aplicaciones que están diseñadas para ser utilizadas en grandes organizaciones, soportando múltiples escenarios y manteniendo altos estándares de rendimiento, seguridad y escalabilidad.

Para aprender a construir una aplicación de calidad enterprise, es recomendable desmontar una implementación de referencia de código abierto para entender su diseño y arquitectura, y luego aplicar esos conocimientos a los requisitos de tu propia aplicación.

Una implementación de referencia es un ejemplo práctico de cómo construir una aplicación siguiendo las mejores prácticas. Estudiar una implementación de referencia puede enseñarte patrones de diseño útiles y ayudarte a entender cómo aplicarlos en tus propios proyectos.

Un devcontainer es un contenedor Docker que se ejecuta en la nube y está configurado a través de un archivo devcontainer.json. Proporciona un entorno de desarrollo consistente y controlado, permitiendo a los desarrolladores construir, depurar y desplegar aplicaciones con facilidad.

GitHub Copilot Chat es un asistente de IA integrado en VS Code que puede responder preguntas, generar código, y ofrecer asistencia adaptada al contexto del proyecto que estás trabajando, mejorando así la eficiencia durante el desarrollo.

AZD (Azure Developer CLI) es una herramienta que simplifica el despliegue de aplicaciones en Azure utilizando un enfoque de infraestructura como código. Automatiza el proceso de despliegue leyendo la configuración desde un archivo YAML asociado al proyecto.

El uso de un monorepositorio facilita la gestión de múltiples proyectos o componentes de una aplicación bajo un mismo repositorio, mejorando la integración y colaboración entre equipos al mantener toda la base de código y sus dependencias en un único lugar.

Nitya Narasimhan
Nitya Narasimhan
13 min
15 Nov, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Nithya Narasimhan discute cómo construir una aplicación de nivel empresarial desmontando una implementación de referencia. El entorno de desarrollo incluye GitHub Codespaces, devcontainer y GitHub Copilot Chat. La aplicación Contoso Real Estate proporciona una experiencia completamente funcional en el navegador. El patrón Composable Enterprise y el diseño API-first son componentes clave. El despliegue se facilita a través de la infraestructura como código y un archivo azure.yml.

1. Construcción de Aplicaciones de Calidad Empresarial

Short description:

Hola, mi nombre es Nithya Narasimhan. Soy un defensor de la nube en el equipo de defensa de la IA en Microsoft. Hoy quiero hablarles sobre cómo pueden construir una aplicación de calidad empresarial desmontando una. Tenemos una brecha de conocimiento entre la construcción de aplicaciones funcionales y aplicaciones listas para producción. Para llenar esta brecha, recomiendo encontrar una implementación de referencia, desmontarla y transferir el conocimiento a su propio proyecto. Nos centraremos en Contoso Real Estate, una implementación de referencia de calidad empresarial de código abierto del equipo JavaScript DevOx en Microsoft.

Hola, mi nombre es Nithya Narasimhan. Soy un defensor de la Cloud en el equipo de defensa de la IA en Microsoft. Y hoy quiero hablarles sobre cómo pueden construir una aplicación de calidad enterprise desmontando una.

Entonces, podrías preguntarte, ¿por qué necesito esta habilidad? Todos hemos estado aquí. Podrías pensar en un escenario en el que te has unido a un nuevo equipo de desarrollo en una organización enterprise, y en el primer día, te enfrentas a una tarea donde te das cuenta de que tienes una brecha en tu aprendizaje porque a tu equipo se le ha encargado construir una aplicación de múltiples escenarios que es de calidad enterprise en conjunto con otros equipos. Y necesitas tomar una decisión sobre el entorno de desarrollo y la design architecture que quieres usar. ¿Qué haces?

El desafío es que tenemos una brecha de conocimiento. La mayoría de nosotros, y es muy parecido a este meme sobre cómo dibujar un caballo, muchos de nosotros conocemos conceptos básicos. Conocemos los bloques de construcción. Hemos construido aplicaciones funcionales que nos pueden ayudar a mostrar demostraciones a pequeñas audiencias. Pero una aplicación de producción es como ese diagrama terminado, la imagen terminada, y entre ese prototipo funcional y la versión lista para producción hay una brecha en el aprendizaje, y esos pequeños detalles faltan en todas las cosas que intentamos aprender.

Entonces, ¿cómo adquirimos habilidades? ¿Cómo llenamos esta brecha? Quiero recomendar que lo hagamos en tres pasos. Primero, encuentra una implementación de referencia que proporcione un ejemplo de lo que quieres construir. Desmóntala para aprender cómo lo hicieron y luego transfiere ese conocimiento a los requisitos de tu propia aplicación. Entonces, al final de esta charla, espero que sepas cómo puedes pasar de haber identificado tu brecha de conocimiento a haber transferido el conocimiento de desmontar una implementación de referencia de open-source a tu propio proyecto.

El primer paso es encontrar una buena muestra de referencia. Lo veo como un proceso de tres criterios. Primero, quieres buscar algo que sea de código abierto porque quieres desempaquetar y mirar debajo para ver cómo se implementaron las cosas. Segundo, una buena muestra de referencia debería enseñarte patterns. No solo quieres implementar cosas. Quieres que tenga algo que sea transferible. Buenas prácticas de design que tengan sentido para otras aplicaciones. Y tercero, quieres un caso de uso que proporcione cobertura para los tipos de requisitos que tienes. Entonces, por ejemplo, si tu aplicación va a tener un escenario de authentication, busca una muestra de referencia que también lo tenga.

Entonces, en esta charla, nos vamos a centrar en Contoso Real Estate. Es una implementación de referencia de calidad enterprise de código abierto del equipo JavaScript DevOx en Microsoft. Ahora, Contoso es una corporación global ficticia. Y la aplicación Contoso Real Estate construye una implementación de referencia de una aplicación de incorporación para nuevos empleados en esa organización. Y como puedes ver, es una implementación de múltiples escenarios. Tiene un escenario de gestión de contenido.

2. Entorno de Desarrollo y Construcción de la Aplicación

Short description:

Tiene un escenario con dos aplicaciones, una aplicación de blog para que los administradores rellenen artículos y una aplicación de portal para que los administradores llenen el sistema de gestión de contenido con alquileres. Los nuevos empleados pueden navegar por los alquileres, guardarlos y reservarlos. Abogamos por los espacios de código de GitHub y un entorno devcontainer para el entorno de desarrollo. GitHub Copilot Chat proporciona un asistente de IA en VS Code. Puedes hacer preguntas, obtener explicaciones, generar código y más. Construye y previsualiza la aplicación en el navegador para validar la implementación de referencia.

Tiene un escenario que tiene dos aplicaciones, una aplicación de blog donde los administradores pueden llenar artículos de blog y hacer que esos blogs sean leídos tanto por invitados como por nuevos empleados, y una aplicación de portal donde los administradores llenan el sistema de gestión de contenido con alquileres en el área. Y los nuevos empleados pueden entonces usar el portal para navegar por los alquileres disponibles, guardarlos en su perfil, y reservarlos para el pago. Pero lo más importante, sabíamos que teníamos que design una architecture que pudiera ser extendida a nuevos escenarios.

Así que al empezar, lo que necesitas hacer si quieres seguir el ritmo es ir adelante y crear una copia de esto, bifurcar el repositorio y usar la URL que he dado en el texto de abajo. Eso es porque esta implementación de referencia está activamente en desarrollo, así que quiero asegurarme de que tienes una rama estable, así que busca aka.ms slash Contoso hyphen real estate, hyphen react, hyphen summit, hyphen 2023. Desmarca la casilla de la rama principal para que esté copiando todas las ramas, y luego busca la rama del react summit en tu bifurcación. En este punto, estamos listos para empezar a deconstruir.

Lo primero que quieres hacer es entender o responder a la pregunta del entorno de desarrollo, ¿cómo deberíamos configurar nuestro entorno de desarrollo? En nuestra implementación de referencia, abogamos por los espacios de código de GitHub o más bien por un entorno devcontainer. Así que déjame mostrarte rápidamente cómo se ve eso. Así que cuando bifurcas el repositorio y cambias a esa rama en particular, quieres ir a ver el menú desplegable de código y empezar un nuevo espacio de código. En mi caso, ya tengo uno en funcionamiento, así que lo dejé caer, y puedes ver que tengo uno en funcionamiento, y cuando lo lanzas, tarda un poco de tiempo, pero cuando terminas, en realidad vas a ver algo como esto.

Así que como puedes ver, tienes lo que parece ser una experiencia de Visual Studio Code justo en tu navegador, pero está conectado a un entorno de runtime que puede ejecutar esta aplicación para ti. Así que echemos un vistazo a lo que es un devcontainer. Así que en este caso en particular, vas a aprender dos cosas. Primero, un devcontainer es un contenedor Docker que se ejecuta en la cloud en el caso de los espacios de código de GitHub, pero el patrón que vas a entender es que utiliza la configuración como código. Ese entorno está definido por un archivo devcontainer.json que puedes registrar junto con tu base de código. Puedes controlar su versión, puedes modificarlo, puedes compartirlo con otros. Y lo que hace es asegurar que cualquiera que use este proyecto esté configurado con el mismo entorno exacto en el que pueden construir, debug, y desplegar.

Una vez que has hecho eso, esto es opcional, pero te animo a que instales GitHub Copilot Chat, y estoy seguro de que te voy a mostrar muy rápidamente por qué es útil. Así que lo que hace GitHub Copilot Chat es que proporciona un asistente de IA, pero ese asistente de IA está sentado justo en VS Code. Así que en mi caso, ya lo he instalado, y cuando hago clic en esto, obtengo un asistente de chat justo en mi experiencia de VS Code. Y lo que eso significa es que cuando estoy atascado con una pregunta en particular, por ejemplo, puedo preguntarle, ¿qué son los espacios de código de GitHub? Y en lugar de salir de esto a Google y luego volver y cambiar de contexto, le pregunto aquí mismo y me da una respuesta en contexto, pero puede hacer más. Puedo preguntarle, así que puedo usar cosas como comandos, como explicar y decir explicar qué hace esto, ¿verdad? Pero ahora lo que está haciendo es que está tomando esto y mirando el archivo que tienes abierto aquí, que es devcontainer.json y diciendo, oh, déjame explicar qué hace esto, que es un devcontainer. Y ahora puedes, y combina los dos y sigue el software, pero quieres entender los beneficios de los espacios de código. Así que lo que tienes es un asistente de IA que se mantiene en línea con tu flujo, pero también tiene el contexto de lo que estás trabajando en tu entorno de desarrollo y puede personalizar sus respuestas para ayudarte. Y como puedes ver aquí, no sólo puedes hacer que explique cosas, puedes hacer que genere código, que lo corrija, que lo simplifique, que cree cuadernos, que cree espacios de trabajo, y también simplemente consultas o instrucciones de forma libre. Así que ahora tienes tu entorno de desarrollo. Sabes que tu código ya está ahí. ¿Qué puedes hacer? A continuación, queremos construir y previsualizar la aplicación justo ahí en el navegador para validar el hecho de que esa implementación de referencia realmente funciona para nuestras necesidades. En mi caso, ya lo tengo en funcionamiento y notarás que en las instrucciones, nos dice cómo empezar a construirlo y previsualizarlo.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Entendiendo la Arquitectura Fiber de React
React Advanced Conference 2022React Advanced Conference 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
Hemos escuchado mucho sobre la Arquitectura Fiber de React, pero parece que pocos de nosotros la entendemos en profundidad (o tenemos el tiempo para hacerlo). En esta charla, Tejas repasará su mejor intento de entender Fiber (revisado por otros expertos), y lo presentará de una manera 'explicar-como-si-tuviera-cinco años'.
The Eternal Sunshine of the Zero Build Pipeline
React Finland 2021React Finland 2021
36 min
The Eternal Sunshine of the Zero Build Pipeline
For many years, we have migrated all our devtools to Node.js for the sake of simplicity: a common language (JS/TS), a large ecosystem (NPM), and a powerful engine. In the meantime, we moved a lot of computation tasks to the client-side thanks to PWA and JavaScript Hegemony.
So we made Webapps for years, developing with awesome reactive frameworks and bundling a lot of dependencies. We progressively moved from our simplicity to complex apps toolchains. We've become the new Java-like ecosystem. It sucks.
It's 2021, we've got a lot of new technologies to sustain our Users eXperience. It's time to have a break and rethink our tools rather than going faster and faster in the same direction. It's time to redesign the Developer eXperience. It's time for a bundle-free dev environment. It's time to embrace a new frontend building philosophy, still with our lovely JavaScript.
Introducing Snowpack, Vite, Astro, and other Bare Modules tools concepts!
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Existen muchas formas de autorizar componentes en React, y hacerlo correctamente puede no ser tan fácil, especialmente cuando los componentes se vuelven más complejos. En esta charla, aprenderás cómo construir componentes React a prueba de futuro. Cubriremos dos enfoques diferentes para construir componentes - Composición y Configuración, para construir el mismo componente utilizando ambos enfoques y explorar sus ventajas y desventajas.
Patrones de Arquitectura Remix
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Patrones de Arquitectura Remix
Top Content
Remix ofrece una increíble flexibilidad y puede ser desplegado en cualquier lugar donde se ejecute JavaScript. Pero, ¿cómo encaja Remix en el panorama de aplicaciones más amplio de una organización? Remix proporciona una gran utilidad, pero ¿cómo aprovecharla al máximo? ¿Qué cosas deberían manejarse dentro de Remix y qué cosas serían mejor hacer en otro lugar? ¿Deberíamos usar el adaptador express para agregar un servidor WebSocket o debería ser un microservicio independiente? ¿Cómo integrarán las organizaciones empresariales Remix en sus pilas actuales? ¡Hablemos de patrones de arquitectura! En esta charla, quiero compartir mis pensamientos sobre cómo integrar mejor Remix en una pila (empresarial) más grande.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.