“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.”
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 gain key insights, 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 deploys Xfuze across cloud providers, including Amazon Web Service (AWS) and Google Cloud Platform. Their Hyper-Integration platform utilizes an event driven architecture, and leverages many distributed computing technologies, including SQL/NoSQL databases, cloud functions, and AWS Serverless technologies. Cloud infrastructure is orchestrated using Terraform, and Terragrunt to coordinate the compute resources upon which Xfuze stands.
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 tooling.
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 call stack — all from within their IDE’s.
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!
Xiatech initially explored the open-source 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.
“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.”
LocalStack Enterprise 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!
10x reduction in infrastructure spin-up time with LocalStack in comparison to AWS
LocalStack has simplified and accelerated the infrastructure spin-up for Xiatech’s engineering products by 10x. The infrastructure is defined using Terraform, allowing for a high level of automation and repeatability in the creation of resources. According to Rick, using the real AWS APIs used to take around 20 minutes to provision all the real cloud resources for the simulation to happen before tearing down everything. With LocalStack, this duration has been reduced to just two minutes on an individual developer’s machine, thus fostering a culture of frequent testing, and increasing the reliability and efficiency of local testing & debugging.
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 entire test infrastructure down again.