Table Reservation System – Tablein.com lets people to discover and book the table at the best restaurants in Lithuania and other countries around the world. The Tablein.com solution is constantly growing by number of supported restaurants and visitors but, most importantly, maintaining best 5-star user reviews. (Captera *****)
Enabling the solution developed for Lithuanian market to operate globally was the main challenge, especially with the spreading geography of users (several continents-wide) and number of requests to the solution growing exponentially.
Tablein.com is very dynamic table reservation system, i.e. the user is able to monitor and manage lots of real-time information. This leads to huge database query loads and constant big data processing, before presenting it to a user.
Tablein servers have been located in Lithuania and overloaded, thus response time was getting unacceptable. Tablein management team did not have many options – migration to AWS was unavoidable.
BTT Cloud is a top-level Managed Cloud Services Provider, unbiased and experienced in working with top private and public cloud platforms. We are striving to help for our customers in achieving their business goals. That is why before starting any new project we do detailed audit of customer workloads and, mostly important, business objectives analysis, by performing both technical assessment and business value discovery.
From the information we were given by Tablein we could see that the compute resources load was stable high however storage resources wasn’t displaying any significant issues. An important aspect was the number of users using dynamic content as well as the geography of users.
Statistics before migration. Data provided for analysis.
Prior to the changes Tablein servers were located in Lithuania but considering a spreading geography of users it was decided to select Germany as a main AWS region. Although latency increased a little for Lithuanian users the response time for users in other countries improved significantly.
Tablein management team also gave us an information about a previous accident, which they wanted to avoid in a future. The monitoring system displayed periods with a disproportionate increase of transaction times, it was obvious that MySQL database was taking most of the time because it was not able to handle the number of requests and thus the time of one query could take up to 100 seconds. No user would be patient enough to wait for the response to their request more than one minute.
An incident that a client wanted to avoid in the future.
At the stage of information gathering we are always trying to not just gather information about as-is situation, but also do our best to hear out customer expectations and their business goals. We received an existing schematic vision of the Tablein infrastructure, had several discussions regarding business objectives, growth ambitions, geography and typical behavior of users and then we were able to develop the well-grounded alternative infrastructure architecture, which was accepted and approved by customer.
“We were glad since the beginning that we began our strategic cloud journey with BTT Cloud”, says CEO Paulius Šuksteris.
Precise estimation and selection of cloud infrastructure and platform resources is the most important part in defining requirements for the future Cloud architecture.
Firstly, while preparing migration plan, it was expected to use the Lift & Shift migration method. In other words – according to the initial Tablein requirements, after analyzing existing infrastructure we made practically identical replicas in the new cloud infrastructure. Having the performance indicators, which we agreed during business value discovery phase, we checked if the solution in AWS infrastructure was performing better, including the expected decrease of processing time of requests to the database.
In fact, later while in the process we all discovered that the migration was getting more than Lift & Shift. “Since the beginning of migration BTT Cloud exceeded our expectations, because instead of the traditional database they chose to use serverless database, which practically gave us double performance for the same price. They also helped us to eliminate the need to manage SSL and implemented bunch of improvements that not even required our code refactoring. Also, improvements were made to network services, firewalls and security rules.” said by Paulius Šuksteris
Having all the necessary information, we prepared and aligned with the customer the to-be infrastructure architecture. We chose to separate static and dynamic content of the solution. DNS service in this infrastructure also performs as a cache service. It means that DNS service automatically caches all static content entering to/leaving infrastructure, depending on its own decision: whether it wants to cache that information or not. Part of the infrastructure is hosted on a very straightforward Amazon LightSail Instance, which is basically fully managed service. The other part was decided to put into the Germany site of AWS infrastructure, and consists of more complex combination of virtual machines, load routers, serverless databases and etc., including hybrid-cloud components.
Very important component to success – segregation of duties and liability. BTT Cloud team has agreed in advance with the customer that we will not touch the code itself but we will take full responsibility for the AWS infrastructure, its configuration and operation from the infrastructure side. Of course, in real life, the code had to be touched a little bit even by our team, but in this case Tablein team has migrated the code to the prepared AWS infrastructure themselves. Afterwards we all started the testing phase when we had to review every component that is loaded while using the solution.
After successful pilot migration and testing we updated and approved migration plan. Tablein informed their users in advance about the planned maintenance window.
The production migration started on early Monday morning, when the table reservation loads are to their lowest globally. All services of the solution have been stopped, only static content was left. The whole solution worked in “read only” mode.
We cloned the database and migrated its replica to the new infrastructure in AWS cloud. All it took about 90 minutes. Then DNS records were changed and redirection to the AWS infrastructure was completed.
After the migration during the hyper-care, as always, there were some unexpected issues and fine-tuning required. From our practice we already know that in cases like this the only way to act fast is – online communication channel which enables real-time interaction between BTT Cloud migration team, DevOps and customer developers, business management team. Every hour was critical, but we managed to eliminate all the issues and late Monday evening CEO of Tablein opened a virtual bottle of champagne, because his solution was working perfectly on AWS infrastructure.
According to Paulius Šuksteris, success was determined by mutual approach into a problem solving and informal online communication between both BTT Cloud and Tablein teams. “From very beginning we were all in Slack channel – discussing, aligning and solving issued. From my experience with other partners using formal tasks/incidents management measures and formal procedures, migration would have been much more painful”
Learn more about Tablein: www.tablein.com.
“There was quite a challenge. With certificates. But we got it right.” said by Arnoldas Mažeika
„Looking at the application performance before and after migration, it is clearly visible that if the request took 550 ms before migration, now it is up to 262 ms. I feel confident to say that while the numbers got two times better, the actual user experience increased almost four times. The most important fact is that the customer is satisfied“, said by Dominykas Palšis
„This was another challenging but successful migration by our Cloud Division that makes me really proud of, and mostly I am proud of my team!” said Vytenis Sakalas