OpenStack — это бесплатная платформа облачных вычислений с открытым стандартом . Она в основном развертывается как инфраструктура как услуга (IaaS) как в публичных, так и в частных облаках, где виртуальные серверы и другие ресурсы предоставляются пользователям. [2] Программная платформа состоит из взаимосвязанных компонентов, которые управляют разнообразными аппаратными пулами обработки, хранения и сетевых ресурсов разных поставщиков по всему центру обработки данных . Пользователи управляют ею либо через веб-панель управления, либо через инструменты командной строки , либо через веб-службы RESTful .
OpenStack начался в 2010 году как совместный проект Rackspace Hosting и NASA . С 2012 года [обновлять]им управлял OpenStack Foundation , некоммерческая корпоративная организация, созданная в сентябре 2012 года [3] для продвижения программного обеспечения OpenStack и его сообщества. [4] К 2018 году к проекту присоединилось более 500 компаний. [5] В 2020 году фонд объявил, что в 2021 году он будет переименован в Open Infrastructure Foundation. [6]
В июле 2010 года Rackspace Hosting и NASA объявили об инициативе облачного программного обеспечения с открытым исходным кодом, известной как OpenStack. [7] [8] Заявление о миссии состояло в том, чтобы «создать повсеместную платформу облачных вычислений с открытым исходным кодом, которая будет отвечать потребностям публичных и частных облаков независимо от размера, будучи простой в реализации и широкомасштабируемой». [9]
Проект был призван помочь организациям предлагать услуги облачных вычислений, работающие на стандартном оборудовании. Первый официальный релиз сообщества под кодовым названием Austin появился три месяца спустя , 21 октября 2010 года [10], с планами выпускать регулярные обновления программного обеспечения каждые несколько месяцев. Ранний код был взят с платформы NASA Nebula , а также с платформы Rackspace Cloud Files . Модули облачного стека и открытого стека были объединены и выпущены с открытым исходным кодом командой NASA Nebula [11] совместно с Rackspace.
В 2011 году разработчики дистрибутива Ubuntu Linux приняли OpenStack [12] с неподдерживаемой предварительной версией технологии OpenStack «Bexar» для Ubuntu 11.04 « Natty Narwhal ». [13] Затем спонсор Ubuntu Canonical представил полную поддержку облаков OpenStack, начиная с выпуска OpenStack Cactus. [ требуется ссылка ]
OpenStack стал доступен в Debian Sid с выпуска Openstack «Cactus» в 2011 году, а первым выпуском Debian, включающим OpenStack, был Debian 7.0 (кодовое имя «Wheezy»), включающий OpenStack 2012.1 (кодовое имя: «Essex»). [14] [15]
В октябре 2011 года SUSE анонсировала публичный предварительный просмотр первого в отрасли полностью настроенного устройства на базе OpenStack, основанного на выпуске OpenStack «Diablo». [16] В августе 2012 года SUSE анонсировала свой коммерчески поддерживаемый корпоративный дистрибутив OpenStack, основанный на выпуске «Essex». [17]
В 2012 году Red Hat анонсировала предварительную версию своего дистрибутива OpenStack, [18] начиная с релиза "Essex". После очередного предварительного релиза Red Hat представила коммерческую поддержку OpenStack с релизом "Grizzly" в июле 2013 года. [19]
Организация OpenStack быстро разрослась и ее поддерживают более 540 компаний. [20]
В 2012 году NASA вышло из OpenStack в качестве активного участника и вместо этого приняло стратегическое решение использовать Amazon Web Services для облачных сервисов. [21] В июле 2013 года NASA опубликовало внутренний аудит, в котором указало на отсутствие технического прогресса и другие факторы как на основную причину выхода агентства из роли активного разработчика проекта и вместо этого сосредоточилось на использовании публичных облаков. [22] Этот отчет частично противоречит замечаниям, сделанным ИТ-директором Исследовательского центра Эймса Рэем О'Брайеном. [23] По состоянию на ноябрь 2021 года NASA продолжает использовать OpenStack в поддержке IAAS и PAAS суперкомпьютерного кластера Discover. Среда OpenStack называется «Explore» и работает в Центре моделирования климата NASA в Центре космических полетов имени Годдарда. [24]
В ноябре 2012 года британская правительственная цифровая служба (GDS) запустила Inside Government [25] на основе модели OpenNASA v2.0 Government as a Platform (GaaP).
В декабре 2013 года Oracle объявила, что присоединилась к OpenStack в качестве спонсора и планирует внедрить OpenStack в Oracle Solaris, Oracle Linux и многие свои продукты. [26] Затем последовало объявление о выпуске дистрибутивов Oracle OpenStack для Oracle Solaris [27] [28] и для Oracle Linux с использованием Icehouse 24 сентября 2014 года. [29]
В мае 2014 года HP анонсировала HP Helion и выпустила предварительную версию HP Helion OpenStack Community, начиная с выпуска IceHouse. HP эксплуатирует HP Helion Public Cloud на OpenStack с 2012 года. [30]
На Interop and Tech Field Day 2014 года компания Avaya продемонстрировала программно-определяемую сеть с использованием моста Shortest Path Bridging и OpenStack в качестве автоматизированного кампуса, расширяя автоматизацию от центра обработки данных до конечного устройства и исключая ручную подготовку из предоставления услуг. [31] [32]
По состоянию на ноябрь 2021 года [обновлять]NASA размещает частное облако Explore OpenStack для поддержки Discover HPC. [24]
По состоянию на сентябрь 2022 года [обновлять]China Mobile использует OpenStack в качестве основы своей сети 5G. Red Hat утверждает, что ее платформа развернута на более чем 30 процентах производственных сетей LTE. [33]
Облаку OpenStack в ЦЕРНе требуется более 300 000 ядер для удовлетворения потребностей Большого адронного коллайдера . [33]
Несколько проектов OpenStack сменили названия из-за проблем с товарными знаками.
Сообщество OpenStack сотрудничает вокруг шестимесячного, основанного на времени цикла выпуска с частыми контрольными точками разработки. [67]
На этапе планирования каждого релиза сообщество собиралось на OpenStack Design Summit для организации рабочих сессий разработчиков и составления планов. [68] Эти Design Summits совпадали с конференцией OpenStack Summit.
Начиная с цикла разработки Pike, встреча по проектированию была выделена в отдельное мероприятие Project Teams Gathering (PTG). [69] Это было сделано для того, чтобы избежать отвлечения разработчиков на презентации и встречи с клиентами, которые проходили на саммите OpenStack, и чтобы обсуждения по проектированию могли состояться до начала следующего цикла.
Недавние саммиты OpenStack прошли в Шанхае 4–6 ноября 2019 г., [70] Денвере 29 апреля — 1 мая 2019 г., [71] Берлине 13–19 ноября 2018 г., [72] Ванкувере 21–25 мая 2018 г., [73] Сиднее 6–8 ноября 2017 г., [74] Бостоне 8–11 мая 2017 г., [75] Остине 25–29 апреля 2016 г., [76] и Барселоне 25–28 октября 2016 г. [77] Ранее саммиты OpenStack прошли также в Токио в октябре 2015 г., [78] Ванкувере в мае 2015 г., [79] и Париже в ноябре 2014 г. [80] Саммит в мае 2014 г. в Атланте привлек 4500 участников — на 50% больше, чем на саммите в Гонконге шесть месяцев назад. [81] [82]
OpenStack имеет модульную архитектуру с различными кодовыми названиями ее компонентов. [40]
Nova — это проект OpenStack, который предоставляет способ предоставления вычислительных экземпляров как виртуальных машин, реальных аппаратных серверов (с помощью ironic) и имеет ограниченную поддержку системных контейнеров. Nova работает как набор демонов поверх существующих серверов Linux для предоставления этой услуги. [83] [84]
Nova написана на Python . Она использует множество внешних библиотек Python, таких как Eventlet (библиотека параллельных сетей), Kombu ( фреймворк обмена сообщениями AMQP ) и SQLAlchemy (набор инструментов SQL и Object Relational Mapper). [85] Nova разработана для горизонтального масштабирования . Вместо того, чтобы переключаться на более крупные серверы, вы приобретаете больше серверов и просто устанавливаете идентично настроенные службы. [86]
Из-за его широкой интеграции в инфраструктуру корпоративного уровня, мониторинга производительности OpenStack в целом и производительности Nova в частности, масштабирование стало все более важной проблемой. Мониторинг сквозной производительности требует отслеживания метрик от Nova, Keystone, Neutron, Cinder, Swift и других служб, в дополнение к мониторингу RabbitMQ , который используется службами OpenStack для передачи сообщений. [87] [88] Все эти службы генерируют свои собственные файлы журналов, которые, особенно в инфраструктурах корпоративного уровня, также должны отслеживаться. [89]
Neutron — проект OpenStack, призванный обеспечить «сетевое подключение как услугу» между интерфейсными устройствами (например, vNIC), управляемыми другими службами OpenStack (например, nova). Он реализует API OpenStack Networking. [90]
Он управляет всеми сетевыми аспектами для инфраструктуры виртуальных сетей (VNI) и аспектами уровня доступа инфраструктуры физических сетей (PNI) в среде OpenStack. OpenStack Networking позволяет проектам создавать расширенные топологии виртуальных сетей, которые могут включать такие службы, как брандмауэр и виртуальная частная сеть (VPN). [90]
Neutron позволяет использовать выделенные статические IP-адреса или DHCP . Он также позволяет использовать плавающие IP- адреса для динамического перенаправления трафика.
Пользователи могут использовать технологии программно-определяемых сетей (SDN), такие как OpenFlow , для поддержки многопользовательской среды и масштабирования. Сетевые технологии OpenStack могут развертывать и управлять дополнительными сетевыми службами, такими как системы обнаружения вторжений (IDS), балансировка нагрузки , брандмауэры и виртуальные частные сети (VPN). [91]
Cinder — это служба блочного хранилища OpenStack для предоставления томов виртуальным машинам Nova, хостам Ironic bare metal, контейнерам и т. д. Некоторые из целей Cinder: быть/иметь:
Тома Cinder предоставляют постоянное хранилище для гостевых виртуальных машин, известных как экземпляры, которые управляются программным обеспечением OpenStack Compute. Cinder также может использоваться независимо от других служб OpenStack как автономное программно-определяемое хранилище. Система блочного хранения управляет созданием, репликацией, управлением снимками, присоединением и отсоединением блочных устройств к серверам. [93]
Keystone — это сервис OpenStack, который обеспечивает аутентификацию клиента API, обнаружение сервисов и распределенную многопользовательскую авторизацию путем внедрения API Identity OpenStack. [94] Это общая система аутентификации в облачной операционной системе. Keystone может интегрироваться с такими службами каталогов, как LDAP . Он поддерживает стандартные учетные данные имени пользователя и пароля, системы на основе токенов и входы в стиле AWS (т. е. Amazon Web Services ). Каталог сервисов Keystone OpenStack позволяет клиентам API динамически обнаруживать и переходить к облачным сервисам. [95] [96]
Проект Image service (glance) предоставляет сервис, в котором пользователи могут загружать и находить активы данных, предназначенные для использования с другими сервисами. В настоящее время это включает определения изображений и метаданных. [97]
Службы образов Glance включают обнаружение, регистрацию и извлечение образов виртуальных машин (VM). Glance имеет RESTful API, который позволяет запрашивать метаданные образа VM, а также извлекать сам образ. Образы VM, доступные через Glance, могут храниться в различных местах: от простых файловых систем до систем хранения объектов, таких как проект OpenStack Swift. [97]
Glance размещает каталог metadefs. Это предоставляет сообществу OpenStack способ программного определения различных имен ключей метаданных и допустимых значений, которые могут быть применены к ресурсам OpenStack. [97]
Swift — это распределенное, в конечном счете согласованное хранилище объектов/блобов. Проект OpenStack Object Store, известный как Swift, предлагает программное обеспечение для облачного хранения, чтобы вы могли хранить и извлекать большие объемы данных с помощью простого API. Он создан для масштабирования и оптимизирован для обеспечения надежности, доступности и параллелизма во всем наборе данных. Swift идеально подходит для хранения неструктурированных данных, которые могут расти без ограничений. [98]
В августе 2009 года Rackspace начала разработку предшественника OpenStack Object Storage как полной замены продукта Cloud Files . Первоначальная команда разработчиков состояла из девяти разработчиков. [99] SwiftStack, компания по разработке программного обеспечения для хранения объектов, в настоящее время является ведущим разработчиком Swift со значительным вкладом от Intel , Red Hat , NTT , HP , IBM и других. [100]
Horizon — это каноническая реализация OpenStack's Dashboard, которая предоставляет пользовательский веб-интерфейс для сервисов OpenStack, включая Nova, Swift, Keystone и т. д. [101] Horizon поставляется с тремя центральными панелями: «User Dashboard», «System Dashboard» и «Settings». Эти три панели охватывают основные приложения OpenStack и обеспечивают поддержку ядра. Приложение Horizon также поставляется с набором абстракций API для основных проектов OpenStack, чтобы предоставить разработчикам согласованный, стабильный набор повторно используемых методов. Используя эти абстракции, разработчикам, работающим над Horizon, не нужно быть хорошо знакомыми с API каждого проекта OpenStack. [102]
Heat — это сервис для организации нескольких составных облачных приложений с использованием шаблонов как через собственный API OpenStack REST, так и через совместимый с CloudFormation API запросов. [103]
Mistral — это сервис, который управляет рабочими процессами. Обычно пользователь пишет рабочий процесс, используя язык рабочих процессов на основе YAML, и загружает определение рабочего процесса в Mistral через его REST API. Затем пользователь может запустить этот рабочий процесс вручную через тот же API или настроить триггер для запуска рабочего процесса при каком-либо событии. [104]
OpenStack Telemetry (Ceilometer) обеспечивает единую точку контакта для биллинговых систем, предоставляя все счетчики, необходимые для выставления счетов клиентам, по всем текущим и будущим компонентам OpenStack. Доставка счетчиков отслеживается и проверяется, счетчики должны легко расширяться для поддержки новых проектов, а агенты, собирающие данные, должны быть независимы от всей системы.
Trove — это база данных как услуга, предоставляющая реляционные и нереляционные базы данных . [105]
Sahara — это компонент для простого и быстрого предоставления кластеров Hadoop . Пользователи указывают несколько параметров, таких как номер версии Hadoop, тип топологии кластера, детали разновидности узла (определяющие дисковое пространство, настройки ЦП и ОЗУ) и другие. После того, как пользователь предоставит все параметры, Sahara развернет кластер за несколько минут. Sahara также предоставляет средства для масштабирования уже существующего кластера Hadoop путем добавления и удаления рабочих узлов по требованию. [106] [107]
Ironic — это проект OpenStack, который предоставляет машины bare metal вместо виртуальных машин. Первоначально он был ответвлен от драйвера Nova Baremetal и превратился в отдельный проект. Лучше всего его рассматривать как API гипервизора bare metal и набор плагинов, которые взаимодействуют с машинами bare metal, управляемыми Ironic. По умолчанию он будет использовать PXE и IPMI или Redfish [108] совместно для предоставления и управления физическими машинами, но Ironic поддерживает и может быть расширен с помощью плагинов, специфичных для поставщика, для реализации дополнительных функций. [109] [110]
С момента создания Ironic он породил несколько подпроектов [111] , чтобы помочь поддерживать дополнительные варианты использования и возможности. Некоторые из наиболее часто используемых из этих проектов включают Ironic-Inspector, Bifrost, Sushy и networking-generic-switch. Ironic-inspector обеспечивает сбор информации об оборудовании и обнаружение оборудования. [112] Bifrost фокусируется на варианте использования работы без других компонентов OpenStack, [113] и освещается на веб-сайте ironicbaremetal.org. Sushy — это легкая клиентская библиотека Redfish API. [114] Networking-generic-switch — это плагин, который поддерживает управление конфигурацией порта коммутатора для машин без ОС. [115]
Zaqar — это многопользовательская облачная служба обмена сообщениями для веб-разработчиков. Служба имеет полностью RESTful API, который разработчики могут использовать для отправки сообщений между различными компонентами своих SaaS и мобильных приложений, используя различные шаблоны связи. В основе этого API лежит эффективный механизм обмена сообщениями, разработанный с учетом масштабируемости и безопасности. Другие компоненты OpenStack могут интегрироваться с Zaqar для отображения событий конечным пользователям и для связи с гостевыми агентами, которые работают в слое «over-cloud».
OpenStack Shared File System (Manila) предоставляет открытый API для управления общими ресурсами в среде, не зависящей от поставщика. Стандартные примитивы включают возможность создания, удаления и предоставления/запрета доступа к общему ресурсу и могут использоваться автономно или в различных сетевых средах. Поддерживаются коммерческие устройства хранения данных от EMC, NetApp, HP, IBM, Oracle, Quobyte, INFINIDAT и Hitachi Data Systems, а также такие файловые технологии, как Red Hat GlusterFS [116] или Ceph.
Designate — это многопользовательский REST API для управления DNS. Этот компонент предоставляет DNS как услугу и совместим со многими бэкэнд-технологиями, включая PowerDNS и BIND. Он не предоставляет услугу DNS как таковую, поскольку его цель — взаимодействовать с существующими DNS-серверами для управления зонами DNS на основе каждого арендатора. [117]
Проект больше не поддерживается.
Searchlight предоставляет расширенные и последовательные возможности поиска в различных облачных сервисах OpenStack. Он достигает этого, разгружая пользовательские поисковые запросы с других серверов API OpenStack, индексируя их данные в Elasticsearch . [118] Searchlight интегрируется в Horizon [119] и также предоставляет интерфейс командной строки . [120]
Barbican — это REST API, разработанный для безопасного хранения, предоставления и управления секретами. Он нацелен на то, чтобы быть полезным для всех сред, включая большие эфемерные облака. [121]
Magnum — это API-сервис OpenStack, разработанный командой OpenStack Containers Team, который делает движки оркестровки контейнеров, такие как Docker Swarm, Kubernetes и Apache Mesos, доступными в качестве первоклассных ресурсов в OpenStack. Magnum использует Heat для оркестровки образа ОС, содержащего Docker и Kubernetes, и запускает этот образ либо на виртуальных машинах, либо на «голом железе» в конфигурации кластера. [122]
Vitrage — это служба OpenStack RCA (анализ первопричин) для организации, анализа и расширения оповещений и событий OpenStack, позволяющая получить представление о первопричинах проблем и определить их наличие до того, как они будут непосредственно обнаружены. [123]
Эта тревожная служба позволяет запускать действия на основе определенных правил в отношении данных метрик или событий, собранных Ceilometer или Gnocchi. [124]
OpenStack не стремится к совместимости с API других облаков. [125] Однако существует некоторая степень совместимости, поддерживаемая различными членами сообщества OpenStack, для которых такие вещи важны.
OpenStack управляется фондом OpenInfra и его советом директоров. Совет директоров состоит из спонсоров уровня Platinum, членов спонсоров уровня Gold и членов, избранных отдельными членами фонда. [128] Технический комитет OpenStack является руководящим органом проекта с открытым исходным кодом OpenStack. Это выборная группа, которая представляет участников проекта и осуществляет надзор за всеми техническими вопросами. Сюда входят разработчики, операторы и конечные пользователи программного обеспечения.
OpenStack Appliance [129] — это название программного обеспечения, которое может поддерживать платформу облачных вычислений OpenStack на физических устройствах, таких как серверы или виртуальные машины , или на их комбинации. Обычно программное устройство [130] представляет собой набор программных возможностей, которые могут функционировать без операционной системы. Таким образом, они должны содержать достаточное количество основных компонентов базовой операционной системы для работы. Поэтому строгое определение может быть следующим: приложение, которое разработано для предоставления возможностей OpenStack без необходимости базовой операционной системы. Однако применение этого строгого определения может быть бесполезным, поскольку на самом деле нет четкого различия между устройством и дистрибутивом . [ 131] Можно утверждать, что термин «устройство» является не совсем правильным, поскольку сам OpenStack упоминается как облачная операционная система [132], поэтому использование термина «устройство OpenStack» может быть неверным, если быть педантичным.
Если мы посмотрим на диапазон Appliances и Distributions, то можно будет сделать различие, что дистрибутивы — это те наборы инструментов, которые пытаются обеспечить широкий охват области проекта OpenStack, тогда как Appliance будет иметь более узкую направленность, концентрируясь на меньшем количестве проектов. Поставщики активно участвовали в OpenStack с момента его создания и с тех пор разработали и продают широкий спектр устройств, приложений и дистрибутивов.
Большое количество поставщиков предлагают решения OpenStack, а это означает, что организация, желающая внедрить эту технологию, сталкивается с сложной задачей выбора предложения поставщика, которое наилучшим образом соответствует ее бизнес-требованиям. [133] Барб Дарроу представила этот обзор в Fortune 27 мая 2015 года, [134] указав, что на рынке может произойти некоторая консолидация, которая прояснит эти решения.
Есть и другие аспекты, которые пользователи должны учитывать, например, реальные затраты. [135] Некоторые поставщики сделают предложение, которое охватывает большинство проектов OpenStack; другие предложат только определенные компоненты. Другие соображения включают объем проприетарного кода, используемого для управления отсутствием зрелости в компоненте OpenStack, и в какой степени это поощряет привязку к поставщику. [136] [137]
Наиболее авторитетная информация о продуктах поставщиков находится на сайте Open Infrastructure Foundation. [138]
OpenStack — сложная структура, и при внедрении OpenStack в организации пользователи сталкиваются с рядом проблем. Для многих организаций, пытающихся реализовать собственные проекты, ключевой проблемой является отсутствие навыков. [139] В статье The New Stack Атул Джа выделяет пять проблем, с которыми столкнется любая организация, желающая внедрить OpenStack. [140]
OpenStack — это набор проектов, а не один продукт, и поскольку каждое из различных приложений должно быть настроено в соответствии с требованиями пользователя, установка сложна и требует ряда дополнительных навыков [141] для оптимальной настройки. Одним из очевидных решений было бы взять полный пакет, поставляемый поставщиком, содержащий аппаратное и программное обеспечение, хотя необходима комплексная проверка. [142]
Это больше зависит от характера документации в продуктах с открытым исходным кодом, чем от OpenStack как такового, но при наличии более 25 проектов управление качеством документов всегда будет сложной задачей. [143]
Одной из основных целей использования инфраструктуры облачного типа является предоставление пользователям не только высокой надежности, но и высокой доступности, [144] то, что поставщики публичных облаков будут предлагать в соглашениях об уровне обслуживания . [145]
Из-за многопроектного подхода к разработке OpenStack сложность синхронизации различных проектов во время обновления может означать, что простой неизбежен . [146]
Довольно часто бизнес продолжает использовать более раннюю версию программного обеспечения в течение некоторого времени после ее обновления. Причины этого довольно очевидны и упомянуты выше. Однако у разработчиков в проекте с открытым исходным кодом мало стимулов предоставлять поддержку замененного кода. Кроме того, сам OpenStack официально прекратил поддержку некоторых старых версий. [147]
Учитывая вышеперечисленные проблемы, наиболее подходящим путем для организации, желающей внедрить OpenStack, будет обращение к поставщику и приобретение устройства или дистрибутива OpenStack.
По мере развития проекта OpenStack поставщики предлагали клиентам несколько способов развертывания OpenStack:
{{cite web}}
: Отсутствует или пусто |url=
( помощь )OpenStack для Oracle Linux, или O3L, теперь доступен, позволяя клиентам управлять как Oracle Linux, так и Oracle VM с помощью OpenStack. Однако он также сопровождается объявлением о соглашении о «взаимном сотрудничестве и поддержке» с Canonical, которое рассматривается как прямой удар по Red Hat.