Как уменьшить количество слоев в архитектуре с 5 до 2
Пять уровней — не много ли это? Я думаю, что много и когда-то пришел к мысли, что все эти 5 уровней могут заменить всего 2 уровня. Web proxy и database proxy можно соединить в первый уровень. Application server, система кеширования и DBMS соединяются во второй уровень. Всего два уровня! Но что это дает? Меньше уровней — меньше ресурсов, меньше зависимостей, и, как бонус, — высокая производительность.
Так о чем я расскажу и чему вы научитесь? Я поделюсь опытом создания таких микросервисов используя NGINX и DBMS Tarantool. Мы научимся их масштабировать использую кластеризацию (шардинг или/и репликацию).
Я очень рекомендую захватить ваши лаптопы, ибо будет очень много практики!
Типичная микросервисная архитектура обязана иметь пять уровней (слоев):
- вам нужно иметь web proxy, к примеру NGINX, чтобы обрабатывать медленных клиентов (при неустойчивом интернете) и отдавать статику;
- вам нужен application server, к примеру Apache или Django, чтобы реализовывать бизнес логику;
- вам нужна система кеширования, к примеру Memcached или Redis, чтобы кешировать контент из DBMS;
- вам нужна database proxy или database connection poll, чтобы ваша DBMS работала максимально эффективно;
- и, наконец, вам нужна DBMS, чтобы хранить сами данные.
Пять уровней — не много ли это? Я думаю, что много и когда-то пришел к мысли, что все эти 5 уровней могут заменить всего 2 уровня. Web proxy и database proxy можно соединить в первый уровень. Application server, система кеширования и DBMS соединяются во второй уровень. Всего два уровня! Но что это дает? Меньше уровней — меньше ресурсов, меньше зависимостей, и, как бонус, — высокая производительность.
Так о чем я расскажу и чему вы научитесь? Я поделюсь опытом создания таких микросервисов используя NGINX и DBMS Tarantool. Мы научимся их масштабировать использую кластеризацию (шардинг или/и репликацию).
Я очень рекомендую захватить ваши лаптопы, ибо будет очень много практики!
Agenda:
- Tarantool, basics & best practices;
- Nginx. basics & best practices;
- учимся строить микросервисы на Nginx и Tarantool, плюс немного теории;
- масштабирование, basics & best practices;
- как это используют в продуктиве (Beeline, Avito, Mail.Ru, CallTouch, ...)?