SlideShare una empresa de Scribd logo
1 de 31
Creasoft.dev 2021
Young-Suk Ahn Park / MSEng.
Marzo 2021
Introducción a la Nube Nativa
Creasoft.dev 2021
A cerca del documento
Proposito
Proveer introducción al concepto de la
nube nativa, los principios y prácticas.
Audiencia
Directores técnicos, líderes de equipos
de desarrolladores
Ingenieros en general
No previa experiencia de nube necesaria
Contenido
1. Aplicación tradicional
2. Promesa de la nube y beneficios
3. Migrando hacia la nube
a. Hacia la nube nativa
b. El “Twelve Factor App”
c. Más allá del “Twelve Factors”
d. Microservicios
2
Creasoft.dev 2021
Aplicación tradicional (sans-Cloud)
MONOLITO
Almacenamiento de
datos
E
S
B
Administra todo!
1. Se requiere personales especializarse por
procesos y capas
2. Todos trabajan para un mega aplicacion
3. Arquitectura se tiende a componentes
altamente acoplados (sincronos)
4. Aplicaciones escalan verticalmente: más
memoria, procesadores más potentes
5. Las mismas aplicaciones son responsables
de soporte operativo como logs, monitoreo,
alerta, etc.
3
Creasoft.dev 2021
Prácticas en el desarrollo tradicional
Práctica Dificultades
Especialización dentro del
equipo por procesos y capas
Propensa a errores durante relevo de tareas. Ineficiente
manejando caídas de servicios. Cultura de culpamiento.
Una mega-aplicación, un solo
repositorio
Ausencia de libertad tecnológica. Lento ciclo de desarrollo.
Componentes estrechamente
acoplados
Arquitectura rígida, difícil de modificar y evolucionar
Aplicación con crecimiento
vertical
Costoso, complejo, punto único de fallo. Crecimiento
vertical es limitado.
Aplicación responsable por el
soporte operativo
Código hinchado. Desarrollo lento. Lógicas no relacionadas
con el negocio principal.
4
Creasoft.dev 2021
Llega la
nube
5
Creasoft.dev 2021
La promesa de la nube
Abstracción de la infraestructura
1. Los equipos se pueden especializar por
dominios y adueñarse del proceso
2. Cada equipo administra módulo(s) de
tamaño manejable
3. Aplicaciones puede reemplazar servicios
backed.
4. Aplicaciones crecen de manera horizontal:
simplemente agrega más nodos.
5. La infraestructura es responsable por el
soporte operativo tales como log,
monitoreo, etc.
SERVI-
CIO
DATOS
SERVI-
CIO
DATOS
SERVI-
CIO
DATOS
App App
6
Creasoft.dev 2021
Beneficios de la nube
Ciclo de Desarrollo más
rápido bajo un equipo.
Automatización de procesos de desarrollo y despliegue.
Gestión de infraestructura provista por el proveedor.
Más opciones de tecnología No necesita limitarse a un solo lenguaje. Cantidad de
servicios a escoger.
Requerimientos no-
funcionales realizables
Seguridad, fiabilidad, escalabilidad proporcionada por la
plataforma en la nube
Enfoque en la lógica del
negocio
Uso de servicios de terceros.
Reducción del costo de
mantenimiento
Modelo de paga-por-el-uso. Lambdas pueden reducir
costo de servidores.
7
Creasoft.dev 2021
Cumpliendo la promesa!
Se necesita un esfuerzo inicial para obtener los
beneficios!
Sus aplicaciones necesita seguir ciertos principios.
8
Creasoft.dev 2021
“La nube no es DONDE
se hace el cómputo,
sino COMO haces el
cómputo”
- Paul Maritz
9
Creasoft.dev 2021
Hacia la nube
LA NUBE
levantar y
cambiar
10
Creasoft.dev 2021
DESARROLLO OPERACIONES
HERRAMIENTAS
PRÁCTICAS
Hacia la nube Nativa
● Uso de
herramientas y
● Aplicación de
prácticas de nube
11
Creasoft.dev 2021
HERRAMIENTAS
PRÁCTICAS
Hacia la nube Nativa
DEV-OPS
● Convergencia
de equipos,
● Evolución de la
arquitectura
12
Creasoft.dev 2021
DESARROLLO OPERACIONES
HERRAMIENTAS
PRÁCTICAS
Elementos de la Nube Nativa (lista parcial)
● Automatizacion
● Lanzamientos
frecuentes
● Manejo de secretos
● Gitops
● Telemetry
● SLA / SLO
● SRE / RCA
● IaaC
● Manejo de
dependencias
● Escalamiento
● Configuracion
● Seguridad al inicio
● Microservicios
● Diseño
observable
● Orquestación de contenedores
● Automatization de Pipeline
● Autn/Auth
● Monitoreo & Logging PAAS
13
Creasoft.dev 2021
Nube Nativa, ¿Cómo lo hacemos?
1. The Twelve-Factor App por Heroku
2. Beyond the Twelve-Factor App, por VMWare
3. Arquitectura de Microservicio
14
Creasoft.dev 2021
App de los doce factores
1. Código base
(Codebase)
Un código base sobre el que hacer el control de versiones y
múltiples despliegues. Ej. una sola fuente.
2. Dependencias Declarar y aislar explícitamente las dependencias. E.g. maven.
3. Configuraciones Guardar la configuración en el entorno. E.g. K8s ConfigMap, Consul.
4. Backing services Tratar a los “backing services” como recursos conectables.
5. Construir,
desplegar, ejecutar
Separar completamente la etapa de construcción de la etapa de
ejecución. Nada de “puertas traseras.”
6. Procesos Ejecutar la aplicación como uno o más procesos sin estado.
15
Creasoft.dev 2021
7. Asignación de
puertos
Publicar servicios mediante asignación de puertos. E.g. no confíe en
el contenedor web.
8. Concurrencia Escalar mediante el modelo de procesos.
9. Desechabilidad Hacer el sistema más robusto intentando conseguir inicios rápidos y
finalizaciones seguras.
10. Paridad en
desarrollo y
producción
Mantener desarrollo, preproducción y producción tan parecidos
como sea posible.
11. Historiales Tratar los historiales como una transmisión de eventos.
12. Admin. de
procesos
Ejecutar las tareas de gestión/administración como procesos que
solo se ejecutan una vez.
The Twelve-Factor App
Más detalles para los factores en negrilla, que considero se necesita más disciplina. 16
Creasoft.dev 2021
12FactorApp: 8. Concurrencia
● ¿QUE?: Escalar mediante modelo de proceso
○ No es reemplazar CPUs, y agregar más memorias
(llamado escalamiento “vertical”)
● SI: Diseñar para escalamiento horizontal
○ Particionable: sharding
○ Pruebas en entorno multi-pod (procesos)
○ Uso de eventos para comunicación entre procesos de
larga duración
● NO: Share or coordinate states across replicas
17
Creasoft.dev 2021
12FactorApp: 9. Desechabilidad
● ¿QUE?: Más robustez con inicios rápidos y
finalizaciones seguras. Propiedad de elasticidad.
○ Desechable → iniciar, finalizar en el momento que sea necesario.
● SI: minimice el tiempo de arranque, finalice de
manera segura
○ Adopte diseño de fallo rápido.
● NO: Implemente carga o finalización pesada
○ Por ejemplo cargar los caches
18
Creasoft.dev 2021
12FactorApp: 10. Paridad en des. y producción
● ¿QUE?: Mantener desarrollo, preproducción y
producción tan parecidos como sea posible
● SI: mantenga las posibles diferencias de etapas al
mínimo
○ El código, personales, herramientas
● NO:
○ Deje reposando el codigo en dev por mucho tiempo
○ Mantenga archivos especiales para diferentes entornos
19
Creasoft.dev 2021
Más alla del Twelve-Factor App
API primero Considerar API como artefactos de primera clase en el proceso de
desarrollo.
El api sirve de contrato entre equipos incrementando la agilidad.
Configuración,
credenciales, y
codigo
Manejar los credenciales (claves secretos) con cuidado.
Telemetría Habilitar Observabilidad: Instrumentando la aplicación; recolectando
métricas de rendimiento y de negocio; habilitar alertas.
Eso es importante debido a la naturaleza distribuida de la nube.
Autenticación y
autorización
Múltiples servicios expone más superficies de ataque.
Seguridad es obligatorio. Autenticación y reglas de permisos.
20
Creasoft.dev 2021
Microservicios - Retos para el equipo
1. Necesita entender sobre sistemas distribuidos
2. Necesita entender nuevas herramientas y tecnologías
3. Necesita entender qué patrones aplicar in diferencies
circunstancias.
21
Creasoft.dev 2021
Microservicios - Como?
1. Rompiendo el Monolito
2. Operando en la nube
3. Aplicando la Capa de anti-corrupción
4. Aplicando el patrón de extrangulación
5. Refactorizando codigos comunes
6. Implementando seguridad y resiliencia
Considere el teorema CAP: Consistency, High Availability and
Network Partitioning
No existe una
prescripción para la
migración de sistema
monolito a microservicio
22
Creasoft.dev 2021
Nube no es una cosa nebulosa
allá afuera.
Es una manera probada para
desarrollar aplicaciones que
maneja negocios de alto
rendimiento.
23
Creasoft.dev 2021
No tengan temor a la nube
Nube nativa significa comprometerse al proveedor seleccionado
Valla de lleno!
Es mejor tener un sistema que corre muy bien en un
proveedor (e.j. AWS) que un sistema que corre
mediocremente en diferentes plataformas.
24
Creasoft.dev 2021
Hemos tocado una pequeña parte de la superficie…
Contáctenos para más información
https://creasoft.dev/es/
info@creasoft.dev
25
Creasoft.dev 2021
Enlaces
1. The Twelve-Factor App por Heroku
2. Beyond the Twelve-Factor App, by VMWare, 2016
3. Cloud Native, Using Containers, Functions, and Data to Build
Next-Generation Applications, O’Reilly, 2019
Sitios
1. Cloud Native
2. Docker
3. Kubernetes
26
Creasoft.dev 2021
Otros temas relacionados
1. Diseño guiado por el dominio (Domain Driven Design)
2. Modelo Reactivo
3. Prácticas DevOps y System Reliability Engineering (SRE)
4. Ingeniería de Caos
5. Contenedores y Orquestación
6. Malla de servicio (Service Mesh)
7. Función como Servicio
27
Creasoft.dev 2021
Diapositivas complementarias
28
Creasoft.dev 2021
Que es la Nube?
29
Acceso al
internet
Servicio
mensurado
Auto-servicio a
la demanda
Recursos
compartidos
Elasticidad
Servidores,
almacenamiento, base de
datos, redes, software,
analitica, automatization
Creasoft.dev 2021
Tipos de modelos de las Nubes
30
EN PREMISA
Red
Almacenamiento
Servidor
Virtualización
Sistema Operativo
Middleware
Entorno
Datos
Aplicacion
IAAS
Red
Almacenamiento
Servidor
Virtualización
Sistema Operativo
Middleware
Entorno
Datos
Aplicacion
PAAS
Red
Almacenamiento
Servidor
Virtualización
Sistema Operativo
Middleware
Entorno
Datos
Aplicacion
SAAS
Red
Almacenamiento
Servidor
Virtualización
Sistema Operativo
Middleware
Entorno
Datos
Aplicacion
Creasoft.dev 2021
Tipos de modelos de las Nubes
31
EN PREMISA Infraestructura
como Servicio
Plataforma como
Servicio
Software como
Servicio
● Heroku
● OpenShift
● Google
Compute
Engine
● AWS EC2
● Azure VM
● Digital Ocean
● Oracle VM
● Google Apps
● MS Office 360
● Jira
● ...
Su aplicación en
su premisa

