Enterprise Serverless Adoption
An Experience Report
Sheen Brisals
The LEGO Group
sheenbrisals
Sheen Brisals
Engineer. Architect. Writer. Speaker. Leader.
AWS Serverless Hero
@ The LEGO Group
Ex Oracle, Hewlett-Packard, Omron, TATA
sheenbrisals sbrisals.medium.com
sheen-brisals
▪ Serverless @ LEGO.com
▪ Growing Serverless Teams
▪ Serverless Best Practices
▪ Serverless & Sustainability
Agenda
Severless at
LEGO.com
LEGO.com was
switched to
Serverless
July 10, 2019
January 2022
More than 20 Squads
More than 100 Engineers
More than 80 Microservices
More than 350 Lambda functions
Summer 2021
More than 12 Squads
More than 80 Engineers
More than 60 Services
More than 300 Lambda functions
Summer 2019
Just 2 Teams
Around 20 Engineers
Around 20 Services
Under 100 Lambda functions
November 2018
Just 2 Teams
Around 20 Engineers
Around 10 Services
Around 50 Lambda functions
Spring 2018
2 Teams
10 Engineers
Zero Serverless
September 2018
First Lambda function
VPC
Node.js
+
React
Elastic Beanstalk
container
Server contents Server contents
Tax
Products CRM
Fulfillment Rewards
AWS Cloud
SaaS
VPC
Gateway
Server contents
Corporate
data center
Amazon API
Gateway
AWS Lambda
function
Growing
Severless Teams
Let’s Grow!
1
The Field
Team Environment
Team Environment
organisation
innovative
experimentation
trust
motivation
ownership
responsible
risk taking
self belief
self-govern
fast action
2
The Seed
Pilot Engineer(s)
Pilot Engineer(s)
Attitude
Aptitude architecture
security
programming
passion for tech
hunger to learn
‘can do’
3
The Grower
Team Enabler
Team Enabler
coach
mentor
Role techie
passionate
Characteristics
architect committed
engineer
business
friendly
leader agile
4
The Nutrients
The Training
certifications
workshops
conferences
lunch &
learn
courses
The Training
podcasts
newsletters
meetups
hackathons
open
source
community
blogs
5
The Growth
The Growth
The Growth best
practices
DevOps
collaboration
serverless
skills
infra
CI/CD
cohesive pairing
Serverless Mind
Serverless requires a "mind-shift" to see the
products as event-driven orchestration of
managed services, knitted with infrastructure
code, to bring the best value
6
The Fruits
The Victories
The Victories
Team Outcome
PoC
MVP
Service in PROD
Trust
Confidence
Respect
Stakeholder Opinion
7
The Maturity
The Awesome Team
The Awesome Team
ownership
culture
community
contributions
engineers as
architects
releases
features
velocity
awesome team
DevOps
practices
Serverless Engineer
“A software engineer who is innovative,
efficient, capable of building secure, cloud
first and cost effective functional solutions
using managed services.”
8
The Pruning
Trim Distractions
Trim Distractions
Distractions
conflicts of
interest
communication
hurdles
over-engineering
practices
re-invention
mindset
no customer
benefit
no business
value
wandering
tech thoughts
process
overload
low
productivity
complacency always awesome
9
The Renewal
The Retrospective
The Retrospective
tech debt
reduction
technology
uptake
service
refactoring
process
changes
team
adjustments
bonding
activities
training &
workshops
team
hackathon
experts
sessions
10
The Offspring
New Teams
New Teams
awesome team
amazing team
A team
super team
Environment
Engineers
Leader
Training
Growth
Outcome
Team
Serverless
Best Practices
Cloud provider
Framework
Team
Skills
CI CD
Language
Dev tools
Security
Data
Agree on Guiding Principles
Agree on Guiding Principles
• Development language
• Use of managed services
• Framework
• Cloud account structure
• Code repository
• Solution design process
• API guidelines
• Service contracts
Perform Solution Design
• Technical agility
• Engineering clarity
• Business visibility
• Service longevity
https://bit.ly/3tPEe7D
Incremental & Iterative Approach
design
review
agree
develop
• Start small and evolve
• MVP mindset
• Solution first. Perfection next
• Iterate and improve
• Speed matters in business
Agile, iterative, and automated serverless
development is like a gravity defying take-off.
Once launched, there’s no stopping!
Sheen Brisals
Security & Threat Modelling
• Security from the start
• Data privacy
• GDPR & Compliance
• Service protection
https://qrgo.page.link/aiQsb
DevOps and Automation
• Account separation
• Infrastructure as Code
• Grow CI/CD pipeline
• Inspire a DevOps culture
• Service ownership
Reliability
Performance
efficiency
Operational
excellence
Cost
optimization
Security
Well-Architected Service Audit
Sustainability
Well-Architected Service Audit
• Service criticality
• Alarms & alerts
• Structured logging
• Release settings - canary
• Serverless Lens audit
• Security & privileges
• Data privacy measures
• Service documentation
Sustainability with
Serverless
Sustaining is a process of keeping something going
for a prolonged period by nurturing it with a
continuous provision of nourishment to ensure its
growth and existence.
Serverless Sustainability Triangle
Cloud
Product Process
Sustainability
in
Serverless
Serverless Sustainability Triangle
Cloud
Product Process
Sustainability
in
Serverless
Building sustainable
serverless solutions
Following sustainable
development processes
Applying cloud best
practices
Sustainability of the cloud
Sustainability in the cloud
Sustainable Products
• Domains, context, and boundaries
• Independent smaller microservices
• Defined contracts
Modularity
• Loosely coupled services
• Event-driven architecture
• Asynchronous communication
Extensibility
• Structured logging
• Distributed tracing
• Measurable metrics
Observability
Sustainable Processes
Follow agile development practices – be flexible and practical
Adapt lean principles - to reduce waste
Change the throw-away prototype or PoC culture – think product longevity
Evolve the product in iterations – minimum viable to maximum valuable product
Embrace refactoring as part of the development cycle – to keep the solution fresh
Automate all possible processes – promotes just the required resources usage
Sustainable Environment: Cloud
Shared responsibility between us (customers) and AWS
Sustainable Environment: Cloud
Renewable
energy
Efficient power &
cooling
Sustainability
of the Cloud
Development
language
Data stores &
policies
Sustainability
in the Cloud
Server population
Right sizing
resources
Shared resources
On-demand
scaling
Compute & storage
tiers options
Managed services
AWS Customer
Data and
storage
pattern
Compute and
infra
pattern
User
behaviour
pattern
Dev and
deployment
pattern
Software
architecture
pattern
Sustainable
Environment
Best Practices
Cloud Best Practices: User Behaviour Pattern
• Greener region selection
• Plan for high volume user events
• Clear temporary user content
• Deploy services closer to the customer base
• Perform caching at the edge
Cloud Best Practices: Software & Architecture
• Adopt async & event-driven architecture
• Queues and buffer to smoothen load
• Design queries to fetch just the required data
• Run low priority task during off peak
• Run jobs during the day when carbon intensity
for power is lowest
Cloud Best Practices: Compute & Infrastructure
• Optimise lambda functions
• Vary lambda resources as per the need
• Arm/Graviton2 processors for Lambda
• Use managed services
• Prefer services that scale horizontally
Cloud Best Practices: Data & Storage
• Classify data and tag resources
• Right datastore for right data & access pattern
• Remove unwanted data with TTL & policies
• Move data to apt storage as per access frequency
• Avoid high volume data movement across regions
Cloud Best Practices: Development & Deployment
• Maximise dev & test environment utilization
• Keep systems up to date
• Automate pipeline resource lifecycle
• Use managed device farms
▪ Start small & simple and scale up
▪ Grow your engineers & teams
▪ Guardrails and best practices
▪ Sustainability of product, process, and the world
To Close…
Go
Build
Serverless
sheenbrisals sbrisals.medium.com
Thank You

Enterprise Serverless Adoption. An Experience Report