Сегодня всё больше и больше компаний решаются на перевод своей инфраструктуры и сервисов в облака. Некоторые даже начинают строить свой бизнес, не имея ни единого собственного сервера для обработки или хранения пользовательских данных, и при этом становятся лидерами в своих сегментах рынка.
Но, несмотря на очевидные преимущества этого подхода, не всех устраивает перспектива быть привязанными к конкретному поставщику облачных услуг. В докладе рассказывается об основных тенденциях в современном «облакостроении», о свободе и гибкости и, самое главное, представляется наша открытая облачная платформа.
5. Неуправляемые платформы
+ Написать нужно только основную
логику.
+ Быстрая и дешёвая разработка.
– Ограничения в выборе инструментов.
– Нет контроля за окружением.
5
6. Управляемые платформы
+ Можно запустить почти всё что угодно.
+ Полный контроль над окружением.
– Нужно всё написать самому.
– Полный цикл разработки.
6
11. Hyengine
Cocaine
Sandbox Process
vs
Language Whatever you
Runtime + want
Code
11
12. Hyengine
Cocaine
Sandbox Process
+
Language Whatever you
Runtime + want
Code
12
13. Cocaine Sandboxes
+ Асинхронный код.
+ Грязная работа уже сделана.
+ Биндинги для Python, Perl, C, C++.
– Поддержка фреймворков — так себе.
– Нужно адаптировать существующий код.
13
15. Cocaine Processes
+ Можно писать хоть на Whitespace.
+ Не нужно переделывать старый код.
+ Биндинг для Node.js.
– Нужно реализовать RPC.
– Придётся забраться под капот.
15
16. Cocaine Processes
var cocaine = require(‘cocaine’);
var slave = cocaine.createSlave(function (e, rq, rp) {
rq.on(‘chunk’, function (chunk) {
console.log(‘Got chunk: ‘ + chunk);
rp.close();
});
rq.on(‘close’, function () {
console.log(‘Bye’);
});
});
slave.run(argc, argv);
16
22. Изоляция
• Разработчики не думают о ресурсах.
• И уверены, что на сервере будет
запущен только их код.
• Серверы не резиновые, как Москва.
22
23. Изоляция
Cocaine
Isolation Isolation
Group A Group B
App #1 Worker App #3 Worker
App #1 Worker App #3 Worker
App #2 Worker App #3 Worker
App #2 Worker App #3 Worker
23
24. Изоляция
• Изолировать можно в CGroups, LXC.
• Группы настраиваются в профилях.
• Профиль — это также и настройки
таймаутов, очередей и других
ограничений.
24
31. Транспорт
• HTTP/1.1 —добро, но его мало.
• Например, не очень выходит
пережимать BluRay-видео и тут же его
стримить.
• И, вообще говоря, ему пора в музей.
31
32. Транспорт
• Бинарные трубы и сессии.
• Поддержка протоколов на основе этих
примитивов.
• Модные штуки — multiplexing,
streaming, ...
32