Переход в облако. Практическое руководство по организации облачных вычислений для ученых и IT-специалистов
.pdf
ГЛАВА 3
«Инфраструктура как услуга» (IaaS): нижний уровень иерархии, на котором поставщики предлагают доступ к виртуализированному оборудованию. Примером может послужить один из сервисов AWS — EC2, предлагающий полный доступ к оборудованию виртуального сервера.
«Платформа как услуга» (PaaS): следующий уровень иерархии позволяет сделать еще один шаг к абстракции и, как правило, предоставляет пользователям полную платформу, скрывая при этом детали нижнего уровня, такие как оборудование. Примером может послужить Google Dataproc с его полностью управляемыми кластерами Hadoop и Spark, где пользователю не нужно ни настраивать базовую инфраструктуру (в т. ч. сеть, вычислительное оборудование и хранилище), ни управлять ею. Этот облачный сервис представлен как единая платформа с четко разграниченными рабочими потоками.
«Программное обеспечение как услуга» (SaaS): грань между PaaS
иSaaS размыта и варьируется в зависимости от автора (и уровня абстракции), но мы можем четко определить, что такие сервисы как Dropbox или Gmail относятся к SaaS. Подобные сервисы и приложения размещаются и полностью управляются третьей стороной (которая не обязана при этом являться поставщиком облачных услуг) и позволяют пользователю модифицировать только заранее заданные параметры — дисковое пространство, пропускная способность и т. д. Однако пользователь не получит доступа к основным аппаратным ресурсам: он не будет даже знать о них. Как пример рассмотрим Dropbox, где пользователи могут управлять объектами (папками и файлами)
ивидеть, сколько свободного места у них осталось, — и на этом их уровень знания инфраструктуры заканчивается (так, Саша не знает и не будет задумываться о том, какой технологией хранения пользуется).
«Функция как услуга» (FaaS): этот уровень абстракции, более известный как бессерверные вычисления, ориентирован скорее на тех, кто занимается разработкой. Аппаратные ресурсы абстрагированы, и пользователь может сосредоточиться на создании ПО, а не на управлении инфраструктурой: это забота поставщика. FaaS может быть особенно интересным вариантом для микро- и наносервисов47, актуальных для мобильных приложений и интернета вещей. Примеры FaaS — AWS Lambda и Google Cloud Functions. Более подробно мы рассмотрим бессерверные вычисления в главе 7.
47Zimmermann O. (2017) Microservices tenets. Comput Sci Res Dev 32(3):301–310. https:// doi.org/10.1007/s00450–016–0337–0
41
ПЕРЕХОД В ОБЛАКО
3.3. Особенности облака
Есть множество причин, чтобы использовать облачные вычислительные технологии в исследованиях. Некоторые из них хорошо известны: поставщики рассказывают о них на своих сайтах в маркетинговых целях. Рассмотрим их вкратце.
3.3.1. Эластичность и масштабируемость
Масштабируемость облачных вычислений очень полезна для двух типичных сценариев проведения исследований. Первый связан с пользователями: так, Саша может создать или слишком большой объем данных, или такой, использовать который придется слишком много раз, что делает размещение
всобственном дата-центре невозможным или нежелательным. В подобных случаях наилучшим выбором станет размещение массива данных в облаке, возможно, зеркально отображаемого в нескольких дата-центрах по всему миру: такая система сможет справиться с задачей независимо от количества пользователей или пропускной способности сети, необходимой для передачи данных.
Авот и второй типичный сценарий: Саше нужно выполнить вычисления за ограниченный промежуток времени, а локальных ресурсов HPC недостаточно. В таких случаях Саша может прибегнуть к облачным сервисам для достижения эластичности, необходимой для своевременного завершения вычислений. Обычно в подобных сценариях мы сталкиваемся с необходимостью выполнить непредвиденную задачу в крайне сжатые сроки, т. к. некий аспект вашего исследования внезапно стал актуален для СМИ или сложившейся политической ситуации. Саша может использовать HPCaaS
воблаке в дополнение к своему локальному суперкомпьютеру или чтобы избежать ожидания своей очереди на вычисления.
3.2.2. Возможность самообслуживания
Сервис самообслуживания в облаке предоставляет пользователю возможность запрашивать любые доступные ресурсы (например, инстансы или хранилище) из каталога поставщика. Поставщики же предлагают разнообразные прозрачные сервисы автоматизации, обеспечивающие абстракцию. Отметим, что в облаке Саша не получает сервер (или инстанс), а должен
42
ГЛАВА 3
выбрать предопределенный образ сервера, в большей или меньшей степени соответствующий требованиям (например, образ с Apache и PHP для веб-сер- вера). В более традиционной (вычислительной) среде доступные ресурсы всегда предопределены и зачастую используются совместно (например, если доступ к процессорному времени приходится ждать), а самообслуживание вообще не рассматривается или требует вмешательства оператора.
С расширением свободы выбора пользователи должны получать лучшее понимание вариантов и применимых технологий; вот почему большинство поставщиков устраивают специальные тренинги и аттестации (в т. ч. бесплатные), что уже стало самостоятельным бизнесом.
3.3.3. Интерфейсы прикладного программирования
Интерфейс прикладного программирования (API) — это абстракция (очень) высокого уровня, обеспечивающая стандартный способ взаимодействия с ПО или инфраструктурой. Совсем упрощенно можно определить API как ПО, предоставляющее стандартизированный интерфейс, с помощью которого другое ПО может выполнить желаемое действие.
Мы углубимся в тему и приведем примеры API в главе 6. Сейчас скажем лишь, что API — представители «высшего облачного общества», предлагающие лучший способ взаимодействия между компонентами. Так, создание нового каталога в облачном хранилище выполняется через обращение к соответствующему API службы (например, S3 на AWS) и предоставление необходимых атрибутов, например названия каталога.
Еще один пример — инструменты командной строки, предоставляемые пользователям поставщиками. Как правило, это надстройки, связывающие API с абстрактными общими действиями, например, созданием нового каталога.
3.3.4 Мониторинг и измерение производительности
Облако предоставляет пользователю возможность мониторинга: Саша может получить доступ к метрикам и журналам, что позволит проводить эмпирические наблюдения с использованием данных доступных систем и служб, а также разрабатывать модели для таких приложений, как прогнозирование расходования ресурсов. Примером подобных показателей являются загрузка ЦП и свободное дисковое пространство на уровне экземпляра или кластера,
43
ПЕРЕХОД В ОБЛАКО
а также более важные характеристики, такие как частота ошибок в определенном количестве запросов, который получает веб-сервер.
Каждый поставщик по-своему представляет эту информацию, прибегая к собственным решениям (таким как AWS CloudWatch или GCP Stackdriver). Кроме того, доступны бесплатные проекты (такие как Graphite48 и Grafana49): их можно адаптировать для работы в большинстве облачных сервисов.
3.4. Концепции Cloud Native
Все описанные в этом разделе облачно-ориентированные концепции необходимы для понимания некоторых рассматриваемых в этой книге вопросов (или облегчают его), поэтому мы призываем читателя узнать о них как можно больше. Подробное изучение реализации этих концепций выходит за рамки данной книги; поэтому мы представим только поверхностный обзор.
3.4.1. Cloud Native
Cloud Native — понятие широкое. Как читатель, наверное, успел понять во время чтения этой книги, определение границ в сфере облачных вычислений довольно расплывчато и чаще всего вызывает оживленные споры. Приложение или сервис можно назвать Cloud Native, т. е. облачноориентированным, если они успешно функционируют в среде, предоставляемой облачными вычислениями, и в той или иной мере нуждаются в ней. Более того: приложение или сервис вне облачной среды, вероятнее всего, окажутся бессмысленными (или и вовсе не смогут работать), так как большинство функций — к примеру, API — окажутся недоступны или будут работать иначе.
В поддержку этой концепции и для того, чтобы поспособствовать созданию экосистемы, в 2015 г. был основан фонд CNCF (Cloud Native Computing Foundation, являющийся частью Linux Foundation; https://www. cncf.io/). Здесь мы приведем их определение понятия Cloud Native:
48Graphite (2019) Graphite. https://graphiteapp.org. По состоянию на 6 ноября 2019 г.
49Grafana (2019) Grafana. https://grafana.com/. По состоянию на 6 ноября 2019 г.
44
ГЛАВА 3
Технологии Cloud Native позволяют организациям разрабатывать и запускать масштабируемые приложения в современных, динамичных средах, таких как публичные, частные и гибридные облака. Примерами этого подхода служат контейнеры, технологии сервисных сеток, микросервисы, неизменяемая инфраструктура и декларативные API.
Данные технологии позволяют создавать слабосвязанные системы, устойчивые, управляемые и наблюдаемые. В сочетании с надежной автоматизацией все это позволяет разработчикам часто вносить важные изменения с предсказуемо низкими трудозатратами.
Фонд Cloud Native Computing Foundation старается стимулировать принятие данной парадигмы, поощряя и поддерживая экосистему проектов с открытым кодом, независимых от производителя. Мы демократизируем новейшие модели, чтобы сделать данные инновации доступными для всех и каждого.
3.4.2. Контейнеры
С формальной точки зрения контейнер — это виртуальная среда выполнения, работающая поверх ядра операционной системы и эмулирующая ОС, а не базовое оборудование50. Наиболее часто используемым и известным ПО (PaaS), запускающим контейнеры через виртуализацию на уровне ОС, является Docker51. Контейнеры считают наиболее выраженным примером концепции Cloud Native, продвигаемой CNCF.
С точки зрения научных исследований контейнеры предлагаются как возможное решение давней и непростой проблемы — вопроса вычислительной воспроизводимости результатов научных изысканий. Вычислительные инструменты активно используются во всех областях исследований, и воспроизводимость их результатов становится все более актуальной проблемой52.
50Firesmith D. (2017) Virtualization via containers. https://insights.sei.cmu.edu/sei_ blog/2017/09/virtualization-via-containers.html. По состоянию на 6 ноября 2019 г.
51Docker (2019) Docker. https://www.docker.com/. По состоянию на 6 ноября 2019 г.
52Añel J.A. (2011) The importance of reviewing the code. Commun ACM 54(5):40–41. https:// doi.org/10.1145/1941487.1941502;
Añel J.A. (2017) Comment on “Most computational hydrology is not reproducible, so is it really science?” by Christopher Hutton et al. Water Resour Res 53(3):2572–2574. https://doi. org/10.1002/2016WR020190;
Stodden V., Seiler J., Ma Z. (2018) An empirical analysis of journal policy effectiveness for computational reproducibility. Proc Natl Acad Sci 115(11):2584–2589. https://doi.org/10.1073/ pnas.1708290115
45
ПЕРЕХОД В ОБЛАКО
Облачные вычисления привносят элемент сложности, однако эту проблему прекрасно решит хорошее описание и использование контейнеров53, т. к. все используемое ПО общедоступно и снабжено детальным описанием.
3.4.3 Микросервисы
Микросервисы можно определить как отдельные небольшие и независимые сервисы, обычно обслуживающие отдельный аспект функционирования бизнеса. У других авторов и в иных контекстах микросервисам могут даваться кардинально иные определения — как и другим концепциям облачных вычислений.
Микросервисы — это способ написания ПО, рекомендованный CNCF. В главе 7 мы подробно рассмотрим простой пример микросервиса (бессерверные вычисления).
3.4.4. Kubernetes
Kubernetes — созданное Google открытое ПО для оркестровки контейнизированных приложений, предлагающее набор абстракций для развертывания, масштабирования и запуска кода. Чаще всего Kubernetes используется как PaaS (например, через GCP, AWS или Azure), а также активно применяется в индустрии высоких технологий.
Kubernetes, разрабатываемое и поддерживаемое CNCF, является рекомендуемым методом оркестровки микросервисов для реализации неизменяемого подхода к инфраструктуре.
3.5. Вопросы экологии
Одной из проблем, связанных с работой суперкомпьютеров или дата-цен- тров, является воздействие на окружающую среду — расход энергии
53Boettiger C. (2015) An introduction to Docker for reproducible research. SIGOPS Oper Syst Rev 49(1):71–79. https://doi.org/10.1145/2723872.2723882;
Kurtzen G.M., Sochat V., Bauer M.W. (2017) Singularity: scientific containers for mobility of compute. PLoS One 12(5): e0177459. https://doi.org/10.1371/journal.pone.0177459;
Kim Y.M., Poline J.B., Dumas G. (2018) Experimenting with reproducibility: a case study of robustness in bioinformatics. GigaScience 7(7). https://doi.org/10.1093/gigascience/giy077
46
ГЛАВА 3
на содержание инфраструктуры, в том числе охлаждение. Этот фактор также следует учитывать при оценке облачных вычислений: он представляет особый интерес для организаций, желающих снизить пагубное воздействие на экологию. С точки зрения логики, обслуживать более крупный централизованный дата-центр должно быть проще и дешевле, нежели несколько отдельных вычислительных инфраструктур. Так и есть. Кроме того, компании, предлагающие услуги облачных вычислений, отдают себе отчет в том, какие экологические проблемы вызывает их бизнес, и прилагают усилия к тому, чтобы минимизировать их влияние, например, снизив выбросы углерода. Воздействие на окружающую среду может быть весомым аргументом при переходе на облачные вычисления; однако это не истина в последней инстанции. Например, если вы собираетесь перенести ПО, которым обычно пользуетесь на своем ПК (ноутбуке, рабочей станции и т. д.), в облако, плюс очевиден: вы сможете использовать оборудование, потребляющее меньше энергии. Однако, если вы используете облако для обработки больших объемов данных и их непрерывной передачи, эти процессы могут нести более пагубное воздействие на окружающую среду, а совокупное потребление электричества дата-центром может возрасти54. И все же при взвешивании побочных эффектов необходимо учесть ряд факторов: отказ от использования помещений (локального дата-центра), все связанные с ним затраты электроэнергии (иногда измеряемые в таких показателях, как коэффициент энергоэффективности) и т. д.
Некоторые данные могут пролить свет на эту проблему. Проведенное Microsoft исследование по использованию Azure показало: экономия энергии при использовании SaaS в среднем больше (а в некоторых случаях — более 90%), чем при использовании IaaS (52–79%)55. Кроме того, более половины использованной AWS в 2018 г. энергии была возобновляемой, согласно данным, предоставленным самой компанией, а ее «углеродный след» — уровень выбросов парниковых газов в атмосферу — по данным за 2019 г. был на 88% ниже в сравнении с соответствующим показателем среднестатистического дата-центра.
54Baliga J., Ayre R.W.A., Hinton K., Tucker R.S. (2011) Green cloud computing: balancing energy in processing, storage, and transport. Proc IEEE99(1):149–167. https://doi.org/10.1109/ JPROC.2010.2060451
55Microsoft (2018) The carbon benefits of cloud computing: a study on the Microsoft Cloud, 25 p. https://www.microsoft.com/en-us/download/details.aspx?id=56950
47
ПЕРЕХОД В ОБЛАКО
Наконец, отметим: современные дата-центры намного более энергоэффективны, нежели были несколько лет назад, и ожидается, что ситуация будет только улучшаться. Энергоэффективность специализированных центров обработки данных, предоставляемых некоторыми поставщиками, постоянно контролируется, в то время как в ряде собственных дата-центров этот критерий учитывается лишь при их проектировании или обновлении. Вот почему, рассматривая преимущества облачных вычислений с точки зрения экологии, нужно учитывать не только конкретную ситуацию на момент внедрения, но и ее эволюцию с течением времени.
3.6. Истории успешного применения облачных и бессерверных вычислений в науке
За последние годы облачные технологии достигли высокого уровня зрелости
втом числе благодаря историям их успешного применения в научных исследованиях. Для иллюстрации приведем несколько показательных примеров. Кроме того, истории успеха можно найти на сайтах поставщиков,
втом числе и представленных ниже. И этот список нельзя назвать исчерпывающим: без сомнения, еще немало примеров появится, пока мы пишем, а вы читаете эту книгу.
3.6.1. Археология
Стэндфордский археологический центр использует облачные технологии для создания точных и исчерпывающих записей о найденных в ходе раскопок предметах и для обмена данными с исследовательским сообществом. Помимо этого, не так давно Центр предложил облачное решение для усовершенствования археологических исследований главных достопримечательностей, включающее возможность сочетать опции IaaS, PaaS и SaaS56.
56Wu Y., Lin S., Peng F., Li Q. (2019) Methods and application of archeological cloud platform for grand sites based on spatio-temporal big data. ISPRS Int J Geo-Inf 8(9):377. https://doi. org/10.3390/ijgi8090377
48
ГЛАВА 3
3.6.2. Компьютерные науки
Разработанный Калифорнийским университетом в Беркли проект по машинному обучению и анализу данных призван повысить эффективность энергопотребления батарей. Кроме того, облачные вычисления были задействованы для усовершенствования процесса изготовления чипов, что повысило производительность на 15%. Еще один пример — использование облачных сервисов исследовательской группой из Национального университета Тайваня: таким образом они смогли расширить свой локальный кластер.
3.6.3. Энергетика
Облачные вычисления уже комбинируются с датамайнингом и технологиями искусственного интеллекта для прогнозирования цен на энергоносители и достижения наилучшего соответствия производства электроэнергии спросу. Кроме того, существуют инструменты, объединяющие полезные для статистики климатические и энергетические данные, полученные из облачных сервисов, для таких проектов, как, например, программа Copernicus57.
3.6.4. Науки о Земле
В данной области облачные технологии применяются для визуализации и хранения данных, а также как HPCaaS (включая системы прогнозирования погоды и моделирования климата). Существуют примеры применения облачных решений в исследованиях атмосферы и моделирования климата58. Институты и метеорологические службы разных стран мира используют облачные вычисления для масштабируемой обработки данных, например когда возникает пиковый спрос на подключение, поиск данных
57Goodess C.M., Troccoli A., Acton C., Añel J.A., Bett P.E., Brayshaw D.J., De Felice M., Dorling S.E., Dubus L., Penny L., Percy B., Ranchin T., Thomas C., Trolliet M., Wald L. (2019) Advancing climate services for the European renewable energy sector through capacity building and user engagement. Clim Serv 16:100139
58Vance T.F., Merati N., Yang C., Yuan M. (2016) Cloud computing in ocean and atmospheric sciences. Academic, San Diego. https://doi.org/10.1016/C2014–0–04015–4;
Zhuang J., Jacob D.J., Gaya J.F., Yantosca R.M., Lundgren E.W., Sulprizio M.P., Eastham S.D. (2019) Enabling immediate access to earth science models through cloud computing: application to the GEOS-Chem Model. Bull Am Meteorol Soc 100:1943–1960. https://doi.org/10.1175/ BAMSD-18–0243.1;
Añel J.A. et al (submitted) Evaluation and intercomparison of cloud computing solutions for climate modelling.
49
ПЕРЕХОД В ОБЛАКО
во время экстремальных катаклизмов или запрошено большое количество результатов моделирования климата. Кроме того, существуют приложения BOINC (Berkeley Open Infrastructure for Network Computing — открытая инфраструктура сетевых вычислений в Беркли) на облачных сервисах59. Американская NREL использует облачные вычисления в ряде проектов для совместного создания баз данных по энергетике и обмена ими.
В бессерверных средах тестировалась возможность использовать нейронные сети для прогнозирования погоды. В таких случаях нейронные сети требуется адаптировать для работы в бессерверной среде (см. главу 7).
3.6.5. Библиотечное дело
Сохранение документации и ее доступность в Интернете для использования в других исследованиях необычайно важны. Это особенно актуально в случае со старыми документами: использование оцифрованных копий повышает их доступность, чего чаще всего нельзя было бы достигнуть никаким другим способом ввиду плохого состояния оригиналов. Ресурсы такого типа включают изображения высокого разрешения и связанные с ними метаданные. Библиотеки, например Каталонская национальная, используют облачные сервисы для предоставления оперативного доступа к консультациям по этим источникам информации.
3.6.6. Математика
Отличным примером применения облачных вычислений в коллективных исследованиях (и преподавании) является CoCalc60 (ранее известная как SageMathCloud) — общедоступная веб-система, позволяющая выполнять совместные математические вычисления. CoCalc была разработана с использованием схем предоставления облачных вычислений для исследований, подобных тем, о которых мы поговорим в главе 4. Поэтому CoCalc можно назвать действительно хорошим примером. По данным Википедии, в 2017 г. у CoCalc было порядка 300 000 активных пользователей.
59Montes D., Añel J.A., Pena T.F., Uhe P., Wallom D.C.H. (2017) Enabling BOINC in infrastructure as a service cloud systems. Geosci Model Dev 10:811–826. https://doi.org/10.5194/gmd-10– 811–2017
60CoCalc (2019) CoCalc. https://cocalc.com/. По состоянию на 6 ноября 2019 г.
50