Más contenido relacionado

La actualidad más candente

Introducción a cloud computing
Introducción a cloud computingIntroducción a cloud computing
Introducción a cloud computing
K35
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
campus party
 
Almacenamiento carguer
Almacenamiento carguerAlmacenamiento carguer
Almacenamiento carguer
edvincarrera
 
Computacion en las nubes
Computacion en las nubesComputacion en las nubes
Computacion en las nubes
ANALIROMERO
 
Tema 4.3.7 y4.3.8
Tema 4.3.7 y4.3.8Tema 4.3.7 y4.3.8
Tema 4.3.7 y4.3.8
disorg
 
Computacion en las nubes 1
Computacion en las nubes 1Computacion en las nubes 1
Computacion en las nubes 1
jessicasamayoa
 

La actualidad más candente (18)

Cloud Computing Empresa
Cloud Computing EmpresaCloud Computing Empresa
Cloud Computing Empresa
 
CLOUD COMPUTING INVESTIGACIÒN
CLOUD COMPUTING INVESTIGACIÒNCLOUD COMPUTING INVESTIGACIÒN
CLOUD COMPUTING INVESTIGACIÒN
 
Introducción a cloud computing
Introducción a cloud computingIntroducción a cloud computing
Introducción a cloud computing
 
Nube informatica
Nube informaticaNube informatica
Nube informatica
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Juan.velasquez.sistema.informacion
Juan.velasquez.sistema.informacionJuan.velasquez.sistema.informacion
Juan.velasquez.sistema.informacion
 
