aws
Serverless computing on AWS #1 So what?
by Stuartpublished onA few years ago I was CTO of a software company that provided a Software as a Service (SaaS) web application: cflow. Like many applications of the time it was hosted on dedicated (leased) servers. For each environment, we had a web server, an application server and a database server. We had DEV, TEST, UAT, PROD and DR environments. That's a lot of servers. That's a lot of money to spend on servers, some of which will sit idle for most of the time.
As is common in the days before Cloud, our servers were over-specified. We wanted our system to perform well in all conditions, so we loaded our servers with memory and solid-state disks. For 99% of the time this resource was underutilised but we paid for it 100% of the time. Cloud technologies allow you to match the supply of system resources to meet user demand. You pay for what you need, when you need it.
For 99% of the time this resource was underutilised but we paid for it 100% of the time.
If you're a software developer, you don't want to be managing servers. It's tedious. It's a distraction that takes time and energy from your primary focus: developing great software that makes your customers happy. It's thankless work that only gets noticed when you get it wrong.
Enter Amazon Web Services (AWS), Lambda and the Serverless Framework. AWS Lambda allows software developers to write and deploy code without having to worry about the hardware it's hosted on. The Serverless Framework provides a mechanism for scripting serverless environments in code: Infrastructure as code (IaC). The framework provides interfaces to deploy to AWS, Google and Azure Cloud platforms.
Over the last 6 months I've been putting together a Cloud-based, serverless application, that's deployed continuously, is global, secure, fast, highly resilient and scalable. In the following posts I'll share with you our experience, the AWS components I've used and the resources that I've found most helpful.
What's next?
In the next posts I'll describe the Cognito user authentication service and then we'll go on to build the application itself.
Comments