CLI. Введение

 

Кратко:

  • Важно, чтобы ваш сервис был надёжным и быстрым, выдерживал пиковые нагрузки и не падал при каждом обновлении.
  • Сервисы стали сложнее, они часто используют сторонние библиотеки, причем строго определенных версий.
  • Рост числа пользователей интернета привел к тому, что практически каждый публичный сервис приходится проектировать как высоконагруженный.
  • Поддержка IT-инфраструктуры не входит в сферу ответственности разработчиков.
  • DevOps - выстраивание эффективных процессов внедрения приложений и сервисов, управления серверами и сетями.
  • DevOps ориентирован на баланс между простотой внедрения, скоростью внесения изменений и надёжностью сервисов.
  • В этом курсе мы расскажем не просто о DevOps, но о том как работают эти практики в облачной среде и конкретно в Yandex Cloud.

 

Введение

Если вы разработали отличную программу или сервис — это только часть успеха. Важно, чтобы ваш сервис был надёжным и быстрым, выдерживал пиковые нагрузки и не падал при каждом обновлении.
Лет 10–20 назад, чтобы запустить новый сервис иногда было достаточно скопировать пачку скриптов на сервер. Сегодня сервис нужно не только создать, но еще и правильно внедрить и поддерживать. На это повлияло несколько причин:
  • Сами сервисы стали сложнее, они часто используют сторонние библиотеки, причем строго определенных версий. Чтобы избежать конфликтов, сервисы стали изолировать друг от друга — помещать в виртуальные машины или контейнеры.
  • С появлением методологии Agile, когда развитие приложений стало практически непрерывным, пришлось создавать и новые практики IT-администрирования.
  • Рост числа пользователей интернета привел к тому, что практически каждый публичный сервис приходится проектировать как высоконагруженный.
  • Многие сервисы стали жизненно важными для миллионов пользователей. Такие сервисы должны оставаться доступными невзирая на пиковые нагрузки и стихийные бедствия.
Как правило, поддержка IT-инфраструктуры не входит в сферу ответственности разработчиков. Раньше инфраструктурой занимались системные администраторы. Сегодня, когда эта область знаний стала гораздо шире, ее принято называть Operations. На стыке разработки и администрирования возникла новая специализация — DevOps.
Область интересов DevOps — выстраивание эффективных процессов внедрения приложений и сервисов, управления серверами и сетями. Специально для DevOps создаются инструменты для поддержки инфраструктуры, в том числе облачной.
Чем выше нагрузка на сервис, тем важнее становится роль DevOps. И поскольку сегодня одни из самых нагруженных сервисов — это поисковики, именно эти компании стали «гуру» в сфере DevOps. Так, Google собрал ключевые знания в книге SRE Book (SRE — Site Reliability Engineering).
Практики DevOps ориентированы на то, чтобы найти баланс между простотой внедрения, скоростью внесения изменений и надёжностью сервисов.
Вот основные направления современного DevOps, которые мы рассмотрим в рамках данного курса:
  • Автоматизация. Чем меньше операций выполняется вручную, тем меньше вероятность ошибок. Кроме того, автоматизация позволяет внедрить в практику регулярно выполняемые операции (например резервное копирование).
  • Infrastructure as Code (IaC). Суть этого подхода заключается в том, что инфраструктура описывается в текстовых файлах специального формата — как настройки отдельных объектов и взаимосвязи между этими объектами. Такие файлы обычно называют спецификациями или манифестами. С этими файлами можно работать так же, как с программным кодом — отслеживать изменения в них, отдавать на ревью, хранить историю версий и обмениваться.
  • Простота настройки окружения. Как мы уже говорили выше, современные сервисы принято изолировать друг от друга и упаковывать в контейнеры или отдельные виртуальные машины.
  • Простота масштабирования. Поскольку нагрузка на сервисы меняется, нужно уметь выделять необходимые ресурсы и сворачивать их, когда они не нужны. Это особенно актуально в облачной инфраструктуре.
  • Отказоустойчивость. Чтобы сервис работал бесперебойно, нужно правильно накатывать обновления, не допускать отказов и выявлять потенциальные проблемы до того, как их заметят пользователи.
В этом курсе мы расскажем не просто о DevOps, но о том как работают эти практики в облачной среде и конкретно в Yandex Cloud.