Cliengo migration and containerization strategy.

From having their deployment in Heroku, they approached DinoCloud to perform a migration to AWS, thus achieving a magnificent improvement in their performance.

About Cliengo

Cliengo is a company founded in 2017 dedicated to driving business relationships by helping other businesses convert users into customers and helping scale their own customers’ business processes by automating all contact channels. Businesses that engage Cliengo can deliver their customers a supreme experience with 24/7 open channels. They integrate with the technologies that these businesses already use and generate reports that allow them to optimize omnichannel customer service.

Some of the products they offer are: 
  • Chatbot Web
  • Chatbot WhatsApp
  • Chatbot Facebook Messenger
  • Chatbot Instagram
  • Chatbot eCommerce
  • Live Chat
  • CRM


They use AI, integrate with other CRMs in the market, email marketing, and automation platforms. They also integrate with more than 1300 applications that allow you to simplify the experience, connecting the sources of your customer data and optimizing your results. 

Used Technologies

Amazon Elastic Kubernetes Service, Amazon Elastic Compute Cloud, Amazon Elastic File Service, Amazon Relational Database Service & Amazon ElastiCache, New Relic, MongoDB Atlas, and Cloudflare. 

The Challenge

When Cliengo came to DinoCloud they had the main challenge of migrating from Heroku to Amazon Web Services. On the other hand, there was the need to build continuous integration and continuous delivery pipelines. And finally, there was the challenge of dockerizing their microservices developed in different frameworks (Java Play, Node, PHP). 

They also had the need to detect the microservice that was generating a bottleneck, which meant a great challenge due to the number of microservices that were being used in the platform. 

Our Approach

In the first instance, we made a discovery, where we could see what they were made of, in order to understand in detail the infrastructure we decided to design a graphic where we could see it.

The next step was to start diagramming the epics. That resulted in: 

In parallel to the aforementioned, the migration of all the content of the platform they had in Heroku to Amazon Web Services with Kubernetes was carried out, deploying what was essentially required for all the tools to work with Kubernetes in Amazon.

That is to say that in a first instance their applications were dockerized, already dockerized, and working correctly, they went on to build a Kubernetes cluster in Terraform. Once the Kubernetes cluster was up, the focus was on making sure that the initial configuration was optimal for proper operation. We started to build the Kubernetes manifests with the microservices they had, in this instance, it reflected the lack of some, which were implemented after the discovery. After validating the operation of the platform, we started deploying pipelines with GitHub Action, modifying them according to the client’s needs. 

On the Technical Side

Cliengo had the disadvantage that for each application associated with each microservice they had too many teams working on it. This situation with multiple teams working on the same complicated code caused issues when attempting to deploy something. While attempting deployment a team would almost always encounter problems with the development activities of the previous team. The lack of a branching strategy caused inconsistency between project efforts that was painful and costly.

The DinoCloud team investigated a solution to this problem and worked with Cliengo to establish a branching strategy. It was done through the pipelines, so that when Cliengo generated a pull request, it was deployed within the cluster in another namespace, but within the same cluster, thus deploying its functionality without affecting all the other microservices of developing that knew it was working. In this way, once the functionality was tested, a merge was made and it was combined with what was in development, thus greatly shortening the error gap, since each team could have its test within the cluster without affecting the other team’s test.

The Results

The results are summarized in obtaining a Kubernetes cluster in AWS 100% functional, it is important to note that it was also possible to dockerize all the microservices without major problems, with the operation of all its corresponding pipelines and with a branching strategy, which managed to greatly meet the expectations of Cliengo, implemented. An inconsistency could also be evidenced through New Relic and an automation Workload. Last but not least, a migration from Heroku to Amazon Web Services in a developed space was performed.

At DinoCloud, we take care of turning a company’s current infrastructure into a modern, scalable, high-performance, and low-cost infrastructure capable of meeting your business objectives. If you want more information, optimize how your company organizes and analyzes data, and reduce costs, you can contact us here.

Get in Touch!

    Please prove you are human by selecting the Tree.

    (*) Required fields

    Miami
    40 SW 13th St, Suite 102
    Miami, FL 33130
     
    New York
    67-87 Booth St #2H
    Forest Hills, NY 11375
    Phone: +1 571 322 6769
     
    Colombia
    Cra. 19a #103-19
    Usaquén, Bogotá 110111, Colombia
     
    Argentina
    Humberto 1° 630, Piso 4, 
    X5000HZQ Córdoba, Argentina
    Ready to be a part of your team!