NIC.UA - the site for domain registration and hosting
NIC.UA is the largest registrar of domain names in Ukraine and innovative leader since 2007. NIC.UA registers domains and supports them on its own name servers, provides hosting, and prepares trademarks and SSL certificates.
Task
Previously at the core of the old website system was monolith server but together with the NIC.UA team we have divided this system into back end and front end parts. The NIC.UA developers were working on the backend, while the Stfalcon.com team were engaged on the frontend. Designers Alexander Zaitsev and Alexander Kolodko made the website convenient and functional for the users. Thanks to this, the service became more flexible and scalable. The frontend was built on Symfony2 — a smart system, which aims to interact between the user and the powerful backend API. It’s a great option not only for displaying the website pages, but also for finding the right domain for the client.
Solution
We were required to:
- Transfer website front end to Symfony2 PHP framework.
- Create a custom admin dashboard for managing website content.
- Change domain search principles.
- Introduce horizontal scaling and continuous integration.
Symfony2 advantages
To make NIC.UA website easy to scale and support we moved it to Symfony2. This PHP-framework is used by a number of large-scale websites such as BlaBlaCar, Spotify, MeinFernbus. They are handling tons of data on a daily basis.
Relevance
It is the most popular PHP-framework in the world because of the high speed of work and the flexibility of customization for web solutions.
Expandability
Functional framework is organized in the form of bundles, which are easy to work with. At any time you can expand the application by connecting new bands.
Automation
You can execute some commands from the console.
Convenience
The presence of a web debugging panel with useful data for profiling the work of the website and queries to the database.
Development
New admin dashboard
Standard admin dashboards have pretty limited functions so for NIC.UA we have developed a custom flexible dashboard allowing them to:
- Create modules that will be displayed in certain parts of the website.
- Make landing pages (for example, for sales and special offers).
- Customize each and every website page as one sees fit.
Improved domain search
Since domain search is a central part of the service, we were required to make it even better. Advantages of the new search:
Function of transliteration, selection of synonyms and translations.
Users do not need to repeat the search to get all the best options. Now a suitable domain for business you will find even faster.
Domain filters
You can choose popular, international, Ukrainian or regional domains.
Smart caching.
Service does not make unnecessary requests to registries and does not slow down the system.
How it works?
For example, if a customer searches for a domain for a flower store, he will see:
- domain names with the indication of the need to register a trademark (for example, for the domain cvety.ua);
- variants with transliteration (for example, the search for «flowers» will also give out domains with the word «фловерс»);
- synonyms (the search for «flowers» will also give out domains with the word «bouquet-of-red-roses»);
- translations (the search for «цветы» will also give out domains with the word «flowers»).
You can use a convenient filter to select popular, international, Ukrainian or regional domains.
Horizontal scaling and continuous integration
To interact with the server part we’re using API. We have implemented its logic and introduced continuous integration via GitLab.
With this type of integration code from several developers is regularly integrated into a single repository while build creation and its testing are automated. With continuous integration it’s quicker and simpler to make changes.
There’re two types of scaling:
- Vertical — resources are added to one server.
- Horizontal — the system is expanded using additional servers.
Since NIC.UA website should be resistance to drastic changes in traffic and demonstrate the maximum possible uptime, we decided to use horizontal scaling. The system that was created is relying on several servers. Some are load balancers that distribute the load for all others. In case of failure, the service won’t stop and will continue working since all the tasks will be conducted on a working server. Thus the system has a high level of overall failure safety.
Working with the NIC.UA website is now comfortable and profitable. They offer a referral program, a bonus payment system, and special discounts for regular customers. We actively listen to the NIC.UA team's feedback and are dedicated to further developing the website.
Result
We transferred the front-end of the site to Symfony, implemented a convenient admin panel, changed the domain search principle, implemented horizontal scaling and continuous integration. We take into account the wishes of the NIC.UA team and continue to develop the site.
Cast:
- Vladimir Sutowski
Project Manager
- Misha
Project Manager
- Mykhailo Vilshansky
Back End Developer
- Alex Lensky
Back End Developer
- Andrii Boichuk
Back End Developer
- Andrij
Backend Developer