devops

How does DevOps help Kler to grow?

There is no one-size-fits-all DevOps, but take a closer look at how we provided KLER with a scalable, highly-available and reliable infrastructure. Explore how Chaos Gears implements DevOps practices to reduce bottlenecks and fast-tracking the release timeline.

Client

The Challenge

Founded in 1973 by a master upholsterer, KLER has over the years become a leading manufacturer of high-quality furniture for Eastern European markets. The company never ceased to innovate and is now delivering its products globally – with many sales taking place through its online store established in 2015.

As KLER keeps growing and showcasing its products on the renowned Salone Internazionale del Mobile in Milan, it also has to meet increasing traffic to its online infrastructure, and all the challenges that come with it – despite being a traditionally rooted manufacturing business.

In order to tackle that increasing scale, several years ago KLER reached out to a 3rd-party service provider to set up a modern cloud infrastructure in AWS. While it proved sufficient for a while, the setup was mostly monolithic and had not been updated since its conception. What’s worse, the environment lacked any form of technical documentation, which made it increasingly difficult for KLER to scale its online services despite already running them in the cloud.

When KLER approached Chaos Gears, we quickly identified those issues during our initial meetings. While the infrastructure we encountered had low upkeep, it was essentially an on-premise monolith uprooted into the cloud – without any form of redundancy. Running on a single EC2 instance with services orchestrated locally via Docker Compose, proper continuous integration and development was a no-go, as the company was facing a constant risk of faulty deployments causing downtime of the entire platform.

KLER’s pipeline required manual labour on tasks which could be automated and lacked a proper development and testing environment. Issues with faulty deployments would therefore creep up into the singular production environment and only show itself when it was already too late to prevent them. As the infrastructure lacked redundancy, any single change could topple KLER’s entire online presence until the issue got resolved. Besides the inconveniences to customers, the negative impact on both development velocity and actual sales was apparent.

The Solution

Together with KLER, we analyzed the status quo, outlined all key challenges, prioritized improvements and set out to prepare a remediation plan to meet them.

Our ultimate goal was to separate the infrastructure into two highly-available environments – development and production – integrated through an automated CI/CD pipeline to increase development velocity and confidence along with overall reliability, while simultaneously reducing KLER’s time-to-market. As an intermediate step, we would naturally also have to migrate our client’s existing infrastructure to this new setup.

Once those goals were clear, Cloud Architect, 2 DevOps Engineers, the engineer responsible for conducting the AWS Well-Architected Review (WAR) and Project Manager from Chaos Gears teamed up with developers from a third-party company to put the plan into action.

No size fits all

Based on our practical experience, our initial modernization plan for KLER’s infrastructure revolved around decomposing the monolith we encountered at least partially into serverless functions orchestrated automatically by AWS Fargate over AWS ECS. With such an architecture we would be able to defer resource management entirely to AWS.

Not having to tackle resource isolation nor scaling – as those would be handled by AWS Fargate to fluidly meet actual compute demand in a granular manner – the burden on KLER would be drastically reduced, enabling the company to focus on its core business domain and meet its customer’s needs without having to worry about the infrastructure needed to meet those needs.

However, everything in computing is a matter of tradeoffs and no one solution meets the practical needs of everyone. In this case, while the benefits of a serverless architecture were tangible to all stakeholders, the actual implementation proved difficult performance-wise – mostly due to KLER’s existing codebase, which was not easily amenable to a serverless mindset based on decomposed microservices. 

Refactoring the entire codebase was not practically feasible either – but it was also not necessary to achieve the goals we aimed for. After all, AWS catalog of managed services is extensive, and the flexibility this fact alone provides is invaluable. As any business is all too well aware of, plans must be flexible enough to adjust to any and all circumstances.

Thus, we simply slightly scaled down our proposed best case scenario and instead of AWS Fargate opted for a more traditional container based architecture running EC2 instances directly on AWS ECS.

We had to tackle the provisioning of resources after all, but still introduced a major modernization to the flow – infrastructure-as-code. Terraform helped us organize and describe KLER’s infrastructural needs, allowing the client to flexibly adjust them on the go in a centralized, coherent, versioned – and most importantly: automated – fashion.

The solution we delivered auto-scales resources based on actual compute demand and is easily amenable to both high short-term variance, as it is to long-term business growth. What’s more, it is not intrinsically bound to AWS – KLER can now opt for multi-cloud deployments, if it chooses to do so.

Both the production and development environment have AWS ECS at their core, responsible for scaling the services horizontally to keep up with demand on one hand, and on the other to guarantee their high availability. With appropriate redundancies finally in place, we further enhanced this setup with a Load Balancer, to make optimal use of all provisioned resources.

Amazon EFS was also used, which makes the data accessible across all services simultaneously – and potentially even beyond a single geographic region. Its auto-scaling characteristics further reduce the need to pre-estimate demand.

Last but not least, all production data is now finally automatically backed up as appropriate, providing an essential part of previously severely lacking durability.

Security and compliance are not an afterthought

Everything we do at Chaos Gears aims to meet even the most stringent security and compliance requirements. While not initially envisioned by KLER as part of the process, and even though the company does not operate in a highly-regulated sector, based on our experience our team still suggested performing a Well-Architected review of KLER’s existing infrastructure and codebase to identify potential issues which were not immediately apparent during our initial meetings.

We performed this review in the initial phases, parallel to our work on the new infrastructure, and delivered a thorough report outlining several key issues. Those observations later formed the basis of the Modernize phase of the process, helping shape further tasks that needed to be performed after the intermediary migration to the new infrastructure.

Yet, as we operate based on industry best-practices, we were able to anticipate and remediate several of the identified issues much earlier in the process.

For instance, AWS Systems Manager is one of the core services we employ for our clients on AWS, and is an integral part of our toolset. As we set up the new environments and CI/CD pipeline, we naturally relied on its Parameter Store for the secure handling of crucial credentials, secrets and configuration parameters.

Services in the production/development environments were automatically configured based on this centralized store – even before we uncovered that several of such secrets had been previously hardcoded in KLER’s applications and as such posed a security risk, for which services like the Parameter Store – or HashiCorp’s Vault – are the perfect remediation. Many of such issues can be prevented even without dedicated security audits, simply by leaving implementation details to certified experts adhering to best-practices – such as Chaos Gears’ team.

Security best-practices additionally hardened external dependencies of the applications.


The Outcomes

We managed to meet all the goals we set out to achieve. Despite not being able to implement the best-case scenario we envisioned initially, our team provided KLER with a scalable, highly-available, reliable and durable infrastructure which continues to serve as a future-proof basis for further business growth.

Automated scaling, load balancing and resource management took many burdens off of employees, simultaneously allowing for a more efficient allocation of resources based on actual demand, capable of automatically reacting to high short-term variance.

KLER’s technical teams suffer from drastically less configuration friction and finally have a reliable development and testing environment at their disposal. A well thought-out CI/CD pipeline binding it with the production environment gives them the necessary confidence to experiment and innovate, without the risk of taking down the client’s entire online presence in case of a mistake.

Automated processes replaced many manual tasks which previously – and frequently – took hours to complete, while the overall architecture that is now in place lends itself naturally to automate even further menial labor. It is now easier than ever for KLER to focus its resources on its core competencies and meet actual business goals as it looks towards the future, instead of being bogged down by legacy.

As this case exemplifies, it is not sufficient to simply move one’s infrastructure to a public cloud to actually reap all the benefits that are commonly associated with such a migration. Without proper practices and the right mix of expert knowledge and experience – or simply a partner like Chaos Gears – such a move can leave you confused as to why all the promised benefits did not materialize in practice.

Last but not least, the company is no longer left on its own, lacking any documentation of its infrastructure whatsoever. Having established the key ingredients to the client’s success online, we continue to cooperate with KLER, providing on-going operational support as it keeps moving forward.