Установка 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). Суть этого подхода заключается в том, что инфраструктура описывается в текстовых файлах специального формата — как настройки отдельных объектов и взаимосвязи между этими объектами. Такие файлы обычно называют спецификациями или манифестами. С этими файлами можно работать так же, как с программным кодом — отслеживать изменения в них, отдавать на ревью, хранить историю версий и обмениваться.
- Простота настройки окружения. Как мы уже говорили выше, современные сервисы принято изолировать друг от друга и упаковывать в контейнеры или отдельные виртуальные машины.
- Простота масштабирования. Поскольку нагрузка на сервисы меняется, нужно уметь выделять необходимые ресурсы и сворачивать их, когда они не нужны. Это особенно актуально в облачной инфраструктуре.
- Отказоустойчивость. Чтобы сервис работал бесперебойно, нужно правильно накатывать обновления, не допускать отказов и выявлять потенциальные проблемы до того, как их заметят пользователи.
Справочник команд
Посмотреть список профилей: yc config profile list
Примеры получения справки о командах для различных ресурсов:
Операция может выполняться довольно долго, а ожидание — затормозить процесс. В таких случаях важно оценить, нужен ли результат операции для выполнения следующих команд. Если нет — можно не ждать её завершения и сразу же переходить к следующей команде. Этот режим называется асинхронным.
Чтобы выполнить команду асинхронно, используйте флаг --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