Single-tiered
Performs all tasks
Not modular
Many dependencies
Legacy technology
On-premises/On a Mainframe
Expensive to host/maintain
Long-lasting, yet perishable
Contains many layers
Difficult to modularize
Complicated deployments
There can be a code "smell"
Separate the application tiers
Create microservices
Upgrade legacy technology
Focus on security
Re-write application code
Move to "the cloud"
* "Serverless" is a catchy, made-up marketing term. Kind of like "cloud."
Serverless Architecture is an event-driven system that uses remote functions (likely FaaS or BaaS) without concern for the operations of the containers that execute the code.
No Ops required*
Developers focus on code
Triggered by events
Built-in API Gateway
Really inexpensive
Don't pay for idle code
'use strict';
const catNames = require('cat-names');
function getCatName(event, context, callback) {
callback(null, { payload: `Your cat name is ${catNames.random()}.` });
}
module.exports.getCatName;
Responsible for one specific task
Lightweight and fast
Reusable
Deployed independently
Not dependent on other services
Work together to power functionality
Events internal and external to the cloud platform can trigger events
Logic is decoupled from state and data
Scalability
Managed Services
Did you know that SQS can now trigger AWS LAMBDA functions?
Cron jobs
Background services
Calls to APIs
Small Data Stores
Maintenance scripts
Logging/analytics
IoT Devices
Message bus
As more functionality is removed, less compute power is needed for the monolith. Re-engineering a small core is now more manageable and less expensive.
Modernization doesn’t have to be a one-time effort.
Serverless architecture facilitates gradual changes and results in a more immediate reduction in complexity and cost.