OpenVZ на платформе Xen

kyivpy #7 / Jun 9, 2012
Kiev, Ukraine

О чем это?

Виртуализация — это изоляция вычислительных процессов(Software) и ресурсов(CPU/Storage) друг от друга.

Xen

Кроссплатформенный гипервизор:

Amazon EC2

Amazon Elastic Compute Cloud — веб-сервис, который предоставляет вычислительные мощности в облаке.

OpenVZ

Виртуализация на уровне операционной системы, которая базируется на ядре Linux:

Минусы OpenVZ

Зачем это надо?

Преимущества EC2

Преимущества OpenVZ

+ =?

Cтавим OpenVZ на EC2

pv-grub & custom kernels

ParaVirtualized GRand Unified Bootloader

Ядро с поддержкой Xen

Ок, я всё понял
 — но где же python?!!

Provisioning

pbs.py


from pbs import ifconfig
print ifconfig("eth0")


from pbs import git

# resolves to "git branch -v"
print git.branch("-v")

Некоторые детали нашей конфигурации

Контейнеры

[root@nimblevm ~]# vzlist
      CTID      NPROC STATUS    IP_ADDR         HOSTNAME
       db1         21 running   10.0.102.101    db1
       db2         17 running   10.0.102.102    db2
      app1        292 running   10.0.102.111    app1
       tb1         40 running   10.0.102.121    tb1
   search1         40 running   10.0.102.131    search1
  searchc1         42 running   10.0.102.141    searchc1
       lb1         12 running   10.0.102.151    app
dispatcher         81 running   10.0.102.161    reg
      slon         25 running   10.0.102.171    slon
  dirigent         25 running   10.0.102.181    dirigent

Наш конфиг

Сетевые штуки

Прочие бонусы

Печальки

***** SERVER RESTARTED *****
MongoDB starting : pid=474 port=27018 dbpath=/mnt/db/ 64-bit

** WARNING: You are running in OpenVZ. This is known to be broken!!!
	
db version v2.0.5, pdfile version 4.5
git version: 1bb4de4630302fad8af53824ca4f627db490b753

Выводы

Уменьшение стоимости

ДО ПОСЛЕ
~ 3400$ / month ~ 980$ / month
1 Staging (12 app / 11 db) 7 Vboxes

Моделирование production окружения

Очередь на деплой

Изоляция сложности

Потанцуем?

Спасибки!

Andrew Druchenko


github.com/bananos

webapp.org.ua

Use a spacebar or arrow keys to navigate