Amazon Logistics’ science team created an algorithm that aims to improve efficiency in the supply chain.
Initially, the science team implemented the algorithm sequentially using monolithic architecture executed on a single high-performance computational node in AWS. According to a report on HPCWire, the existing infrastructure relied on big, costly, and inefficient machines. Using a managed monolithic infrastructure also limited the algorithm’s scalability to use bigger datasets and perform complex calculations.
To develop and extend the feature of their algorithm, scientists proposed the development of a high-performance computing (HPC) infrastructure. This architecture combined managed Amazon services like AWS Batch, AWS Step Function, and AWS Lambda to enhance and optimize Amazon Logistics’ algorithm performance. Like AWS cost management tools, these AWS-managed systems reduce delays and errors, provide better analytics, and support simple workflow processes. Below is how organizations can build algorithms using AWS-managed services.
Decouple and Run Algorithm Components
Using AWS Step Function, developers can easily decouple the monolith architecture of the original algorithm into multiple components. Ideally, breaking algorithms into various components means the malfunction of one component doesn’t affect the entire workflow, and each component scales independently. When integrated with various activity tasks of the workflow and AWS Lambda, AWS Batch helps run different algorithm components.
The use cases of AWS Batch range from running batch computing workloads at any scale, as it functions as a fully managed service. This Amazon Web Services tool also allocates computing resources and optimizes workload distribution automatically based on the amount and scale of tasks. Scientists, developers, and engineers don’t need to install or worry about managing batch computing software when using AWS Batch.
Integrating DevOps with Science
During the development of Amazon Logistics’ algorithms, the science team leveraged DevOps and automation. Automating the process using continuous integration (CI) enables developers to build software continuously and test and deploy algorithms easier and faster without compromising quality. To streamline the process, the developer team changed the algorithm from its monolithic state into a modern, optimized, decoupled architecture.
They have decoupled algorithm infrastructure functions like AWS microservice architecture. The benefits of Microservices include fast deployment of software, scalability, reusability, and reduced risk. Microservice architecture also promotes easy management of individual components in a CI environment. After breaking algorithm components, teams can containerize them into AWS Lambda functions and AWS Batch jobs, then orchestrate them using AWS Step Function.
Algorithm Packaging and Optimized Infrastructure
Over the past years, algorithmic solutions and underlying infrastructure have been in their silos. When developing an algorithm for Amazon Logistics, scientists leveraged the same standard infrastructure to test new ideas and algorithms. Using the same infrastructure to run different workloads creates opportunities for improvements.
The team also used a cloud development kit (CDK) to define and redesign the existing infrastructure as IaC or Infrastructure as Code. They then separated the algorithm using AWS Batch and AWS Lambda, and arranged it with AWS Step Function. As a result, the scientists created an optimized and modular algorithm that enabled Amazon Logistics to innovate faster, scale, and experiment over the algorithm code and underlying infrastructure.
To improve efficiencies in the supply chain, developers and science teams in AWS and Amazon Logistics developed a fast algorithm using AWS Batch, AWS Lambda, and AWS Step Function. Using these AWS-managed services, developers decoupled algorithms into small, individual components, integrated DevOps and science, and packaged the algorithms. As a result, developers created easy-to-deploy and scalable algorithms.