Informe acerca de la tecnología cloud computing
Informe acerca de la tecnología cloud computingInforme acerca de la tecnología cloud computing
Informe acerca de la tecnología cloud computing
 
cloudcomputing: Cloud Computing: ¿ una opción viable para su negocio?
cloudcomputing: Cloud Computing: ¿ una opción viable para su negocio?cloudcomputing: Cloud Computing: ¿ una opción viable para su negocio?
cloudcomputing: Cloud Computing: ¿ una opción viable para su negocio?
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
Almacenamiento de la nube 2222
Almacenamiento de la nube 2222Almacenamiento de la nube 2222
Almacenamiento de la nube 2222
 
Tema 2
Tema 2Tema 2
Tema 2
 
Computacion en la Nube
Computacion en la NubeComputacion en la Nube
Computacion en la Nube
 
Almacenamiento carguer
Almacenamiento carguerAlmacenamiento carguer
Almacenamiento carguer
 
Computacion en las nubes
Computacion en las nubesComputacion en las nubes
Computacion en las nubes
 
Que es una nube y un avatar en
Que es una nube y un avatar enQue es una nube y un avatar en
Que es una nube y un avatar en
 
REDES DE COMPUTADORES DELLYS YARIMA GONZALEZ
REDES DE COMPUTADORES DELLYS YARIMA GONZALEZREDES DE COMPUTADORES DELLYS YARIMA GONZALEZ
REDES DE COMPUTADORES DELLYS YARIMA GONZALEZ
 
