Serverless / Cloud Ecosystem
- Heroku is a cloud platform as a service (PaaS) supporting several programming languages. Heroku, one of the first cloud platforms. All Heroku services are hosted on Amazon’s EC2 cloud-computing platform. Heroku was acquired by Salesforce.com in 2010. Heroku calls containers Dynos.
Cloud VM Infrastructure (IaaS)
Infrastructure as a Service (IaaS)
- at least one instance must be up all the time
There are 3 biggest cloud systems available:
- Amazon Elastic Compute Cloud (Amazon EC2)
- Microsoft Azure Virtual Machines
- Google Compute Engine (GCE)
- Others: Hetzner Cloud, DigitalOcean, Linode, etc
Scalable hosting service (PaaS)
- no running instances if not needed. They are automatically shut down after 15 minutes of inactivity.
- apps have an app context that survives across individual requests (Lambdas don’t support this)
- priced on instance-hours, regardless of how many requests a particular instance serves
Platform as a Service (PaaS) Far more flexible than “lambdas”.
Main platforms available are:
Google App Engine; code can be written in many languages like: (Node.js, Java, Ruby, C#, Go, Python and PHP). You can even provide your own Docker image that provides the runtime you want. You can ssh into the servers for custom code deployment. It was created way before Google entered Cloud business.
Pure Serverless Functions (Lambdas, FaaS)
FaaS (Functions as a Service)
- priced by execution (invocation)
- single runtime (usually node.js)
- don’t have an app context that survives across individual requests
[Google Cloud Function] only supports a single runtime environment using NodeJS. Whereas GAE supports several other popular programming languages.
Netlify Functions; powered by AWS Lambda. Simplified by Netlify. Deploy AWS Lambda functions without configuring API gateways
Now.sh by Zeit is also lambda platform
Comparing serversless platforms
AWS Cognito and Google Firebase
Roughly speaking, serverless technologies can be broken down into two categories, backend-as-a-service (BaaS) and functions-as-a-service (FaaS).
BaaS has its roots in Mobile BaaS (MBaaS), a set of technologies, such as Facebook’s Parse, that provided backend support for mobile apps. While FaaS only offers to execute users’ code, BaaS offers a complete online service. Google’s Firebase, for instance, offers a fully managed and hosted database.