Linda Nichols

@lynnaloo

Norfolk.js

norfolkjs.org

The Monolith

@lynnaloo

The Monolith

@lynnaloo

The Monolith

@lynnaloo

  • Single-tiered

  • Performs all tasks​

  • Not modular

  • Many dependencies

  • Legacy technology

  • On-premises/On a Mainframe

  • Expensive to host/maintain

The Monolith

@lynnaloo

The Monolith Onion

@lynnaloo

@lynnaloo

  • Long-lasting, yet perishable

  • Contains many layers

  • Difficult to modularize

  • Complicated deployments

  • There can be a code "smell"

The Monolith Onion

@lynnaloo

The Monolith Onion

Dismantling

the monolith

@lynnaloo

  • Separate the application tiers

  • Create microservices

  • Upgrade legacy technology

  • Focus on security

  • Re-write application code

  • Move to "the cloud"

refactoring is expensive

@lynnaloo

time cost money.

People cost money.

legacy stays legacy

@lynnaloo

Patching is cheap.

works "just fine" now.

containers, containers, containers...

@lynnaloo

Let's go Serverless

@lynnaloo

what is serverless*

@lynnaloo

* "Serverless" is a catchy, made-up marketing term. Kind of like "cloud."

what is serverless

@lynnaloo

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.  

functions as a service

@lynnaloo

  • No Ops required*

  • Developers focus on code

  • Triggered by events

  • Built-in API Gateway

  • Really inexpensive

  • Don't pay for idle code

@lynnaloo

functions as a service

@lynnaloo

'use strict';

const catNames = require('cat-names');

function getCatName(event, context, callback) {
    callback(null, { payload: `Your cat name is ${catNames.random()}.` });
}

module.exports.getCatName;

functions as a service

Functions are microservices

@lynnaloo

  • Responsible for one specific task

  • Lightweight and fast

  • Reusable

  • Deployed independently

  • Not dependent on other services

  • Work together to power functionality

event-driven architecture

@lynnaloo

 

  • Events internal and external to the cloud platform can trigger events

  • Logic is decoupled from state and data

  • Scalability

  • Managed Services

event-driven architecture

@lynnaloo

Did you know that SQS can now trigger AWS LAMBDA functions?

gently Dismantle the monolith

@lynnaloo

@lynnaloo

break off serverless microservices

  • Cron  jobs

  • Background services

  • Calls to APIs

  • Small Data Stores

  • Maintenance scripts

  • Logging/analytics

  • IoT Devices

  • Message bus

start with functionality that has the fewest dependencies.

@lynnaloo

break off serverless microservices

conclusion

@lynnaloo

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.

conclusion

@lynnaloo

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.

Thank You!

@lynnaloo

come talk to me at booth 628!

Photo Credit

@lynnaloo

@PaulCHINJR

Gently Dismantle Your Monolith with Serverless Architecture

By Linda Nichols

Gently Dismantle Your Monolith with Serverless Architecture

7/17 - AWS Summit NYC

  • 1,215