4. AGENDA
• Porque Multi-Cloud?
• Aplicaciones Cloud Native y sus complicaciones
• Crossplane
• Como funciona?
• Cuando usarlo?
5. PORQUE MULTI-CLOUD?
• Evitar una relación de dependencia con un Cloud Provider
• Queremos usar tecnologias especi
fi
cas de cada Cloud
• Fusion de multiple empresas
• Industrias intensamente reguladas
• Mercados internacionales
6. PORQUE MULTI-CLOUD?
• Otras razones:
• Estas construyendo to plataforma SaaS (interna/externa)?
• Eres un proveedor de componentes software?
• Aplicaciones complejas y sus dependencias con infraestructura
7. DIMENSIONES MULTI-CLOUD
(NO ES UNA DECISION BINARIA)
• Hashicorp De
fi
nitions: https://www.hashicorp.com/resources/the-
many-de
fi
nitions-of-multi-cloud-and-their-implications
• Workload Portability: que tan fácil es de correr en otro proveedor
• Work
fl
ow Portability: que tan fácil es desplegar en otro proveedor
• Data Portability: que tan fácil es replicar datos
• Traf
fi
c Portability: que tan fácil es migrar tra
fi
co sin afectar al cliente
8. DIMENSIONES MULTI-CLOUD
(NO ES UNA DECISION BINARIA)
• Workload Portability
• Work
fl
ow Portability
• Data Portability
• Traf
fi
c Portability
10. UNA APLICACIÓN CLOUD-NATIVE SIMPLE
• Containers en Kubernetes, nada nuevo
• Los Servicios se comunican via REST
• Si te gusta Helm, puedes agrupar los servicios en un Chart
• https://github.com/salaboy/fmtok8s-app
11.
12. DESAFIOS
• Dependencias
• Base de datos, Mensajeria, Caches, etc.
• Opciones
• Helm puede ayudar -> pero hay que mantener estos componentes
• Especi
fi
co de cada Cloud Provider -> Dependencia fuerte
• Terraform y otras herramientas (IaC) -> Imperativas, aprender otras
herramientas
14. QUE ES CROSSPLANE?
• Un proyecto que esta en sandbox de CNCF (cerca de incubation)
• Provee una capa de abstracción para trabajar con distintos Cloud
Providers
• Extiende las APIs de Kubernetes permitiéndonos crear infraestructura
de manera declarativa
15. COMO FUNCIONA?
• De
fi
ne el concepto de Provider
• GCP, AWS, Azure, etc.
• Cada provider de
fi
ne los servicios (recursos) que provee de manera
declarativa
• De
fi
ne el concepto de ManagedResource y ManagedResourceDe
fi
nition
• Crossplane va a reconciliar estos recursos creados en los providers de
manera continua
16. EJEMPLO PROVIDER
• Google Cloud Platform (GCP)
• `kubectl get providers.pkg.crossplane.io`
• `kubectl get providercon
fi
gs.gcp.crossplane.io`
17.
18. EJEMPLO MANAGED RESOURCE
• PostgreSQL en GCP, representa una interface simple
• `kubectl get crd |grep gcp.crossplane.io`
19. MANAGED RESOURCE NOS BRINDAN
• Estos recursos representan uno-a-uno los recursos creados en un cloud provider
• Algunas características especiales porque estamos tratando con infraestructura
• Reconciliación continua
• Propiedades Inmutables
• Políticas de borrado (Deletion Policies)
• Nombres Externos
• Manejo de dependencias
• Podemos importar de recursos no creados por Crossplane
• Backup con herramientas de Kubernetes