«Cloud-архитекторы — это очень редкие люди»: кто и как создаёт облачную инфраструктуру
с помощью нейросети
В ближайшие годы на мировом рынке публичных облачных сервисов и инфраструктур ожидается значительный рост. По прогнозам к 2025 году он вырастет более чем вдвое, до $ 832,1 млрд. Совокупный среднегодовой темп роста (CAGR) в этот период ожидается в размере 17,5%. Для сравнения: этот же показатель для всего мирового IT-рынка оценивается в 8,02%. Как развиваются облачные технологии, какие существуют способы создать публичное облако и почему первый запуск платформы Yandex Cloud на OpenStack оказался неудачным, рассказывает руководитель группы cloud-архитекторов в «Яндексе» Николай Бутенко.
- как прошла «девопсовизация» в «Яндексе»
- почему компания не стала использовать готовые решения, зачем создавали Yandex DataBase и как строили программно-ориентированные сети и хранилища
- что такое cloud-native- и multi-cloud-подход, и как можно получить действительно отказоустойчивые и масштабируемые сервисы
- какие технические трудности и вызовы пришлось преодолеть команде «Яндекса» для создания публичного облака
Началом развития облачных технологий можно считать 2006 год, когда компания Amazon Web Services (AWS) создала Elastic Compute Cloud (Amazon EC2) и объектное хранилище данных Simple Storage Service (S3), которые стали прообразом облачной модели предоставления ресурсов. То есть пользователям больше не надо было покупать собственное оборудование или арендовать какие-то «железные» ресурсы и обращаться в хостинг. Они могли зайти в веб-интерфейс, нажать пару кнопок и без звонков провайдеру, предварительных согласований и заключения контрактов получить необходимые им ресурсы.
Словом, технология имела большой успех и стала набирать обороты, и вскоре ее начали развивать Google и Microsoft. На рынке облачных технологий сформировалась большая тройка игроков. Сейчас, правда, это уже четвёрка — стремительно растет китайская компания Alibaba.
В России пионером в области Public Cloud можно назвать компанию «Ростелеком», которая в 2011 году пыталась запустить национальную облачную платформу. Но первый блин вышел комом. Однако с тех пор крупные интернет-компании — «Яндекс», Mail.ru, «Сбербанк» — начали смотреть в эту сторону.
Сегодня в нашей стране существует несколько отечественных гиперскейлеров. Самые крупные — это «Ростелеком», «Яндекс», Mail.ru и «Сбербанк». Думаю, их можно назвать большой русской четвёркой. Они предоставляют не только виртуальные машины, но также платформенные и софтверные сервисы: готовые пайплайны, витрины с приложениями, платформы для разработки, маркетплейсы. Также есть несколько компаний, которые предоставляют меньший набор сервисов по облачным моделям (в основном IaaS), такие как Selectel, DataLine, «КРОК», Softline и прочие.
Говоря о российском рынке облачных технологий, нельзя не отметить такой фактор, как российское законодательство, которое обязывает операторов хранить данные на территории страны. С одной стороны, это плюс, так как у крупных мировых компаний нет своих ЦОД на территории России, и поэтому их присутствие на нашем рынке ограничено. Благодаря этому российские провайдеры чувствуют себя вольготно. Но с другой стороны, из-за отсутствия большой мировой четвёрки мы находимся в немного расслабленном режиме: можем позволить себе делать что-то не так активно, как если бы делали это в конкуренции с мировыми лидерами. Это минус. Хотя, конечно, если бы зарубежные компании пришли в Россию в 2015 году, никаких отечественных облачных провайдеров просто не было бы.
По моему мнению, Россия до сих пор очень сильно отстает: в сфере облачных технологий — лет на пять-шесть, а в IT в целом — на два-четыре года. Но всё не так плохо, и на данный момент 90% востребованных сервисов российские облачные провайдеры закрывают. Оставшиеся 10% — это узкопроприетарные технологии.
Есть несколько методов запуска публичного облака. Во-первых, можно взять готовый продукт, например VMware, и запустить публичное облако на нем. Другой способ — использовать open-source-продукт типа OpenStack, доработать его и запуститься на нем. Еще один способ — купить готовый программный аппаратный комплекс, как это сделал «Сбербанк», который приобрёл серверное оборудование и софт Huawei. И, наконец, можно не выбирать ни один из этих трех вариантов, а сделать всё свое.
У «Яндекса» давно было приватное облако, где мы крутили контейнеры, виртуальные машины, и на базе которого работал «Яндекс.Поиск». Оно создавалось много лет назад, в том числе частично на OpenStack, и успешно использовалось. В 2015—2016 годах мы попытались из этого приватного облака сделать публичное, также на OpenStack. Но потерпели неудачу.
Тут несколько факторов. Во-первых, OpenStack разработан для частных облаков, а не публичных. Во-вторых, у нас возникли проблемы со скейлингом платформы, построенной на OpenStack. Плюс мы поняли, что эксплуатация и модификация OpenStack слишком сложны для того, чтобы обеспечить интенсивное развитие. В итоге мы взяли время, ушли в тень и создали свое решение. В качестве гипервизора мы использовали KVM, а остальную часть написали сами, используя наработки «Яндекса» в области гиперскейлинга и зарекомендовавшие себя open-source-решения.
Yandex Cloud работает на базе трех дата-центров, расположенных в Московской, Рязанской и Владимирской областях. Каждый из них оснащен независимой системой энергоснабжения, и взаимодействуют они между собой с помощью собственных каналов оптической линии связи.
Стойки и серверы, которые используются в дата-центрах, разработаны в «Яндексе» и производятся на Тайване, но скоро, кстати, их будут делать в России. На ПМЭФ мы заключили соглашение с компаниями Gigabyte и «Ланит» для запуска предприятия по производству серверов в нашей стране. Мы будем брать готовые комплектующие — процессор, сетевую карту, оперативную память, — а всё остальное делать сами. Плата уже разработана и будет печататься в России.
Мы — гиперскейлер, потому что у нас есть поиск, очень масштабный и занимающий десятки тысяч серверов, и, в принципе, многие технологии по масштабированию были унаследованы от него. Перечислю основные.
Во-первых, мы используем гиперконвергентную инфраструктуру, подробнее о которой я рассказываю в своей лекции.
Во-вторых, у нас применяется так называемое capacity planning: мы всегда прогнозируем сколько предстоит выдержать нагрузки, и держим огромный запас. Например, наша сеть (SDN) утилизирована примерно на 7%. Что касается виртуальных ресурсов (vCPU, RAM, Storage и других), у нас всегда остается большой запас. Чтобы он не простаивал, мы используем, если говорить языком Amazon, spot instances — они очень дешевые, но мы можем их выключить в любой момент.
И в-третьих, у нас три зоны доступности. При правильном размещении даже падение целого ЦОД никак не сказывается на сервисе клиента: мы можем, например, обеспечить запуск его новых ресурсов на резервных ЦОД.
Cloud-архитекторы — это очень редкие люди, особенно в России. Готовых специалистов почти нет. У «Яндекса» одна из самых больших команд в стране, порядка 20 специалистов. Мы растим их из разработчиков, DevOps, архитекторов инфраструктуры и системных администраторов senior-уровня. Архитекторы не занимаются разработкой и эксплуатацией, а работают с проектированием, адаптацией и кастомизацией возможностей нашей платформы под требования клиента.
Как российские компании развивают свои cloud-платформы
Что касается разработчиков, то их в нашей компании коснулась «девопсовизация». Это западная практика, которая пришла к нам из таких компаний, как Google. Идея заключается в том, что, если ты пишешь код, ты должен нести за него ответственность и эксплуатировать его. То есть отвечать за работу кода должен не системный администратор, а разработчик.
В «Яндексе» все знали про культуру DevOps, но она не нравилась абсолютно никому. Разработчики считали, что эксплуатация кода — не их дело, а системные администраторы, по сути, должны были выбирать: переквалифицироваться в разработчиков либо уходить. Такой расклад не подходил никому.
Тем не менее с приходом Михаила Парахина, нового технического директора из Microsoft, огнем и мечом «девопсовизацию» в компании провели за несколько лет. Не без потерь, но в долгосрочной перспективе это было правильное решение — качество кода повысилось. За счет этого лучше работают наши сервисы и происходит меньше аварий.
Сегодня, наверное, все крупные компании в той или иной степени используют облачные технологии. Это тенденция будет расти, и всё движется к тому, что абсолютно всё будет находиться в облаках, за исключением проприетарных приложений, которые хостятся на специфическом оборудовании. Как я говорил в самом начале, рынок облачных технологий растет от года к году быстрее, чем весь рынок IT.
Отмечу также, что сейчас существует некое заблуждение, что облако — это манна небесная. Такое мнение распространено и среди наших клиентов, и в индустрии IT в целом. Но это не так. Чтобы получить реальную выгоду от использования облачного провайдера, нужно уметь его использовать.