Creo que venir de un fondo de desarrollador hará que convertirse en 'devops' sea realmente más complicado, su pregunta tiene casi 3 años, por lo que sería interesante saber cómo está encontrando el viaje, le daré una respuesta desde el punto de vista de el 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 pedido, por ejemplo, a los desarrolladores ¿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 del sistema tienen la ventaja aquí, la mayoría de las aplicaciones que mencionas en tu pregunta resuelven los 'problemas' del administrador 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 el nuevo ' estrategia de devops (lea 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 al 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 más adecuado era DOS - 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 su centro de datos tiene una API, una sintaxis de comandos y una GUI, OpenStack puede controlar hipervisores, conmutadores, enrutadores, cortafuegos, redes de área de almacenamiento, equilibradores de carga, hosts acoplables, etc. Openstack utiliza el complemento de los fabricantes de hardware o la función particular puede existir únicamente en el software como el software define algoo virtualización de funciones de red. Además de este OpenStack, y todas las demás nubes, pueden orquestar su propia infraestructura al leer los scripts que lanzas al motor de orquestación o se activan según las reglas (escalar, escalar, etc.). Entonces, OpenStack es una capa gigante de abstracción, por ejemplo, no me importa qué interruptor tengo, me da una red con este comando o me construye una carga equilibrada complicada, HA, disponible públicamente, escalado automático, nombre de dominio registrado, almacenamiento adjunto cosita - con este script que encontré en internet.
Docker: una "VM ligera", basada en algunos conceptos de 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 portabilidad. Java se hizo popular debido a la portabilidad del código fuente en el que los desarrolladores no tuvieron que pensar, una JVM en ejecución significaba que su código debería ejecutarse en la máquina de café siempre que fuera compatible con Java. Docker resuelve un problema similar, para ejecutar mi aplicación necesitas un host docker, no, 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 ( a un 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 VM.
Sí, y no tan disruptivo como los dos primeros, Chef, puppet, ansible, salt, gerente de operaciones del centro del sistema 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 (config cambios), no parece haber ningún organismo de estándares que analice estos esfuerzos como lo hay para la nube . Pero no estamos lidiando 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: desde mi punto de vista 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.
Este es el extraño en la lista de aplicaciones que menciona, Vagrant es una herramienta para desarrolladores y un juguete para administradores, puede defender rápidamente un entorno de desarrollo con vagabundo, por ejemplo, quiero desarrollar una aplicación de Android, obtener un IDE de vagabundo, creo que Docker lo superará pronto.
¿Me puede dar un consejo sobre cómo comenzar a usar todo esto (es bastante al mismo tiempo, y aún no sé 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 títeres, 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 para que mi El consejo para cualquier desarrollador potencial es ser un administrador primero.