NIC.UA – сайт для реєстрації доменів і хостингу
NIC.UA — найбільший реєстратор доменних імен в Україні, лідер з інновацій з 2007 року. NIC.UA реєструє домени та підтримує їх на власних серверах імен, надає хостинг, оформляє торгові марки та SSL-сертифікати.
Задача
В основі системи старого сайту був монолітний сервер. Разом із командою NIC.UA ми розділили систему на фронтенд і бекенд. Бекендом займалися розробники NIC.UA, фронтендом — компанія Stfalcon.com, а дизайнери Олександр Зайцев і Олександр Колодько зробили сайт зручним і функціональним. Завдяки цьому сервіс став більш гнучким та легко масштабованим. Фронтенд був побудований на Symfony2. Це розумна система, завданням якої є взаємодія між користувачем і потужним API бекенда. Вона не лише відображає сторінки сайту, а й вміє інтелектуально підібрати потрібний домен для клієнта.
Рішення
Що ми вирішили зробити?
- Перевести фронтенд сайту на PHP-фреймворк Symfony
- Написати адмін-панель для управління контентом на сайті
- Змінити принцип пошуку доменів
- Впровадити горизонтальне масштабування та безперервну інтеграцію
Переваги фреймворку Symfony
Для кращої масштабованості та зручності взаємодії з панеллю управління ми перевели сайт NIC.UA на Symfony. На цьому PHP-фреймворку працюють BlaBlaCar, Spotify, MeinFernbus. Вони обробляють величезні масиви даних щодня.
Актуальність
Є найпопулярнішим PHP-фреймворком у світі через високу швидкість роботи та гнучкість налаштування для веб-рішень
Розширюваність
Функціонал фреймворку організований у вигляді бандлів, з якими легко працювати, оскільки будь-коли можна розширити додаток за рахунок підключення нових бандлів
Автоматизація
Можна виконати деякі команди з консолі
Зручність
Наявність панелі веб-налагодження (debugging panel) з корисними даними для профілювання роботи сайту та запитів до бази даних
Розробка
Гнучка адмін-панель для керування контентом
Можливості стандартних адмін-панелей сайтів вкрай обмежені, тому для NIC.UA ми розробили функціональну спеціальну адмін-панель з шаблонами. Вона дозволяє:
- створювати блоки, які у незмінному вигляді відображатимуться у різних частинах сайту
- створювати лендінги (наприклад, для акційних пропозицій)
- індивідуально налаштовувати кожну сторінку сайту
Новий інтелектуальний пошук доменів
Пошук доменів є однією з головних складових сервісу компанії, тому ми вирішили його значно покращити. Переваги нового пошуку:
Функція транслітерації, підбору синонімів і перекладів
Користувачам не потрібно повторювати пошук, щоб отримати всі найкращі варіанти. Тепер знайти найбільш підходящий домен для бізнесу стало ще швидше.
Фільтри доменів
Можна вибрати найпопулярніші, міжнародні, українські чи регіональні домени.
Розумне кешування
Сервіс не здійснює зайвих запитів до реєстрів і не уповільнює роботу системи.
Як це працює?
Якщо клієнт шукає домен для квіткового магазину, то результати пошуку будуть:
- варіанти доменів із зазначенням необхідності зареєструвати торгову марку (наприклад, для домену kwity.ua);
- варіанти з транслітерацією (наприклад, пошук kwity також видасть домени зі словом квіти);
- синоніми (пошук "flowers" також видасть домени зі словом "bouquet-of-red-roses");
- переклади (пошук "квіти" також видасть домени зі словом "flowers").
Можна використовувати зручний фільтр, щоб вибрати популярні, міжнародні, українські чи регіональні домени.
Горизонтальне масштабування та безперервна інтеграція
Взаємодія із серверною частиною NIC.UA здійснюється за допомогою API. Ми реалізували логіку його роботи та налаштували безперервну інтеграцію (Continuous Integration) за допомогою GitLab.
За допомогою цього типу інтеграції код від кількох розробників регулярно інтегрується в єдиний репозиторій, а створення зборок та їх тестування є автоматизованим. Завдяки безперервній інтеграції потрібні зміни вносяться простіше та швидше.
Існує 2 види масштабування:
- Вертикальне – ресурси додаються до одного сервера
- Горизонтальне – розширення відбувається за рахунок збільшення числа серверів.
Оскільки сайт NIC.UA повинен витримувати великі перепади навантажень, стояло завдання побудувати горизонтальне масштабування проекту. Була створена система з кількох серверів, частина з яких є балансувальниками та розподіляють навантаження для інших серверів. Якщо трапиться збій, сервіс продовжить роботу, оскільки всі завдання виконуватимуться на справному сервері, а непрацюючий – ігноруватиметься. Так забезпечується відмовостійкість системи.
Тепер працювати з NIC.UA зручно та вигідно: у них діє партнерська програма, бонусна система оплати, знижки для постійних клієнтів.
Результат
Ми перевели фронтенд сайту на Symfony, реалізували зручну адмін-панель, змінили принцип пошуку доменів, впровадили горизонтальне масштабування та безперервну інтеграцію. Ми враховуємо побажання команди NIC.UA та продовжуємо розвивати сайт.
Команда проєкту:
- Володимир Сутовський
Менеджер проектів
- Міша
Менеджер проектів
- Михайло Вільшанський
Back-end розробник
- Саша Ленський
Back-end розробник
- Andrii Boichuk
Back-end розробник
- Андрій
Back-end розробник