¿Por qué usarías Docker en producción, incluso en una nube?

Hay muchas razones, pero las razones más aplicables dependerán del tipo de organización de TI que tenga. ¿Es usted una tienda de desarrollo de integración ágil / continua, pero el desarrollo y las operaciones son dos funciones distintas? ¿Eres una tienda totalmente integrada donde el desarrollo y las operaciones se han integrado en varios grados en una estructura DevOps?

Creo que en ambos casos, Docker juega muy bien. Como mecanismo de administración de contenedores, Docker brinda facilidad de uso y consistencia a los Contenedores de Linux (LXC) utilizando una estructura de administración muy “similar a git”. Es accesible y en gran medida familiar para la mayoría de los administradores e ingenieros de desarrollo y operaciones.

También se integra bien en varios mecanismos de automatización y de integración continua (Jenkins, Salt, Ansible, Chef, Puppet y Vagrant). Docker hace que el ciclo de vida de una aplicación o sitio web sea coherente, independientemente de la distribución o el entorno de Linux (desarrollo, control de calidad o producción).

Como resultado, terminas con las siguientes ventajas:

  1. Configuraciones de servidor consistentes
    1. Puede tener compilaciones de servidor Linux estándar y livianas, siempre que sean compatibles con Docker. Ya no está parcheando uno o cien servidores Linux con aplicaciones o configuraciones personalizadas. Está parcheando uno y lo está implementando en su infraestructura.
  2. Consistencia ambiental
    1. Una vez que un desarrollador completa una compilación (aplicación o sitio web o ambos), todo el contenedor se ‘registra’ y se puede implementar en otro entorno (QA por ejemplo). Nunca hay necesidad de verificar manualmente la configuración ya que no puede estar equivocada. El contenedor es exactamente el mismo y expone la misma funcionalidad / puertos que en el desarrollo cada vez.
  3. Automatización
    1. Puedo implementar / registrar / administrar / iniciar / reemplazar cada contenedor en un entorno completo con un solo trabajo de Jenkins o un libro de jugadas Ansible llamando a la imagen correcta.
  4. Solución de problemas
    1. ¿Un contenedor está actuando en producción? No me importa, ni necesito solucionarlo si puedo verificar que la imagen en sí funciona. Desconecto el contenedor de mal comportamiento y vuelvo a implementar todo en segundos.
    2. ¿Mi instancia de aplicación está comprometida / pirateada? Puedo desconectar esa instancia en un segundo, mostrando un reemplazo O UNA CONSTRUCCIÓN COMPLETAMENTE ACTUALIZADA con la mitigación en segundos, todo sin afectar en absoluto mi distribución subyacente de Linux.
  5. Conmutación por error
    1. ¿Perdí un centro de datos? Oh, está bien, dado que mi contenedor puede ejecutarse en cualquier distribución de Linux en cualquier servidor físico o virtual, solo implemento mis instancias en la nueva ubicación desde el concentrador o el repositorio local. Una vez que tengo un equipo de reemplazo y un sistema operativo base (cualquier distribución le importa, vaya a Windows si es necesario), implemento mi aplicación sin cambios.

Podría continuar, pero entiendes lo que digo. No, no trabajo para Docker, pero sí, lo he implementado en varias organizaciones y capacito a las personas sobre cómo hacer estas cosas en este momento. Docker no es una panacea para todas las situaciones anteriores, pero ciertamente es una cucharadita de azúcar que ayuda a bajar el medicamento.

Oye, cuando trabajamos en el soporte Docker de nuestro producto, hicimos una encuesta de la industria para averiguar por qué y qué tan rápido la gente adopta las tecnologías de contenedores / Docker.

(Nuestro producto, Dynatrace SaaS, monitorea la disponibilidad y el rendimiento de las aplicaciones en contenedores Docker sin ninguna configuración manual, algo muy bueno si monitorea los sistemas de producción y le gusta la inteligencia artificial ;-))

Las respuestas a ” ¿Cuáles son las razones para optar por utilizar tecnologías de contenedores? ” Fueron:

  • Despliegue más rápido / más fácil (85%)
  • Despliegue flexible (62%)
  • Aislamiento y seguridad (54%)
  • Razones arquitectónicas (microservicios) (48%)
  • Ahorro de costos (30%)

Si necesita más detalles, puede encontrar el informe completo aquí (es gratis, pero está cerrado 🙁).

Trabajo en ReactiveOps, donde nos especializamos en DevOps-as-a-Service y Kubernetes Consulting. Uno de nuestros ingenieros, EJ Etherington, se dirigió recientemente a esto en una publicación de blog:

