Contenedores como servicio (CaaS): comparación de plataformas Docker y Kubernetes | Hosting mas Barato

Docker fue fundada en 2010 por Solomon Hykes como un proyecto interno de la empresa PaaS dotCloud y parte del fondo de puesta en marcha de Y Combinator. En 2013, Benjamin Golub se unió a la compañía como CEO y la pareja navegó por un pivote enormemente exitoso para enfocarse en el desarrollo de software de contenedores, lo que llevó a un total de $ 237 millones de dólares en fondos semilla de capital de riesgo en Silicon Valley. De acuerdo a Sramana Mitra, Docker recibió financiación de Goldman Sachs, Coatue, Northern Trust, Lightspeed Venture Partners, AME Cloud Ventures, Trinity Ventures, Sequoia Capital, Greylock Partners, Benchmark, Sequoia Capital, Jerry Yang e Insight Venture Partners, lo que finalmente llevó a una valoración de la empresa de más de $ 1.3 mil millones de dólares y “unicornio“estado. Kubernetes se anunció por primera vez en 2014 como un proyecto de código abierto que surgió de la plataforma interna” Borg “de Google, con la versión 1.0 lanzada en 2015 bajo la administración de Cloud Native Computing Foundation (CNCF). Kubernetes automatiza la orquestación en la nube para aplicaciones en contenedores , lo que les permite escalar más allá del modelo de servidor único para admitir los niveles más altos de tráfico web empresarial. Tanto Docker como Kubernetes han experimentado una gran adopción en todos los sectores comerciales a nivel internacional en los últimos años, convirtiéndose en la base de las mejores prácticas en DevOps a medida que las empresas buscan para modernizar sus aplicaciones de software heredadas y hacer la transición para adoptar una arquitectura de servidor web avanzada de computación en la nube. Steve Singh pasó de su papel como presidente de la junta directiva de Docker para reemplazar a Golub como director ejecutivo de la empresa.
Herramientas de Cloud Platform para implementar Docker y Kubernetes en la producción de DevOps de CICD
Estibador ha sido adoptado rápidamente por programadores y desarrolladores principalmente porque resuelve muchos problemas relacionados con la configuración del servidor y las dependencias de aplicaciones, eliminando conflictos entre los entornos locales y remotos mediante el uso de imágenes de disco estandarizadas, lo que conduce a una mayor portabilidad, agilidad y eficiencia en las operaciones de flujo de trabajo. Las empresas empresariales han confiado en Docker para modernizar las aplicaciones heredadas para que se ejecuten en entornos de nube pública / híbrida, aumentando la velocidad a la que se pueden introducir nuevas características y cambios en la producción (es decir, equipos de desarrollo Agile / Scrum frente a Waterfall / Spiral) a través de una mayor confianza. en Microservicios. En comparación con las máquinas virtuales (VM) y los VPS, los contenedores son mucho más ligeros y rápidos que las particiones de hardware basadas en hipervisores, con la capacidad de arrancar en segundos utilizando un kernel compartido y un sistema operativo mínimo. La mayoría de las máquinas virtuales requieren un sistema operativo completo instalado en la partición, lo que genera más CPU, RAM y asignaciones de almacenamiento que añaden costos adicionales a medida que la empresa escala a cientos o miles de servidores activos que se ejecutan a la vez. Google lanzó y administró un estimado de 2 mil millones de contenedores por semana en operaciones mientras se ejecuta “Borg“durante un período de 10 años internamente antes de que Kubernetes fuera lanzado al público. Kubernetes es el software principal de orquestación en la nube que incluye equilibrio de carga, sincronización de datos y almacenamiento, actualizaciones continuas de software de servidor y lanzamiento automático de nuevas instancias de contenedores según la demanda para permitir que las aplicaciones web escalen para admitir más tráfico del que puede administrar un solo servidor de hardware. individualmente. Enjambre de Docker también se puede usar en lugar de Kubernetes para desarrollar una funcionalidad similar a la plataforma de servidor en la nube AWS EC2 de forma independiente, pero como esto es algo del “santo grial” de la computación en la nube actualmente, ha habido mucha competencia en el sector y muchos empresas de nueva creación de software que compiten en el mismo espacio. En 2017, todos los principales proveedores de servicios de nube pública (AWS, Google, Microsoft, Oracle, IBM, etc.) incluyen soporte integrado de Kubernetes en sus plataformas dirigidas principalmente a corporaciones empresariales y empresas emergentes de software como parte de sus Containers-as- Ofertas de productos a-Service (CaaS).
‘Docker es una plataforma abierta para que los desarrolladores y administradores de sistemas creen, envíen y ejecuten aplicaciones distribuidas. Con Docker, las organizaciones de TI reducen la entrega de aplicaciones de meses a minutos, mueven cargas de trabajo sin fricciones entre los centros de datos y la nube y pueden lograr hasta 20 veces más eficiencia en el uso de los recursos informáticos. Inspirándose en una comunidad activa y en una innovación transparente y de código abierto, los contenedores Docker se han descargado más de 700 millones de veces y millones de desarrolladores lo utilizan en miles de las organizaciones más innovadoras del mundo, incluidas eBay, Baidu, BBC, Goldman Sachs. , Groupon, ING, Yelp y Spotify. La rápida adopción de Docker ha catalizado un ecosistema activo, lo que ha dado como resultado más de 180.000 aplicaciones “Dockerized”, más de 40 startups relacionadas con Docker y asociaciones de integración con AWS, Cloud Foundry, Google, IBM, Microsoft, OpenStack, Rackspace, Red Hat y VMware ‘. Más información sobre Docker.
“En pocas palabras, un contenedor consta de un entorno de ejecución completo: una aplicación, más todas sus dependencias, bibliotecas y otros binarios, y archivos de configuración necesarios para ejecutarlo, agrupados en un paquete. Al contener la plataforma de la aplicación y sus dependencias, las diferencias en Las distribuciones del sistema operativo y la infraestructura subyacente se abstraen … Un contenedor puede tener solo decenas de megabytes de tamaño, mientras que una máquina virtual con su propio sistema operativo completo puede tener varios gigabytes de tamaño. Debido a esto, un solo servidor puede albergar muchos más contenedores que máquinas virtuales. Otro beneficio importante es que las máquinas virtuales pueden tardar varios minutos en arrancar sus sistemas operativos y comenzar a ejecutar las aplicaciones que alojan, mientras que las aplicaciones en contenedores pueden iniciarse casi instantáneamente “. Más información sobre contenedores Docker y Kubernetes.
Si bien Docker es el software de contenedor más popular y Kubernetes el más respetado de los motores de orquestación en la nube, todavía existe una gran competencia en este campo. Producido por los mismos programadores y desarrolladores que CoreOS y incluido con la distribución Tectonic, Rkt es la alternativa de contenedor más popular a Docker en 2017. Otra opción es LXC / LXD, con el último lanzado por Canonical principalmente para integrarse con Ubuntu y OpenStack en desarrollo. Soluciones complejas de investigación científica y empresarial. Además de Docker Swarm, Apache Mesos tiene el motor Marathon y Cloud Foundry, el marco Diego, que proporcionan una funcionalidad nativa similar a Kubernetes. Sin embargo, debido a que la mayoría de los desarrolladores, programadores y gerentes comerciales de TI ahora están estandarizando en torno a Docker y Kubernetes, la mayoría de las nuevas y potentes aplicaciones del ecosistema se están creando para estas plataformas. Los usuarios de estas herramientas se ven obligados a tomar una decisión primaria entre crear sus propias soluciones en una arquitectura de nube privada, pública o híbrida, o registrarse en un enfoque de contenedor como servicio (CaaS) administrado. Mirantis ha publicado un excelente resumen de los principales productos CaaS disponibles en el mercado hoy con una revisión de sus diversas fortalezas y debilidades. Según Mirantis, las principales opciones de CaaS que los gerentes de TI deben considerar en 2017 son:
La transición a contenedores en TI también ha abierto una competencia significativa en la construcción de distribuciones nuevas y livianas de Linux para usar en entornos de producción en la nube, con CoreOS, RancherOS, Red Hat Atomic Host, Ubuntu Snappy y VMware Photon como las opciones actuales más populares.
Dos ventajas principales de utilizar contenedores en entornos de producción y desarrollo de aplicaciones web en la nube son la capacidad de proporcionar Integración continua / Entrega continua (CICD) a escala y el potencial para hacer que las grandes aplicaciones de software monolíticas sean más confiables en línea mediante el uso de microservicios. Soluciones CICD son un aspecto importante de la gestión de proyectos Agile / Scrum contemporánea y los contenedores simplifican el proceso de actualización de aplicaciones de software en vivo con nuevas versiones, correcciones de errores o actualizaciones de seguridad. Docker se integra a la perfección con herramientas de DevOps como Jenkins, Ansible, Chef, Puppet y SaltStack para un mejor control de versiones en producción. Los microservicios se basan en los estándares de redes definidas por software (SDN) y las oportunidades de BGP-as-a-Service (BGPaaS / Border Gateway Protocol) para permitir a los desarrolladores implementar las mejores prácticas de programación orientada a objetos en aplicaciones web. Esto permite la fragmentación detrás de escena de procesos de datos complejos y flujos de trabajo en diferentes hardware que se pueden volver a ensamblar sin problemas en la aplicación web para una mejor experiencia de usuario y mejores tiempos de procesamiento. Microservicios Permitir que los contenedores mantengan su peso ligero y su capacidad de arranque rápida mientras se conectan a información vital, archivos y funciones que se almacenan en bases de datos o unidades de almacenamiento fuera del contenedor, generalmente a través de API o Procesos http RESTful.
Cualquiera que desee obtener más información sobre Docker puede registrarse para obtener una demostración en línea gratuita (por tiempo limitado) de Docker Enterprise Edition en dockertrial.com. Jugar con Docker (PWD) incluye una demostración alojada de Alpine Linux con la capacidad adicional de probar Docker Swarm y herramientas de línea de comandos. Para aquellos que buscan obtener más información sobre Docker y Kubernetes, los siguientes enlaces incluyen una serie de excelentes tutoriales y guías.
“La primera versión de Docker se lanzó en 2013, y en los 3 años transcurridos desde su lanzamiento, Docker ha transformado completamente la forma en que los desarrolladores y operaciones de Linux crean, envían y ejecutan aplicaciones. Con Docker Engine y contenedores ahora disponibles de forma nativa en Windows, desarrolladores y TI. los profesionales pueden comenzar la misma transformación para las aplicaciones y la infraestructura basadas en Windows y comenzar a obtener los mismos beneficios: mejor seguridad, más agilidad y mejor portabilidad y libertad para mover aplicaciones locales a la nube “. Obtenga más información sobre Docker en Windows.
“Kubernetes es en realidad un almacén de objetos, además de código que interactúa con esos objetos. Cada objeto que almacena tiene tres partes: los metadatos, una especificación y el estado observado actual. Como usuario, debe proporcionar los metadatos y una especificación en el que se describe el estado deseado del objeto. Kubernetes hace todo lo posible para que se produzca este estado deseado, informa sobre su progreso en la clave de estado del objeto. Las implementaciones de Kubernetes administran los servicios sin estado que se ejecutan en su clúster (a diferencia de, por ejemplo, StatefulSets que administran servicios con estado). Su propósito es mantener un conjunto de pods idénticos en ejecución y actualizarlos de manera controlada, realizando una actualización continua de forma predeterminada “. Más información sobre cómo funcionan las implementaciones de Kubernetes.