Головна інформація про клієнта
Цільова аудиторія
Проблема
Піготовка до створення
Що зробили для оптимізації CMS
Тестування в режимі реального часу
Результати та переваги
Які висновки зробили і чого навчилися в процесі роботи
Національний банк України має інтернет-магазин нумізматичних товарів, доступ до якого можна отримати за адресою https://coins.bank.gov.ua/. Магазин пропонує широкий асортимент продукції, зокрема:
Дизайн сайту лаконічний - нічого не відволікає від покупок, проте за простим дизайном схований потужний функціонал, автоматизація процесів складу та логістики.
Цільова аудиторія сайту https://coins.bank.gov.ua/ складається з осіб, які цікавляться нумізматикою, що являє собою вивчення або колекціонування грошових знаків, зокрема монет, жетонів, паперових грошей і пов'язаних з ними предметів. Ось деякі конкретні групи, які можуть бути зацікавлені в сайті:
Колекціонери монет: Ці люди збирають монети як хобі. Їх може зацікавити розмаїття монет, представлених на сайті, включно із золотими і срібними монетами, пам'ятними монетами і наборами монет.
Дослідники нумізматики: Це люди або установи, які вивчають історичні та художні аспекти монет. Вони можуть використовувати сайт для отримання інформації про нові випуски, історичні монети та спеціальні видання.
Інвестори: Деякі люди купують монети як інвестиції, особливо золоті та срібні монети. Ці люди можуть використовувати веб-сайт для відстеження нових випусків і цін.
Широка публіка: Сайт також може бути цікавий широкому загалу, особливо тим, хто шукає унікальні подарунки або сувеніри. Пам'ятні монети або банкноти спеціального випуску можуть стати унікальним подарунком.
Любителі історії та культури: Люди, які цікавляться історією та культурою України, також можуть відвідати цей сайт, оскільки монети часто відображають значущі події, постаті та символи з історії країни.
Це друга спроба національного банку України запустити інтернет-магазин, який повинен був витримувати надвисокі навантаження - більше 1000 додавань в кошик за 1 секунду. Таке навантаження створювалось тому, що кількість товара завжди обмежена, а час виставлення нового лімітованого товару відомий всім охочим. Тому попит на одну позицію надзвичайно високий.
Перша версія сайту, яку робили до нас мала труднощі. Хоча платформа Solomono (базова варіація) достатньо оптимізована і витримує великі навантаження, в даному випадку потребувала додаткової кастомізації на всіх рівнях, тому що не витримувала навантаження цього проекту.
Для створення інтернет-магазину Національного банку України було встановлено термін 6 місяців. Які задачі були виконані напередодні:
1. Налаштували інфраструктуру серверів (створили близько 10 серверів)
2. Оптимізували сервери
3. Створили індивідуальний дизайн
4. Зверстали дизайн під десктоп та мобільні пристрої
5. Доробили багато додаткового функціоналу згідно ТЗ. Наприклад, при додаванні товару до кошика у клієнта є 30 хвилин (спрацьовує таймер з відліком), щоб встигнути оформити замовлення. Товар відразу віднімається "зі складу". Для порівняння, в інших движках, товар віднімається "зі складу" тільки по факту оформлення замовлення.
6. Інтегрували API SoloMono з внутрішніми системами банку. Виконали інтеграцію з Новою Поштою, Укрпоштою, LiqPay.
1. Кешування частих запитів до бази даних, розділення кешу на короткострокові та довгострокові.
2. Розмежування різних серверів під різні структури інтернет-магазину (базу даних, адмін-панель, фронт-частини, поштової відправки)
3. Оптимізація запитів до бази даних
4. Впровадження системи черг для роботи з кошиком (додавання, віднімання, видалення) - це зменшує навантаження на БД
5. Використання CDN (Content delivery network) - для відображення картинок і усіх інших статичних файлів (скрипти, стилі, шрифти).
Сторінка кошика покупця
Щоб тестування проходило максимально комфортно під час роботи інтернет-магазину, наші фахівці створили окремий dev-сервер на якому тестується існуючий функціонал, а також нові доробки. Тестування можуть робити як програмісти так і сам клієнт.
Після того, як нові функції протестовані - ми робимо реліз нової версії на основний сайт. Далі проводимо тестування нових функції на основному сайті і перевіряємо навантаження. Навантаження у тестовому режимі створюється за рахунок спеціального ПЗ.
У процесі тестування неодноразово було виявлено "вузьке горло" в різних системах - при цьому значно знижується пропускна здатність і втрачається частка продуктивності. На різних етапах оптимізації, проблеми виникали в різних частинах, наприклад спочатку в БД, потім під час кешування, потім під час читання всередині мережі тощо. Наші фахівці виправляли кожне вузьке місце і знову проводили тестування.
Сторінка порівняння товарів
На сьогодні движок витримує великі навантаження - декілька тисяч додавань у кошик за хвилину. Особливо це важливо у дні випуску нових монет. Це була основна проблема, яку не могли вирішити інші команди. Результатом нашої праці є безперервна робота інтернет-магазину, що забезпечує продажі товарів у будь-який час.
Мобільна версія інтернет магазину
Будемо відверті - робота з інтернет-магазином НБУ була для нас не простою і ризикованою, але ми навчились новому та підвищили скіли після виконання цього проекту. Відкрили для себе поєднання в єдиній мережі cloud та dedicated серверів, тонкі налаштування Cloud хостингу, налаштування реплікацій, автоматичне налаштування додаткових серверів в разі потреби. Навчились горизонтальному та вертикальному маштабуванню, розібрались як правильно створювати інфраструктуру серверів та проводити їх моніторінг.
При створенні та розкручуванні інтернет-магазину не обійтися без допоміжних сервіс...
Залишити свій відгук