Skip to content

batonogov/learn-devops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0fc651f · Jan 14, 2025

History

37 Commits
Dec 23, 2024
Nov 12, 2024
Jan 14, 2025
Jul 27, 2024
Nov 4, 2024
Jan 14, 2025
Nov 12, 2024
Jan 14, 2025
Nov 12, 2024
Dec 23, 2024
Apr 15, 2024
Dec 24, 2024
Nov 4, 2024

Repository files navigation

learn-devops

GitHub stars GitHub forks GitHub issues GitHub license

Описание

В этом репозитории собраны примеры с YouTube/Rutube каналов. Тут я рассказываю о разных инструментах необходимых для DevOps специалиста и делюсь опытом.

Мы стремимся подходу Инфраструктура как код

Основная идея Infrastructure as Code (IaC) в том, чтобы описать инфраструктуру кодом и сделать её доступной для понимания. IaC работает со всеми компонентами инфраструктуры так, будто это просто данные. Такое стало возможно благодаря умению платформ виртуализации и облачных провайдеров разделять инфраструктуру и оборудование, а для управления серверами, хранилищами и сетевыми устройствами предоставлять специальное API.

Структура проекта

  1. Docker - это программная платформа для быстрой сборки, отладки и развертывания приложений с помощью контейнеров.

  2. kubeadm - это инструмент для простого и быстрого развёртывания кластера Kubernetes.

  3. OpenTofu — программное обеспечение с открытым исходным кодом, используемое для управления внешними ресурсами (например, в рамках модели инфраструктура как код). Проект Linux Foundation. Пользователи определяют и предоставляют инфраструктуру центра обработки данных с помощью декларативного языка конфигурации, известного как HashiCorp Configuration Language (HCL) или JSON.

  4. Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Применяется для автоматизации настройки и развёртывания программного обеспечения.

  5. TalosTalos Linux — это Linux, разработанный для Kubernetes: безопасный, неизменяемый и минимальный.

Pre-commit hook

Pre-commit hook — это скрипт, который выполняется перед тем, как изменения будут зафиксированы в системе контроля версий, например, в Git. Он позволяет автоматически проверять код и выполнять определенные действия, такие как запуск тестов, проверка стиля кода, статический анализ и другие проверки, чтобы предотвратить попадание некорректного или несоответствующего стандартам кода в репозиторий.

Преимущества использования pre-commit hook-ов:

  • Автоматизация проверки кода: Хуки позволяют автоматизировать проверку качества кода, что помогает поддерживать стандарты кода в команде.
  • Раннее выявление ошибок: Хуки помогают обнаруживать ошибки и недочеты до того, как они попадут в репозиторий, что снижает количество багов и повышает качество кода.
  • Повышение производительности: Автоматические проверки экономят время разработчиков, которое они могли бы потратить на ручные проверки.

Использование pre-commit hook-ов является хорошей практикой, которая помогает поддерживать качество и стабильность кода в проекте.

  • Установка

Прежде чем запускать хуки, необходимо установить менеджер пакетов pre-commit.

С помощью pip:

pip install pre-commit

В python-проекте добавьте в файл requirements.txt (или requirements-dev.txt) следующее:

pre-commit

С помощью homebrew:

brew install pre-commit

С помощью conda (через conda-forge):

conda install -c conda-forge pre-commit
  • Быстрый запуск

Следуйте инструкциям по установке, приведенным выше.

pre-commit --version должен показать, какую версию вы используете.

pre-commit --version
pre-commit 4.0.1

Устанавливаем pre-commit

pre-commit install

Обновление версии хуков

Обновить все версии хуков до последней версии можно при помощи команды

pre-commit autoupdate