SlideShare una empresa de Scribd logo
1 de 110
Descargar para leer sin conexión
Medium/Twitter: @PaulDJohnston
Serverless Best Practices
Paul Johnston
Opinionated Serverless Person
“Serverless all the things”
Medium/Twitter: @PaulDJohnston
Serverless Computing London November 2018
Medium/Twitter: @PaulDJohnston
Paul Johnston
Experienced Interim CTO and Serverless
Consultant - linkedin.com/in/padajo
C-Level Consultant
Environmentalist #ClimateChange bit.ly/2024wp
Twitter/Medium @PaulDJohnston
Co-founder ServerlessDays (formerly JeffConf)
Medium/Twitter: @PaulDJohnston
Cloud, Data Centres and Energy
Medium/Twitter: @PaulDJohnston
Future of Cloud and Climate
Data Centres at least 2% of Global Carbon Emissions (bigger than aviation)
Growth of Cloud/Data Centres likely to grow by at least 5x in next 7 years
Efficiency is irrelevant due to Jevons Paradox - increased efficiency leads to
increased demand
Not just climate, but energy security - energy price rises
Whitepaper written by Anne Currie and myself bit.ly/2024wp
And Bitcoin energy consumption? About the same as Austria
https://digiconomist.net/bitcoin-energy-consumption
Medium/Twitter: @PaulDJohnston
Ethics Whitepaper - The State of Data Centre
Energy Use in 2018
Medium/Twitter: @PaulDJohnston
Background - Movivo
CTO of Movivo in 2015
One of the first Serverless startups
Android App + AWS Lambda
By early 2017 was in 20+ countries with over
500,000 MAU
AWS bill was ~$300/month (half data backup)
Team of 2 serverless and 2 android developers in
total
Medium/Twitter: @PaulDJohnston
Background - AWS
Senior Developer Advocate for Serverless
2017-18
Part of Lambda Product Team
Responsible for speaking about Lambda, API
Gateway, Step Functions, Serverless Application
Repository, Lambda@Edge and other services
Met and did workshops with many serverless
customers
Medium/Twitter: @PaulDJohnston
bit.ly/serverlessbestpractices
Medium/Twitter: @PaulDJohnston
bit.ly/serverlessbestpractices*
*not the only practices and you can break the rules if you want
Medium/Twitter: @PaulDJohnston
What is Serverless?
Medium/Twitter: @PaulDJohnston
Serverless is Inherently
Event Driven
And
Asynchronous*
*Consequence of FaaS and Queues
Medium/Twitter: @PaulDJohnston
Definition of Serverless
“A Serverless solution is one that
costs you nothing to run if nobody is
using it, excluding data storage.”
Me - September 2017
Medium/Twitter: @PaulDJohnston
Serverless is
Economic
not Technological
Medium/Twitter: @PaulDJohnston
So Serverless is about
Business
not
Technology*
*Consequence of CTO thinking
Medium/Twitter: @PaulDJohnston
Serverless Best Practices
Medium/Twitter: @PaulDJohnston
Serverless Best Practices
Serverless Best Practices blog:
bit.ly/serverlessbestpractices
August 2018
Medium/Twitter: @PaulDJohnston
Each function should do only one
thing
Functions don’t call other functions
Use as few libraries in your functions
as possible (preferably zero)
Avoid using connection based
services e.g. RDBMS
Serverless Best Practices
One function per route (if using
HTTP)
Learn to use messages and queues
(async FTW)
Data flows not data lakes
Just coding for scale is a mistake,
you have to consider how it scales
Medium/Twitter: @PaulDJohnston
Practice 1:
Each Function should do
only one thing
Medium/Twitter: @PaulDJohnston
Scaling And Error Isolation
(If you have a switch statement, you’re doing it wrong)
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Lots of tutorials/frameworks put monoliths into functions (miniliths) - Microservices
If you have multiple logic elements, then you have to scale memory and compute
to the most hungry element
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Function
Function Function
Function Function
Function Function
Scaling up of function
= Logic within function code
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Function
Function Function
Function Function
Function Function
Assumption: All logic is
equal within function
Scaling up of function
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Function
Function Function
Function Function
Function Function
Assumption: All logic is
equal within function
Scaling up of function
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Function
Scaling up of function
= Logic within function code
Function Function
Function Function
Function Function
Memory and compute
allocated for most
memory/compute intensive
compute e.g.
e.g. 1 GB + 15 second timeout
Medium/Twitter: @PaulDJohnston
Practice 1: Scaling
Scaling up of function logic
as needed
= Logic within function code
Memory and compute
allocated as required
Function
Function
Function
1 GB + 3 second timeout
256MB + 500 ms timeout
128MB + 15 second timeout
Medium/Twitter: @PaulDJohnston
Practice 1: Debugging
= Logic within function code
Function
Function
Function
1 GB + 3 second timeout
256MB + 500 ms timeout
128MB + 15 second timeout
Errors are easier to debug
and can replace functions
with minimal disruption
!!!
Medium/Twitter: @PaulDJohnston
Practice 1:
Each Function should do
only one thing
FunctionFunctionFunction
Medium/Twitter: @PaulDJohnston
Practice 2:
Functions don’t call other functions
Medium/Twitter: @PaulDJohnston
Practice 2: Functions and Microservices
Functions != Microservices
Logically you might think it’s ok to call other functions
Removes isolation
Doubles cost
Makes debugging more complex
Medium/Twitter: @PaulDJohnston
Practice 2: Function calling
FunctionFunction
Direct invoke
Doubling up invoke cost
Removes isolation
If errors occur, it’s more
difficult to identify in logs
which function is
responsible
Medium/Twitter: @PaulDJohnston
Practice 2: Use queues
FunctionFunction
Queue Trigger
⚡
Replace with a queue
Automatic trigger
Medium/Twitter: @PaulDJohnston
Practice 2: Use data stores
FunctionFunction
Data Store Trigger
⚡
Or a data store
Automatic trigger
Medium/Twitter: @PaulDJohnston
Practice 2: Unidirectional
FunctionFunction
Data Store Trigger
⚡
Unidirectional
Medium/Twitter: @PaulDJohnston
Practice 2:
Functions don’t call other functions
FunctionFunction
⚡
Medium/Twitter: @PaulDJohnston
Practice 3:
Use as few libraries in your functions as
possible (preferably zero)
Medium/Twitter: @PaulDJohnston
Practice 3: Show me the code… vulnerabilities
Libraries make things easier...
…but always introduce technical debt
It’s a trade off
If you know it (really know it) and trust it then use it
But then you manage that on top of your logic
Medium/Twitter: @PaulDJohnston
Practice 3: AWS Lambda Function Lifecycle
Full Cold Start
Start new
container
Bootstrap the
runtime
Start your
code
Time
AWS Optimisation Your Optimisation
Partial Cold Start Warm Start
Download your
code
Source: AWS Online Tech Talks - Become a Serverless Black Belt - Optimizing Your Serverless Applications
Medium/Twitter: @PaulDJohnston
Practice 3: Small packages
Download your
code
Small packages are faster to download
Not a major optimisation for speed
But fewer lines of code are easier to debug
Medium/Twitter: @PaulDJohnston
Practice 3: Global variables and connections
Bootstrap the
runtime
Global variables loaded before
execution
Lazy loading is a good idea
Libraries loaded here can be a real
problem. What is being loaded?
Using Practice 1 - Each function
should only do one thing - then this
should limit your libraries
Medium/Twitter: @PaulDJohnston
Practice 3: Code optimisation
Start your
code
Most optimisation is found here - your code
If you have zero libraries, then this is where most of
your optimisation is
Reliance on libraries here may seem like you have
fewer lines of code in functions, but actually many
more lines of actual code
Medium/Twitter: @PaulDJohnston
Practice 3: LOC
Lines of Code matters
Not just your code, but libraries too - 1 library can have many dependencies
So no libraries unless you absolutely have to
It’s amazing what you don’t need
And Cold Starts are often very fast when you have very few libraries
Medium/Twitter: @PaulDJohnston
Practice 3: e.g. AWS SDK
npm init -y
npm install --save aws-sdk
echo "var AWS = require('aws-sdk');" > index.js
sloc ./
---------- Result ------------
Physical : 503378
Source : 295886
Comment : 197692
Single-line comment : 5458
Block comment : 192281
Mixed : 1794
Empty : 16109
To Do : 33
Number of files read : 620
------------------------------
295,886 Lines of Source Code
Medium/Twitter: @PaulDJohnston
Practice 3: No express or django
Functions were not built for running server based solutions
So don’t use them
It adds in huge amounts of unnecessary code written for servers
It doesn’t save time in the long run
Medium/Twitter: @PaulDJohnston
Practice 3:
Use as few libraries in your functions as
possible (preferably zero)
Start new
container
Bootstrap the
runtime
Start your
code
Download your
code
Medium/Twitter: @PaulDJohnston
Practice 4:
Avoid using connection based services
e.g. RDBMS
Medium/Twitter: @PaulDJohnston
WARNING
WARNING
WARNING
Medium/Twitter: @PaulDJohnston
Practice 4:
Avoid using connection based services
e.g. RDBMS
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Concurrent Functions
RDBMS
n = 20
100 connections
limit
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Concurrent Functions
RDBMS
n = 20 ALL GOOD
100 connections
limit
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Scale x4
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Concurrent Functions
RDBMS
n = 80
100 connections
limit
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Concurrent Functions
RDBMS
n = 80 ALL GOOD
100 connections
limit
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Scale x4
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
100 connections
limit
RDBMS
Concurrent Functions
n = 320
Medium/Twitter: @PaulDJohnston
Practice 4: Bottlenecks
Concurrent Functions
RDBMS
n = 320 NO CONNECTIONS
100 connections
limit
Medium/Twitter: @PaulDJohnston
Practice 4: Solution?
Concurrent Functions
RDBMS
n = 320
Connection
pooling proxy?
throttle as
needed
100
connections
Medium/Twitter: @PaulDJohnston
Practice 4: Service interfaces
Concurrent Functions
n = 320
e.g. DynamoDB
Managed Service
Interface
Medium/Twitter: @PaulDJohnston
Practice 4: Service interfaces
Concurrent Functions
n = 1000s?
e.g. DynamoDB
Need to be aware
of provisioning
Managed Service
Interface
More likely to be
able to scale up
Medium/Twitter: @PaulDJohnston
Practice 4: Upstream scale
Serverless
Functions
Connections
Data Layer
Other Services
Concurrency of
functions
defined by
upstream scale
Medium/Twitter: @PaulDJohnston
Practice 4: Beware of I/O
Serverless
Functions
Connections
Data Stores
Other Services
Concurrency of
functions
defined by
upstream scale
Be aware of I/O (cold start)
Medium/Twitter: @PaulDJohnston
Practice 4: Rethink your data layer
Small spikes in functions can max out connections in a database
Concurrency can limit your scale
Your data layer constraints affect how you build your functions and applications
Managed data services are likely to be able to scale better than trying to scale
yourself
Medium/Twitter: @PaulDJohnston
Practice 4:
Avoid using connection based services
e.g. RDBMS
Managed Service Interface
Medium/Twitter: @PaulDJohnston
Practice 5:
One function per route (if using HTTP)
Medium/Twitter: @PaulDJohnston
Practice 5: HTTP routes - API Gateways
Relatively common use case
A lot of tutorials are “miniliths” - a single function to handle all routes
Others are “run django, express etc in a function” (middleware?)
Easy to start (Hello World!), more difficult to isolate errors (Practice 1)
Can make it difficult to decouple data layer from functions
Medium/Twitter: @PaulDJohnston
Practice 5: API Gateways - easy start, doesn’t scale
Single proxy
function
or django/express
style function
APIGateway
Internet
GET /
POST /posts
GET /posts/{id}
POST /authors
GET /authors/{id}
Medium/Twitter: @PaulDJohnston
Practice 5: API Gateways
APIGateway
Internet
GET /
POST /posts
GET /posts/{id}
POST /authors
GET /authors/{id}
Fn 1
Fn 2
Fn 3
Fn 4
Fn 5
Medium/Twitter: @PaulDJohnston
Practice 5: Lots of functions - manage it!
This does increase the number of resources
Each function will need security rules and may need secrets etc
So, use infrastructure as code
E.g. Terraform, SAM, CloudFormation, Serverless Framework, Architect, Stackery
Medium/Twitter: @PaulDJohnston
Practice 5:
One function per route (if using HTTP)
GET /
POST /posts
Fn 1
Fn 2
Medium/Twitter: @PaulDJohnston
Practice 6:
Learn to use messages and queues
(async FTW)
Medium/Twitter: @PaulDJohnston
Practice 6: So queues (from Practice 2)
FunctionFunction
Queue Trigger
⚡
Automatic trigger
Medium/Twitter: @PaulDJohnston
Practice 6: And data stores (from Practice 2)
FunctionFunction
Trigger
⚡
Automatic trigger
Data Store
Medium/Twitter: @PaulDJohnston
Practice 6: Event pattern
Trigger
⚡
Automatic trigger
Thing
? Function
Medium/Twitter: @PaulDJohnston
Practice 6: Event pattern
Trigger
⚡
Automatic trigger
Thing
? Function
RUN STUFF WHEN STUFF
HAPPENS
Medium/Twitter: @PaulDJohnston
Practice 6: Event pattern - queues
Trigger
⚡
Automatic trigger
Queue Function
Push messages in
Asynchronous
is not request
response
Circuit breaker
{
“Data”:
{
“a”: [
...
Medium/Twitter: @PaulDJohnston
Practice 6: Event pattern - queues
Trigger
⚡
Automatic trigger
Queue Function
Happy path
Errors...
DLQ?
Blocking?
Non-Blocking?
Medium/Twitter: @PaulDJohnston
Practice 6: Async queues and messages
Decouples logic through queues
Primarily stops you building request-response
Learn to use circuit breakers
Understand which queues to use and when
Medium/Twitter: @PaulDJohnston
Basically, learn how distributed systems work
Medium/Twitter: @PaulDJohnston
Practice 6: CQRS
Command Query Responsibility Segregation
Basically Reads and Writes go through different logic
Trigger on data writes
Build caches to read from
Asynchronous
Medium/Twitter: @PaulDJohnston
Practice 6:
Learn to use messages and queues
(async FTW)
⚡
{
“Data”:
{
“a”: [
...
Medium/Twitter: @PaulDJohnston
Practice 7:
Data flows not data lakes
Medium/Twitter: @PaulDJohnston
Your data in your application is always in motion
Medium/Twitter: @PaulDJohnston
Applications are not code
Medium/Twitter: @PaulDJohnston
Applications are like landscapes and water
Medium/Twitter: @PaulDJohnston
Medium/Twitter: @PaulDJohnston
Medium/Twitter: @PaulDJohnston
Practice 7: Data flows and Data lakes
Data Lake
Data Flows
Medium/Twitter: @PaulDJohnston
Practice 7: Data flows into Data lakes
Medium/Twitter: @PaulDJohnston
Practice 7: Data flows into Data lakes
Medium/Twitter: @PaulDJohnston
Practice 7: Data flows
Data flows through your application
Queues - Functions - Events
Fast Data Stores - Caches, Fast Reads/Writes
Performant data throughput
Scale considerations are higher
e.g Document DBs, K/V stores, blob stores
Medium/Twitter: @PaulDJohnston
Practice 7: Data lakes
Data ends up in a lake
Lots of different types of data
Usually the end of a data flow
Less need for performance
Scale considerations are lower
e.g. RDBMS, Logging, Analytics
Medium/Twitter: @PaulDJohnston
Practice 7: Changing data flows
Easier to reroute a data flow
Than to dam a lake
Events allow for flexible data structures
Rigidity makes rerouting harder
Applications always change, and this allows
for it
Medium/Twitter: @PaulDJohnston
Practice 7: Data flows
Your application
Is more about the
flows
than it
is about the
lakes
Application
Medium/Twitter: @PaulDJohnston
Practice 7:
Data flows not data lakes
Application
Medium/Twitter: @PaulDJohnston
Practice 8:
Just coding for scale is a mistake, you
have to consider how it scales
Medium/Twitter: @PaulDJohnston
Just because the
Function
scales does not mean the
Application
will scale
Medium/Twitter: @PaulDJohnston
What are upstream and downstream effects?
Medium/Twitter: @PaulDJohnston
Practice 8: Scale all the things
Your application is more than just functions
What are your application dependencies?
Data stores?
Third Party Services?
+ ? + Scale = ?
Medium/Twitter: @PaulDJohnston
Practice 8:
Just coding for scale is a mistake, you
have to consider how it scales
+ ? + Scale = ?
Medium/Twitter: @PaulDJohnston
Quick Point:
These are “Best Practices”
not “Only Practices”*
*know the practices so that you can understand when to break them
Medium/Twitter: @PaulDJohnston
Practice 1:
Each Function should do
only one thing
FunctionFunctionFunction
Medium/Twitter: @PaulDJohnston
Practice 2:
Functions don’t call other functions
FunctionFunction
⚡
Medium/Twitter: @PaulDJohnston
Practice 3:
Use as few libraries in your functions as
possible (preferably zero)
Start new
container
Bootstrap the
runtime
Start your
code
Download your
code
Medium/Twitter: @PaulDJohnston
Practice 4:
Avoid using connection based services
e.g. RDBMS
Managed Service Interface
Medium/Twitter: @PaulDJohnston
Practice 5:
One function per route (if using HTTP)
GET /
POST /posts
Fn 1
Fn 2
Medium/Twitter: @PaulDJohnston
Practice 6:
Learn to use messages and queues
(async FTW)
⚡
{
“Data”:
{
“a”: [
...
Medium/Twitter: @PaulDJohnston
Practice 7:
Data flows not data lakes
Application
Medium/Twitter: @PaulDJohnston
Practice 8:
Just coding for scale is a mistake, you
have to consider how it scales
+ ? + Scale = ?
Medium/Twitter: @PaulDJohnston
bit.ly/serverlessbestpractices
Medium/Twitter: @PaulDJohnston
Paul Johnston
Experienced Interim CTO and Serverless
Consultant - linkedin.com/in/padajo
C-Level Consulting
Introducing and Moving to Serverless
Building Teams
Cloud Agnostic
Contact: paul@roundaboutlabs.com or
Twitter/Medium @PaulDJohnston
Medium/Twitter: @PaulDJohnston
Serverless Best Practices
Paul Johnston
Opinionated Serverless Person
“Serverless all the things”
Medium/Twitter: @PaulDJohnston
Serverless Computing London November 2018

Más contenido relacionado

Similar a Serverless Best Practices - Serverless Computing London

Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...
Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...
Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...Nati Shalom
 
RSS feeds using Millennium data
RSS feeds using Millennium dataRSS feeds using Millennium data
RSS feeds using Millennium dataAndrew Preater
 
Personium mydata2016 0902
Personium mydata2016 0902Personium mydata2016 0902
Personium mydata2016 0902暁生 下野
 
Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Preferred Networks
 
Large Scale Processing with Django
Large Scale Processing with DjangoLarge Scale Processing with Django
Large Scale Processing with DjangoUdi Bauman
 
Making awesome apps
Making awesome appsMaking awesome apps
Making awesome appsDroidConTLV
 
香港六合彩
香港六合彩香港六合彩
香港六合彩uliuqd
 
Oop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enOop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enMichael Stal
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Enginedenis Udod
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goalskamaelian
 
Dc ch02 : protocol architecture
Dc ch02 : protocol architectureDc ch02 : protocol architecture
Dc ch02 : protocol architectureSyaiful Ahdan
 
Efficient data transfer in Android
Efficient data transfer in AndroidEfficient data transfer in Android
Efficient data transfer in AndroidCotap Engineering
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDDPhil Calçado
 
Micro Processors Present Technology and Up gradations Required
Micro Processors Present Technology and Up gradations RequiredMicro Processors Present Technology and Up gradations Required
Micro Processors Present Technology and Up gradations Requiredijtsrd
 
IRJET - Automation in Python using Speech Recognition
IRJET -  	  Automation in Python using Speech RecognitionIRJET -  	  Automation in Python using Speech Recognition
IRJET - Automation in Python using Speech RecognitionIRJET Journal
 
Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.Angelos Petheriotis
 

Similar a Serverless Best Practices - Serverless Computing London (20)

Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...
Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...
Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web ...
 
RSS feeds using Millennium data
RSS feeds using Millennium dataRSS feeds using Millennium data
RSS feeds using Millennium data
 
Personium mydata2016 0902
Personium mydata2016 0902Personium mydata2016 0902
Personium mydata2016 0902
 
amaha internet course
amaha internet courseamaha internet course
amaha internet course
 
Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013
 
Large Scale Processing with Django
Large Scale Processing with DjangoLarge Scale Processing with Django
Large Scale Processing with Django
 
Making awesome apps
Making awesome appsMaking awesome apps
Making awesome apps
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Oop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enOop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-en
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Engine
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
 
Dc ch02 : protocol architecture
Dc ch02 : protocol architectureDc ch02 : protocol architecture
Dc ch02 : protocol architecture
 
Introduction to SDshare
Introduction to SDshareIntroduction to SDshare
Introduction to SDshare
 
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUESHHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
 
Efficient data transfer in Android
Efficient data transfer in AndroidEfficient data transfer in Android
Efficient data transfer in Android
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDD
 
Monitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp DockerMonitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp Docker
 
Micro Processors Present Technology and Up gradations Required
Micro Processors Present Technology and Up gradations RequiredMicro Processors Present Technology and Up gradations Required
Micro Processors Present Technology and Up gradations Required
 
IRJET - Automation in Python using Speech Recognition
IRJET -  	  Automation in Python using Speech RecognitionIRJET -  	  Automation in Python using Speech Recognition
IRJET - Automation in Python using Speech Recognition
 
Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.
 

Último

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Serverless Best Practices - Serverless Computing London