Python developers – the world of Azure Functions is yours at last.
Having been in preview for a while, support for Python 3.6 on the Azure Functions 2.0 platform has emerged blinking into the light with Microsoft unsurprisingly pitching the tech directly at those who like a little serverless with their machine learning and data science.
The functions themselves can be published as code or Docker containers to a Linux-based serverless hosting platform in Azure.
With all the not-invented-here technology currently flying around the halls of Redmond, it is almost as if the former Windows giant is attempting to be all things to all developers. Someone crueller than us might say “jack of all trades, master of none”.
Still, with Python hovering around the top of the language tables, the arrival of General Availability will please those who have bought into Azure’s serverless vision. Arch-rival AWS has, of course, enjoyed Python support in Lambda Functions for a while now.
The programming model for Azure Functions is based on event triggers and data bindings, and Microsoft envisages developers using the Python support to transform and process data through bindings or react to alerts or events within Azure to, for example, automate cloud resources.
It’s an enticing option for developers – building and debugging locally before deploying to the cloud makes things considerably simpler, and in our once-around-the-block with the technology using the current darling of developers, Visual Studio Code, it was almost deceptively simple to coax into life.
We used the Azure Functions extension for Visual Studio Code coupled with the Python extension to get up and running. While we’d dispute Microsoft’s “matter of minutes” claim, the ability to test locally before things go all cloudy was very handy when it came to figuring out why our code refused to work.
Azure Functions Core Tools will also allow developers to code with the editor of their choice, and naturally Microsoft would really like you to use the Azure Pipelines integration found in Azure DevOps to keep things under control in a continuous delivery world.
After all, as Jeff Hollan, a senior program manager in the Azure Functions team, told us: “Tech friends don’t let friends right-click publish.” Jeff later attributed the quote to Microsoft Cloud DevOps Advocate Damian Brady, but it’s a handy reminder that while things seem to be headed in the direction of serverless, control is still required.
And, of course, all the Python love doesn’t get away from some of the limitations inherent in serverless functions, be they Azure, AWS or GCP.
While issues like cold starts and sudden death after 10 minutes of running are a pain on the standard consumption plan, things are improved by ponying up for the Premium plan, which should keep things toasty warm and running quite a bit longer. AWS will give Lambda functions 15 minutes to do their stuff before bringing down the axe.
Python support for Azure Functions is therefore to be welcomed, but developers will still need to ponder how and when it should be deployed. ®