Tarantool Enterprise — это не только ценный мех, но ещё и богатый фичами SDK. Ярослав рассказал, чем NT отличается от opensource-версии и какую пользу может принести. А отличий в нём немало: это и инструментарий администрирования кластером, и готовый workflow разработки, и статическая сборка, не требовательная к настройке окружения.
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Чем полезен Tarantool Enterprise
1. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 1/52
Чем полезен Tarantool Enterprise
Ярослав Дынников
Tarantool, Mail.Ru Group
17 июня 2019
1 / 52
2. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 2/52
Tarantool Enterprise
Коммерческий продукт.
Появился в прошлом году.
Объединяет несколько полезных для разработчика штук.
2 / 52
3. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 3/52
Первая штука: кластер
3 / 52
4. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 4/52
Первая штука: кластер
Удобное управление конфигурацией vshard
4 / 52
5. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 5/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
sharding_cfg = {
['cbf06940-0790-498b-948d-042b62cf3d29'] = {
replicas = { ... },
},
['ac522f65-aa94-4134-9f64-51ee384f1a54'] = {
replicas = { ... },
},
}
vshard.router.cfg(...)
vshard.storage.cfg(...)
5 / 52
6. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 6/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
6 / 52
7. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 7/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
7 / 52
8. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 8/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
8 / 52
9. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 9/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
9 / 52
10. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 10/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
10 / 52
11. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 11/52
Первая штука: кластер
Удобное управление конфигурацией vshard
"Из коробки" vshard управляется программно с помощью Lua.
11 / 52
12. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 12/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
12 / 52
13. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 13/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
13 / 52
14. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 14/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
Топология кластера: инстансы.
14 / 52
15. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 15/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
Топология кластера: репликасеты и инстансы.
15 / 52
16. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 16/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
Топология кластера: репликасеты и инстансы.
16 / 52
17. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 17/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
Топология кластера: репликасеты и инстансы.
Протогол SWIM для мониторинга здоровья.
17 / 52
18. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 18/52
Первая штука: кластер
Кластер сам управляет конфигурацией vshard
Кластер добавляет концепцию "распределённая конфигурация".
Топология кластера: репликасеты и инстансы.
Протогол SWIM для мониторинга здоровья.
18 / 52
19. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 19/52
Вторая штука: разработка приложений
19 / 52
20. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 20/52
Вторая штука: разработка приложений
Кластер помогает строить архитектуру приложений
20 / 52
21. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 21/52
Вторая штука: разработка приложений
Кластер помогает строить архитектуру приложений
21 / 52
22. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 22/52
Вторая штука: разработка приложений
Кластер помогает строить архитектуру приложений
Кластер добавляет концепцию "ролей".
22 / 52
23. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 23/52
Вторая штука: разработка приложений
Кластер помогает строить архитектуру приложений
Кластер добавляет концепцию "ролей".
23 / 52
24. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 24/52
Вторая штука: разработка приложений
Кластер помогает строить архитектуру приложений
Кластер добавляет концепцию "ролей".
Роли конфигурируются вместе с топологией.
24 / 52
25. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 25/52
Вторая штука: разработка приложений
Кластер управляет жизненным циклом роли
25 / 52
26. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 26/52
Вторая штука: разработка приложений
Кластер управляет жизненным циклом роли
function init()
26 / 52
27. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 27/52
Вторая штука: разработка приложений
Кластер управляет жизненным циклом роли
function init()
function validate_config()
function apply_config()
27 / 52
28. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 28/52
Вторая штука: разработка приложений
Кластер управляет жизненным циклом роли
function init()
function validate_config()
function apply_config()
function stop()
28 / 52
29. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 29/52
Вторая штука: разработка приложений
Кластер управляет жизненным циклом роли
function init()
function validate_config()
function apply_config()
function stop()
Роли могут взаимодействовать посредством RPC
cluster.rpc_call('scheduler', ...)
29 / 52
30. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 30/52
Вторая штука: разработка приложений
Роли похожи на микросервисы, но есть отличия
30 / 52
31. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 31/52
Вторая штука: разработка приложений
Роли похожи на микросервисы, но есть отличия
Роли не деплоятся по-отдельности.
31 / 52
32. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 32/52
Вторая штука: разработка приложений
Роли похожи на микросервисы, но есть отличия
Роли не деплоятся по-отдельности.
Роль уникальна в пределах инстанса.
32 / 52
33. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 33/52
Вторая штука: разработка приложений
Роли похожи на микросервисы, но есть отличия
Роли не деплоятся по-отдельности.
Роль уникальна в пределах инстанса.
В пределах репликасета набор ролей одинаковый.
33 / 52
34. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 34/52
Третья штука: SDK
Для сборки проекта используется утилита tarantoolapp
34 / 52
35. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 35/52
Третья штука: SDK
Для сборки проекта используется утилита tarantoolapp
tarantoolapp pack rpm упаковывает всё в один артефакт:
зависимости
сам проект
tarantool (бинарь)
systemd сервисы
35 / 52
36. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 36/52
Третья штука: SDK
Для управления зависимостями используется rockspec
$ tarantoolctl rocks make
36 / 52
37. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 37/52
Третья штука: SDK
Для управления зависимостями используется rockspec
$ tarantoolctl rocks make
package = 'manhattan'
version = 'scm-1'
source = {url = 'git+ssh://gitlab.com/manhattan.git'}
dependencies = {
'cluster == 0.8.0-1',
}
build = {
type = 'none' -- or make/cmake
}
37 / 52
38. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 38/52
Третья штука: SDK
Для управления зависимостями используется rockspec
$ tarantoolctl rocks make
package = 'manhattan'
version = 'scm-1'
source = {url = 'git+ssh://gitlab.com/manhattan.git'}
dependencies = {
'cluster == 0.8.0-1',
}
build = {
type = 'none' -- or make/cmake
}
38 / 52
39. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 39/52
Третья штука: SDK
Для управления зависимостями используется rockspec
$ tarantoolctl rocks make
package = 'manhattan'
version = 'scm-1'
source = {url = 'git+ssh://gitlab.com/manhattan.git'}
dependencies = {
'cluster == 0.8.0-1',
}
build = {
type = 'none' -- or make/cmake
}
39 / 52
40. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 40/52
Третья штука: SDK
Для управления зависимостями используется rockspec
$ tarantoolctl rocks make
package = 'manhattan'
version = 'scm-1'
source = {url = 'git+ssh://gitlab.com/manhattan.git'}
dependencies = {
'cluster == 0.8.0-1',
}
build = {
type = 'none' -- or make/cmake
}
40 / 52
41. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 41/52
Третья штука: SDK
Весь шаблонный код можно сгенерировать
$ tarantoolapp create --template cluster
Enter project name [myproject]: manhattan
*.lua
rockspec
git репозиторий
.gitignore , и прочий boilerplate
41 / 52
42. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 42/52
Четвёртая штука: минимум зависимостей
Tarantool Enterprise не требователен к окружению
42 / 52
43. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 43/52
Четвёртая штука: минимум зависимостей
Tarantool Enterprise не требователен к окружению
Tarantool собран статически, зависит только от libc.
43 / 52
44. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 44/52
Четвёртая штука: минимум зависимостей
Tarantool Enterprise не требователен к окружению
Tarantool собран статически, зависит только от libc.
Проекты можно разрабатывать и деплоить без рутовых прав.
44 / 52
45. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 45/52
Четвёртая штука: минимум зависимостей
Tarantool Enterprise не требователен к окружению
Tarantool собран статически, зависит только от libc.
Проекты можно разрабатывать и деплоить без рутовых прав.
SDK включает в себя оффлайн репозиторий rocks.
45 / 52
46. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 46/52
Пятая штука: коннекторы
Tarantool Enterprise позволяет подключаться к различным системам
Oracle
ODBC
LDAP
46 / 52
47. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 47/52
Пятая штука: коннекторы
Tarantool Enterprise позволяет подключаться к различным системам
Oracle
ODBC
LDAP
OpenTracing
Kafka (static build)
Продолжение следует!
47 / 52
48. 17/06/2019 Чем полезен Tarantool Enterprise
localhost:8000/#1 48/52
Шестая штука: web-интерфейс
Топологией и конфигурацией кластера можно управлять мышкой
48 / 52