OpenStack — private va public cloud infratuzilmasini qurish uchun mo‘ljallangan ochiq kodli platforma. U compute, network, block storage, object storage, image, identity va orchestration xizmatlarini alohida komponentlar orqali boshqaradi.
OpenStack ko‘pincha tashkilotning o‘z data centerida Infrastructure as a Service yaratish uchun ishlatiladi.
Modular architecture
OpenStack monolit dastur emas.
Asosiy xizmatlar API orqali bir-biri bilan ishlaydi.
Operator kerakli komponentlarni tanlaydi.
Bu moslashuvchanlik beradi, ammo deployment, upgrade va troubleshootingni murakkablashtiradi.
Nova
Nova compute instance lifecycle’ini boshqaradi.
U:
- instance create;
- schedule;
- stop;
- resize;
- migrate;
- terminate
jarayonlarini orkestratsiya qiladi.
Hypervisor bilan maxsus driver orqali aloqa qiladi.
Nova image yoki networkning o‘zini saqlamaydi.
Neutron
Neutron networking xizmatidir.
U:
tushunchalarini boshqaradi.
Backend Open vSwitch, OVN yoki vendor solution bo‘lishi mumkin.
Cinder
Cinder block storage volume’larini boshqaradi.
Volume VMga attach qilinadi.
bo‘lishi mumkin.
Snapshot, clone va type orqali performance class taqdim etiladi.
Swift
Swift distributed object storage tizimidir.
U objectni account, container va object modelida saqlaydi.
Replication va eventual consistencyga yaqin modeldan foydalanadi.
Bu dasturlash tili Swift bilan bir xil tushuncha emas.
Glance
Glance virtual machine image katalogini boshqaradi.
Image metadata va content backend storage’da saqlanadi.
Format va visibility policy mavjud.
Nova instance yaratishda Glance image’dan foydalanadi.
Keystone
Keystone identity, authentication va service catalogni boshqaradi.
Tushunchalar:
Boshqa OpenStack service’lar tokenni tekshiradi.
Horizon
Horizon web dashboard orqali cloud resurslarini boshqarish imkonini beradi.
User instance, network, volume va image bilan ishlashi mumkin.
Dashboard API ustida ishlaydi.
Operator barcha advanced settinglarni faqat Horizon orqali boshqarmasligi mumkin.
Project
Project tenantga yaqin resource boundary.
User role orqali project ichidagi resursga kiradi.
Quota project bo‘yicha belgilanadi.
Development va production uchun alohida project ishlatilishi mumkin.
Flavor
Flavor instance uchun virtual hardware profilini belgilaydi:
- vCPU;
- RAM;
- root disk;
- ephemeral disk;
- extra spec.
Extra spec NUMA, huge page yoki accelerator placementga ta’sir qilishi mumkin.
Image
Instance boot qilish uchun OS image ishlatiladi.
Image cloud-initga tayyor bo‘lishi mumkin.
Driver, agent va partition layout hypervisorga mos bo‘ladi.
Golden image security patch bilan muntazam yangilanadi.
Availability zone
Compute host va storage backend mantiqiy zonalarga ajratilishi mumkin.
User instance yoki volume uchun zone tanlaydi.
OpenStackdagi zone har doim public cloud’dagi fizik mustaqillik darajasini avtomatik kafolatlamaydi.
Operator topology’ni belgilaydi.
Scheduler
Nova scheduler instance’ni mos compute hostga joylashtiradi.
Filter va weigher:
- resurs;
- availability;
- aggregate;
- affinity;
- architecture;
- NUMA;
- accelerator
signalidan foydalanishi mumkin.
Noto‘g‘ri overcommit performance muammosi yaratadi.
Hypervisor
KVM keng ishlatiladigan hypervisor backendlaridan biri.
Boshqa hypervisor driverlari ham bo‘lishi mumkin.
Compute node virtualization extension, bridge va storage accessga ega bo‘ladi.
Live migration shared yoki replicated storagega bog‘liq.
Message queue
OpenStack service’lari asynchronous RPC va event uchun message broker ishlatishi mumkin.
Broker failure control plane operationlarini to‘xtatadi.
HA, authentication va queue monitoring muhim.
Duplicate message idempotent operation talab qiladi.
Database
Control plane service’lari state’ni relational database’da saqlaydi.
Database cluster va migration upgrade uchun kritik.
Har service schema versioniga ega.
Manual table edit unsupported holat yaratishi mumkin.
API
Har component RESTga yaqin API taqdim etadi.
Command-line client va automation shu API’dan foydalanadi.
Microversion clientga ma’lum API behaviorini tanlashga yordam berishi mumkin.
Token va endpoint service catalogdan olinadi.
Deployment
OpenStackni qo‘lda o‘rnatish murakkab.
Automation vositalari:
- configuration management;
- containerized control plane;
- orchestration;
- packaged distribution
ishlatilishi mumkin.
Network, storage va certificate design oldindan rejalashtiriladi.
Upgrade
Komponentlar bir-biriga mos versionlarda yangilanadi.
Rolling upgrade ayrim xizmatlarda qo‘llanishi mumkin.
Database migration, API compatibility va message format muhim.
Upgrade staging environmentda sinovdan o‘tadi.
Private cloud
OpenStack data sovereignty, custom hardware va katta barqaror workload uchun private cloud beradi.
Biroq hardware, operator jamoa, capacity va 24/7 support xarajati tashkilot zimmasida.
Public cloud billing bilan to‘g‘ridan-to‘g‘ri solishtirishda total cost hisoblanadi.
Heat
Heat template asosida OpenStack resurslarini orchestration qiladi. Stack ichida instance, network, volume va dependencylar deklarativ yoziladi. Update plan resource replacementga olib kelishi mumkin, shu sababli production data resource’lari ehtiyotkor belgilanadi.
Telemetry
Metric va eventlarni yig‘ish uchun alohida telemetry komponentlari ishlatilishi mumkin. Billing, capacity va alarm shu ma’lumotga tayanadi. Katta cloud’da telemetryning o‘zi katta storage workloadga aylanadi.
Multi-tenancy
Projectlar bir physical clusterdan foydalanadi. Network isolation, quota va scheduler noisy neighbor ta’sirini kamaytiradi. Host aggregate ayrim workloadlarni maxsus hardwarega ajratishi mumkin.
Operatsion jamoa
Private cloud uchun compute, network, storage, database va security bo‘yicha aniq ownership kerak. Control plane ishlashi, capacity va upgrade doimiy kuzatiladi.
Bog‘liq tushunchalar
OpenStack, Nova, Neutron, Cinder, Swift Object Storage, Glance, Keystone, Horizon, Private cloud, Hypervisor, Infrastructure as a Service