El desarrollo nativo en cloud es una manera de desarrollar software que se aprovecha de las tecnologías que ofrece la computación en la nube. De esta forma, es posible crear aplicaciones escalables, más rápidamente y en un entorno dinámico.
Si bien el desarrollo nativo en cloud es un enfoque bastante versátil y resiliente de construir software, hay una serie de buenas prácticas que hacen posible una mejor ejecución del proceso. De ello vamos a hablar en este webinar y, por eso, hemos invitado a un experto en la materia.
Se trata de Luis Reyes, asesor de desarrolladores en el uso de cloud en IBM y un participante asiduo de eventos y workshops sobre las arquitecturas y procesos que hacen uso de esta tecnología. En esta charla, nos explica cómo funciona el desarrollo nativo en cloud y la mejor forma de sacarle provecho.
¿Qué encontrarás en este post?
ToggleBuenas prácticas para el desarrollo nativo en cloud
El desarrollo nativo en cloud se basa en la idea de que la concepción y entrega de software es un servicio. En este orden de ideas, la arquitectura de las aplicaciones es, por lo tanto, un conjunto de microservicios, esto es, elementos independientes que se comunican entre sí. Este modelo permite construir aplicaciones portables, escalables horizontalmente, automatizadas, trazables, observables y robustas. Asimismo, combinado con metodologías de trabajo como DevOps, permite ejecutar todo el proceso de manera más ágil y eficiente. Eso sí, hay una serie de elementos a considerar que todo desarrollador de aplicaciones o ingeniero de operaciones debería tener en cuenta, acordadas por profesionales del sector y que subraya nuestro invitado. Se trata de los 12 factores y estas son sus premisas:- Código base: Un código base sobre el que hacer el control de versiones y múltiples despliegues.
- Dependencias: Declarar y aislar explícitamente las dependencias.
- Configuraciones: Guardar la configuración en el entorno.
- Backing services: Tratar a los “backing services” como recursos conectables.
- Construir, desplegar, ejecutar: Separar completamente la etapa de construcción de la etapa de ejecución.
- Procesos: Ejecutar la aplicación como uno o más procesos sin estado.
- Asignación de puertos: Publicar servicios mediante asignación de puertos.
- Concurrencia: Escalar mediante el modelo de procesos.
- Desechabilidad: Hacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras.
- Paridad en desarrollo y producción: Mantener desarrollo, pre producción y producción tan parecidos como sea posible.
- Historiales: Tratar los historiales como una transmisión de eventos.
- Administración de procesos: Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez.