Вопрос: Связь между бродягой, докером, шеф-поваром и OpenStack (или аналогичными продуктами)?


Я веб-разработчик, но меня также интересуют несколько административных задач. Следовательно, новый переход от чистого администрирования к dev-ops мне подходит.

Во всяком случае, у меня есть некоторые проблемы, чтобы вложить несколько вещей в отношения. Может быть, нет, поэтому я хотел попросить о помощи, чтобы разъяснить.

В принципе, я хочу установить связь с четырьмя типами программного обеспечения (из моего понимания). Точные продукты не имеют значения, вы можете разместить любое подобное программное обеспечение в качестве альтернативы:

  • Бродяга: По моему мнению, это автоматизация создания и управления виртуальными машинами: настройка их, запуск и остановка. Это можно сделать с помощью локальной виртуальной машины или удаленного устройства, например. на облачной платформе.
  • Docker: «легкая виртуальная машина», основанная на нескольких концепциях ядра Linux, которые могут использоваться для запуска процессов в изоляции, например. в общедоступной среде веб-хостинга.
  • Шеф-повар: инструмент для настройки и настройки операционной системы, например. внутри виртуальной машины.
  • OpenStack: инструмент, который позволяет вам создавать собственное облачное облако, что сопоставимо с чем-то вроде AWS.

Вопрос № 1: Правильно ли я объясняю, или я ошибаюсь с некоторыми (или всеми) этими потребностями?

Вопрос №2: Как я мог объединить все эти инструменты? Будет ли это иметь какой-то смысл?

В моем воображении и с моей точки зрения вы могли бы пойти и

  • используйте OpenStack для создания собственного облака,
  • используйте Vagrant для управления виртуальными машинами, запущенными в облаке,
  • используйте Chef для настройки этих виртуальных машин
  • и, наконец, использовать Docker для запуска процессов внутри виртуальных машин.

Это верно? И если да, можете ли вы дать мне совет, как начать использовать все это (это довольно много в одно и то же время, и я еще не знаю, с чего начать)?


54
2017-09-12 17:15


Источник


Не достаточно квалифицированный, чтобы полностью ответить на этот вопрос, но ваша оценка бродяг и шеф-повара кажется правильной. В моем окне разработки я разворачиваю виртуальные машины, используя Vagrant, а затем предоставляю их шеф-повару, и он работает очень хорошо. - GSP


Ответы:


Давайте используем их соответствующие веб-страницы, чтобы узнать, о чем все эти проекты. Я изменю порядок, в котором вы указали:

  • шеф-повар: Chef - это платформа автоматизации, которая преобразует инфраструктуру в код.

    Это программное обеспечение для управления конфигурацией, Большинство из них используют одну и ту же парадигму: они позволяют вам определить государство вы хотите, чтобы машина была в отношении файлов конфигурации, установленных программ, пользователей, групп и многих других типов ресурсов. Большинство из них также предоставляют функциональные возможности для изменения на конкретных машинах, процесс, который обычно называется оркестровка,

  • бродяга: Создавать и настраивать легкие, воспроизводимые и переносимые среды разработки.

    Он обеспечивает воспроизводимый способ генерации полностью виртуализированные машины используя либо технологию VirtualBox Oracle, либо технологию VMWare, как провайдеры, Vagrant может координировать работу с программным обеспечением для управления конфигурацией, чтобы продолжить процесс установки, когда заканчивается установщик операционной системы. Это называется резервирование,

  • докер: Проект с открытым исходным кодом для упаковки, отправки и запуска любого приложения в виде легкого контейнера

    Функциональность этого программного обеспечения несколько перекрывает функциональность Vagrant, в которой она предоставляет средства для определения установок операционных систем, но значительно отличается в технологии, используемой для этой цели. Докер использует Контейнеры Linux, которые не являются виртуальными машинами как таковыми, а изолированными процессами, запущенными в изолированных файловых системах. Докер может также использовать система управления конфигурацией для обеспечения контейнеров.

  • OpenStack: Программное обеспечение с открытым исходным кодом для создания частных и общественных облаков.

    Хотя верно, что OpenStack могут быть развернуты на одной машине, такое развертывание является чисто доказательством концепции, возможно, не очень функциональным из-за ограничений ресурсов.

    Основной целью установки OpenStack являются многоузловые среды с голыми металлами, где разные компоненты могут использоваться в специализированном оборудовании для достижения лучших результатов.

    Ключевой функциональностью OpenStack является поддержка многих технологий виртуализации от полностью виртуализированных (VirtualBox, VMWare) до паравиртуализированных (KVM / Qemu), а также контейнеров (LXC) и даже Пользовательский режим Linux (UML),