“Hay una docena de razones para usar Docker. Me centraré aquí en tres: consistencia, velocidad y aislamiento. Por coherencia , quiero decir que Docker proporciona un entorno coherente para su aplicación desde el desarrollo hasta la producción: siempre se ejecuta desde el mismo punto de partida. Por velocidad , quiero decir que puede ejecutar rápidamente un nuevo proceso en un servidor. Debido a que la imagen está preconfigurada e instalada con el proceso que desea ejecutar, toma el desafío de ejecutar un proceso fuera de la ecuación. Por aislamiento , quiero decir que, por defecto, cada contenedor Docker que se está ejecutando está aislado de la red, el sistema de archivos y otros procesos en ejecución.

Una cuarta razón es el sistema de archivos en capas de Docker. A partir de una imagen base, cada cambio que realice en un contenedor o imagen se convierte en una nueva capa en el sistema de archivos. Como resultado, las capas del sistema de archivos se almacenan en caché, lo que reduce la cantidad de pasos repetitivos durante el proceso de creación de Docker Y reduce el tiempo que lleva cargar y descargar imágenes similares. También le permite guardar el estado del contenedor si, por ejemplo, necesita solucionar el problema de por qué falla un contenedor. Las capas del sistema de archivos son como Git, pero a nivel del sistema de archivos. Cada imagen de Docker es una combinación particular de capas de la misma manera que cada rama de Git es una combinación particular de confirmaciones “.

Espero que esto haya sido útil. Si desea obtener más información, puede leer la publicación completa: Docker es una valiosa herramienta de DevOps: una que vale la pena usar

Creo que la razón principal es la capacidad de Docker para permitirle un código más rápido para impulsar el tiempo del ciclo. Y en lo que respecta a la preparación para la producción, Docker ha demostrado ser exitoso en la ejecución de cargas de trabajo de producción en algunas grandes empresas. Ahora la orquestación es bastante robusta y hay soluciones paas integradas que la hacen más consumible y manejable. Entonces la verdadera pregunta es ¿por qué no?

Pero para comprender completamente el fenómeno, debes comprarlo. Y como todo lo que compra, debe comprender lo que es al principio. El botón de inicio aquí definitivamente es capacitación y, por lo tanto, le recomiendo que eche un vistazo a nuestros cursos desde solo USD 80.

Entrenamiento DevOps | Estudio9

Redhat OpenShift

Por todas las razones anunciadas: “construir, enviar y ejecutar” más rápido.

Trabajé en una compañía donde teníamos implementaciones que demoraban entre 5 y 10 horas, y solo podíamos hacerlas una vez al mes. Olvídese de los parches diarios, e incluso las soluciones rápidas puntuales fueron una prueba.

Docker le permite implementar más rápido y con más frecuencia, y garantiza que si funciona en Dev funcionará en QA y Stagjng y Prod, eliminando todas las molestias de configuración.

Divulgación: trabajo para Docker, y he comprado la religión.

More Interesting

¿La nube pública se ralentizará a medida que crezca?

¿Qué sistemas proporcionan administración de dispositivos IOT para implementar y operar aplicaciones?

¿Existe una definición estandarizada para la nube híbrida?

¿Cuál es el mejor y más barato alojamiento en la nube para startups además de Amazon?

Al ritmo que vamos, ¿podremos mantener nuestras demandas? ¿Cómo vamos a administrar nuestros datos para evitar quedarse sin espacio de almacenamiento (física y digitalmente) en el futuro?

¿Qué es el almacenamiento en la nube? ¿Cuál es la diferencia entre el servidor web y el almacenamiento en la nube?

¿Cuál podría ser el problema en una LAN (nube, 2 enrutadores, 1 PC para cada enrutador) cuando puedo hacer ping desde la PC uno a la PC 2 pero cuando hago ping desde la PC 2 a la PC 1 me da una pérdida del 100%?

¿Qué es un bus de servicio de Azure? Donde se usa ¿Cuál es un ejemplo de esto?

¿Cuál es el pronóstico del mercado de servicios de broker en la nube?

¿Cómo despliega una empresa una estructura convergente?

¿Cuáles son los diferentes componentes de la fundición en la nube?

¿Cuál es la diferencia entre CDN y servicios en la nube?

¿Por qué DigitalOcean está tan ansioso por brindar sus servicios de forma casi gratuita?

¿Cuál es la diferencia entre la base de datos de AWS y el almacenamiento de AWS?

Si, por ejemplo, la tecnología Microsoft AZURE utiliza todas las empresas, ¿qué pasa con la situación normal de Farmer DBA? ¿Perderá el trabajo?