Tema 4.3.7 y4.3.8
Tema 4.3.7 y4.3.8Tema 4.3.7 y4.3.8
Tema 4.3.7 y4.3.8
 
Computacion en las nubes 1
Computacion en las nubes 1Computacion en las nubes 1
Computacion en las nubes 1
 

Similar a Introducción a la Nube Nativa - v1.0es (2021/03)

Similar a Introducción a la Nube Nativa - v1.0es (2021/03) (20)

Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 
Cloud Security Fundamentals.pptx
Cloud Security Fundamentals.pptxCloud Security Fundamentals.pptx
Cloud Security Fundamentals.pptx
 
Casos de USO Openshift.pptx
Casos de USO Openshift.pptxCasos de USO Openshift.pptx
Casos de USO Openshift.pptx
 
Plug&play:deploying big data_solutions
Plug&play:deploying big data_solutionsPlug&play:deploying big data_solutions
Plug&play:deploying big data_solutions
 
microsoft azure presentacion
microsoft azure presentacionmicrosoft azure presentacion
microsoft azure presentacion
 
Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
 
computacion en nube
computacion en nubecomputacion en nube
computacion en nube
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Dell emc redhat_dez20
Dell emc redhat_dez20Dell emc redhat_dez20
Dell emc redhat_dez20
 
ExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladoresExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladores
 
computacion en la nube
computacion en la nubecomputacion en la nube
computacion en la nube
 
Hybrid Cloud con Equinix Platform y Cloudmas Cloudglass
Hybrid Cloud con Equinix Platform y Cloudmas CloudglassHybrid Cloud con Equinix Platform y Cloudmas Cloudglass
Hybrid Cloud con Equinix Platform y Cloudmas Cloudglass
 
2.1 Virtualización y Outsourcing.
2.1 Virtualización y Outsourcing.2.1 Virtualización y Outsourcing.
2.1 Virtualización y Outsourcing.
 
Presentacion cloud computer
Presentacion cloud computerPresentacion cloud computer
Presentacion cloud computer
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
 

