Высоконагруженные системы // Николай Бутенко

Как создают и развивают облачные платформы в России

Facebook
Twitter
Google+
Pinterest
Vkontakte
Odnoklassniki
206 0
Как развиваются облачные платформы в России и сильно ли мы отстаем от западных коллег? И какие технические трудности и вызовы пришлось преодолеть команде Yandex для создания публичного облака?

Меня зовут Николай Бутенко. Я руковожу группой архитекторов по взаимодействию с госсектором в Yandex Cloud, которая занимается созданием облачных платформ под задачи государства.

В этой статье я расскажу, как развивается мировой и российский рынок облачных технологий, какие существуют способы создать публичное облако и почему первый запуск платформы Yandex Cloud на OpenStack оказался неудачным. Вы узнаете, как прошла «девопсовизация» в Yandex, почему компания не стала использовать готовые решения, зачем создавали Yandex DataBase и как строили программно ориентированные сети и хранилища. А в заключение поговорим о том, что такое cloud-native- и multi-cloud-подход, и как можно получить действительно отказоустойчивые и масштабируемые сервисы, объединяя их. Подробнее об этих и других темах в моей лекции, которая размещена чуть ниже.

В ближайшие годы на мировом рынке публичных облачных сервисов и инфраструктур ожидается значительный рост. По прогнозам к 2025 году он вырастет более чем вдвое, до $ 832,1 млрд. Совокупный среднегодовой темп роста (CAGR) в этот период ожидается в размере 17,5 %. Для сравнения: этот же показатель для всего мирового IT-рынка оценивается в 8,02 %. Давайте разберемся, с чего началось развитие облачных технологий и как они работают.

Как облачные технологии развиваются в России и в мире

Началом развития облачных технологий можно считать 2006 год, когда компания Amazon Web Services (AWS) создала Elastic Compute Cloud (Amazon EC2) и объектное хранилище данных Simple Storage Service (S3), которые стали прообразом облачной модели предоставления ресурсов. То есть пользователям больше не надо было покупать собственное оборудование или арендовать какие-то «железные» ресурсы и обращаться в хостинг. Они могли зайти в веб-интерфейс, нажать пару кнопок и без звонков провайдеру, предварительных согласований и заключения контрактов получить необходимые им ресурсы.

Технология имела большой успех и стала набирать обороты. Вскоре ее начали развивать Google и Microsoft. На рынке облачных технологий сформировалась большая тройка игроков. Сейчас, правда, это уже четверка — стремительно растет китайская компания Alibaba.

В России пионером в области Public Cloud можно назвать компанию «Ростелеком», которая в 2011 году пыталась запустить национальную облачную платформу. Первый блин вышел комом. Однако с тех пор крупные интернет-компании — «Яндекс», Mail.ru, «Сбербанк» — начали смотреть в эту сторону. При этом если на Западе этот процесс стартовал в 2006 году, то у нас первые серьезные попытки освоить облако были предприняты в 2011 году, а бурное развитие началось в 2014–2015 годах.

Сегодня в нашей стране существует несколько отечественных гиперскейлеров. Самые крупные — это «Ростелеком», «Яндекс», Mail.ru и «Сбербанк». Думаю, их можно назвать большой русской четверкой. Они предоставляют не только виртуальные машины, но также платформенные и софтверные сервисы: готовые пайплайны, витрины с приложениями, платформы для разработки, маркетплейсы. Также есть несколько компаний которые предоставляют меньший набор сервисов по облачным моделям (в основном  IaaS), такие как Selectel, DataLine, «КРОК», Softline и прочие.

Говоря о российском рынке облачных технологий, нельзя не отметить такой фактор, как российское законодательство, которое обязывает операторов хранить данные на территории страны. С одной стороны, это плюс, так как у крупных мировых компаний нет своих ЦОД на территории России, и поэтому их присутствие на нашем рынке ограничено. Благодаря этому российские провайдеры чувствуют себя вольготно. Но с другой стороны, из-за отсутствия большой мировой четверки мы находимся в немного расслабленном режиме: можем позволить себе делать что-то не так активно, как если бы делали это в конкуренции с мировыми лидерами. Это минус. Хотя, конечно, если бы зарубежные компании пришли в Россию в 2015 году, никаких отечественных облачных провайдеров просто не было бы.

По моему мнению, Россия до сих пор очень сильно отстает: в сфере облачных технологий  — лет на пять-шесть, а в IT в целом — на два-четыре года. Но всё не так плохо и на данный момент 90 % востребованных сервисов российские облачные провайдеры закрывают. Оставшиеся 10 % — это узкопроприетарные технологии.

Как создавали Yandex Cloud

Есть несколько методов запуска публичного облака:

  1. Можно взять готовый продукт, например VMWareи запустить публичное облако на нем.
  2. Можно взять open-source-продукт типа OpenStackдоработать его и запуститься на нем.
  3. Можно купить готовый программный аппаратный комплекс, как это сделал «Сбербанк», который приобрел серверное оборудование и софт Huawei.
  4. Можно не выбирать ни один из этих трех вариантов, а сделать всё свое.

У «Яндекса» давно было приватное облако, где мы крутили контейнеры, виртуальные машины и на базе которого работал «Яндекс.Поиск». Оно создавалось много лет назад, в том числе частично на OpenStack, и успешно использовалось.

