Як Додо Піца доставляє піцу з допомогою хмари Microsoft Azure

Ми продовжуємо розповідати про застосування хмари Microsoft для компаній-розробників рішень (ISV). У цьому випуску Додо Піца, вже міжнародна мережа, заснована в Сиктивкарі, чиєю особливістю є хмарна інформаційна система Додо ІС, глибоко інтегрована в усі бізнес-процеси організації та франшизи.Ця стаття підготовлена за участю декількох осіб, Федора Овчинникова, СЕО Додо Піци, а також команди впровадження — Олександра Шибанова, Андрія Моревского, Арсенія Кравченко і Гліба Лєснікова. Цікаво, що, поки ми готували статтю, Додо Піца вже повинна почати роботу в США.





Федір Овчинников: Добрий день! Наша компанія з'явилася 5 років тому в Сиктивкарі. Це невелике місто на півночі Росії. Тут же досі перебуває наша штаб-квартира, при цьому офіси компанії є в Москві і в США. Сьогодні «Додо Піца» — це міжнародна мережа піцерій у шести країнах. У 2015 році виручка мережі перевищила 1 мільярд рублів. Головний продукт компанії — франшиза, ядром якої є власна інформаційна система Dodo IS. Наша система реалізована у вигляді веб-сайту. Партнери-франчайзі працюють з нею як з SaaS-сервісом. За рахунок глубкой інтеграції системи і бізнесу, використання можливостей інтернету, мобільних гаджетів на кухні, з допомогою Dodo IS ми добиваємося більшої ефективності та прозорості бізнесу. Фактично «Додо Піца» це ІТ-компанія або компанія-кіборг", тобто одночасно і ІТ та роздрібна компанія. Але на відміну від 100% ІТ-компаній ми продаємо нашим клієнтам, тобто франчайзі. ІТ-системи разом з бізнес-системою і брендом. Ключовою особливістю нашого бізнесу є відкритість для клієнтів, інвесторів, партнерів. Відкритість не дозволяє нам працювати погано, так як все відразу стає видним. Наша «хмарна» інформаційна система дозволяє в режимі реального часу показувати ключові метрики нашого бізнесу.

Додо «ІС» є серцем всієї мережі. Сьогодні від неї залежить робота понад 80 піцерій у шести країнах, єдиний кол-центр, наші сайти. І все це веб! У нас навіть каса в ресторані працює в браузері. Ми шукали найкраще рішення з точки зору надійності, якості, зручності для обслуговування. Фізичні сервера не дуже гнучке рішення, плюс частина сервісів вже була виртуализована через Hyper-V, так що хмара була логічним продовженням розвитку. Страшно не було — це ж просто віртуальні машини, їх чого боятися. На Azure впав вибір багато в чому завдяки участі в програмі підтримки стартапів Microsoft BizSpark і «Хмарного гранту» BizSpark+ у вигляді ресурсів Azure $60 000, — все ж, хмара потрібно «помацати», щоб зрозуміти, треба воно вам чи ні.

При цьому, зрозуміло, хмара це в першу чергу інструмент. Бізнес повинен ставити завдання, а ми, в свою чергу, повинні їх вирішувати. Хороший інструмент дозволяє робити кращі рішення. Гнучкість хмари дозволяє зробити більше, краще, придумати багато варіантів і спробувати все. Якщо ж говорити про наслідки переходу, то на переході в хмару ми швидше заощадили, ніж витратили. Витратили кілька десятків людино-годин одного сисадміна, а натомість отримали рік безкоштовної роботи серверів. Не думаю, що таке де-то ще можливо.
У 2016 році ми плануємо збільшити мережу до 180 піцерій, наша мета до 2020 року відкрити більше 2000 піцерій по всьому світу. Зараз відкриваються піцерії в США і Китаї. Всі вони будуть з'єднані між собою через нашу інформаційну систему Dodo IS, тобто через веб-сервіс. Чим більше піцерій у нас буде, тим більшу роль для ефективного управління гратиме наш веб-сервіс Dodo IS. У теж час ми будемо ще в більших масштабах залежати від «хмари».

Потрібно сказати, що починати нам було дуже нелегко. Але це стосується будь-якого стартапу, у нас же ситуація ускладнювалася тим, що ми перебували в Сиктивкарі, далеко від «венчурних» грошей і технологічних центрів.
Основною проблемою для бізнесу міг стати даунтайм та/або втрата даних. Що могло бути заточене під залізні сервера. Сам по собі переїзд це завжди великий ризик. Але очікування більш ніж виправдалися, зараз ми задоволені. Проблем для бізнесу особливо не було, всі наші початкові труднощі ніяк не позначилися на бізнесі і користувачів. Хмара — це, в першу чергу, відмінна масштабованість. Ми дуже швидко ростемо, відкриваємо піцерії в Європі, Америці та Китаї, хмари дають нам можливість зручно розгортати инстансы системи.

