Cloud Portfolio Challenge: Load balancing and content delivery network
In the Cloud Portfolio Challenge, we challenge you to skill up your cloud knowledge using hands-on projects that prepare you to build in the real world!
Jun 08, 2023 • 6 Minute Read
Welcome to the Cloud Portfolio Challenge, where we challenge you to skill up your cloud knowledge using hands-on projects that prepare you to build in the real world. These projects will also be valuable additions to your portfolio and will make great talking points during job interviews!
Accelerate your career
Get started with ACG and transform your career with courses and real hands-on labs in AWS, Microsoft Azure, Google Cloud, and beyond.
What is the Cloud Portfolio Challenge?
What makes the Cloud Portfolio Challenge format different from most tutorial or project-style learning out there? We won’t tell you exactly what to do. Like a real job assignment, the challenge is spec-based. You'll have to Google and go down the rabbit holes to figure it out. This is learn by doing taken to a ridiculous extreme.
To start this new series off, we’re going to focus on some of the critical infrastructure services that cloud computing can provide. Why start here? It’s like building a house. If you don’t have a solid foundation on which to place your walls, your bathroom, and your furniture, then it won’t last. We start here to get you off on the right foot. Or the left one. I’m not picky.
I’m Lars Klint, Microsoft MVP for Azure, keen lover of technology and your task master for this challenge. Connect with me on LinkedIn! While I have drunk a lot of Microsoft kool-aid and have used Azure for more than a decade, this challenge is cloud-agnostic, meaning you can use your cloud of choice.
|Challenge topic||Load balancing and content delivery network|
|Challenge creator||Lars Klint|
|Challenge goal||Build an image delivery service that, when queried, returns at least one image matching a search criteria of your choice|
|Challenge outcome||Understand four foundational cloud components and get a sense for how they might fit together in an image delivery project|
|Challenge deadline||Jun 30, 2022|
The goal of the challenge is to meet the below requirements, but at the same time get some experience in how these services work together on your chosen cloud platform.
Remember, you don’t have to follow the suggested architecture (set out in the diagram below). You’re welcome to make this challenge your own and expand on it. In fact, I encourage and welcome it!
The application you need to build is an image delivery service. When queried, it should return at least one image matching a search criteria of your choice. This could be a catalog of products for a web shop, top rated otters, a collection of hats, or anything else you can think of. Which images you return isn’t as important as how you do it.
What is the challenge and what will I learn?
Working through this challenge will help you understand four foundational cloud components and get a sense for how they might fit together in an image delivery project that you will build, unguided. Yes, on your own! The components are:
- Virtual machines
- Load balancing
- Content delivery networks (CDNs)
These four cloud services are part of a large number of services on the cloud, and it’s likely you will come across a similar setup if you work with cloud computing.
A quick recap of what those services are:
- A virtual machine (VM) is a full computing experience that’s like a physical server with an operating system, disks, memory, CPU, and everything else. Except, it’s virtual. The machine runs on a physical server that you don’t get access to. There could be many VMs running on the same physical hardware, but you’d never know.
- Networking is the glue that binds all modern computing together. You can’t do anything in the cloud without having some sort of network connection between services.
- Load balancing ensures that traffic coming into your network can be distributed and managed, so a single service, such as a VM, doesn’t get overloaded.
- A content delivery network (CDN) helps distribute content to users with minimal delay. If a user is accessing your application from Australia, but it's hosted in North America, you can use a CDN to move some of the content closer to the user, loading it much faster. It’s like a global cache.
I did mention this challenge was unguided, but to get you started, the figure below shows one example of how this could all work together on a cloud platform.
What do I need to achieve?
To successfully build the challenge project, you need to achieve the following requirements:
- Use at least 2 VMs in the same region
- Images served from the application must come from the CDN
- At least one load balancer must be the entry point for the application from the internet
- No public access is allowed to the VMs in the solution
How do I submit my project?
When you have a solution you’re happy with, it’s time to submit it! Here’s how to do that:
- Describe your solution in broad terms using an architecture diagram and any major decisions. This should be in a readme file on Github (or a similar platform), where you also store your code and configuration files.
- Post a link to your project in the designated Discord text channel (#load-balancing-and-cdn) along with a link to your LinkedIn profile by the deadline.
Can I get help with my project?
If you ever get stuck along the way, feel free to reach out to your peers in our dedicated Discord text channel (#load-balacing-and-cdn)! I’ll also be releasing a video for this challenge where I’ll show you how I built my solution. Keep an eye out for that - it’ll come out near the end of this challenge!
Prizes and giveaway
Upon completing and submitting your project, you will be:
- Given feedback on your project by yours truly, if applicable
- Be endorsed on LinkedIn for the skills you showcased by the challenge creator
- Mentioned in a special celebration post on A Cloud Guru’s LinkedIn page
- Entered to win some special swag!
This challenge will remain available indefinitely, but in order to be eligible for the above, please submit your project by Jun 30, 2022!
Now, go forth and build! We can’t wait to see your work! The Cloud Portfolio Challenge is free and available to anyone to participate in, so share with your friends! If you have any questions, please reach out to us in the Discord text channel for this challenge!