Introducción a la Nube Nativa - v1.0es (2021/03)

  • 1. Creasoft.dev 2021 Young-Suk Ahn Park / MSEng. Marzo 2021 Introducción a la Nube Nativa
  • 2. Creasoft.dev 2021 A cerca del documento Proposito Proveer introducción al concepto de la nube nativa, los principios y prácticas. Audiencia Directores técnicos, líderes de equipos de desarrolladores Ingenieros en general No previa experiencia de nube necesaria Contenido 1. Aplicación tradicional 2. Promesa de la nube y beneficios 3. Migrando hacia la nube a. Hacia la nube nativa b. El “Twelve Factor App” c. Más allá del “Twelve Factors” d. Microservicios 2
  • 3. Creasoft.dev 2021 Aplicación tradicional (sans-Cloud) MONOLITO Almacenamiento de datos E S B Administra todo! 1. Se requiere personales especializarse por procesos y capas 2. Todos trabajan para un mega aplicacion 3. Arquitectura se tiende a componentes altamente acoplados (sincronos) 4. Aplicaciones escalan verticalmente: más memoria, procesadores más potentes 5. Las mismas aplicaciones son responsables de soporte operativo como logs, monitoreo, alerta, etc. 3
  • 4. Creasoft.dev 2021 Prácticas en el desarrollo tradicional Práctica Dificultades Especialización dentro del equipo por procesos y capas Propensa a errores durante relevo de tareas. Ineficiente manejando caídas de servicios. Cultura de culpamiento. Una mega-aplicación, un solo repositorio Ausencia de libertad tecnológica. Lento ciclo de desarrollo. Componentes estrechamente acoplados Arquitectura rígida, difícil de modificar y evolucionar Aplicación con crecimiento vertical Costoso, complejo, punto único de fallo. Crecimiento vertical es limitado. Aplicación responsable por el soporte operativo Código hinchado. Desarrollo lento. Lógicas no relacionadas con el negocio principal. 4
  • 6. Creasoft.dev 2021 La promesa de la nube Abstracción de la infraestructura 1. Los equipos se pueden especializar por dominios y adueñarse del proceso 2. Cada equipo administra módulo(s) de tamaño manejable 3. Aplicaciones puede reemplazar servicios backed. 4. Aplicaciones crecen de manera horizontal: simplemente agrega más nodos. 5. La infraestructura es responsable por el soporte operativo tales como log, monitoreo, etc. SERVI- CIO DATOS SERVI- CIO DATOS SERVI- CIO DATOS App App 6
  • 7. Creasoft.dev 2021 Beneficios de la nube Ciclo de Desarrollo más rápido bajo un equipo. Automatización de procesos de desarrollo y despliegue. Gestión de infraestructura provista por el proveedor. Más opciones de tecnología No necesita limitarse a un solo lenguaje. Cantidad de servicios a escoger. Requerimientos no- funcionales realizables Seguridad, fiabilidad, escalabilidad proporcionada por la plataforma en la nube Enfoque en la lógica del negocio Uso de servicios de terceros. Reducción del costo de mantenimiento Modelo de paga-por-el-uso. Lambdas pueden reducir costo de servidores. 7
  • 8. Creasoft.dev 2021 Cumpliendo la promesa! Se necesita un esfuerzo inicial para obtener los beneficios! Sus aplicaciones necesita seguir ciertos principios. 8
  • 9. Creasoft.dev 2021 “La nube no es DONDE se hace el cómputo, sino COMO haces el cómputo” - Paul Maritz 9
  • 10. Creasoft.dev 2021 Hacia la nube LA NUBE levantar y cambiar 10
  • 11. Creasoft.dev 2021 DESARROLLO OPERACIONES HERRAMIENTAS PRÁCTICAS Hacia la nube Nativa ● Uso de herramientas y ● Aplicación de prácticas de nube 11
  • 12. Creasoft.dev 2021 HERRAMIENTAS PRÁCTICAS Hacia la nube Nativa DEV-OPS ● Convergencia de equipos, ● Evolución de la arquitectura 12
  • 13. Creasoft.dev 2021 DESARROLLO OPERACIONES HERRAMIENTAS PRÁCTICAS Elementos de la Nube Nativa (lista parcial) ● Automatizacion ● Lanzamientos frecuentes ● Manejo de secretos ● Gitops ● Telemetry ● SLA / SLO ● SRE / RCA ● IaaC ● Manejo de dependencias ● Escalamiento ● Configuracion ● Seguridad al inicio ● Microservicios ● Diseño observable ● Orquestación de contenedores ● Automatization de Pipeline ● Autn/Auth ● Monitoreo & Logging PAAS 13
  • 14. Creasoft.dev 2021 Nube Nativa, ¿Cómo lo hacemos? 1. The Twelve-Factor App por Heroku 2. Beyond the Twelve-Factor App, por VMWare 3. Arquitectura de Microservicio 14
  • 15. Creasoft.dev 2021 App de los doce factores 1. Código base (Codebase) Un código base sobre el que hacer el control de versiones y múltiples despliegues. Ej. una sola fuente. 2. Dependencias Declarar y aislar explícitamente las dependencias. E.g. maven. 3. Configuraciones Guardar la configuración en el entorno. E.g. K8s ConfigMap, Consul. 4. Backing services Tratar a los “backing services” como recursos conectables. 5. Construir, desplegar, ejecutar Separar completamente la etapa de construcción de la etapa de ejecución. Nada de “puertas traseras.” 6. Procesos Ejecutar la aplicación como uno o más procesos sin estado. 15
  • 16. Creasoft.dev 2021 7. Asignación de puertos Publicar servicios mediante asignación de puertos. E.g. no confíe en el contenedor web. 8. Concurrencia Escalar mediante el modelo de procesos. 9. Desechabilidad Hacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras. 10. Paridad en desarrollo y producción Mantener desarrollo, preproducción y producción tan parecidos como sea posible. 11. Historiales Tratar los historiales como una transmisión de eventos. 12. Admin. de procesos Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez. The Twelve-Factor App Más detalles para los factores en negrilla, que considero se necesita más disciplina. 16
  • 17. Creasoft.dev 2021 12FactorApp: 8. Concurrencia ● ¿QUE?: Escalar mediante modelo de proceso ○ No es reemplazar CPUs, y agregar más memorias (llamado escalamiento “vertical”) ● SI: Diseñar para escalamiento horizontal ○ Particionable: sharding ○ Pruebas en entorno multi-pod (procesos) ○ Uso de eventos para comunicación entre procesos de larga duración ● NO: Share or coordinate states across replicas 17
  • 18. Creasoft.dev 2021 12FactorApp: 9. Desechabilidad ● ¿QUE?: Más robustez con inicios rápidos y finalizaciones seguras. Propiedad de elasticidad. ○ Desechable → iniciar, finalizar en el momento que sea necesario. ● SI: minimice el tiempo de arranque, finalice de manera segura ○ Adopte diseño de fallo rápido. ● NO: Implemente carga o finalización pesada ○ Por ejemplo cargar los caches 18
  • 19. Creasoft.dev 2021 12FactorApp: 10. Paridad en des. y producción ● ¿QUE?: Mantener desarrollo, preproducción y producción tan parecidos como sea posible ● SI: mantenga las posibles diferencias de etapas al mínimo ○ El código, personales, herramientas ● NO: ○ Deje reposando el codigo en dev por mucho tiempo ○ Mantenga archivos especiales para diferentes entornos 19
  • 20. Creasoft.dev 2021 Más alla del Twelve-Factor App API primero Considerar API como artefactos de primera clase en el proceso de desarrollo. El api sirve de contrato entre equipos incrementando la agilidad. Configuración, credenciales, y codigo Manejar los credenciales (claves secretos) con cuidado. Telemetría Habilitar Observabilidad: Instrumentando la aplicación; recolectando métricas de rendimiento y de negocio; habilitar alertas. Eso es importante debido a la naturaleza distribuida de la nube. Autenticación y autorización Múltiples servicios expone más superficies de ataque. Seguridad es obligatorio. Autenticación y reglas de permisos. 20
  • 21. Creasoft.dev 2021 Microservicios - Retos para el equipo 1. Necesita entender sobre sistemas distribuidos 2. Necesita entender nuevas herramientas y tecnologías 3. Necesita entender qué patrones aplicar in diferencies circunstancias. 21
  • 22. Creasoft.dev 2021 Microservicios - Como? 1. Rompiendo el Monolito 2. Operando en la nube 3. Aplicando la Capa de anti-corrupción 4. Aplicando el patrón de extrangulación 5. Refactorizando codigos comunes 6. Implementando seguridad y resiliencia Considere el teorema CAP: Consistency, High Availability and Network Partitioning No existe una prescripción para la migración de sistema monolito a microservicio 22
  • 23. Creasoft.dev 2021 Nube no es una cosa nebulosa allá afuera. Es una manera probada para desarrollar aplicaciones que maneja negocios de alto rendimiento. 23
  • 24. Creasoft.dev 2021 No tengan temor a la nube Nube nativa significa comprometerse al proveedor seleccionado Valla de lleno! Es mejor tener un sistema que corre muy bien en un proveedor (e.j. AWS) que un sistema que corre mediocremente en diferentes plataformas. 24
  • 25. Creasoft.dev 2021 Hemos tocado una pequeña parte de la superficie… Contáctenos para más información https://creasoft.dev/es/ info@creasoft.dev 25
  • 26. Creasoft.dev 2021 Enlaces 1. The Twelve-Factor App por Heroku 2. Beyond the Twelve-Factor App, by VMWare, 2016 3. Cloud Native, Using Containers, Functions, and Data to Build Next-Generation Applications, O’Reilly, 2019 Sitios 1. Cloud Native 2. Docker 3. Kubernetes 26
  • 27. Creasoft.dev 2021 Otros temas relacionados 1. Diseño guiado por el dominio (Domain Driven Design) 2. Modelo Reactivo 3. Prácticas DevOps y System Reliability Engineering (SRE) 4. Ingeniería de Caos 5. Contenedores y Orquestación 6. Malla de servicio (Service Mesh) 7. Función como Servicio 27
  • 29. Creasoft.dev 2021 Que es la Nube? 29 Acceso al internet Servicio mensurado Auto-servicio a la demanda Recursos compartidos Elasticidad Servidores, almacenamiento, base de datos, redes, software, analitica, automatization
  • 30. Creasoft.dev 2021 Tipos de modelos de las Nubes 30 EN PREMISA Red Almacenamiento Servidor Virtualización Sistema Operativo Middleware Entorno Datos Aplicacion IAAS Red Almacenamiento Servidor Virtualización Sistema Operativo Middleware Entorno Datos Aplicacion PAAS Red Almacenamiento Servidor Virtualización Sistema Operativo Middleware Entorno Datos Aplicacion SAAS Red Almacenamiento Servidor Virtualización Sistema Operativo Middleware Entorno Datos Aplicacion
  • 31. Creasoft.dev 2021 Tipos de modelos de las Nubes 31 EN PREMISA Infraestructura como Servicio Plataforma como Servicio Software como Servicio ● Heroku ● OpenShift ● Google Compute Engine ● AWS EC2 ● Azure VM ● Digital Ocean ● Oracle VM ● Google Apps ● MS Office 360 ● Jira ● ... Su aplicación en su premisa

