Опыт построения высоконагруженной Content Delivery Network масштаба страны

5 октября 2018, 11:36

Статья рассказывает об  успешной реализации CDN-сети в глобальном масштабе, человеком, который сумел достичь профессиональных высот в области АйТи-индустрии. Эксперт мирового масштаба, автор технической литературы и научный деятель, достигший  самого высокого уровня сертификации по Red Hat, Дмитрий Мостовщиков на своем примере наглядно показывает, как можно заслужить всеобщее признание среди крупнейших компаний мира. Консультирует, разрабатывает и выполняет сложнейшие проекты, которые решают задачи национальных и транснациональных компаний таких как Red Hat, CenturyLink, Kaztelecom, Vimpelcom, Deutsche Pfandbriefbank, Moscow Exchange Stock, Fujitsu, Volvo Cars Corporation. Благодаря его внушительному опыту, знаниям и впечатляющему портфолио, Дмитрий сегодня среди наиболее востребованных глобальных специалистов в мире, которые способны определять вектор развития АйТи-индустрии.

Ты как признанный мировой эксперт, с высоты собственного опыта, какие проблемы видишь в развитии АйТи-индустрии?

Действительно, получив невероятно разнообразный опыт и выполнив большое количество глобальных проектов, мне достаточно ясно видна картина происходящего. Какие есть запросы у технологических гигантов, куда развиваются технологии, что требует потребитель. Пришел к выводу, что в последние 10-15 лет созрела проблема нехватки аппаратных вычислительных ресурсов, которая становится все более очевидной, каждое следующее поколение оборудования дает прирост производительности всего 10-15%, в то время когда запросы на мощности ежегодно растут на 30-60%. На данном этапе развития вижу единственно верное направление в технологическом развитии это замещение аппаратных функций программными реализациями.

Сегодня мы говорим о CDN. Что это такое?

По сравнению с 2000-ми годами, сегодня любой сайт, открываемый на мобильном устройстве или компьютере весит сотни килобайт, иногда мегабайты и больше. Посещаемость Интернет-сервисов составляет сотни тысяч и миллионы посетителей в сутки, из региональных они становятся глобальными. Поэтому компаниям приходится изобретать все новые способы доставки контента до пользователя. К технической стороне таких сервисов предъявляются особые требования – скорость, отзывчивость, уменьшение время загрузки контента при постоянно растущем объеме трафика. Все это привело к востребованности Content Delivery Network (CDN). CDN представляет собой промежуточный слой между конечным пользователем и сервисом, выполняет роль глобального кэша для группы пользователей, ранжированных по географическому признаку. Если у вас есть Интернет сервис, популярность которого растет, то рано или поздно, вам все равно придется использовать CDN.

Какие есть реальные примеры CDN?

Есть масса компаний, которые специализируются на продаже CDN-as-a-Service среди них Cloudflare, Fastly, Microsoft, Google, Webscale, CacheFly, Amazon и другие. Все что вам нужно это оформить эту услугу и подключить свои серверы приложений – всю нагрузку CDN берет на себя и только малая часть нагрузки достается вашему серверу приложений. По различным причинам, некоторые компании реализуют собственные CDN сети. Это может быть связано с финансовой стороной вопроса или нужно реализовать какой-то специфичный функционал.

Если рассматривать с точки зрения потребителя, то примерами решений, использующих CDN являются популярные социальные сети, цифровое телевидение IP TV, википедия, новостные издания, Youtube и так далее.

Хорошо, допустим мне необходимо развивать свой Интернет ресурс, но на данном этапе нецелесообразно пользоваться услугами сторонних компаний. Можно ли самостоятельно сделать решение?

Для этого требуется команда экспертов с глубоким пониманием архитектуры работы высоконагруженных распределенных систем, знаниями в сетевых технологиях, понимания принципов работы ПО, сетевого и серверного оборудования. Тогда вы сможете начать с чистого листа и построить эффективное решение на базе открытого ПО и типизированного серверного и сетевого оборудования. Это одно. И второе, такие эксперты смогут заложить фундамент для дальнейшего развития и масштабирования вашего сервиса. Один из реализованных мной проектов Content Delivery Network, как раз и требовал наличия такой экспертизы сразу по всем направлениям.

Расскажи об этом опыте построения CDN?