В 2015–2016 годах мы попытались из этого приватного облака сделать публичное, также на OpenStack. Но потерпели неудачу. Вот три основные причины, почему так произошло:

  1. OpenStack разработан для частных облаков, а не публичных.
  2. У нас возникли проблемы со скейлингом платформы построенной на OpenStack.
  3. Эксплуатация и модификация OpenStack сложны, что могло в дальнейшем замедлить наше развитие.

В итоге мы взяли время, ушли в тень и создали свое решение. В качестве гипервизора мы использовали KVM, а остальную часть написали сами, используя наработки «Яндекса» в области гиперскейлинга и зарекомендовавшие себя open-source-решения.

Как работает Yandex Cloud сегодня

Сегодня Yandex Cloud работает на базе трех дата-центров, расположенных в Московской, Рязанской и Владимирской областях. Каждый из них оснащен независимой системой энергоснабжения, и взаимодействуют они между собой собственными каналами оптической линии связи.

Стойки и серверы, которые используются в дата-центрах, разработаны в «Яндексе» и производятся на Тайване, но скоро, кстати, их будут делать в России. На ПМЭФ мы заключили соглашение с компаниями Gigabyte и «Ланит» для запуска предприятия по производству серверов в нашей стране. Мы будем брать готовые комплектующие — процессор, сетевую карту, оперативную память, — а всё остальное делать сами. Плата уже разработана и будет печататься в России.

За счет чего Yandex Cloud выдерживает пиковые нагрузки и масштабируется

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

Во-первых, мы используем гиперконвергентную инфраструктуру, подробнее о которой я рассказываю в своей лекции в материалах выше.

Во-вторых, у нас применяется так называемый capacity planning: мы всегда прогнозируем сколько предстоит выдержать нагрузки, и держим огромный запас. Например, наша сеть (SDN) утилизирована примерно на 7 %. Что касается виртуальных ресурсов (vCPU, RAM, Storage и других), у нас всегда остается большой запас. Чтобы он не простаивал, мы используем, если говорить языком Amazon, spot instances — они очень дешевые, но мы можем их выключить в любой момент.

И в-третьих, у нас три зоны доступности. При правильном размещении даже падение целого ЦОД никак не сказывается на сервисе клиента: мы можем, например, обеспечить запуск его новых ресурсов на резервных ЦОД. Более подробно об этом процессе, так как он включает в себя целый ряд методик — affinity, placement group, AZ, — говорим на лекции, которая размещена выше.

Как работают разработчики и облачные архитекторы в «Яндексе»

Cloud-архитекторы — это очень редкие люди, особенно в России. Готовых специалистов почти нет. У «Яндекса» одна из самых больших команд в стране, порядка 20 специалистов. Мы растим их из разработчиков, devops, архитекторов инфраструктуры и системных администраторов  senior-уровня. Архитекторы не занимаются разработкой и эксплуатацией, а работают с проектированием, адаптацией и кастомизацией возможностей нашей платформы под требования клиента.

Что касается разработчиков, то их в нашей компании коснулась «девопсовизация». Это западная практика, которая пришла к нам из таких компаний, как Google. Идея заключается в том, что, если ты пишешь код, ты должен нести за него ответственность и эксплуатировать его. То есть отвечать за работу кода должен не системный администратор, а разработчик.

В «Яндексе» все знали про devops, но он не нравился абсолютно никому. Разработчики считали, что эксплуатация кода — не их дело, а системные администраторы, по сути, должны были выбирать: переквалифицироваться в разработчиков либо уходить. Такой расклад не подходил никому.

Тем не менее с приходом Михаила Парахина, нового технического директора из Microsoft, огнем и мечом «девопсовизацию» в компании провели за несколько лет. Не без потерь, но в долгосрочной перспективе это было правильное решение — качество кода повысилось. За счет этого лучше работают наши сервисы и происходит меньше аварий.

Devops сейчас проповедуют многие компании, но лишь единицы через него прошли. В своей лекции [выше] мы дискутируем о том, насколько это «больно», зачем нужно и можно ли жить в старых парадигмах. Подробный доклад о том, как в «девопсовизацию» проводили в нашей компании можно посмотреть здесь.

Что ждет облачные технологии в будущем?

Сегодня, наверное, все крупные компании в той или иной степени используют облачные технологии. Это тенденция будет расти, и всё движется к тому, что абсолютно всё будет находиться в облаках, за исключением проприетарных приложений, которые хостятся на специфическом оборудовании. Как я говорил в самом начале, рынок облачных технологий растет от года к году быстрее, чем весь IT.

Отмечу здесь также, что сейчас существует некое заблуждение, что облако — это манна небесная. Такое мнение распространено и среди наших клиентов, и в индустрии IT в целом. Но это не так. Чтобы получить реальную выгоду от использования облачного провайдера, нужно уметь его использовать. В работе многих сервисов часто происходят сбои, просто потому что люди не умеют использовать облака. Это очень важный вопрос. 5 августа я расскажу о том, как правильно использовать облачные провайдеры, чтобы от них был прок.

Что еще почитать и посмотреть об облачных технологиях?

    ПОДПИШИСЬ НА НАШУ ТЕХНО-РАССЫЛКУ
    ПОДПИШИСЬ
    НА НАШУ ТЕХНО-РАССЫЛКУ