Я попытался представить эти продукты как компоненты определенной архитектуры. С моей точки зрения, имеет смысл сначала определить ваши потребности в отношении среды, в которой вы нуждаетесь (шеф-повар, кукольный, безграничный, ...), затем иметь возможность разворачивать ее контролируемым образом (Vagrant, Docker , ...) и, наконец, масштабировать его до глобального размера, если это необходимо.

Какая часть всей необходимой вам функциональности должна быть определена в рамках вашего проекта.

Также обратите внимание, что я упростил в основном все технические объяснения. Для получения подробной информации используйте ссылки, ссылки на которые есть.


51
2017-09-12 20:16



находятся шеф-повар а также Кукольный тот же инструмент? Я имею в виду, что они эквивалентны? Если вы хотите запустить это на хосте Windows 10, какие инструменты вы бы использовали? - ReynierPM
Кукольный это аналогичный инструмент для шеф-повара. Не уверен, что лучше на Windows. - a deer


Я думаю, что, исходя из опыта разработчиков, становится «дефолтами» на самом деле более сложным, ваш вопрос составляет почти 3 года, поэтому было бы интересно услышать, как вы находите путешествие, я дам ответ с точки зрения администратор sys о тех приложениях, о которых вы упомянули выше, и, надеюсь, он прольет некоторый свет или предоставит нетехническую перспективу, которая каким-то образом объяснит, почему человек (админ или разработчик) начнет рассматривать именно то, что вы попросили, например с точки зрения девайсов, какова связь между x, y, z, эти инструменты больше, чем сумма их частей?

Я на самом деле думаю, что администраторы sys имеют преимущество здесь, большинство приложений, которые вы упоминаете в своем вопросе, решают проблемы администратора, и при этом предоставляют более абстрактную среду центра обработки данных, а это, в свою очередь, более программируемо для разработчиков и новых " стратегия devops (стратегия чтения / команда, devops - это не человек). Итак, каковы отношения с приложениями, которые вы упоминаете? как это обеспечивает целостный подход к ИТ-сервису?

OpenStack: инструмент, который позволяет вам создавать собственное личное облако,   следовательно, сопоставим с чем-то вроде AWS

Это то, что есть, но что он делает? - в основном точно названная операционная система была D.O.S - она ​​управляла вашим диском, абстрагируя BIOS, OpenStack управляет вашим центром обработки данных и абстрагирует вашу инфраструктуру (IaaS - это жаргон для операционной системы ЦОД). Теперь ваш центр обработки данных имеет API, синтаксис команд и графический интерфейс, OpenStack может управлять гипервизорами, коммутаторами, маршрутизаторами, брандмауэрами, сетями хранения, балансировщиками нагрузки, хостами докеров и т. Д. Openstack использует плагин для ваших производителей оборудования, или конкретная функция может существовать исключительно в программном обеспечении, поскольку программное обеспечение определено что нибудь или виртуализации сетевых функций. Помимо этого OpenStack и всех других облаков можно организовать собственную инфраструктуру, прочитав скрипты, которые вы бросаете в механизм оркестровки, или запускаются на основе правил (масштабирование, масштабирование и т. Д.). Таким образом, openstack представляет собой гигантский слой абстракции, например. Мне все равно, какой переключатель у меня есть, дайте мне сеть с это команда, или, постройте мне сложную сбалансированную нагрузку, HA, общедоступную, автомасштабирование, зарегистрированное имя домена, прикрепленное хранилище штуковина - с этим сценарием, который я нашел в Интернете.

Docker: «Легкая виртуальная машина», основанная на нескольких концепциях ядра Linux,   который может использоваться для запуска процессов в изоляции, например. в общей сети   хостинга.

