Creo que venir de un fondo de desarrollador hará que convertirse en un 'devops' en realidad sea más complicado, su pregunta tiene casi 3 años, por lo que sería interesante escuchar cómo está encontrando el viaje, daré una respuesta desde el punto de vista del administrador del sistema sobre las aplicaciones que mencionó anteriormente y, con suerte, arrojará algo de luz, o dará una perspectiva no técnica que explicará por qué una persona (administrador o desarrollador) comenzaría a considerar exactamente lo que ha preguntado, por ejemplo, desde la perspectiva de devops, cuál es la relación entre x, y, z, son estas herramientas mayores que la suma de ¿sus partes?
De hecho, creo que los administradores de sistemas tienen la ventaja aquí, la mayoría de las aplicaciones que menciona en su pregunta resuelven 'problemas' de administración y, al hacerlo, proporcionan un entorno de centro de datos más abstracto, y esto a su vez es más programable para los desarrolladores y la nueva estrategia 'devops' (léase estrategia/equipo, devops no es una persona). Entonces, ¿cuál es la relación con las aplicaciones que mencionas? ¿cómo proporciona esto un enfoque holístico para el servicio de TI?
OpenStack: Una herramienta que le permite construir su propia nube privada, por lo tanto, comparable a algo como AWS
Eso es lo que es, pero ¿qué hace? - el sistema operativo, en su mayoría con un nombre apropiado, era D. O. S : operaba su disco abstrayendo el BIOS, OpenStack opera su centro de datos y abstrae su infraestructura (IaaS, es la jerga para el sistema operativo del centro de datos). Ahora que su centro de datos tiene una API, una sintaxis de comandos y una GUI, OpenStack puede manejar hipervisores, conmutadores, enrutadores, firewalls, redes de área de almacenamiento, equilibradores de carga, hosts de docker, etc.. Openstack usa el'complemento' de su fabricante de hardware o la función particular puede existir únicamente en el software como se define en el software algo o virtualización de funciones de red. Además de esto, OpenStack, y todas las demás nubes, pueden orquestar su propia infraestructura leyendo los scripts que lanza en el motor de orquestación o que se activan en función de reglas (ampliación, reducción de escala, etc.). Así que Openstack es una capa gigante de abstracción, por ejemplo, no me importa qué conmutador tenga, dame una red con este comando, o, constrúyame una carga complicada equilibrada, HA, disponible públicamente, escalado automático, nombre de dominio registrado, almacenamiento adjunto cosita - con este script que encontré en Internet.
Docker: Una "máquina virtual liviana", basada en algunos conceptos del kernel de Linux, que se puede usar para ejecutar procesos de forma aislada, por ejemplo, en un entorno de alojamiento web compartido.
Docker es otra capa de abstracción y, al igual que la nube es una tecnología disruptiva, está cambiando la industria porque resuelve muchos "problemas" operativos, como dependencias de software, actualizaciones, aislamiento de datos y pura portabilidad. Java se hizo popular debido a su portabilidad de código fuente en la que los desarrolladores no tenían que pensar, una JVM en ejecución significaba que su código debería ejecutarse en la máquina de café siempre que sea compatible con Java. Docker resuelve un problema similar, para ejecutar mi aplicación necesita un host docker, ni, necesita esta versión de Python, este kernel, esta distribución de Linux, etc., la aplicación todavía tiene esas dependencias, por supuesto, pero al host subyacente no le importa y al administrador no le importa lo que haga dentro de un contenedor aislado (hasta cierto punto). Docker está cambiando el paradigma de desarrollo y operaciones, tratando un sistema operativo completo y sus servicios como un binario. podemos obtenerlos de un repositorio, versionarlos, modificarlos, ejecutarlos con parámetros, etc.
Chef: Una herramienta para configurar y configurar un sistema operativo, por ejemplo, dentro de una máquina virtual.
Sí, y no tan disruptivo como los dos primeros, Chef, puppet, ansible, salt, system center operations manager y una gran cantidad de otras aplicaciones en este espacio proporcionan una forma para que los desarrolladores y administradores modelen implementaciones, actualizaciones y otras acciones (cambios de configuración), no parece haber ningún organismo de estándares que analice estos esfuerzos como hay para la nube. Pero no estamos tratando con algo tan definitivo como la Infraestructura, por lo que es más doloroso aprenderlos y no mucho es transferible de uno a otro.
Vagabundo: Según tengo entendido, es automatizar la creación y administración de máquinas virtuales: configurarlas, iniciarlas y detenerlas. Esto se puede hacer usando una máquina virtual local o remota, por ejemplo, en una plataforma en la nube.
Esta es la extraña en la lista de aplicaciones que mencionas, Vagrant es una herramienta para desarrolladores y un juguete para administradores, puedes crear rápidamente un entorno de desarrollo con vagrant, por ejemplo, quiero desarrollar una aplicación de Android, tome un IDE de vagrant, creo que Docker lo superará pronto.
¿me puedes dar un consejo sobre cómo empezar a usar todo esto (es bastante al mismo tiempo, y aún no se por dónde empezar)?
Es por eso que creo que los administradores tienen la ventaja, hemos tenido que hacer la mayor parte de esto manualmente y saber qué puede salir mal, los manifiestos de marionetas, la computación en la nube y la orquestación de docker nos resultarán más fáciles, los desarrolladores se encontrarán tomando muchas tangentes, por lo que mi consejo para cualquier devops potencial es ser un administrador primero.