Использование облачных технологий в учебном процессе
Публичный IaaS на базе ПО с открытым кодом
1.
2. За что мы любим Apache CloudStack?
https://cloudstack.apache.org/
3. За что мы любим Apache CloudStack?
Управляемость
• единый портал управления;
• универсальная VNC-консоль;
• функциональный API.
Всеядность
• гипервизоры: KVM, LXC, XEN, VMWare, Hyper-V;
• хранилища: GlusterFS, Ceph, NFS, SMB, GFS2, OCFS2, локальные хранилища и файловые системы,
доступные через общую точку монтирования.
Высокий уровень безопасности
• шифрование сетевых соединений (IPSec, HTTPS);
• генерация и назначение административных паролей к виртуальным машинам;
• брандмауеры и балансировщики (встроенный VR, NetScaler, F5, FortiGate, pfSense и другие звери).
https://cloudstack.apache.org/
4. За что ещё мы любим Apache CloudStack?
https://cloudstack.apache.org/
5. За что ещё мы любим Apache CloudStack?
Надёжность
• кластеризация, живая миграция в пределах кластера,
• аффинитивные группы;
• снимки виртуальных дисков, снимки виртуальных машин.
Быстрота и удобство развёртывания
• библиотеки ISO-образов и шаблонов виртуальных машин;
• предпочитаемые операционные системы для хостов;
• тегирование хранилищ и хостов, использование тегов в конфигурации офферингов.
Гибкость политик доступа
• домены, учётные записи, пользователи;
• лимитирование использования ресурсов;
• поддержка LDAP.
https://cloudstack.apache.org/
6. Пример развёртывания Apache CloudStack
Рецепт бессмертия CloudStack Server #1 CloudStack Server #2
MySQL Server #1 MySQL Server #2
M/M-replication
CARP
CARP
Storage ClusterVirtualization Cluster
GlusterFS over RDMA
InfiniBand
кластер серверов управления
кластер базы данных
кластер виртуализации
кластер хранилища
стек коммутаторов
очень желательны прямые руки
https://cloudstack.apache.org/
7. MonkeyMan: оператор системы управления
Фреймворк автоматизации MonkeyMan
реализован на Perl5 с применением Moose
объекты инфраструктуры – объекты Perl
использование словарей для связи с API
использование XML и XPath
подключаемые модули и выбор
конфигурации
http://monkeyman.tucha.ua/
8. MonkeyMan: Perl5 и Moose
# Use Moose and be happy :)
use Moose::Role;
has 'monkeyman' => (
is => 'ro',
isa => 'MonkeyMan',
reader => 'get_monkeyman',
writer => '_set_monkeyman',
predicate => '_has_monkeyman',
required => 1
);
Что нам даёт Moose и зачем здесь этот лось?
Атрибуты
Аксессоры
Валидация
Роли
Подклассы
Расширение синтаксиса
Art by www.animalcrewshop.com
http://monkeyman.tucha.ua/
9. MonkeyMan: пример запроса к Apache CloudStack
my $api = $monkeyman->get_cloudstack('PRIMARY')->get_api;
my $virtualmachine = $api->perform_action(
type => 'VirtualMachine',
action => 'create',
requested => { 'element' => 'element' },
parameters => {
zoneid => 'f09fe8dd-3567-4ff6-ac3a-2f85dec2636d',
templateid => '8b53dc6a-084d-4b5a-8ac5-3f88301c6703',
serviceofferingid => '97d74503-d609-4edb-8633-748d400aad5e',
# ...skipped...
}
);
http://monkeyman.tucha.ua/
19. MonkeyMan: выбор конфигурации
$ ./my_application.pl --help
...skipped...
-C <filename>, --configuration <filename>
[opt] The main configuration file
...skipped...
--default-password-generator <ID> (the default actor is PRIMARY)
[opt] The default Password Generator actor to be used
--default-cloudstack <ID> (the default actor is PRIMARY)
[opt] The default Apache CloudStack actor to be used
--default-logger <ID> (the default actor is PRIMARY)
[opt] The default Logger actor to be used
--default-zendesk <ID> (the default actor is PRIMARY)
[opt] The default Zendesk actor to be used
...skipped...
http://monkeyman.tucha.ua/