Docker - еще один слой абстракции, и облако - это разрушительная технология, она меняет отрасль, потому что она решает многие операционные «проблемы», такие как программные зависимости, обновления, изоляция данных и явная переносимость. Java стала популярной из-за ее переносимости исходного кода, о которой разработчикам не приходилось думать, работающая JVM означала, что их код должен работать на кофеварке, пока он поддерживает java. Docker решает аналогичную проблему, для запуска моего приложения вам нужен хост-докер, не, вам нужна эта версия python, это ядро, этот дистрибутив linux и т. д., у приложения все же есть эти зависимости, конечно, но основному хосту все равно, и администратору все равно, что вы делаете внутри изолированного контейнера ( до точки). Docker меняет парадигму развития и операций, обрабатывает всю операционную систему, а ее службы - как двоичные. мы можем получить их из репозитория, изменять их, изменять, запускать с параметрами и т. д.

Шеф-повар: инструмент для настройки и настройки операционной системы, например. внутри   VM.

Да, и не так разрушительно, как первые два, шеф-повар, кукольный, управляемый, солидный менеджер системных центров и огромное количество других приложений в этом пространстве предоставляют разработчикам и администраторам возможность моделировать развертывания, обновления и другие действия (config изменения), похоже, нет какого-либо органа стандартов, рассматривающего эти усилия как есть облако, Но мы не имеем дело с чем-то, что является окончательным как Инфраструктура, поэтому, это более болезненно, чтобы изучить их, и не так много передается от одного к другому.

Бродяга: По моему мнению, автоматизировать создание и управление   виртуальных машин: настройка их, запуск и остановка. Это можно сделать   с использованием локальной виртуальной машины или удаленного устройства, например. на облачной платформе.

Это странный вариант в списке приложений, которые вы упомянули, Vagrant - это инструмент для разработчиков и игрушка для админов, вы можете быстро занять среду разработки с бродягой, например. Я хочу разработать приложение для Android, захватить IDE от бродяг, я думаю, что он скоро догонит Докер.

вы можете дать мне совет, как начать использовать все это (это довольно   много в то же время, и я еще не знаю, с чего начать)?

Вот почему я считаю, что у админов есть преимущество, нам пришлось делать большую часть этого вручную и знать, что может пойти не так, кукольные манифесты, облачные вычисления и оркестровка докеров станут для нас легче, разработчики найдут много тангенсов, поэтому мои совет для любых потенциальных дефолтов должен быть первым администратором.


3
2018-05-18 13:14





Я только что закончил проект развертывания OpenStack, который использует сервер Chef внутри экземпляра Vagrant: https://github.com/bluechiptek/bluechipstack/blob/master/README.md

Основная проблема при этом заключается в том, что каждый экземпляр Vagrant получает один и тот же IP-адрес каждый раз, когда вы хотите управлять узлами. Если вы выполняете статическую адресацию, она работает хорошо. Выполнение этого через VPN менее чем идеально.


0
2017-09-18 22:10





В конце концов, я использую только комбинацию бродяг и докеров.

Я использую бродягу для обеспечения машин (есть дополнительные облачные провайдеры но я использую встроенный VirtualBox. Поскольку я использую этот подход, внешняя сеть и хранилище в значительной степени являются ручными, но если вы используете что-то вроде бродячие-AWS плагин, вы можете сообщить AWS, чтобы предоставить вам необходимые детали.

В сценарии подготовки я использую точки в безопасном месте, которое содержит сертификат CA и ключи, используемые для подписи CSR, вместе с docker swarm join жетоны. Кроме того, я устанавливаю docker-engine и настраиваю его, чтобы присоединиться к рою (инициализируйте, если его нет).

Когда это будет разрешено, я просто делаю docker stack deploy от моей локальной машины или сборки, чтобы развернуть стек со всем, что мне нужно.

В моем случае я просто упал шеф-повар в пользу просто использования простых сценариев пост-установки, которые делают yum или apt-get в качестве моих сценариев инициализации.

Я также использую бродячие-спусковые плагин для добавления дополнительных скриптов перед уничтожением (в моем случае оставить рой).

Хорошая часть централизации с помощью Vagrant - вы можете реплицировать среду на другую систему или отдельный компьютер для разработки, просто нужно добавить или изменить provider раздел. Имейте в виду, что я не занимался настройкой OpenStack на одном компьютере для управления VirtualBox.


0
2018-03-13 19:54