Переход в облако. Практическое руководство по организации облачных вычислений для ученых и IT-специалистов
.pdf
ГЛАВА 8
сохраненные данные включают записи о пациентах, участвующих в клинических испытаниях. Так, для решения последнего вопроса AWS реализует меры по защите медицинских данных и соблюдению таких законов, как Закон США о HIPAA98. Однако зачастую хранение данных может вызывать серьезные затруднения, скажем, при использовании данных, переданных третьей стороной, например, частной компанией. В таких случаях количество копий данных и место их хранения могут быть установлены предыдущим контрактом, вступающим в противоречие с новым, подписанным с вашим поставщиком облачных услуг. Ярким примером является прецедент, когда Google получил доступ к медицинским записям американцев99.
Более того, все детали, связанные с используемым в научных исследованиях ПО, включая данные о версиях и лицензии, которая должна быть свободной100, должны быть доступны и известны, поскольку это является обязательным условием для обеспечения научной воспроизводимости результатов. Повышать воспроизводимость научных вычислений действительно необходимо; а значит, нужно обеспечить соответствие облачных вычислений требованиям. Это соображение также поможет избежать привязки к одному поставщику. Например, вам может понадобиться перенести свои операции и данные, совершив переход от одного поставщика к другому. С технической точки зрения этот процесс будет намного проще, если вы будете обладать полной информацией о вашей текущей инфраструктуре.
Таким образом, используя облачные технологии, Саша должен понимать, что не будет обладать полным контролем над тем, чем делится. Например, государственные органы могут принудить поставщика раскрыть Сашины данные из-за юридических проблем. Таких сценариев известно немало, среди них подписанный в октябре 2019 г. Cloud Act101. Данный сценарий применим только к незначительной части научных исследований; порой выявляется и некая противозаконная деятельность. Однако важнее всего то, что, используя облачные решения, Саша теряет право принимать окончательное решение о том, делиться ли ему своими данными — хотя здесь
98Amazon (2019) HIPAA compliance. https://aws.amazon.com/compliance/hipaa-compliance/. По состоянию на 06 апреля 2019 г.
99Copeland R. (2019) Google’s ‘Project Nightingale’ gathers personal health data on millions of Americans. Wall Street J. https://www.wsj.com/articles/google-s-secret-project- nightingalegathers-personal-health-data-on-millions-of-americans-11573496790.
100Añel J.A. (2011) The importance of reviewing the code. Commun ACM 54(5):40–41. https:// doi.org/10.1145/1941487.1941502.
101Department of Justice of the United States (2019) Cloud act resources. https://www.justice. gov/dag/cloudact. По состоянию на 15 апреля 2019 г.
101
ПЕРЕХОД В ОБЛАКО
существуют дополнительные возможности, например, использование зашифрованного облачного хранилища. Кроме того, Саша должен отдавать себе отчет: данные, хранящиеся в облаке, могут не подпадать под те же законы и правила, что действуют в его стране или юридической сфере, поскольку инфраструктура, предоставляющая облачный сервис, может быть расположена в нескольких странах, а компания может располагаться в другом государстве. Таким образом, данные могут существовать в потенциально совершенно разных правовых условиях. Точные условия в некоторой степени зависят от контракта, который пользователь подписывает с поставщиком (а они могут быть самыми разными), и от того, как поставщик применяет контракт102. В других случаях местные законы, например, правила Европейского союза, могут оказаться несовместимыми с законами других регионов. Вы должны понимать: возможно, вам придется отдельно выбирать, проводить ли исследование и хранить ли данные в дата-центрах в том же регионе, где располагается ваше учреждение или финансирующий орган. Дело не только в законах, применяемых к данным, но и в праве членов Сашиной команды получать доступ и к ним, и к ресурсам, порой доступным только определенному кругу лиц, получивших допуск или обладающих «правильным» паспортом.
102 |
Srinivasan S. (2014) Cloud computing basics. Springer, New York. |
|
Г Л А В А 9
Вы отстаете от жизни: мы уже обновляем эту книгу
Прошу прощения, вы что, из прошлого?
Рой, «Компьютерщики»
Инновации происходят постоянно, и их скорость никогда не была равномерной — и то, и другое не вызывает сомнений. За прошедшее столетие темпы прогресса возросли как никогда. В таких сферах, как ИТ, инновации являются важнейшим фактором. Облачные вычисления в последние годы стали доминирующей технологией, стимулирующей процесс обновления
ирост доходов в бизнесе. Облачные технологии развиваются и адаптируются, реагируя на желания и потребности людей управлять данными
иустройствами такими способами, которые выходят за рамки чисто технологических, а значит, есть все основания в ближайшие несколько лет ожидать значительных улучшений.
Очевидно, стратегии некоторых поставщиков облачных сервисов будут включать более сложные решения и расширение набора услуг, традиционно используемых в локальных вычислительных системах, в облаке. Так, Google не так давно объявила, что делает несколько блокчейн-технологий доступными в своих облачных сервисах. Помимо этого, четко просматривается курс на интеграцию искусственного интеллекта как дополнительной услуги, которую можно предложить вместе с облачными решениями для разных целей, например, для датамайнинга. У данного вида услуг большой потенциал, т. к. в ряде случаев вам нужно всего лишь разрешить доступ к данным, уже хранящимся в облаке: так, не прикладывая никаких дополнительных усилий, вы получите последующий анализ, соображения или рекомендации, которые в конце концов могут привести к новым идеям и результатам, совершенствованию управления или других практик.
103
ПЕРЕХОД В ОБЛАКО
Поскольку использование облачных сервисов продолжает набирать обороты, можно ожидать значительного развития такой сферы бизнеса, как консалтинг по вопросам адаптации существующих рабочих сред — лабораторий, компаний и т. д. — к облачным вычислениям, как и по оценке и выполнению перехода.
Другая развивающаяся область — квантовые вычисления, технология, явно не подходящая пользователям ПК. Невозможно себе представить, чтобы квантовый компьютер мог функционировать вне лаборатории, где созданы особые условия вроде поддержания самых немыслимых низких температур. Следовательно, квантовые вычисления, скорее всего, будут работать как облачный сервис — нечто подобное уже предлагает IBM через свой IBM Q Experience (https://www.ibm.com/quantum-computing/technology/ experience/): единственное, что меняется в этой технологии — это оборудование, используемое для предоставления услуги. Из этого мы можем сделать вывод, что в будущем любая попытка развивать квантовые вычисления будет следовать облачной парадигме. Хоть такого рода утверждения в ИТ могут устареть всего за несколько лет, мы можем утверждать: никто не ожидает в обозримом будущем продажи первого физического квантового компьютера.
Предполагается, что повсеместное внедрение облачных технологий повлечет за собой инвестиции в улучшение качества интернет-соединений по всему миру. По некоторым прогнозам, к концу следующего десятилетия мы не будем говорить ни о подключении, ни об использовании облака: все будет взаимосвязано, в том числе такие технологии, как интернет вещей. Кроме того, одним из развивающихся направлений исследований, связанным с сетями в облачных вычислениях, является изучение подобных технологий для укрепления кибербезопасности, например, для повышения устойчивости к DDoS-атакам.
Как ученый, Саша подает заявки на финансирование и управляет выделенными средствами. Возможно, он задумывается о новом компьютере, который нужно приобрести для следующего исследовательского проекта. Если Саша не рассматривает более-менее портативное устройство вроде ноутбука или компактного ПК, то он застрял в прошлом. Помимо приватности и наличия постоянного доступа к наиболее релевантным данным, необходимым ежедневно или в течение нескольких дней, нет никаких причин хранить данные на большой машине. Если вам знакомо выражение «рабочая станция» и вы привыкли так работать, загляните
104
ГЛАВА 9
в Википедию: она говорит о компьютерах такого типа в основном в прошедшем времени.
Вас может беспокоить вопрос: что будет, если я отправлюсь куда-то, где нет интернета, и не смогу получить доступ к своим данным? Что ж, полностью эта проблема не исчезнет, но в некоторых регионах мира такое опасение сродни беспокойству о наличии электросети. А есть и такие места, где ваши шансы получить доступ в интернет будут выше, чем найти выключатель.
Глоссарий
Agile (или Agile software development) — термин, включающий
всебя различные методики, практики и критерии, основанные на кроссфункциональных самоорганизованных командах, цель которых — предоставлять продукты и услуги, постоянно совершенствуя и ускоряя процессы. Примеры применения Agile-подхода — деятельность Scrum, Kanban и DevOps.
Alexa — разработка Amazon; устройство, исполняющее через подключение к облаку функции персонального помощника.
Apache (или Apache HTTP Server) — один из самых популярных веб-сер- веров.
API (или API-интерфейсы) — программные интерфейсы, представляющие собой абстракции (очень) высокого уровня, обеспечивающие стандартный способ взаимодействия с программным обеспечением или инфраструктурой.
AWS (сокр. от Amazon Web Services) — платформа облачных вычислений от Amazon.
AWS Lambda — бессерверный вычислительный сервис, пример FaaS. Azure — платформа облачных вычислений от Microsoft.
BOINC — свободное промежуточное программное обеспечение для грид-вычислений, разработанное Калифорнийским университетом (Беркли) и широко применяемое для добровольных вычислений.
Cloud native — программное обеспечение или система, разработанные для использования всех возможностей, которые предлагает облачная среда. Как правило, Cloud native ПО не может работать или теряет многие свои функции вне облачной среды.
CNCF (сокр. от Cloud Native Computing Foundation) — часть Linux Foundation, созданная для продвижения концепции облачных вычислений, а также содействия созданию и развитию экосистемы.
cPanel — онлайн-панель управления веб-хостингом на базе Linux. DDoS (сокр. от Distributed denial of service — распределенный отказ
вобслуживании) — атака, вызывающая отказ в обслуживании в системе или сервисе.
106
ГЛАВА 9
Docker — наиболее часто используемая PaaS для запуска контейнеров. EC2 — разработка AWS для запуска контекстуализированных вирту-
альных машин (инстансов) в облаке.
ERP — интегрированный пакет для управления бизнесом.
FaaS — способ использования облачных вычислений, связанных с бессерверными системами, требующий только реализации функций без учета базовой инфраструктуры.
GAE (сокр. от Google App Engine) — высокоабстрагированная и изолированная PaaS от GCP.
GCP (сокр. от Google Cloud Platform) — платформа облачных вычислений Google.
Git — распределенная версия системы управления, широко используемая при разработке программного обеспечения.
GNU — операционная система, относящаяся к свободному программному обеспечению. GNU — рекурсивная аббревиатура от «GNU’s not UNIX»: «GNU — это не UNIX». Самые расширенные версии операционной системы работают с ядром Linux, хотя доступны и другие версии.
Google Cloud Functions — FaaS от GCP.
GraphQL — язык запросов и обработки данных для API с открытым исходным кодом, разработанный Facebook. Альтернатива REST.
Hadoop — платформа больших данных Apache, основанная на основе модели массового распределенного программирования MapReduce.
InfiniBand — стандарт связи, используемый в высокопроизводительных вычислениях.
IOPS — измерение производительности, указывающее количество операций ввода/вывода в секунду.
IRC — протокол текстового чата, созданный в конце 1980-х гг. и ставший чрезвычайно популярным в 1990-х.
JSON (сокр. от JavaScript object notation) — формат файла открытого стандарта, использующий читабельный для человека текст для передачи объектов данных.
Kubernetes — cистема оркестровки свободного программного обеспечения (контейнера), созданная Google.
LaTeX — cистема подготовки документов, обычно используемая в научной среде.
Linux — сверхпопулярное ядро для операционных систем.
MPI — стандарт для распараллеливания задач, обычно в средах HPC.
107
ПЕРЕХОД В ОБЛАКО
NAS — хранилище, подключенное и совместно используемое по сети. NumPy — числовая библиотека (а также расширения) для Python. PHP — язык программирования высокого уровня, очень популярный
при веб-разработке.
POSIX — серия стандартов, направленных на обеспечение совместимости между различными операционными системами.
PUE (сокр. от Power usage effectiveness, эффективность энергопотребления) — метод (или коэффициент) расчета эффективности дата-центра с точки зрения потребления энергии.
Python — язык программирования высокого уровня, весьма популярный во многих сферах, и особенно в науке, анализе данных и разработке систем.
REST (сокр. от Representational state transfer) — архитектурный стиль, используемый для разработки REST API.
S3 — облачное хранилище от AWS.
SDK — пакет связанных инструментов от разработчика программного обеспечения.
SEO — методы, используемые для повышения рейтинга сайтов в поисковых системах, таких как Google, Bing и Yahoo Search.
Spark — платформа кластерных вычислений, созданная после Hadoop. Базовая архитектура Apache Spark основана на устойчивом распределенном наборе данных (RDD) — структуре данных, позволяющей выполнять быстрые вычисления.
SSD (сокр. от Solid state disk) — жесткий диск, как правило — флеш-па- мять, используемая для снижения задержки и повышения производительности.
SSL — см. TLS.
TLS (сокр. от Transport layer security) — серия криптографических протоколов, направленных на обеспечение безопасной связи по сети; не поддерживает SSL.
VPC (сокр. от Virtual private cloud) — изолированная облачная среда (ее сеть не подключена к общедоступной), доступная, как правило, только через VPN.
VPN (сокр. от Virtual private network, виртуальная частная сеть) — это концепция, указывающая на то, что частная сеть распространяется на общедоступную, т. е. две или более частных сети (к которым не подключиться через общедоступные сети) могут видеть друг друга и использовать общедоступные сети в качестве канала связи, как правило, зашифрованного и безопасного.
108
ГЛАВА 9
VPS (сокр. от Virtual private server) — виртуальный частный сервер, продаваемый провайдером. VPS находятся на более низком уровне абстракции, нежели облачные инстансы, и продаются как предустановленные (как есть) системы; самообслуживание VPS не допускается провайдерами.
Бакет — наивысший уровень иерархии облачных систем хранения, таких как S3 или GCS, своего ролда контейнер для объектов файловой системы.
Бессерверный — см. FaaS.
Блокчейн — технологии, обеспечивающие агрегирование (добавление) набора записей, связанных методами криптографии. Обычно блокчейн применяется в электронных кошельках и смарт-контрактах.
Большие данные — область компьютерной науки, обрабатывающая
ианализирующая большие наборы данных в разных целях, например для прогнозирования или извлечения значимой информации.
Виртуализация — в контексте данной книги этот термин означает создание или использование инстанса или контейнера, функционирующего как настоящая операционная система.
Виртуальная машина — см. инстанс.
Гражданская наука — деятельность, осуществляемая обществом в сотрудничестве или под наблюдением профессиональных ученых, обычно вносящая вклад в основы исследовательского процесса.
Дата-майнинг — процессы и методики, направленные на обнаружение
ивыявление закономерностей в данных.
Инстанс — виртуальная машина с контекстом (определение процессора, объем памяти, образ диска и т. д.), работающая в среде облачных вычислений. В контексте данной книги термины «виртуальная машина» и «инстанс» взаимозаменяемы.
Контейнер — виртуальная среда, работающая поверх ядра одной операционной системы и эмулирующая ОС, а не базовое оборудование.
Машинное обучение — междисциплинарная область (прочно базирующаяся в области компьютерных наук и статистики), направленная на извлечение и вывод закономерностей в массивах (априори) неструктурированных данных.
Микросервис — архитектура, состоящая из изолированных, небольших и независимых сервисов.
Наблюдаемость — атрибут систем и служб, которые можно просматривать (например, исторические данные или сводки прогнозов) с помощью метрики и журналов.
109
ПЕРЕХОД В ОБЛАКО
Нулевая загрузка — сценарий, при котором данные хранятся на внешних серверах (в облаке), где и выполняются вычислительные задачи, в противоположность сценарию, при котором вычисления выполняются в собственных или локальных системах.
Облачный — ПО или система, необязательно изначально созданная для работы в облаке, но способная работать в облачной среде, возможно, с некоторыми изменениями. Чаще всего облачное ПО позволяет использовать все функции, предлагаемые облачными вычислениями.
Публичное облако — модель, при которой серверы дата-центра могут при необходимости совместно использовать несколько пользователей. Ресурсы являются общими и доступны всем.
Регион — с точки зрения облачных вычислений это способ представления географического расположения дата-центров провайдерами. Регионы делятся на зоны.
Свободное программное обеспечение — ПО, которое соответствует определению фонда свободного программного обеспечения (https://www. gnu.org/philosophy/free-sw.en.html) и подразумевает свободу использования, получения доступа к коду, а также возможность изменять его, распространять как саму программу, так и ее измененные версии.
Частная сеть — персональная сеть организации или инфраструктуры, т. е. недоступная для общественности.
Частное облако — модель, при которой инфраструктурой в зависимости от потребностей может управлять непосредственно ИТ-отдел клиента или поставщик.
Чат-бот — ПО, выполняющее функцию разговора.
Ядра — независимые блоки обработки, которые можно сгруппировать в несколько интегральных схем.
Ядро — компьютерная программа, основа операционной системы компьютера.
110
