Evolution of “software” over time Happening across two main axis: Hardware abstraction: with HW virtualization, moving HW to the cloud, reducing HW operations with PaaS and Serverless. HW abstraction focuses on reducing the cost (time) of setting up and long term HW management. Basically, it takes about a minute to setup a VM that someone else manages, HW, for you. Software architecture: from Monolithic, to N-Tier, to Micro-Services (SOA), to Functions (Serverless). I will argue, that the main advances in Application Software architecture focuses on reducing the long term cost of maintaining complex software system. Everyone agrees that monolithic architecture approach, is supper inefficient over the long run because it is hard to test and verify changes and it just doesn't’t scale- Not from engineering or management. The move to smaller and smaller chunks of code that are self-contained is happening. The latest buz word such as MicroServices and Functions are a good example.
If you think about it, Serverless is the first time we can actually use a single word, “Serverless”, to describe both the HW and Software improvments On one hand, everyone understands Serverless mean a fully managed, self-contained ; system that abstract the use of servers On the other hand, Everyone agree Serverless is event-based programing model
Bring multiple resources under a single API. Provide a single API definition which routes to various backends as needed.
The real value of proxies is in versioning. Shim function B and eventually have slots+TiP. This enables true microservices development. You can mock something under the proxy and this enables development across the full system.
Example: Function app A (exposing GET /FA) Function app B (exposing GET /FA) Function app C (exposing GET /FC) For a single host exposing GET /FA, GET /FB, and GET /FC add a proxy to function app A hosted at GET /FB then point this to the URL of /FB on Function App B.
Core Tools used to be called Azure Functions CLI. This is now feature complete and commands are established with final release in next few months.
On-demand serverless code
Develop, debug, test, deploy in Visual Studio
CI/CD support in Visual Studio Team Services and Github