Я думаю, что опыт работы с разработчиками сделает становление "devops" на самом деле более сложным, вашему вопросу почти 3 года, поэтому было бы интересно услышать, как вы находите путь, я дам ответ с точки зрения системного администратора о приложениях, которые вы упомянули выше, и надеюсь, это прольет некоторый свет или даст нетехническую перспективу, которая каким-то образом объяснит, почему человек (администратор или разработчик) начнет рассматривать именно то, что вы спросили, например, с точки зрения devops, какова связь между x, y, z, являются ли эти инструменты больше, чем сумма их частей?
Я на самом деле думаю, что системные администраторы здесь одерживают верх, большинство приложений, которые вы упоминаете в своем вопросе, решают "проблемы" администратора и при этом обеспечивают более абстрактную среду центра обработки данных, а это, в свою очередь, более программируемо для разработчиков и новой стратегии "devops" (читайте strategy / team, devops не является человеком). Итак, какова связь с приложениями, которые вы упоминаете? как это обеспечивает целостный подход к ИТ-сервису?
OpenStack: инструмент, который позволяет вам создавать собственное частное облако, следовательно, сравнимое с чем-то вроде AWS
Так оно и есть, но что оно делает? - наиболее удачно названной операционной системой была D.O.S - она управляла вашим диском, абстрагируя BIOS, OpenStack управляет вашим центром обработки данных и абстрагирует вашу инфраструктуру (IaaS - это жаргонное название операционной системы центра обработки данных). Теперь у вашего центра обработки данных есть API, синтаксис команд и графический интерфейс, OpenStack может управлять гипервизорами, коммутаторами, маршрутизаторами, брандмауэрами, сетями хранения данных, балансировщиками нагрузки, хостами docker и т.д.. Openstack использует "плагин" вашего производителя оборудования или конкретная функция может существовать исключительно в программном обеспечении как определяемая программным обеспечением что-то или виртуализация сетевых функций. Кроме того, OpenStack и все другие облака могут организовывать свою собственную инфраструктуру, читая сценарии, которые вы запускаете в механизм оркестровки, или запускаемые на основе правил (масштабирование вверх, уменьшение масштаба и т.д.). Таким образом, openstack - это гигантский уровень абстракции, например, мне все равно, какой у меня коммутатор, дайте мне сеть с этот команда или создайте мне сложную балансировку нагрузки, HA, общедоступную, автоматическое масштабирование, зарегистрированное доменное имя, подключенное хранилище штуковина - с помощью этого скрипта я нашел в Интернете.
Docker: "Облегченная виртуальная машина", основанная на нескольких концепциях ядра Linux, которая может использоваться для изолированного запуска процессов, например, в общей среде веб-хостинга.
Docker - это еще один уровень абстракции, и, подобно тому, как облако является прорывной технологией, оно меняет отрасль, потому что решает многие операционные "проблемы", такие как зависимости программного обеспечения, обновления, изоляция данных и абсолютная переносимость. Java стала популярной из-за переносимости исходного кода, о которой разработчикам не нужно было думать, работающая JVM означала, что их код должен выполняться на кофемашине, пока она поддерживает java. Docker решает аналогичную проблему: для запуска моего приложения вам нужен хост docker, нет, вам нужна эта версия python, это ядро, этот дистрибутив Linux и так далее, конечно, у приложения все еще есть эти зависимости, но базовому хосту все равно, а администратору все равно, что вы делаете внутри изолированного контейнера (до определенного момента). Docker меняет парадигму как разработки, так и эксплуатации, рассматривая всю операционную систему и ее сервисы как двоичный файл. мы можем получить их из хранилища, версируйте их, модифицируйте, запускайте с параметрами и т.д.
Шеф-повар: Инструмент для настройки и настройки операционной системы, например, внутри виртуальной машины.
Да, и не такие разрушительные, как первые два, Chef, puppet, ansible, salt, system center operations manager и огромное множество других приложений в этом пространстве предоставляют разработчикам и администраторам возможность моделировать развертывания, обновления и другие действия (изменения конфигурации), похоже, нет никаких орган по стандартизации рассматривает эти усилия как есть для облака. Но мы не имеем дело с чем-то столь определенным, как инфраструктура, поэтому изучать их более болезненно, и не так много можно передать от одного к другому.
Vagrant: Насколько я понимаю, это автоматизация создания и управления виртуальными машинами: их настройка, запуск и остановка. Это можно сделать с помощью локальной виртуальной машины или удаленной, например, на облачной платформе.
Это лишнее в списке приложений, которые вы упомянули, Vagrant - это инструмент для разработчиков и игрушка для администраторов, вы можете быстро создать среду разработки с помощью vagrant, например, я хочу разработать приложение для Android, возьмите IDE от vagrant, я думаю, что его догонит Docker скоро.
можете ли вы дать мне совет, как начать использовать все это (это довольно много одновременно, и я пока не знаю, с чего начать)?
Вот почему я думаю, что у администраторов есть преимущество, нам приходилось делать большую часть этого вручную и знать, что может пойти не так, кукольные манифесты, облачные вычисления и оркестровка docker станут для нас проще, разработчики столкнутся со многими проблемами, поэтому мой совет любому потенциальному devops - быть администратором во-первых.