Реферат для старшей школы: SDLC

70cc5872208b1c7c5c1a460abd286e12

Для лиги лени: Современный SDLC — это такая боль. Под катом — душнота, еще и с ошибками, какой-то набор ссылок почти без пояснений. Поэтому убран в чулан

Часть 0. Найм и HR 2024 — чего нового
Заранее неправильные ответы — 1 или проходим первого босса найма — HR
Заранее неправильные ответы — 2 или неправильные ответы, которые многие хотят услышать на техническом интервью: Сети.

Это, значит, часть 3, она же и последняя.

Напоминаю вводные условия: У моего отца есть брат, у него-племянник, у племянника — двоюродный брат, а у того был сосед по комнате, так вот он меня и спросил, как вкатываться в ИТ сразу после ЕГЭ, и как пройти первого и второго босса.

Большая часть 1. Теория.
Поиск литературы

Я начал с простого, Google: SDLC site: habr.com

Что такое SDLC? Этапы, методология и процессы — Перевод, Автор оригинала: Adam Naor
IaC Development Life Cycle
DevOps vs. SDLC  
What is CI/CD?
Basics of CI/CD
CI/CD Process: Flow, Stages, and Critical Best Practices
CI/CD Testing: Why It«s Essential and How to Make It Great
Implementing QA in a CI/CD Pipeline — Best Practices & Tips

И, в обязательном порядке, читать Мифический человеко-месяц и Дедлайн.

Факультативно
От Kubernetes в мечтах к Kubernetes в проде: как построить инфраструктуру для деплоя. Часть 1
От Kubernetes в мечтах к Kubernetes в проде. Часть 2: о Kubernetes
От Kubernetes в мечтах к Kubernetes в проде. Часть 3. Доставка кода, GitOps, ArgoCD
От Kubernetes в мечтах к Kubernetes в проде. Часть 4. Хранилище секретов ― HCP Vault

Сам процесс с технической стороны

Частично описан по одной из ссылок — Lessons learned from testing Over 200,000 lines of Infrastructure Code. В нем (наконец-то!) упомянута база — е2е (End to End — системное) тестирование, интеграционное тестирование, юнит тесты, и статическое, со списком инструментов, с зависимостями, итд и даже с APB (Ansible Playbook Bundle). Которое не надо путать с схемой развертывание — канареечное, Blue/Green, Rolling.

Жизненный путь кода. Source
Жизнь кода начинается с запроса со стороны бизнеса \ заказчика «хотим вот такое».
Затем «такое» описывается чуть-чуть строже, рисуются какие-то макеты, схемы движения данных, хоть что-то кроме «постарайся раздобыть, что чего не может быть».
Git. git add, git commit -m 'Tut bul Grisha', git push … GIT PURR!
И вот с этого момента начинается ад на интервью. Потому что следующим номером идут мерж, ребейз и сквош, и это надо помнить, а не кнопочки в VSCode жать. К тому же они там еще и не так работают, как ты хотел. Или как хотел разработчик, что-то у себя нажавший и запушивший.
Статья по теме: Basics of CI/CD

Continuous integration (CI). Build
Код надо собрать и протестировать. Для этого есть Gradle, Maven, Jenkins, TeamCity, GitLab CI, Azure DevOps (Team Foundation Server) и что-то я точно забыл. Concourse конечно же и Bamboo
Ссылки:
4 инструмента автоматизации для DevOps, заслуживающих внимания — по версии TechRepublic (внутри еще много ссылок на полезные статьи)
Azure DevOps (Team Foundation Server)
Apache Maven — введение в автоматизированную сборку проектов (часть 1) (Интересно, за что автору выдали -10 и ни одного комментария «что не так» ?
Maven, где мои артефакты? Еще одна статья про управление зависимостями
Введение в Maven от Balaji Varnasi и Sudha Belida (перевод)
Или — все может сразу в Dockerimage собираться.
Автотесты: SonarCloud, Jenkins, etc.

И на этом, вроде, CI все. В какое-то хранилище готового кода или артефактов сборки выпала свежая как-то протестированная версия.
Читать: JFrog Artifactory Vs. Sonatype Nexus

CD. Эта собака делает больно иначе.
После получения кода, пригодного «к выкатыванию на stage», начинается вопрос «как катить» и «куда катить».При этом появляются Ansible, Puppet, Terraform, Chef, SaltStack, etc
Chef vs. Puppet vs. Ansible vs. SaltStack — configuration management tools compared
И на их фоне появляются K3s, K8s, docker, podman, Docker Compose, Podman Compose и бонусом Helm. А может быть корова, а может быть собака, а может Docker swarm и Nomad. И смешать с Lens.
Читать: Podman Compose or Docker Compose: Which should you use in Podman?

Там и до прода недалеко. Где-то сразу за управлением сертификатами, ключами (HashiCorp Vault), Observability (ELK, EFK, FluentD, prometheus, etc) и прочим GitOps (ArgoCD, FluxCD, Werf)

Реальность
После прохождения первого босса — HR у вас будет 1–2–4 разных технических интервью. Для разминки пройдутся по базовым вещам, от grep до curl, немного (или много) могут спросить про специальные файловые права. Затем от bach пройдут немного к сетям, причем вопросы про сети иногда будут странными, иногда — очень, наподобие TTL в корневых DNS. Или про куки и работу Apache \ Nginx
Все как описано в сборниках вопросов типа »2000 очень простых вопросов про SDLC\Devops» — раз, два, три — тысячи их.
Готовьтесь, что на финальной стадии вас будут спрашивать про работу K8s:
Kubernetes: шпаргалка для собеседования
Kubernetes: шпаргалка для собеседования часть 2

Как легко заметить, ничего сложного во всем выше нет. Исключительно простые вопросы, на которые легко ответить после даже беглого изучения документации и десятка статей s/
Сложность вопросов только в том, что для такого числа вариантов, иногда вопрос выбора что лучше А или Б — может быть предметом веры, или потому что так сложилось давно. Или что-то может называться не совсем так, как описано в статье, а исправлено в комментарии.

© Habrahabr.ru