Я возглавлял команду экспертов в подразделении Research and Development, мне была поставлена задача создать CDN в компании CenturyLink – телекоммуникационный оператор в США, входит в Fortune 500. Одним из направлений его деятельности является IP телевидение и для этого сервиса компания приобретала услугу CDN у компании Akamai. Задача стояла таким образом, чтобы оптимизировать затраты на поддержку и обслуживание. Такое было возможно только создав что-то с нуля, дешевле и надежнее. Я разработал целостную архитектуру и детально проработал весь дизайн и всей командой его внедрили. Получилось защищенное, отказоустойчивое, масштабируемое решение которое обрабатывает сотни миллионов пользователей по всей стране и за ее пределами. В результате компания получила экономию в $30-40 млн в год.

Что, по-твоему, привело к успеху этого проекта?

Хотел бы ответить, что изучил множество материала на эту тему, а затем взял и сделал. Но это так не работает. В действительности успех любого проекта это глубокое понимание того, как работает оборудование, на что оно способно, как выжать из него максимум. И более важная часть это программная начинка, чтобы подобрать правильный софт нужно уметь с ним работать и знать его возможности. И, конечно, знания – надо точно понимать, что представляет из себя та или иная задача, как ее реализовать, сравнить все плюсы и минусы выбранного подхода, какие риски имеются и учитывать их. Только в таком случае, принимаются грамотные взвешенные проектные решения.

Все выглядит вполне доступно, но одновременно и впечатляюще. Но, все-таки, есть наверное и недостатки таких решений?

Следует четко понимать какие задачи решает CDN и какие не решает. Один из очевидных недостатков это то, что применение CDN эффективно работает для статического контента, таких как картинки, подключаемые скрипты, стили, статические страницы, и низко эффективен для динамического контента. Динамические ресурсы это, например социальные сети. Поэтому CDN не решает проблему высоких нагрузок на серверы, если большую часть операций составляет изменение и добавление данных. Но все-таки дает ощутимый выигрыш на операциях чтения, пример таких ресурсов это информационные порталы. Тем не менее, если у вас интерактивный сервис, то скорее всего имеется много статического контента, а это уже хорошая причина чтобы задуматься о CDN.

Очевидно, что обычным пользователям совсем не нужно разбираться в том, как работают многочисленные Интернет-сервисы, им достаточно того, что они просто работают. Однако, благодаря, таким вот профессионалам своего дела, как ты, Интернет продолжает развиваться в лучшую сторону.

Статистические данные показывают постоянный рост количества пользователей сети Интернет, так например еще в 2014 году таковых было менее 3 млрд. человек, сейчас их уже более 3,5 млрд и продолжает расти. Все большее число людей пользуются Интернетом с мобильных устройств и основная доля трафика приходится на социальные ресурсы и развлекательные сервисы. Поэтому эта отрасль будет и дальше развиваться, а высококлассные эксперты будут искать, разрабатывать и внедрять все более совершенные решения.

Какие интересные проекты вам удалось реализовать?

Довольно интересные проекты связаны с частными облаками. Как правило требования заказчика включают интеграцию корпоративного облака в существующую инфраструктуру и автоматизацию производственных процессов, что требует глубоких переработок стандартных архитектур. Как правило, в процессе разработки один проект разбивается на несколько подпроектов, которые развиваются параллельно основному, при этом задействуются технологии разных технических стеков. Мною разработаны и внедрены несколько решений на базе Red Hat OpenStack Platform, платформы уровня PaaS,  замкнутые экосистемы DevOps для нескольких компаний на территории СНГ и в Северной Америке.

Чем ты сейчас занимаешься?

В настоящее время работаю экспертным консультантом в компании Li9 Technology Solutions для их заказчика оптимизирую технологические процессы – физические мощности переводим в облачное пространство и занимаюсь трансформацией процессов разработки ПО для непрерывного контроля качества с автоматизацией доставки обновлений и последующим обучением ключевых сотрудников. Также много времени занимает общение с ведущими по отрасли экспертами – отвечаю на обращения из разных компаний, среди них есть те, кто входит в список Топ-500. Отдельное направление в моей деятельности – написание и рецензирование технических книг, много времени также отдаю на разработку авторских учебных курсов для ведущих специалистов, некоторые из них читаю сам. Свободного времени практически нет. В России вхожу в пятерку первых Red Hat Certified Architect и в двадцатку в мировом рейтинге, а это уже моральное обязательство развивать АйТи-индустрию в мире.