Notas del editor

  1. Introducción a la Nube Nativa, ver 1.0 (es) -- DESCRIPCIÓN -- introducción al concepto de la nube nativa. ¿Qué significa ser Nube Nativa (Cloud native) y cómo podemos encaminar hacia ella? Vistazo a la Nube Nativa sus principios y prácticas. -- TAGS -- 12 factores, arquitectura, contenedor, devops, diseño, docker, elasticidad, kubernetes, microservicio, nube Foto: https://pixabay.com/photos/cloud-finger-smartphone-phone-2537777/
  2. Let’s start by examining the traditional monolith application. Teams: dev, qa, DBA, release, operation
  3. SPOF: Single Point of Failure
  4. Image: https://pixabay.com/vectors/cloud-cloud-computing-3331240/ CI/CD: https://favpng.com/png_download/rxv15DAX
  5. https://unsplash.com/photos/K-Iog-Bqf8E
  6. Often, we omit the “lift” step and attempt to just deploy the same application in the cloud.
  7. Iaac: Infrastructure as a Code
  8. Add examples.
  9. Service should be based on SLA’s
  10. Skipping the benefits, so much has been said about it. Additional knowledge: for the cloud: Container, container orchestration Security (OIDC), secret management, circuit breaker, Distributed Logging, Eventing, CQRS, Functions & Lambdas Gateways, Service Mesh,
  11. https://www.thoughtworks.com/radar/techniques/generic-cloud-usage