👍Here is what I like about Azure Functions:
- Resource Group - the concept of resource group is a good one. It allows me to see all the related resources in the same screen. In the Numbers Game example, it lists the related App Service Plan, Function App and Application Insights on the same screen (on Portal and VSCode). Also, if I want to delete the whole thing, I can just delete the resource group. That's just a few of the goodies that RG offers.
- Function App - this is another layer of the hierarchy that can group all the related functions under the same app. Settings like Keys, Logging, CORS can be specified at this level and apply to all the functions of the app. However, this is a double-edged sword (see below).
- Portal GUI is very intuitive
- Console and the other Development Tools - I can go into the console to see what's happening behind the scene. (OK, for serverless you shouldn't have to care about the server or what's behind the scene. But I am curious).
- Code is quite performant - speed of execution is pretty impressive - around 500ms - 800ms to solve the game.
- Although not required for my function, I like the fact that Azure allows you to scale up by changing the App Service Plan. It would have been even nicer to be able to combine AWS' concurrency control with the scaling options here.
👎What I don't quite like about Azure Functions:
- Portal GUI (and VSCode) loading of the screens are quite slow - loading of code takes a couple of seconds (with only 350 - 400 lines of code). However, the App Service Editor development tool from the portal is much quicker. (in fact, the Azure CLI/Powershell feel very slow in general).
- The language/Stack setting is at Function App level. Therefore, I am stuck with the same language for all functions underneath. In my example, the main code of solve game was developed a few years ago in Javascript, so it's natural to choose Node.js. However, the GetNumbersGameHtml function would be much easier to write in Python taking advantage of its """ multi-line string syntax.
My overall impression about Azure Function is very positive albeit the tooling may still need some polishing and some missing features like data mapping and validation declaratively outside of the code.
No comments:
Post a Comment