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.
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.
Amazon Elastic Kubernetes Service, Amazon Elastic Compute Cloud, Amazon Elastic File Service, Amazon Relational Database Service & Amazon ElastiCache, New Relic, MongoDB Atlas, and Cloudflare.
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.
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.
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 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.
[contact-form-7 id=”3427″ title=”Contact form General”]