Ініціатива була розпочата в липні 2010 року, коли Rackspace Hosting спільно з NASA оголосили про відкриття коду проєктів платформи Nebula (IaaS, NASA) і платформи Rackspace Cloud Files (Rackspace Hosting). Ця ініціатива була названа OpenStack. Згодом пов'язана з проєктом інтелектуальна власність була передана незалежній некомерційній організації OpenStack Foundation.
У травні 2011 року Canonical оголосила, що OpenStack стане основною хмарною платформою Ubuntu з виходом версії 11.10 Ubuntu Server і Ubuntu Enterprise Cloud. До цього в дистрибутиві для цих же цілей використовувалася платформа Eucalyptus.[3]
У жовтні 2011 року RackSpace оголосила про свій намір передати всі права на код і торгову марку OpenStack некомерційній організації OpenStack Foundation, відкриття якої планувалось на 2012 рік.[4] На 2013 рік до розробки OpenStack приєдналося понад 250 компаній, серед яких такі гіганти, як Cisco, Cloud.com, HP, Red Hat, VMware, Puppet Lab, Dell, AMD, Intel, NEC, Citrix, Canonical, SUSE Linux[5] і близько 9000 незалежних розробників[6].
На відміну від платформи Eucalyptus, проєкт OpenStack не підконтрольний окремим компаніям і управляється незалежною спільнотою, без поділу на відкриту (community) і розширену (enterprise) редакції. При цьому OpenStack від початку позбавлений деяких проблем з масштабованістю, які спостерігаються в Eucalyptus. Наприклад, система здатна обслуговувати інфраструктуру віртуальних серверів великих хостинг-компаній, подібних Rackspace (100 тисяч віртуальних серверів клієнтів).[8]
Архітектура OpenStack є модульною з великою кількістю компонентів.[26]
OpenStack Compute (Nova) — це контролер для хмарних обчислень, що є основною частиною системи IaaS. Він створений для керування та автоматизації пулів комп'ютерних ресурсів і може працювати з поширеними технологіями віртуалізації, звичайними комп'ютерами (bare metal) та конфігураціями для високопродуктивних обчислень (HPC). Можна обирати між такими гіпервізорами (операторами віртуальних машин) як KVM, VMware, Xen а також Hyper-V та LXC[27][28]. Він написаний на Python і використовує багато зовнішніх бібліотек, таких як Eventlet (для багатопоточного програмування), Kombu (для AMQP повідомлень) та SQLAlchemy (для доступу до бази даних)[29]. Архітектура обчислень розроблена з врахуванням можливості горизонтального маштабування на стандартному обладнанні без будь-яких вимог до обладнання чи програмного забезпечення. Це забезпечує можливість інтеграції із застарілими системами та сторонніми технологіями. Через широкомасштабне поширення в корпоративному сегменті, моніторинг ефективності OpenStack в цілому та конкретно Nova при великих масштабах стає дедалі важливішою проблемою. Моніторинг продуктивності вимагає відстеження показників від Nova, Keystone, Neutron, Cinder, Swift та інших сервісів, додатково до моніторингу RabbitMQ, який використовується службами OpenStack для передачі повідомлень[30][31]. Всі ці служби створюють свої власні файли журналів, які також повинні контролюватися, особливо на корпоративному рівні.[32]
Networking (Neutron) — фреймворк для виконання завдань, пов'язаних із створенням, конфігуруванням і супроводом мереж всередині дата-центрів. Neutron підтримує динамічну конфігурацію мережі і може бути використаний для налаштування як віртуальних мереж, так і фізичних хостів. Neutron підтримує розширення функціональності через плаґіни і може вирішувати різні адміністративні завдання, від створення портів до налаштування маршрутів і VLAN.
OpenStack Object Storage (Swift) — розподілене, стійке до поломок і високонадійне сховище об'єктів. Об'єкти зберігаються одночасно на кілька вузлів кластера в датацентрі, при цьому забезпечується автоматичний контроль цілісності і реплікація при відключенні/додаванні вузлів. Сховище масштабується горизонтально, тобто для збільшення розміру досить просто додати нові вузли, конфігурація яких проводиться автоматично. При виході вузла з ладу, його вміст відтворюється на інших вузлах мережі для забезпечення належної надмірності. Дублювання інформації дозволяє використовувати для формування кластера типові недорогі сервери, не піклуючись про надійність кожного з них окремо.
OpenStack Image Service (Glance) — реєстр образів віртуальних машин, що дозволяє реєструвати нові образи віртуальних машин і забезпечувати їхню доставку на потрібні вузли перед виконанням. Забезпечує функціонування сховища образів віртуальних машин, представлених в широкому спектрі форматів: Raw, AMI, VHD (Hyper-V), VDI (VirtualBox), qcow2 (QEMU/KVM), VMDK і OVF (VMWare). Для уніфікації операцій з отримання інформації, додаванню і доставці образів віртуальних машин використовується спеціальний Glance RESTfulAPI
Block Storage (Cinder) — багатофункціональне і розширюване сховище блокових пристроїв і дискових розділів, що підтримує також роботу з раніше створеними розділами, розгорнутими в процесі використання минулих випусків OpenStack. Раніше Cinder був реалізований як підпроєкт в рамках сервісу OpenStack Compute, але виділений у відособлену підсистему, що розвивається окремою командою розробників
OpenStack Identity (Keystone) — пакет для уніфікації засобів автентифікації і забезпечення інтеграції компонентів OpenStack з існуючими системами автентифікації, в тому числі побудованими на базі Active Directory і LDAP. Можливе використання і звичайних засобів входу з використанням логіну/пароля або AWS. На плечі Keystone винесені такі операції, як управління користувачами, проєктами і правами доступу
OpenStack Dashboard (Horizon) — вебінтерфейс для управління системою, побудований на основі вебфреймворку Django і застосунку django-openstack. Інтерфейс представлений як для адміністраторів, так і для користувачів. Підтримується широкий спектр засобів для управління ресурсами, створенням і запуском оточень, установкою лімітів. Можливе підключення плаґінів, наприклад, з реалізацією засобів моніторингу
OpenStack Database Service (Trove) — компонент, націлений на підтримку сервісу хмарних баз даних (Database as a Service), на базі як реляційних, так і не реляційних СУБД. Trove дозволяє спростити обслуговування декількох екземплярів СУБД, надаючи засоби для виконання таких операцій, як розгортання СУБД, налаштування, застосування патчів, резервне копіювання, відновлення після збоїв і моніторинг. Повноцінна підтримка забезпечена для MySQL і Percona. Експериментальна підтримка доступна для MongoDB, Redis, Cassandra і CouchDB
OpenStack Metering (Ceilometer) — націлений на збір даних про роботу системи і проведення моніторингу, надаючи користувачам єдине джерело даних про використання всіх сервісів OpenStack
OpenStack Orchestration (Heat) — забезпечує роботу сервісу для управління життєвим циклом застосунків, які працюють у хмарі, і автоматизації розподілу для застосунків обчислювальних ресурсів, мережевої пропускної здатності і місця у сховищі
OpenStack Data Processing (Sahara) — компонент для автоматизації супроводу і управління великими кластерами обробки даних, побудованих на базі Apache Hadoop або Apache Spark
Ironic (Bare Metal Provisioning Service) — компонент, що дозволяє використати наявні методи розгортання конфігурацій віртуальних машин для розгортання систем на реальному устаткуванні або для таких застосувань як контейнери Linux
Відомі користувачі
У число відомих компаній, що використовують OpenStack, входять: