Hi, I'm Rick 👋

Fixer - Engineer - Coder

Rick Timmis

Hi, I'm Rick 👋

Fixer - Engineer - Coder

Localised Development and Testing wih Localstack Case Study

Positioning statement:

Xiatech uses a complete, localized AWS environment where developers can build, test, profile and debug infrastructure with LocalStack to accelerate their engineering efforts. Quote:

“Xiatech is a global technology company based in London that leverages Hyper-Integration to connect systems, unify data and deliver advanced insights to customers through Xfuze, our platform, which orchestrates many AWS services. Our engineering team utilizes localstack to provide a complete, localized AWS environment where developers can build, test, profile and debug infrastructure and code ahead of deployment to the cloud. We have enabled each software engineer to be fully independent with local development and testing tooling, and this has proved to be a key accelerator for our engineering team.”

— Rick Timmis, Head of Engineering - Xiatech Background:

Xiatech helps organizations and users connect systems, unify data, and make data-driven decisions with artificial intelligence via a continuous flow of actionable insights. Xiatech’s flagship platform is Xfuze, a hyper-integration platform that helps customers shorten to insight, create value from data and turbocharge legacy technology investments. Xfuze integrates with various systems like customer relationship management (CRM), enterprise resource planning (ERP), logistics, warehousing, marketing, and different cloud-based systems. Xfuze creates a central, singular view of data which then helps provide automation, data management, continuous insights and advanced analytics — all in one solution.

Xiatech primarily uses Amazon Web Services (AWS) as its cloud service provider. Xiatech relies on serverless technologies for its integration platform and Google Cloud Platform for data analytics and insights. Xiatech manages various cloud serverless technologies and databases (SQL/NoSQL) by orchestrating them using Terraform and Terragrunt to drive infrastructure as code.

We spoke with Rick Timmis, Head of Engineering at Xiatech, to learn more about how LocalStack has helped their organization accelerate its cloud development workflows with LocalStack and empowered engineers to be independent of their local development and test toolings. Challenge:

The challenge for engineers includes vast amounts of technologies, ranging from SOAP or XML APIs to RESTful services, and the need to provide integrations with Lambda, SQS, Kinesis, DocumentDB, DynamoDB and more. As an engineer, orchestrating these serverless technologies via a command-line interface and developing/debugging the services was very slow and tedious.

To solve this problem, Xiatech created a developer-experience (DevEx) environment to bring forward a localized environment on the individual machines used by engineers to enable them to run integrations between one system and another. It would allow them to run these simulations and profile, debug, and check the memory state and the stack — all on their IDEs.

This is where Xiatech came across TestContainers. Given that Xiatech uses Golang as the primary-used language, Testcontainers-Go was picked up to create and clean up container-based dependencies for automated tests. Xiatech started building endpoints to provide multiple functionalities like HTTP replayers to provide simulations for RESTful endpoints for a CRM system, simulating SOAP-API containers, and more.

However, Xiatech was still stuck with running containerized pieces of code for other parts like Lambda functions or DynamoDB, which was challenging. Deciding to explore further options, LocalStack popped up! Solution:

Xiatech initially explored the open-source, community version of LocalStack through a proof-of-concept with a basic set of AWS APIs. Xiatech had tremendous success with LocalStack, allowing them to create integrations and end-to-end tests. Today, Xiatech’s Testcontainers framework, with LocalStack enabled, allows developers to do unit, interaction, smoke, and end-to-end (E2E) testing.

Enterprise LocalStack now allows Xiatech’s engineers to run end-to-end integrations with multiple simulations, like a CRM system delivering customer information through a serverless stack and then appending the data to an ERP system. Engineers can now visualize this whole workflow on an individual developer machine, allowing an engineer to understand how their code works and acts as a massive accelerator! Results: 10x reduction in infrastructure spin-up with LocalStack in comparison to AWS

LocalStack has simplified the infrastructure spin-up for Xiatech’s engineering products by 10-times. According to Rick, using the real AWS APIs used to take around 20 minutes to provision all the real cloud resources using Terraform for the simulation to happen before tearing down everything. With LocalStack, this duration has been reduced to just 2 minutes on an individual local machine, thus increasing the reliability and predictability of LocalStack as a core product. An improved development workflow with Testcontainers

Today, Xiatech uses LocalStack with tight integration with the Testcontainers framework, which empowers engineers to develop, test and release without caring about how LocalStack works under the hood. With the level of abstraction provided by Testcontainers, an engineer can use Terragrunt to kick off Terraform and spin up the local AWS infrastructure using LocalStack, which can be further analyzed before tearing the whole infrastructure down.