About the company
JivoSite is Russia’s first and the world’s second most popular app that businesses use to communicate with customers online. With JivoSite, you can manage requests from multiple channels in one app, including social media, popular messengers, mobile apps, phone, and email. More than 280 thousand websites worldwide are connected to Jivosite tools. The main users of JivoSite are from Russia, Brazil, Turkey, Europe, and the USA. Clients include medium and small businesses as well as major organizations like AKADO, Sberbank Leasing, Dom.RF, EPL. Yakutian Diamonds, Pegas, BAON, Leonardo, and Mouzenidis Travel. Most sell products and services online, so they need high deployment speed, stability, and security for their solutions.
Riding the wave and fighting the current
The history of JivoSite began 8 years ago with freemium online chats. The service quickly gained popularity with thousands of chats running simultaneously during peak times.
The pandemic impacted user activity, but many companies managed to adjust. The churn rate in Russia was insignificant and we were able to compensate by attracting new users. At the same time, our reach in foreign markets increased. SMEs are actively moving online, but their resources are limited and sometimes there isn’t enough staff to process all the requests. If lots of businesses previously put off trying the service, now they need an affordable solution that will let them engage customers faster, communicate with them online, boost sales, and increase the productivity of customer support operators. They’re trying different options, including JivoSite tools. It’s essential to ensure widgets can be easily integrated without involving full-time developers. It’s also important to be able to communicate with customers over a variety of channels in a single app.
New horizons for remote work gurus
The JivoSite team works remotely full-time and can share their successful experience with distributed development. It takes just 15 minutes to start a new debugging environment. Historically, we used AWS + Ansible for auto deployment, but then the situation changed.
In 2012, JivoSite only employed 10 people. By the end of March 2020, the team had more than a hundred employees: 30 people worked in the office (accounting and sales) and another 100 (development, design, marketing, and support) worked remotely. For JivoSite, availability of the app and its convenient infrastructure have always been top priorities. That’s why our developers decided on cloud platforms. We migrated the data of our Russian users to Russia in 2018. AWS couldn’t deliver content to customers as quickly as we expected.
We faced the technical challenges that we describe in the case as early as in 2018. We started actively addressing them in 2019, and the transition from the pilot project to migrating the production environment to Yandex.Cloud coincided with the lockdown in the spring of 2020.
By the end of 2018, we couldn’t find a cloud solution that met JivoSite’s requirements, so we moved Russian users to bare metal servers as a temporary solution. We transferred the DB, backend, and static content to leased physical servers. The disadvantages of this solution were immediately apparent: the physical machines were difficult to support and, even though the company spent a lot of time maintaining them, this had a negative impact on the stability of communication channels.
In the fall of 2019, JivoSite experts assessed Yandex.Cloud and a variety of managed services in a single ecosystem and decided to launch a pilot. Spoiler: the pilot was a success, and we soon transferred the production load to Yandex.Cloud.
Packing and loading
The service architecture consists of two main parts:
- The server that hosts the website. That’s where users sign up (create a personal account) and the data is saved to MySQL®.
- A chat server that runs the service itself (the number of nodes depends on the load and number of users).
We also use a ClickHouse DB to collect information (telemetry data) about user behavior in JivoSite widgets. This data is then analyzed by our product managers, who work with their team to improve service performance. Distributed development in JivoSite involves a microservice architecture.
After migrating to Yandex.Cloud, we started using platform services (Managed Service for MySQL® and Managed Service for Clickhouse) and microservices (Managed Service for Kubernetes®). A full CI/CD implementation is next on the agenda.
From testing to production
Migration to Yandex.Cloud was carried out in three stages. In October-November 2019, we implemented a test stack and generated a number of test accounts for JivoSite users. For a month and a half, three test engineers were looking for faults both on the administration side (due to the network and infrastructure specifics, they forgot to configure a firewall during migration, and a mode that filtered out part of requests was enabled in MySQL by default), and the JivoSite service side (the developers fixed everything).
Since the end of November, we’ve stored the data of all new JivoSite users in Yandex.Cloud. When the number of new accounts exceeded 10 thousand, we disabled registration again and began to monitor logs and feedback. This let us identify minor problems with integration.
Since the end of January, all new registrations from Russia happen in Yandex.Cloud. Their number is up to several tens of thousands and the database has grown to 10 GB. At the next step, all Russian users were transferred to the new platform. There was no migration mechanism before, so the team developed an app to migrate all accounts without any loss.
The migration was performed by 5 people, not including the developers who fixed bugs. At each stage, test engineers checked performance using a checklist, and developers analyzed the logs to identify problems. With the platform in production, we use a paid Yandex.Cloud support plan: the support team answers our questions within 30 minutes.
Moving to Yandex.Cloud solved problems with maintaining physical machines. It also freed up time for infrastructure development and planning architecture-related tasks. The communication channel is now stable, and there are no more network equipment issues. The percentage of user tickets related to connection issues has decreased. Compared to the previous cloud solution, the cost of outgoing traffic is 6 times less. And, of course, it’s worth emphasizing once again that the Yandex.Cloud infrastructure fully complies with the Russian laws on personal data and international cloud security standards.
We waited a long time for a provider like Yandex.Cloud to appear in Russia. At first, we didn’t even have a deadline, we just started an experiment. We could have run into problems, which could have made us stop the pilot and continue waiting. But we were satisfied with everything, and some things are implemented better than in other providers' solutions. For example, preemptible instances for Managed K8s in AWS are very difficult to configure, while in the Yandex.Cloud console, you just need to click a checkbox. In addition, there are Centos 8 images for Compute Cloud in Yandex.Cloud. It is a very big advantage over the same AWS.