Los contenedores se están comiendo el mundo. Si ha creado e implementado una aplicación en producción durante los últimos años, lo más probable es que haya implementado su código en contenedores. Es posible que haya creado e implementado contenedores individuales (Docker, Linux LXC, etc.) directamente al principio, pero cambió rápidamente a una tecnología de orquestación de contenedores como Kubernetes (K8s) o Swarm cuando necesitaba coordinar implementaciones de múltiples nodos y alta disponibilidad. (DECIR AH). En este mundo impulsado por contenedores, ¿cómo será el futuro de la pila de aplicaciones? Comencemos con lo que necesitamos de esta pila de aplicaciones "futuras".
¿Qué necesitamos de esta futura pila de aplicaciones?
-
Agnóstico de la nube
Queremos ser independientes de la nube con la capacidad de implementar en cualquier nube de nuestra elección. Idealmente, incluso podemos mezclar varios proveedores en una sola implementación.
-
En las instalaciones
Necesitamos poder ejecutar nuestra pila de aplicaciones en las instalaciones con nuestro propio hardware personalizado, nube privada y centros de datos administrados internamente.
-
Agnóstico del lenguaje
Casi es decir, pero lo agregaré para completarlo. La futura pila abierta debe ser compatible con todos los lenguajes de programación populares.
La futura pila de aplicaciones
La futura pila de aplicaciones estará compuesta por una tríada de tecnologías:K8, plataforma como servicio (PaaS) y base de datos como servicio (DBaaS)
K8
Kubernetes es una plataforma portátil y extensible de código abierto para administrar cargas de trabajo y servicios en contenedores, y puede implementar sus aplicaciones directamente en contenedores K8s. Para los clientes con aplicaciones existentes, tiene mucho sentido empaquetar e implementar sus aplicaciones existentes en K8 directamente.
El futuro de la pila de aplicaciones:K8s, PaaS y DBaaSClick To Tweet
Todos los proveedores de nube pública brindan un sólido soporte nativo para K8, y también puede ejecutar su propio clúster de K8 en las instalaciones. Docker ahora también se ha subido al carro de K8, por lo que tiene total flexibilidad. No hay duda de que K8s es el rey de la colina hoy. En unos años, es posible que otra solución lo supere, pero la tecnología de orquestación de contenedores llegó para quedarse.
Soluciones PaaS
Si está creando una nueva aplicación desde cero, las soluciones de plataforma como servicio como Cloud Foundry y OpenShift ofrecen ventajas atractivas que puede aprovechar para acelerar el desarrollo de su aplicación. ciclo vital. ¿Es imprescindible una PaaS? Definitivamente no, pero creo que vale la pena considerarlo si está creando una nueva aplicación.
En algunos casos, las soluciones PaaS pueden ejecutarse en K8 o sentarse junto a él; desde la perspectiva de la aplicación, no importa. Si su organización de TI está implementando la solución PaaS, es posible que les guste si solo se ejecuta en sus clústeres K8 existentes. Las soluciones PaaS mencionadas anteriormente también están disponibles en todas las nubes públicas. De nuevo, tiene toda la flexibilidad que necesita de su plataforma.
Soluciones DBaaS
Ejecutar y administrar un sistema de base de datos de producción no es para los débiles de corazón. Si cree que va a instalar su base de datos de producción en tres contenedores y que se ejecutará felizmente para siempre, tiene otra cosa por venir. Mediante el uso de una solución de base de datos como servicio, se encargarán de todos los aspectos operativos de la administración de su base de datos para que esté preparado para cualquier imprevisto.
Su DBaaS puede ejecutarse o no en K8. Tal vez algunas partes de DBaaS se ejecuten en K8, pero lo más probable es que no sea así. ¿Por qué es eso?
- Fuera de las populares nubes públicas, no existe una gran solución para almacenamiento/volúmenes que tengan la calidad de EC2 Elastic Block Storage (EBS). Proveedores como PortWorx y OpenEBS están trabajando en ello, pero aún no está allí. Sin una buena solución de almacenamiento, es prácticamente imposible poner datos en sus contenedores.
- Si está ejecutando un gran servidor de base de datos de producción de varios TB, no tiene sentido ejecutarlo en contenedores:tendrá grandes máquinas dedicadas con SSD elegantes. .
- Demasiado dinamismo:sí, puedes tener demasiado de algo bueno. A veces, cuando las cosas fallan, quieres que sigan fallando para poder echar un vistazo y ver qué está pasando. StatefulSets en Kubernetes es un gran paso en la dirección correcta para resolver este problema.
En ScaleGrid, nuestra visión es entregar la parte DBaaS de esta futura pila de aplicaciones. Hoy en día somos multinube y también podemos ejecutarlo en las instalaciones o en su propio centro de datos privado. Además, nuestra plataforma es un sistema políglota que admite varias bases de datos, incluidas MongoDB®, Redis™*, MySQL y PostgreSQL.
En aras de la simplicidad, he excluido algunas otras partes de las pilas de aplicaciones como el almacenamiento de objetos, el almacenamiento del sistema de archivos, etc. En principio, espero estos componentes serán similares al componente DBaaS. Esta publicación de blog se inspiró en una reunión de PostgreSQL de Silicon Valley a la que asistí hace unas semanas, y agradezco a Dave Nielsen (@davenielsen) de RedisLabs por iniciar la discusión sobre este tema.