Где я могу начать изучать DevOps?

10

Поиск « как начать с DevOps» не очень помощи , как многие из них , как это и это , а также многие другие , не очень мне точку в правильном направлении. Каждое видео на YouTube, которое я видел до сих пор, тоже не помогало (поскольку мне не нужны видео, объясняющие мне, что такое devops), пока это единственное истинное исключение (которое показывает, как вещи интегрируются друг с другом).

Я - CCNA, а также хорошо разбираюсь в СУБД (в настоящее время изучаю параллелизм и другие вещи).

Но я понятия не имею, что я должен сначала узнать (или где найти правильные ресурсы по этому вопросу).

Я собираюсь закончить, поэтому у меня нет доступа к реальному опыту.

Любой совет или помощь?

Chessbrain
источник

Ответы:

5

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

Конфигурация сервера:

  • PXE
  • анзибль
  • Кукольный

VM:

  • бродяга
  • QEMU

Контейнер:

  • докер
  • Kubernetes

РЕДАКТИРОВАТЬ: Обзор облачных технологий:

Когда ваша программная архитектура связана с микросервисами, тогда контейнеры - это хороший выбор. Когда вы используете старые монолитные приложения, то виртуальные машины не являются плохим вариантом. Так что всегда зависит от контекста, что вам нужно изучать конкретно. Тема достаточно обширна, чтобы подвести итог. В этом может помочь книга, но, к сожалению, я не могу предложить хорошую широкую. "Kubernetes in Action" дает вам хорошее начало в Kubernetes.

jhamfler
источник
Также добавлю что-нибудь про ci / di, например бамбук, дженкинс, teamcity или аналогичные.
Циклон-код
1
Одна вещь, которую я забыл и которая может помочь. Обзор облачных технологий: ландшафт
CNCF
Хорошо отредактируйте свой пост и добавьте больше информации =) Я действительно смотрел это.
Циклон-код
@ Циклон-код ты прав. сделано
Джамфлер
извините, если это глупый вопрос, если EC2 уже работает внутри виртуальной машины, зачем мне Docker?
PirateApp
4

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

LowOps и NoOps

Через пару недель я обнаружил, что после долгих разговоров с людьми это скорее разговор о LowOps в наши дни. Если я внедряю решение, то это означает, что оно полностью автоматизировано и коллега может развернуть машины самостоятельно, а не спрашивать меня. Иногда невозможно сразу полностью автоматизировать его, но тогда я гарантирую, что он сам для меня автоматизирован, чтобы мне нужно было выполнить только одну команду, чтобы выполнить работу (LowOps), вместо того, чтобы тратить пару часов. Если я создал такое решение, я гарантирую, что для коллеги был создан билет для автоматизации моего личного решения для всех. Пример: мой коллега превратил один из моих скриптов bash в бота, который теперь запускается каждую ночь.

введите описание изображения здесь

Рисунок 1: https://www.gslab.com/blog-post/what-is-noops/

"Как начать с Devops"

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

030
источник
2

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

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

в качестве основополагающих текстов.

На веб-сайте Continuous Delivery также есть набор Принципов и Основ, которые дают вам соответствующее обоснование при запуске.

Исходя из этого, вы изучите практику и методы, которые расскажут о том, как вы сотрудничаете и используете инструменты.

Брюс Беккер
источник
2

Все, что вам нужно - это Linux, Docker, Networking, Git, Jenkins и т. Д. Вы можете узнать их в интерактивном режиме здесь.

Если вы ищете видеоуроки, то у Pluralsight есть что-то хорошее для вас.

Err0rr
источник
1

Это тот вопрос, который я задавал себе много раз, и он, как правило, следует за мной (теперь, когда я едва освоился с «новичком», мне интересно, где изучать более сложные темы). К сожалению, как вы указали, задавая эти вопросы в поисковой системе, вы часто сталкиваетесь с сайтами, нацеленными на руководителей и пытающимися объяснить, что такое devops? и почему мы должны индустриализировать цикл программного обеспечения с devops?

При этом, чтобы попытаться ответить на ваш вопрос, я могу говорить только из личного опыта: я начал свое учебное путешествие с превосходного руководства по началу работы с Docker .

Объявление N
источник
1

«Изучение DevOps» кажется мне слишком широким запросом, как вы также узнали, но я помню, что мне приходилось гуглить то же самое.

Чтобы добавить к ответу @ jhamfler: спросите себя, почему вы хотите узнать об этом? Из какого ты контекста? DevOps обычно имеет дело с преодолением ручных препятствий, а также с разрозненными структурами в командах (каждый просто делает свое дело и полагается на кого-то другого, чтобы подумать об интеграции результатов). Есть ли такие "пробелы" в вашем проекте (я полагаю, у вас есть)? Какие его части могут выиграть от автоматизации?

Типичные проблемы, которые я мог бы предложить:

  • ручное обслуживание сервера VS скриптовые решения
  • надежность и резервные копии
  • автоматизация интеграционных тестов
  • автоматизация непрерывного развертывания (например, веб-службы)
  • ...

Возможно, поиск «непрерывного развертывания» и «непрерывной интеграции» (CI / CD) также может помочь вам.

Сэр джейн
источник
1

Самые первые вещи, которые вам нужно выучить и освоить:

  • Unix (файловая система, разрешения, процессы, службы, журналы, сети и т. д.)
  • SSH и обратное туннелирование
  • нано / ВИМ
  • питон
  • мерзавец

Тогда вы можете перейти к более конкретным темам:

  • контейнеризация (например, докер)
  • управление конфигурацией (например, ansible)
  • непрерывное развертывание (например, Дженкинс)
  • мониторинг (например, прометей / графана)
GG.
источник