З чого я починаю вивчати DevOps?


10

Пошук "як почати з devops" насправді не допоміг, тому що багатьом з них подобається це, і це , а також багато інших насправді не вказують мені на правильний шлях. Кожне відео, яке я бачив до цього часу, теж не допомогло (оскільки мені не потрібні відео, що пояснюють мені, на що МОЮ), це відео є єдиним справжнім винятком поки що (що показує, як речі інтегруються між собою).

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

Але я поняття не маю, що я повинен дізнатися спочатку (або де знайти правильні ресурси для цього).

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

Будь-яка порада чи допомога?

Відповіді:


5

Девопи стосуються виконання програмного забезпечення. Це все про те, як запустити додаток чи послугу. Отже, інструменти конфігурації сервера, віртуальні машини та контейнери - це наступні кроки. Я пропоную переглянути документацію цих інструментів і дізнатися з них такі речі, як відкриття, спостережливість, масштабованість і надмірність. Просто назвіть кілька прикладів:

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

  • PXE
  • Відповідальний
  • Лялечка

ВМ:

  • Бродячий
  • QEMU

Контейнер:

  • Докер
  • Кубернети

EDIT: Огляд хмарних технологій:

Якщо ваша архітектура програмного забезпечення стосується мікросервісів, контейнери - хороший вибір. Коли ви використовуєте старі монолітні програми, то VM не є поганим варіантом. Тому завжди залежить від контексту, що вам потрібно конкретно вивчити. Тема досить широка, щоб її узагальнити. Книга може допомогти у цьому, але, на жаль, я не можу запропонувати хорошого широкого. "Kubernetes в дії", однак, ви добре починаєте в Kubernetes.


Також можна додати щось про ci / di, наприклад, бамбук, джинкіни, командність чи подібне.
Cyclonecode

1
Я забув одне, і це може допомогти. Огляд хмарних технологій: CNCF пейзаж
jhamfler

Добре відредагуйте свою публікацію та додайте більше інформації =) Я насправді так дивився на це.
Cyclonecode

@Cyclonecode ви праві. зроблено
jhamfler

Вибачте, якщо це дурне питання, якщо EC2 вже працює у віртуальній машині, навіщо мені потрібен Docker?
PirateApp

4

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

LowOps і NoOps

Через пару тижнів я виявив, що після безлічі розмов з людьми, це досить говорити про LowOps в ці дні. Якщо я реалізую рішення, то це означає, що воно повністю автоматизоване і що колега може сам розгорнути машини, а не просити мене. Іноді це неможливо повністю автоматизувати повністю, але тоді я переконуюсь, що він автоматизований для себе, щоб переконатися, що мені потрібно виконати лише одну команду, щоб виконати роботу (LowOps), а не витрачати пару годин. Якщо я створив таке рішення, я гарантую, що колегу буде створено квиток для автоматизації мого особистого рішення для всіх. Приклад: мій колега перетворив один із моїх скриптів bash в бота, який він зараз працює щовечора.

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

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

"як почати з devops"

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


2

Інші відповіді тут зосереджені на інструментах. На мою думку, здобуття компетентності в інструментарії - це, звичайно, хороша річ, але не дозволить вам добре вписатись у культуру DevOps. DevOps - це спочатку набір практик чи методів .

Розуміння того, чому такі практики і методи корисні, пов'язане з досвідом, але у вас немає такої розкоші. Тому я хотів би вказати на вас

як фундаментальні тексти.

На веб-сайті безперервної доставки також є набір Принципів та Основ, які дають вам відповідне обгрунтування при запуску.

Починаючи з них, ви вивчите практику та методи, які інформують про те, як ви співпрацюєте та використовуєте інструменти.


2

Все, що вам потрібно навчитися - це Linux, Docker, Networking, Git, Jenkins тощо. Ви можете їх інтерактивно вивчити тут

Якщо ви шукаєте відео уроки, то плюралізм має для вас щось хороше.


1

Це таке питання, яке я задавав собі багато разів, і це, як правило, слідкує за мною (тепер, коли я ледве не "початківець", мені цікаво, де вивчити більш складні теми). На жаль, як ви вказували, запитання щодо пошукової системи, як правило, заливаються веб-сайтами, орієнтованими на керівників, і намагаються пояснити, що таке девп? і чому ми маємо індустріалізувати цикл програмного забезпечення з devops?

Зважаючи на те, що спробувати відповісти на ваше запитання, я можу говорити лише з особистого досвіду: я розпочав свою навчальну подорож із чудового довідника Docker .


1

"Вивчення програми DevOps" вважає мене занадто широким запитом, як ви також з’ясували, але я можу пам'ятати, що потрібно було гугл те саме.

Щоб додати до відповіді @ jhamfler: Запитайте себе, чому ви хочете дізнатися про це? З якого контексту ви походите? DevOps зазвичай пов'язаний з руйнуванням ручних перешкод, а також з силосними структурами в командах (кожен просто виконує своє завдання і покладається на когось іншого, щоб подумати про інтеграцію результатів). Чи є такі «прогалини» у вашому проекті (я припускаю, що у вас є)? Які його частини могли б отримати користь від автоматизації?

Типові проблеми, які я можу запропонувати:

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

Можливо, пошук "безперервного розгортання" та "безперервної інтеграції" (CI / CD) також може вам допомогти.


1

Найперші речі, з якими потрібно вчитися та отримувати задоволення:

  • unix (файлова система, дозволи, процеси, послуги, журнали, мережа тощо)
  • ssh і зворотне тунелювання
  • нано / вим
  • пітон
  • git

Потім можна перейти до більш конкретних тем:

  • контейнеризація (наприклад, докер)
  • управління конфігурацією (наприклад, ansible)
  • безперервне розгортання (наприклад, джинкіни)
  • моніторинг (наприклад, прометеус / графана)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.