Play the role of a Rust programmer for Svalbard Inc., an online retailer whose Scandinavian furniture is growing in popularity. To mitigate the cost of scaling up its online store, the company is moving from on-premises installations to a cloud-native solution. It’s your job to provide Svalbard’s operators and developers with a tailor-made, production-ready, load-testing command-line interface (CLI) that simulates a variety of real-world scenarios. This allows them to safely test improvements to the infrastructure or updates to the application’s code.
You’ll use async-supporting tools including hyper, Tokio, clap, Prometheus, and Docker to write a basic asynchronous HTTP load generator that can handle multiple concurrent connections. You’ll add configurability, gather and display immediate feedback, and present statistics in multiple formats, providing the best useability to the operators. You’ll track down potential performance bottlenecks and implement solutions to tackle them. Then, you’ll scale up your application to support a wide range of use cases and prepare it for production. Throughout this series of liveProjects, you’ll solve common concurrency challenges as you create and deploy a robust, asynchronous CLI application in Rust.
I gave the project a 5-star rating as it was an exciting project with real-world applications. It was fun to build and test the app.
Svalbard Inc.’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. To tame the cost of its success, the company has decided to migrate from expensive-to-scale legacy mainframes to a more flexible, modern deployment model. Your task is to implement continuous load testing and reporting. Using hyper and Tokio, you’ll send HTTP requests as you create a proof of concept. You’ll drive multiple concurrent connections using Tokio, gather and improve metrics from these connections by designing an asynchronous execution flow, and add robust error handling. When you’re finished, you’ll have a fully functioning, scalable HTTP load-test application.
Svalbard is quickly becoming a household name as customers all over the world bring the online store’s furniture into their homes. But Svalbard’s backend applications run on legacy mainframes that are increasingly expensive to scale. That’s why the store has adopted a more flexible modern deployment model. As a Rust programmer, your task is to provide its developers and operators with a load-testing CLI tool that simulates a multitude of real-world scenarios.
Using Tokio, Serde, and clap, you’ll add functionality for users to configure the number of connections and requests, as well as other parameters. You’ll gather and display immediate feedback, empowering users to spot and correct misconfiguration early on. You’ll calculate statistics on latencies in your application and display them in human- and machine-readable output, providing the maximum benefit from the gathered data. When you’re done, you’ll have a CLI that delivers users high configurability, reliable signal handling, and a means of providing immediate feedback for more nimble, cost-effective results.
Svalbard Inc.’s customers are reveling in the comfort of the global online store’s Scandinavian furniture. But, for Svalbard, the cost to scale its backend applications is less than comfortable. To ease its pain, the store has begun migrating its legacy mainframes to a more flexible, modern deployment model. Svalbard has already implemented a CLI tool that internal developers and operators can easily configure to their needs. As a Rust programmer, it’s up to you to improve this tool. You’ll track down potential performance bottlenecks with the help of flame graphs, then implement solutions to tackle them using hyper. You’ll verify the performance improvements, then create a tool for guarding against regressions with the Criterion suite. When you’re done, you’ll be comfortable evaluating and improving an asynchronous Rust application.
Svalbard’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. But the cost of scaling up the online store’s application is growing as fast as its customer base. As a Rust programmer, you’ve been helping Svalbard migrate its legacy mainframes to a more flexible, modern deployment model to manage the cost. Your application is fast and reliable, but you’re not done yet! As more people use your tool, the number of use cases it needs to support is increasing, too.
Your task is to refactor your application from a locally executed CLI tool to an always-on service. You’ll scale up observability by adding logging and metrics collection using industry-standard tools, including Prometheus, and you’ll deploy your application as a Docker container alongside a reference service. When you’re done, you’ll have built a production-ready application that supports a wide range of real-world scenarios.
The instructions in the presentation of each project were good.
I learnt what I expected to and can apply the knowledge elsewhere.
These liveProjects are for Rust programmers who are familiar with Rust syntax and its ownership system and who want to write reliable, efficient code. To begin these liveProjects you’ll need to be familiar with the following:TOOLS
In this liveProject series, you’ll learn to create and deploy a highly configurable, robust load-testing CLI that supports a wide range of real-world scenarios.
geekle is based on a wordle clone.