• Dana Epp

Azure Global Bootcamp: Building resilient cloud apps

Geeking out at Azure Global Bootcamp at Microsoft

So today is Global Azure Bootcamp. All around the world we are showing people how to do cool stuff in Azure. Microsoft has issued passes for free credits in Azure, allowing anyone to give it a try at no cost.

Living in Vancouver, the day couldn't be any better. Sunny skies. Cherry blossoms in full bloom. Was an amazing morning walking to the Microsoft office downtown.

Cherry blossoms in Yaletown

Of course, needed to get caffeinated. The only Java you will see from me today was in my cup. While you CAN run Java in Azure, I'm a dotnet guy.... so my presentations were all on dotnet core using C#.

If you attended my workshop, remember you can get the sample code over on my Github account. We learned about the 4 golden signals for distributed cloud applications, and what to think about when architecting applications in the cloud. These include:

  1. Latency (Response Time)

  2. Traffic (Throughput)

  3. Saturation (Contention)

  4. Errors (Failures)

We looked at how to write an ASP.NET Web API service in dotnet core 2.0 using VS Code, and how to build attributes to build throttling right into the API. We also built a simple client that consumed the web service, and handled the retry design pattern to handle the throttling. We discussed the circuit breaker pattern, and looked at how to decouple the backend working processes from the frontend web services.

That got us into building Azure Functions in VS Code, tied to storage queue triggers. This allowed us to do event based queue processing, further decoupling our applications in the cloud. In the end, we built some serverless compute code that is billable by the second that allowed us to process alerts very, very quickly separated from the frontend. It only took us minutes to get it up and running in Azure. You can follow the README I left in the workshop code to get that setup.

All in all, it was a lot of fun. People learned lots and started looking differently at their applications. Decouple them. Think about transient faults. And assume failure. It makes building more resilient applications that much easier when you start architecting more defensive cloud applications, and consider the 4 golden signals during the process.