A large of part of the technology sector has embraced the cloud as the default way of running web apps, distributed systems, and back-ends for mobile apps. But for organizations still looking to make the move, it’s hard to know where to start.
My recommended approach for greenfield projects is to choose a cloud native technology that lets you iterate rapidly while also giving you the flexibility to change your approach if — when — you make a mistake.
To that end, there is no better place to start than serverless. This post explores the top three reasons why I believe the serverless approach is the right one, regardless of the cloud provider.
#1 Little operational overhead
AWS and Azure transparently take care of almost all the operational work involved in managing the runtime environment used by serverless applications. No need to upgrade machines, install patches, or configure IIS. It’s all taken care of for you.
Many common non-functional requirements also come for free, such as logging, auto-scaling, and monitoring. It’s a bit of a one-size-fits-all approach to the problem, but it’ll solve 80% of the use cases you throw at it.
All of this means that the number of dials that need to be adjusted are kept to a minimum, letting you focus on the more pressing issue of delivering functionality to your end-users.
#2 Simple Programming Model
Every cloud provider implements the serverless programming model slightly differently. But they all boil down to an event that triggers a function to perform some series of actions in a short period of time. The only thing that developers need concern themselves with is those actions to take in response to an event. Everything else is handled by the serverless framework.
The tooling available for building Lambdas and Functions in .NET integrate seamlessly with Visual Studio 2017 and Visual Studio Code, making it a cinch to code and test locally. Deploying to the cloud is just as easy, and can be as simple as zipping the build folder, uploading it to the cloud, and running the code from there.
This relatively painless model lets developers focus on building features rather than learning the ins and outs of a given technology. You can be up and running with Lambda or Functions in a matter of days at the most. That’s a huge differentiating factor for small organizations with only a few developers.
#3 Serverless architecture is forgiving
Serverless applications are composed of many individual functions. The atomicity of those functions make it easier to redesign an application, should the need present itself. Functions can be split, merged, torn apart and put back together in a way that more closely follows the realities of the business model.
The serverless cost model, though somewhat hard to grasp, makes it relatively cheap to run low-traffic applications as compared to traditional hosting options, which are usually billed by the hour. You’ll pay only for what you use with serverless, whilst also being ready for a sudden rush of traffic.
All That Being Said…
Serverless isn’t a fit for every use case or business model. There will inevitably be needs that go beyond what serverless can offer. But those cases should be treated as exceptions, rather than the norm.
It’s crucial to build quickly, frequently, and with a high level of quality to compete in any market today. In most cases, serverless gives you the tools needed to do so.