Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

OpenStack — budujeme privátní cloud od základů

23. 06. 2014 4 min čtení CORE SYSTEMScloud

Klient z finančního sektoru potřeboval cloud — ale z regulatorních důvodů nemohl data umístit mimo vlastní datové centrum. Veřejné cloudy jako AWS nepřicházely v úvahu. Rozhodli jsme se postavit privátní cloud na OpenStacku.

Proč OpenStack?

Na trhu privátních cloudů v roce 2014 existovalo několik alternativ: VMware vCloud Suite (drahý, ale prověřený), CloudStack (jednodušší nasazení) a OpenStack (největší komunita, modulární architektura). Klient chtěl vendor-nezávislé řešení bez lock-inu k jednomu dodavateli. OpenStack — podporovaný firmami jako Rackspace, IBM, HP, Red Hat a desítkami dalších — byl logická volba.

V dubnu 2014 vyšla verze Icehouse, která přinesla výrazné zlepšení stability a nové funkce v síťové vrstvě. Na ní jsme stavěli.

Komponenty OpenStacku

OpenStack není jeden produkt — je to ekosystém služeb, kde každá řeší jeden aspekt cloudové infrastruktury:

  • Keystone — identita a autentizace, centrální správa uživatelů a tenantů
  • Nova — compute služba, spravuje životní cyklus virtuálních strojů
  • Neutron — síťová služba, virtuální sítě, subnety, routery, firewally
  • Cinder — blokové úložiště, persistentní disky pro VM
  • Glance — registry obrazů (images) operačních systémů
  • Horizon — webový dashboard pro správu
  • Swift — objektové úložiště (obdoba S3)
  • Heat — orchestrace, Infrastructure as Code šablony

Hardware a topologie

Nasadili jsme OpenStack na 12 fyzických serverů v jednom racku: 3 controller nody (HA), 8 compute nodů a 1 storage node s Ceph clusterem. Každý compute node měl dva Xeon E5-2650 v2, 128 GB RAM a 2× SSD pro ephemeral storage. Síť byla 10 GbE s dedikovanými VLANy pro management, tenant traffic a storage.

# Heat šablona — vytvoření VM s floating IP
heat_template_version: 2014-10-16

resources:
  web_server:
    type: OS::Nova::Server
    properties:
      image: ubuntu-14.04-lts
      flavor: m1.medium
      key_name: deploy-key
      networks:
        - network: { get_resource: internal_net }

  floating_ip:
    type: OS::Neutron::FloatingIP
    properties:
      floating_network: external

  association:
    type: OS::Neutron::FloatingIPAssociation
    properties:
      floatingip_id: { get_resource: floating_ip }
      port_id: { get_attr: [web_server, addresses, internal_net, 0, port] }

Neutron: síťová vrstva jako největší výzva

Pokud je Nova srdce OpenStacku, Neutron je jeho nejsložitější orgán. Virtuální sítě, floating IP adresy, security groups, load balancery — to vše řeší Neutron. A v roce 2014 to byla také komponenta s nejvíce bugy.

Zvolili jsme Open vSwitch jako síťový backend s VXLAN tunely mezi compute nody. Každý tenant má izolovanou virtuální síť — nemůže vidět provoz jiného tenanta. Security groups implementují stavový firewall na úrovni portu.

Největší problém: Neutron L3 agent byl single point of failure. Pokud spadl network node, všechny floating IP přestaly fungovat. Řešení — Distributed Virtual Router (DVR) — bylo v Icehouse experimentální. Nasadili jsme HA L3 agenta s VRRP failoverem.

Ceph jako storage backend

Pro Cinder (blokové úložiště) a Glance (image registry) jsme jako backend zvolili Ceph — distribuovaný storage systém. Tři OSD nody s celkem 24 disky poskytovaly redundantní úložiště s replikačním faktorem 3.

Výhoda Ceph + OpenStack integrace: copy-on-write klonování. Vytvoření nového VM z image trvá sekundy — Ceph pouze vytvoří thin klon, skutečná data se kopírují až při prvním zápisu.

Automatizace nasazení

Ruční instalace 12 serverů by trvala týdny. Použili jsme Puppet s moduly od stackforge (dnes openstack-puppet) pro automatizovanou konfiguraci všech komponent. Celý cluster šlo „smazat a znovu vytvořit” během dvou hodin — klíčové pro testování upgradů.

Provozní zkušenosti

Monitoring

OpenStack generuje obrovské množství logů. Nasadili jsme ELK stack a Nagios pro monitoring API endpointů. Klíčová metrika: API response time. Pokud Nova API odpovídá déle než 2 sekundy, něco je špatně — typicky přetížený RabbitMQ nebo plný compute node.

Upgrady

Upgradovat OpenStack mezi verzemi je notoricky obtížné. Každá komponenta má vlastní databázové migrace, API verze se mění, konfigurace se přejmenovává. Naše strategie: blue-green deployment controller nodů — novou verzi nasadíme na standby nody, přepneme traffic, staré nody jsou fallback.

Výsledky po prvním roce

Na clusteru běží přes 200 virtuálních strojů napříč 8 tenanty. Provisioning nového VM trvá pod 30 sekund. Vývojáři si sami vytvářejí prostředí přes Horizon dashboard nebo CLI — bez tiketu na infrastrukturní tým. Dostupnost platformy za první rok: 99,95 %.

OpenStack není pro každého, ale pro ty správné případy je skvělý

OpenStack vyžaduje dedikovaný tým — minimálně dva lidi na full-time operations. Není to „nainstaluj a zapomeň”. Ale pro organizace, které potřebují cloud a nemohou nebo nechtějí jít do public cloudu, je to nejlepší open-source alternativa.

Klíčové poučení: začněte s minimální konfigurací (Nova, Neutron, Cinder, Keystone), ověřte v produkci a teprve pak přidávejte další služby.

openstackcloudvirtualizaceinfrastruktura