З чого приготовлена DodoIS?



Веб-додаток на ASP.NET MVC, Windows Server, IIS, CentOS, NGINX, MySQL (Percona Server). Ми використовуємо NGINX для реверс-проксі і TLS. За NGINX стоять наші бэкенды у вигляді IIS серверів, на яких знаходиться бізнес-логіка. Як реляційної БД у нас працює Percona Server. Для різноманітних кешей в продакшне ми використовуємо Microsoft Redis Cache. Самі додатки написані на ASP.NET.

використовується в розробки?

Visual Studio, ReSharper, Bitbucket, JIRA, Confluence, TeamCity, Microsoft Application Insights. Програмісти працюють в Visual Studio 2015 з ReSharper.

Для контролю версій ми користуємося Mercurial (Bitbucket), JIRA для завдань, Confluence для документації. Деплоим через PowerShell раз в тиждень, Continuous Integration — TeamCity. Ми активно використовуємо Application Insights для двох речей — оцінки навантаженості різних backend API і failed requests/exceptions, правда, наш додаток генерує занадто багато подій і ми вибираємо їх місячний ліміт за 5-6 днів. Незабаром ми зробимо Sampling і це перестане бути проблемою. Типовий юзкейс — коли бачимо незвичайну навантаження на бэкенды/базу, йдемо в AppInsights і дивимося найчастіші запити. Ще один типовий юзкейс — коли щось гальмує без причини, фільтруємо URL і дивимося час виконання запитів, і це все абсолютно без переписування програми, тобто ми просто додаємо AppInsights monitor

Архітектура

Наша система умовно поділяється на дві частини: одна частина це бэкофис — все що пов'язане з виробництвом піци, звітністю, персоналом і т. д. Це працівники 80-і піцерій і керуюча компанія.

Друга частина — це наші клієнти, які взаємодіють з системою через сайт. На даний момент сайт приймає понад 40% всіх замовлень і обслуговує ~6000 унікальних відвідувачів в день.

Архітектуру ми планували з самого початку. Було побоювання, що проект буде высоконагруженным і монолітне рішення (нехай і з розбивкою по верствам) не підійде. Але, беручи до уваги високий ризик стартапу і обмежене фінансування, ми все ж вирішили робити монолітну архітектуру зі стандартною розбивкою на шари (UI, BL, DAL). Це зрозуміла архітектура, з низьким порогом входження і вона дала нам можливість швидкого розвитку. З часом, виходячи з потреб бізнесу, архітектура кілька разів еволюціонувала, але по суті залишалася монолітом.

Зараз ми готуємо систему для майбутнього зростання, а саме для кластерів. Ми почали користуватися Redis Cache, скоро будемо робити ферму з IIS-серверів. Також плануємо перехід на Percona XtraDB Cluster і переводимо статику на CDN.

Що було? Перші спроби міграції

Ми просто створили кілька віртуальних машин, повторюючи наші попередні сервера. Прибрали NGINX-реверс проксі, вважаючи, що в них немає сенсу. Таким чином, вона практично нічим не відрізнялася від локальних серверів в датацентрі. Сервера поставили на таку ж кількість ядер, які були, вони чудово працювали. Частина машин, які вже працювали під Hyper-V, ми дуже швидко перетягли копіюванням образу без будь-яких проблем.



Труднощі і незручності

Старий портал був незручний, новий набагато краще. Не знали специфіку магнітних дисків Azure Storage. Балансер обривав старі TCP сесії, наш додаток не було до цього готове. Спочатку не використовували віртуальні мережі. Дуже не вистачало мінлива початкового рівня, такого собі FAQ для світчер з заліза у хмари, виду «якщо ви мигрируете в хмару, пам'ятайте, що ...». Наявні мануали були датовані 2012-2013 роками, які часто не вписувалися в нові реалії.

Висновки

В нашій індустрії зазвичай використовуються необлачные рішення, рідні додатки для Windows. Ми вважаємо, що це не самий ефективний підхід, наприклад, у McDonaldsa нові версії з'являються раз на півроку.
Найголовніший висновок нашої міграції — для динамічного бізнесу публічна хмара готове дати пропозицію на будь-який попит. Стало також зрозуміло, що навряд чи ми підемо на фізичні сервера. Думаю, хабру безглуздо розповідати про переваги хмар, найголовніше, що ми задоволені і бізнес не відчуває труднощів.

Пасаж про колективній роботі: Федір Овчинников, Олександр Шибанов, Андрій Моревський, Арсеній Кравченко. Розмовляв Білоцерківський Олександр.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.