Reference Architectures for Cloud Computing

AWS Architecture and Azure Architecture sites provide a variety of resources for architects including reference architectures. With AWS you get a brief one page PDF diagram for each scenario. With Azure you get a more in-depth documentation style following the infographic. Here are two examples. The first is an AWS financial services grid computing architecture.

image

The second here is an Azure machine learning architecture.

image

The reference architectures and additional architectural helps provided by your cloud provider can be very valuable.

And here's the BUT.

But you should not simply copy and paste. Use these guidelines to provide you with ideas and help you to think of things that you are missing in your own cloud architecture solutions. Take the good ideas and use a skeptical eye to pick and choose what works best for your organization's use cases.

Think of it as if you're building a car. Do you look at how other cars are built? Or do you put on blinders and make the same mistakes as everyone else had to make before you came along?

Serverless–AWS Lamba vs Azure Functions

Who will win the Serverless Wars? Azure Functions is the latecomer but has much to like. AWS is the original trailblazer but appears to be slacking off in terms of innovation. I’m not sure there needs to be a winner. There will certainly be those who prefer AWS and those who prefer Azure for a variety of reasons. In this post, I’ll attempt to catalog the differences I’ve been able to find.

lamdavsfunctions

Incidentally, if you have not been introduced to the topic of Serverless Architectures, I suggest Martin Fowler. I have watched with fascination Martin Fowler’s posts on Serverless architectures. There are many other sources you will find through the magic of Google, but give Martin a read before you resort to the others.

Warning! The comparison below is by no means comprehensive and should not be considered conclusive. These are my initial impressions based on research only.

Serverless Features AWS Lamda Azure Functions
Supported Languages Node.js, Python, Java Node.js, Python, PHP, F#, C#
Web Dashboard adequate excellent (VS Online included)
Physical Logical Container single container deployed from zip (Linux) App Service contains multiple functions (Windows)
Continuous Deployment CLI (some 3rd party tools) GitHub, BitBucket, Dropbox, VS Team Services, VS Online editor
Source Code closed open
HTTP endpoint per function/lamda requires API Gateway configuration (greater flexibility at cost of simplicity) automatic (one per)
Authentication unknown Facebook, Google, Twitter, Microsoft
Cross-Origin Resource Sharing (CORS) unknown supported
Maximum execution time per request 5 minutes unlimited (potential unlimited cost)
Persistence of instance and environment variable no yes

 

If you don’t speak the language, you won’t be much good at communicating, so for me the choice is easy. Azure Functions supports C#, my language of choice. All the rest is just gravy. I’m sure your choice and mileage will vary.

Also check out Google’s Cloud Functions as well. Though I doubt they will succeed like Azure and AWS, anything is possible.