Arquitectura Cloud Nativa | Jose Luis Bugarin

Es muy probable que hayas escuchado el termino Cloud Native (aplicación nativa en cloud) y si le preguntas a diferentes personas que conocen de la materia, también es muy probable que tengas respuestas diversas.

Una definición aceptable es la que tiene AWS:

La computación en la nube es la entrega a pedido de potencia informática, almacenamiento de bases de datos, aplicaciones y otros recursos de TI a través de una plataforma de servicios en la nube a través de Internet con precios de pago por uso

Por lo tanto, en su forma más básica, nativo en la nube significa adoptar los servicios de computación en la nube para diseñar la solución; sin embargo, eso solo cubre parte de lo que se requiere para convertirse en nativo de la nube.

La automatización y el diseño de aplicaciones también juegan un papel importante en este proceso. La nube, con su diseño basado en API, permite una automatización extrema a escala no solo para crear instancias o sistemas específicos, sino también para desplegar completamente un panorama corporativo completo sin interacción humana. Finalmente, un componente crítico en la creación de una arquitectura nativa de la nube es el enfoque utilizado para diseñar una aplicación específica. Los sistemas diseñados con los mejores servicios en la nube, y desplegados con extrema automatización, aún pueden fallar en lograr los resultados deseados si la lógica de la aplicación no toma en consideración la nueva escala a la que puede operar.

Existen modelos de madurez que te pueden ayudar a ubicarte como vas con el uso del cloud, pero ahora comentare sobre los 12 factores claves:

I. Código base (Codebase)
Un código base sobre el que hacer el control de versiones y múltiples despliegues
II. Dependencias
Declarar y aislar explícitamente las dependencias
III. Configuraciones
Guardar la configuración en el entorno
IV. Backing services
Tratar a los “backing services” como recursos conectables
V. Construir, desplegar, ejecutar
Separar completamente la etapa de construcción de la etapa de ejecución
VI. Procesos
Ejecutar la aplicación como uno o más procesos sin estado
VII. Asignación de puertos
Publicar servicios mediante asignación de puertos
VIII. Concurrencia
Escalar mediante el modelo de procesos
IX. Desechabilidad
Hacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras
X. Paridad en desarrollo y producción
Mantener desarrollo, preproducción y producción tan parecidos como sea posible
XI. Historiales
Tratar los historiales como una transmisión de eventos
XII. Administración de procesos
Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez

puedes tener + detalles en:

https://12factor.net/es/

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *