15
Recommerce.by Как мы пытались собрать свое облако и на чем остановились

Recommerce изнутри

Embed Size (px)

DESCRIPTION

Дмитрий Саутченков Ведущий разработчик/Co-founder в Рекомерс Как мы пытались собрать свое облако и на чем остановились.

Citation preview

Page 1: Recommerce изнутри

Recommerce.byКак мы пытались собрать свое облако и на чем остановились

Page 2: Recommerce изнутри

Что такое Recommerce?

- SaaS для создания интернет-магазинов- Работает в 5 странах мира- 150+ платных клиентов- 300+ магазинов в месяц- 30.000+/сутки уникальных посещений магазинов- 4 сервера в Rackspace + 2 физических в РБ

Page 3: Recommerce изнутри

Как работает Recommerce

Debian GNU/Linux 7 Wheezy

Nginx php-fpm mongodb

Статика БД

файлы зон

BIND9

DNS запросы

HTTP запросы

PHP сессии

Page 4: Recommerce изнутри
Page 5: Recommerce изнутри

Могилевский ЦОД БТК

Сервер 1

Сервер 2

Page 6: Recommerce изнутри
Page 7: Recommerce изнутри

Сервер 1

Могилевский ЦОД БТК Минский ЦОД БТК

Пинг ~ 5 мс…….

…….

Сервер 2

…….

…….

Page 8: Recommerce изнутри
Page 9: Recommerce изнутри

Как работает Recommerce

Debian GNU/Linux 7 Wheezy

Nginx php-fpm mongodb

Статика БД

файлы зон

BIND9

DNS запросы

HTTP запросы

PHP сессии

Page 10: Recommerce изнутри

Что нужно решить

- Репликация:- БД

- Статика - PHP cессии - DNS зоны- Распределение запросов при отказе

Page 11: Recommerce изнутри

Репликация БД Mongodb

Page 12: Recommerce изнутри

То что нам нужно:

Сервер 1

Сервер 2

Page 13: Recommerce изнутри

Варианты репликация статики

- DRBD + ocfs2Отдача: nginx из файловой системы

- Mongodb GridFS (fuse ?)Отдача: nginx через php-fpm

- The Elliptics network (pohmelfs ?) Отдача: nginx через модуль из EBLOB

Page 14: Recommerce изнутри

Распределение запросов на уровне DNS

shopdomain.by

NS1: ns1.recommerce.by - ip 1.1.1.1NS2: ns2.recommerce.by - ip 2.2.2.2

ip 1.1.1.1 ip 2.2.2.2

IN A 1.1.1.1 IN A 2.2.2.2

Сервер 2Сервер 1

Round robin

Page 15: Recommerce изнутри

Спасибо за внимание!

Вопросы?

Контакты:vk.com/sautchenkovfb.com/[email protected]