Установка CLI описана тут: https://github.com/yandex-cloud-examples/yc-practicum-serverless-telegram-bot/blob/main/steps/00-init/README.md

Создание сервисных аккаунтов: https://github.com/yandex-cloud-examples/yc-practicum-serverless-telegram-bot/blob/main/steps/02-create-service-account/README.md

Видео (про телеграм-бота), где про всё это рассказывается: https://www.youtube.com/watch?v=atnTYpk1N_s


Если вы разработали отличную программу или сервис — это только часть успеха. Важно, чтобы ваш сервис был надёжным и быстрым, выдерживал пиковые нагрузки и не падал при каждом обновлении.

Лет 10–20 назад, чтобы запустить новый сервис иногда было достаточно скопировать пачку скриптов на сервер. Сегодня сервис нужно не только создать, но еще и правильно внедрить и поддерживать. На это повлияло несколько причин:

  • Сами сервисы стали сложнее, они часто используют сторонние библиотеки, причем строго определенных версий. Чтобы избежать конфликтов, сервисы стали изолировать друг от друга — помещать в виртуальные машины или контейнеры.
  • С появлением методологии Agile, когда развитие приложений стало практически непрерывным, пришлось создавать и новые практики IT-администрирования.
  • Рост числа пользователей интернета привел к тому, что практически каждый публичный сервис приходится проектировать как высоконагруженный.
  • Многие сервисы стали жизненно важными для миллионов пользователей. Такие сервисы должны оставаться доступными невзирая на пиковые нагрузки и стихийные бедствия.

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

Область интересов DevOps — выстраивание эффективных процессов внедрения приложений и сервисов, управления серверами и сетями. Специально для DevOps создаются инструменты для поддержки инфраструктуры, в том числе облачной.

Чем выше нагрузка на сервис, тем важнее становится роль DevOps. И поскольку сегодня одни из самых нагруженных сервисов — это поисковики, именно эти компании стали «гуру» в сфере DevOps. Так, Google собрал ключевые знания в книге SRE Book (SRE — Site Reliability Engineering).

Практики DevOps ориентированы на то, чтобы найти баланс между простотой внедрения, скоростью внесения изменений и надёжностью сервисов.

Вот основные направления современного DevOps, которые мы рассмотрим в рамках данного курса:

  • Автоматизация. Чем меньше операций выполняется вручную, тем меньше вероятность ошибок. Кроме того, автоматизация позволяет внедрить в практику регулярно выполняемые операции (например резервное копирование).
  • Infrastructure as Code (IaC). Суть этого подхода заключается в том, что инфраструктура описывается в текстовых файлах специального формата — как настройки отдельных объектов и взаимосвязи между этими объектами. Такие файлы обычно называют спецификациями или манифестами. С этими файлами можно работать так же, как с программным кодом — отслеживать изменения в них, отдавать на ревью, хранить историю версий и обмениваться.
  • Простота настройки окружения. Как мы уже говорили выше, современные сервисы принято изолировать друг от друга и упаковывать в контейнеры или отдельные виртуальные машины.
  • Простота масштабирования. Поскольку нагрузка на сервисы меняется, нужно уметь выделять необходимые ресурсы и сворачивать их, когда они не нужны. Это особенно актуально в облачной инфраструктуре.
  • Отказоустойчивость. Чтобы сервис работал бесперебойно, нужно правильно накатывать обновления, не допускать отказов и выявлять потенциальные проблемы до того, как их заметят пользователи.

Справочник команд

Yandex

Посмотреть список профилей: yc config profile list

Примеры получения справки о командах для различных ресурсов:

yc compute --help
yc compute instance --help
yc compute instance restart --help 

Операция может выполняться довольно долго, а ожидание — затормозить процесс. В таких случаях важно оценить, нужен ли результат операции для выполнения следующих команд. Если нет — можно не ждать её завершения и сразу же переходить к следующей команде. Этот режим называется асинхронным.

Чтобы выполнить команду асинхронно, используйте флаг --async.

Создание ВМ с помощью CLI

Пошаговая инструкция (практическая работа): https://practicum.yandex.ru/trainer/ycloud/lesson/f5ef7735-66df-432c-ab99-2057874be107/

Использование файлов спецификаций

Практическая работа: https://practicum.yandex.ru/trainer/ycloud/lesson/373ca12b-4264-42b7-a987-9ea26628e6a4/


Packer

Packer – инструмент для создания образов ВМ.

Пример, как создать свой образ: https://practicum.yandex.ru/trainer/ycloud/lesson/1fa859a7-dae3-405f-b7b4-57e4e3f0fbf7/

Практическая работа по созданию образа: https://practicum.yandex.ru/trainer/ycloud/lesson/0e1aa1d8-3bb9-4154-a370-a7f645700923/


Terraform

Terraform позволяет создавать облачную инфраструктуру (не только ВМ, но и балансировщики, сети, базы данных, хранилища и т. д.). Подготовив один файл спецификации, вы автоматически развернёте из него готовую инфраструктуру. Риски ошибок ручной сборки сводятся к минимуму.

Примеры https://practicum.yandex.ru/trainer/ycloud/lesson/cb36d5f1-5091-4d1a-b612-0d4d8f0b76ed/

Практическая работа: https://practicum.yandex.ru/trainer/ycloud/lesson/e027d622-2926-4a4c-8231-3b6b44577c9b/


📂 YandexCloud | Последнее изменение: 15.08.2024 11:53