Designing apps in the cloud requires a certain way of thinking. This language-neutral course explores using Azure resources to design complex systems, such as load balancing, caching, partitioning, content delivery networks, and performance testing.
Regardless of the language or technology, designing applications in the cloud requires a different style of thinking, and deep knowledge of cloud infrastructure and services. In this course, Cloud Patterns and Architecture for Microsoft Azure Developers, you'll learn how various Azure services can help build high-performing, scalable, and resilient applications. First, you'll delve into how to use specific Azure resources to add redundancy, fail-over, and load balancing to a system. Next, you'll discover how to use partitioning and caching to improve performance and scalability. Finally, you'll explore Content Delivery Networks, API management, and performance testing. When you're finished with this course, you'll have the knowledge of multiple resources that will help you design applications in Microsoft Azure—whatever technology you're using.
Simon is a staff author at Pluralsight. With a 30-year background in programming and teaching, he obsesses on making complicated subjects accessible, memorable, and easier to learn. Since 2002, he's recorded dozens of popular and highly-rated training courses. His current focus is on iOS and computer science topics.
Course Overview Hi! I'm Simon Allardice, and welcome to Cloud Patterns and Architecture for Microsoft Azure Developers. This is a language-neutral course where we focus on techniques and patterns for designing and developing high-performing, scalable, and resilient cloud applications and the features of Microsoft Azure we can use to do this in whatever technology you're using. But designing applications in the cloud requires a different way of thinking and a deep understanding of Azure infrastructure and services. We'll begin with that. You'll then explore specific Azure resources to add redundancy, failover, and load balancing to a system. You'll use partitioning and caching to improve scalability and performance and implement content delivery networks, API management and performance testing. When you're finished with this course, you will have covered multiple Azure resources to consider when designing large scale applications.
Architecture in the Cloud To build a successful scalable Cloud application, we will need to approach this in two different ways. We will, of course, have to think of our unique business requirements, the rules and the needs of the app itself, but to make the right development and architectural decisions, we must also deeply understand what is available in the Cloud, what is already there, that can help us build this application. So, put it this way, in this course we are not looking at Microsoft Azure simply as a place to host a Virtual Machine. No, we want to make the most of what is available to us here, and there's a lot. So, we're going to begin with a tour of Microsoft Azure platforms and infrastructure, to see how the various services and resources can fit into the architecture of different types of systems that we'll build, from applications, to APIs, to the Internet of Things, and big data. We're starting with a high level overview of what is inside of Azure, and that will allow us to drill into the details and the patterns of how to use it. But first, let's get clear on what to expect from this course.
Cloud Patterns for Resiliency We're now past the general overview, so in this module, we're going to focus on specific patterns and techniques for resiliency, how to design our system to expect and handle failures. Because when we put our application in the cloud, we understand the scale and the distributed nature of this larger system that we're now part of means we are introducing more points of potential failure. Parts of this infrastructure will never be under our direct control, and sometime, somewhere, somehow, something about this is going to fail. That's the bad news, but the good news is that in the cloud failure is expected. We know it's going to happen, so we also have many built-in options to manage and recover from failures both large and small. Let's start going through them.
Cloud Patterns for Scalability We now move from resiliency into looking at patterns and architecture for scalability and performance. We'll cover multiple approaches you can consider when you're looking at how an application will grow, grow in users and grow in complexity and still stay efficient and responsive. And these decisions will impact the front-end services to the back-end database and everything in between. So here we'll look at topics like partitioning, sharding, caching, using content delivery networks, and managing APIs, and as ever keeping a pragmatic real-world approach. How our design can leverage existing features in Azure to make this easier and more controllable. But let's begin by getting clear on these words scalability and performance.
Cloud Patterns for Testing In this module, we'll look at testing, not testing in general, not unit testing or usability testing or acceptance testing, but primarily load testing--how to quickly arrange to have hundreds or thousands or even hundreds of thousands of simultaneous connections and requests to your application. And we can use load testing to emulate a normal expected load but also some level of stress testing to see what happens at peak load times with spikes and traffic and try and understand how our system is going to scale. So we'll talk here about the tools we use, what options exist inside and outside Azure, how to write tests, how to run them, and how to interpret the results. Let's get to it.