SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
#cfgmgmtcamp @gerardthefox
Serverless?
How (not) to develop, deploy and operate serverless applications
6 Feb 2018
Gérard de Vos
gerard@deplica.com
#cfgmgmtcamp @gerardthefox
Content
● What is serverless?
● So what?
● Serverless products / services
● Get a grip
● Approach
● Demo?
● So why not serverless?
● Fin & ?
#cfgmgmtcamp @gerardthefox
What is serverless?
● Of course there are servers. It's just not your concern, like the solar farm and
national grid aren't for your wall socket.
"serverless" might be a stupid name but it's just a name. (get over it :-)
● Metered by byte transferred, byte stored, CPU second runtime. Not by
storage claimed, upper bandwidth, VMs/containers started.
○ S3 object storage, DynamoDB records vs block device / VHD
○ Egress traffic, CDN vs ethernet port, fibre line
○ DB query vs installed database cluster size
● Last piece: Compute. AWS Lambda, Google Cloud Function,
Azure Functions, IBM OpenWhisk
#cfgmgmtcamp @gerardthefox
What is serverless? Or where is serverless?
SaaS
Serverless
PaaS
IaaS
In house
Hardcore
Power
Datacenter
Compute
Super-/Hypervisor
OS / container
SW stack / Middleware / messaging
Business application
Business rules
Business process
#cfgmgmtcamp @gerardthefox
So what?
Toil, muck, yak shaving, etc.
https://aws.amazon.com/security/security-bulletins/AWS-2018-013/
#cfgmgmtcamp @gerardthefox
So what?
https://aws.amazon.com/compliance/
#cfgmgmtcamp @gerardthefox
So what?
#cfgmgmtcamp @gerardthefox https://twitter.com/swardley/status/951783539334352896
#cfgmgmtcamp @gerardthefox
So what?
● You can save a few € by updating older systems to sls
○ but the € 20k vs € 100 cloud bill won't matter that much on the total budget
Bigger, better reasons
● Opportunity Cost. What you miss out on
https://en.wikipedia.org/wiki/Opportunity_cost
● Transaction Cost. The reason organizations exist
https://en.wikipedia.org/wiki/Transaction_cost
● Jevons Paradox. Create higher order systems
https://www.cio.com/article/2384346/cloud-computing/what-economists-can-teach-us-about-cloud-computing.html
● FinDev / Why the fuss about serverless?
https://hackernoon.com/why-the-fuss-about-serverless-4370b1596da0
#cfgmgmtcamp @gerardthefox
So what?
The short short version:
Don't do undifferentiated heavy lifting
http://archive.oreilly.com/network/2006/12/20/web-20-bezos.html
#cfgmgmtcamp @gerardthefox
Serverless products & services
Providers:
● AWS: Lambda, S3, DynamoDB, SQS, SNS, Step functions, etc.
● GCP: Cloud functions, Cloud datastore, Cloud Pub/Sub, etc.
● MS Azure: Azure functions, Blob storage, etc.
On your own servers:
● Apache OpenWhisk
● Kubeless
● OpenFaaS
● Fission.io
#cfgmgmtcamp @gerardthefox
Get a grip
It's newish (if we ignore /cgi-bin/, cron et al)
Can't hire "10 years of experience with Lambda in production"
Can't get industry certifications, trainings
No Best Practices™ to copy-pasta
You'll have to do the work yourselves (or ignore, always an option)
#cfgmgmtcamp @gerardthefox
Get a grip
You're not alone!
While no Best, there are Emerging Practices and Good Practices to put to use
http://serverlessconf.io/
https://www.jeffconf.com/
https://serverless.com/
https://github.com/anaibol/awesome-serverless
And people blog, present, open source, and otherwise share all over the web
#cfgmgmtcamp @gerardthefox
Approach - invest
Different from the last 30 years. Invest time in learning.
It's an investment, you will get a return on it!
#cfgmgmtcamp @gerardthefox
Approach - commit
Yes, you are locking yourself in. Maybe more so than otherwise, maybe less so.
Do the risk assessment. Accept it. Commit to it.
Back to the economics of it.
What is the risk of AWS pulling an *racle and raising prices 2000%?
What is the risk of AWS discontinuing a service on short notice?
What is the risk of not moving up? What if your competitors do move up?
#cfgmgmtcamp @gerardthefox
Approach - commit
https://twitter.com/i/web/status/958050456101642241
#cfgmgmtcamp @gerardthefox
Approach - standardization
#cfgmgmtcamp @gerardthefox
Approach - standardization
You say: we standardized on Java EE! (or Docker, or Node.js, or ...)
You think people hear: we made a decision! we have things under control! We
benefit from specialization, efficiencies of scale! we're building an ecosystem!
People hear: we make you eat soup with a knife!
#cfgmgmtcamp @gerardthefox
Approach - lifecycle
Built in lifecycle mgmt
● Your app could be killed after milliseconds.
It can be started from scratch at any time.
Initialize fast. Think light
● Your app could be running for hours.
Check if it already initialized. Clean up temp files. Memory mgmt (nullify
references)
● Your first deploy is not "done", it's the beginning.
Deploy, update, discontinue. Make functions / API versioned
#cfgmgmtcamp @gerardthefox
Approach - lifecycle
Built in lifecycle mgmt
● Lifecycle policies for storage. S3 object storage, SQS queues, DB records.
● Phoenix data centers. Recycle your cloud account. Blue/green cloud
accounts. Also an excellent BCP exercise
#cfgmgmtcamp @gerardthefox
Approach - organization
● Compartmentalize (or dare I say... containerize! )
○ Map your system, Wardley mapping
○ Systems, processes, etc. get only one team as
the owner
● You built it, you run it
○ No handoffs. Devops / product team model
○ Freedom + responsibility
● Right size
○ 5, 6 people to a team
https://hackernoon.com/my-basics-for-mapping-a-business-5b20f364b216
https://queue.acm.org/detail.cfm?id=1142065
#cfgmgmtcamp @gerardthefox
Approach - organization
● Right size
○ Bundle related FE functions in 1 git repo, BE functions in another git repo
● Automate
○ Use CI/CD to track, create and deploy
○ CD is the only thing that changes production, try for the other environments too
#cfgmgmtcamp @gerardthefox
Approach - hands off
There is no SSH/RDP'ing in, attaching debuggers/tracers/profilers
Not logging into production servers was a good practice, now not even an option
Apply your 12-factor, devops, µ-service, etc. practices:
● Log shipping Usually built into the platform. Format your logs in JSON
● Metrics shipping Same.
● Correlation IDs Forward them to the next step. HTTP headers, tags
● Distributed tracing (X-Ray, OpenTracing)
https://12factor.net/
https://hackernoon.com/capture-and-forward-correlation-ids-through-different-lambda-event-sources-220c227c65f5
#cfgmgmtcamp @gerardthefox
Approach - attitude with some platitudes
'If everything seems under control, you're not going fast enough.' - Mario Andretti
MTTR > MTBF
Continuous improvement is better than delayed perfection - Mark Twain
Responding to change over following a plan
"Testing" in production, aka monitoring, observability
https://www.kitchensoap.com/2010/11/07/mttr-mtbf-for-most-types-of-f/
https://en.wikipedia.org/wiki/Continual_improvement_process
http://agilemanifesto.org/
https://opensource.com/article/17/8/testing-production
#cfgmgmtcamp @gerardthefox
Serverless framework
https://serverless.com/
https://github.com/serverless/serverless
#cfgmgmtcamp @gerardthefox
Serverless framework
$ sls create -t public_template --name my_app
$ sls create -u https://my_template_repo/awesome_template -n my_other_app
$ $EDITOR serverless.yml
$ sls invoke local -f my_function
$ sls deploy --stage test
$ sls deploy -s test --function single_function
$ sls deploy -s prod
$ sls remove
#cfgmgmtcamp @gerardthefox
So why not serverless?
● Limited available features. Might not fit your use case (cold start latency,
runtime, memory, price, etc)
● Limited available features. Might not fit your organization's current way of
working "we make you eat soup with a knife"
● Metered. Might not fit your organization's budgeting and invoicing
● Limited providers. Might not fit your organization's policies or regulatory
requirements e.g. no foreign providers. no providers under US control. running a full serverless stack in your own datacenter
likely not worth the effort vs VMs/containers
● ...
#cfgmgmtcamp @gerardthefox
Serverless (or insert-better-name-here-please)
Do's Don'ts
Recognize as important part of compute-as-utility Ignore
Commit (after due diligence) Half arse it
Maintain a set of standards Set single standard, or set no standards
Lifecycle mgmt Feature factory
Product teams Waterfall, handoffs, and silos
Automate, CI/CD Ambachtelijke IT. Artisanal creative handicraft IT
Use agile approach Apply methods created for other contexts
#cfgmgmtcamp @gerardthefox
?
#cfgmgmtcamp @gerardthefox
Thank you!

Contenu connexe

Tendances

Roundup presentation
Roundup presentationRoundup presentation
Roundup presentation
mattgrommes
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
Carlos Ble
 

Tendances (20)

Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
Work Python, play Python~
Work Python, play Python~Work Python, play Python~
Work Python, play Python~
 
Functional javascript
Functional javascriptFunctional javascript
Functional javascript
 
Web Leaps Forward
Web Leaps ForwardWeb Leaps Forward
Web Leaps Forward
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
No more script tag soup!
No more script tag soup!No more script tag soup!
No more script tag soup!
 
Ipython notebook
Ipython notebookIpython notebook
Ipython notebook
 
Roundup presentation
Roundup presentationRoundup presentation
Roundup presentation
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
 
Future of Grails
Future of GrailsFuture of Grails
Future of Grails
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small Teams
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
 
Power up Magnolia CMS with OpenShift
Power up Magnolia CMS with OpenShiftPower up Magnolia CMS with OpenShift
Power up Magnolia CMS with OpenShift
 
PHP Aberdeen Quick optimisation of PHP with Webgrind
PHP Aberdeen Quick optimisation of PHP with WebgrindPHP Aberdeen Quick optimisation of PHP with Webgrind
PHP Aberdeen Quick optimisation of PHP with Webgrind
 
Capistrano for non-rubyist
Capistrano for non-rubyistCapistrano for non-rubyist
Capistrano for non-rubyist
 
Automated Testing Environments With Kubernetes & GitLab
Automated Testing Environments With Kubernetes & GitLabAutomated Testing Environments With Kubernetes & GitLab
Automated Testing Environments With Kubernetes & GitLab
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
Monitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and ToolsMonitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and Tools
 
Jan reher may 2013
Jan reher may 2013Jan reher may 2013
Jan reher may 2013
 
Help , My Datacenter is on fire
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
 

Similaire à Serverless? How (not) to develop, deploy and operate serverless applications.

Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
Peter Mounce
 
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
Omid Vahdaty
 

Similaire à Serverless? How (not) to develop, deploy and operate serverless applications. (20)

Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
 
OSMC 2012 | Shinken by Jean Gabès
OSMC 2012 | Shinken by Jean GabèsOSMC 2012 | Shinken by Jean Gabès
OSMC 2012 | Shinken by Jean Gabès
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling StoryPHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Go bei der 4Com GmbH & Co. KG
Go bei der 4Com GmbH & Co. KGGo bei der 4Com GmbH & Co. KG
Go bei der 4Com GmbH & Co. KG
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
 
AWS Techniques and lessons writing low cost autoscaling GitLab runners
AWS Techniques and lessons writing low cost autoscaling GitLab runnersAWS Techniques and lessons writing low cost autoscaling GitLab runners
AWS Techniques and lessons writing low cost autoscaling GitLab runners
 
PyGrunn2013 High Performance Web Applications with TurboGears
PyGrunn2013  High Performance Web Applications with TurboGearsPyGrunn2013  High Performance Web Applications with TurboGears
PyGrunn2013 High Performance Web Applications with TurboGears
 
Scaling symfony apps
Scaling symfony appsScaling symfony apps
Scaling symfony apps
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Drools & jBPM Workshop Barcelona 2013
Drools & jBPM Workshop  Barcelona 2013Drools & jBPM Workshop  Barcelona 2013
Drools & jBPM Workshop Barcelona 2013
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
 

Plus de gjdevos

Plus de gjdevos (7)

Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
Introduction to devops - update 2017
Introduction to devops - update 2017Introduction to devops - update 2017
Introduction to devops - update 2017
 
Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016
 
Introduction to devops 201604
Introduction to devops 201604Introduction to devops 201604
Introduction to devops 201604
 
How to run a bank on Apache CloudStack
How to run a bank on Apache CloudStackHow to run a bank on Apache CloudStack
How to run a bank on Apache CloudStack
 
DevOps - An introduction
DevOps - An introductionDevOps - An introduction
DevOps - An introduction
 

Dernier

Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Sheetaleventcompany
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
SofiyaSharma5
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
ellan12
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
anilsa9823
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 

Dernier (20)

Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 

Serverless? How (not) to develop, deploy and operate serverless applications.

  • 1. #cfgmgmtcamp @gerardthefox Serverless? How (not) to develop, deploy and operate serverless applications 6 Feb 2018 Gérard de Vos gerard@deplica.com
  • 2. #cfgmgmtcamp @gerardthefox Content ● What is serverless? ● So what? ● Serverless products / services ● Get a grip ● Approach ● Demo? ● So why not serverless? ● Fin & ?
  • 3. #cfgmgmtcamp @gerardthefox What is serverless? ● Of course there are servers. It's just not your concern, like the solar farm and national grid aren't for your wall socket. "serverless" might be a stupid name but it's just a name. (get over it :-) ● Metered by byte transferred, byte stored, CPU second runtime. Not by storage claimed, upper bandwidth, VMs/containers started. ○ S3 object storage, DynamoDB records vs block device / VHD ○ Egress traffic, CDN vs ethernet port, fibre line ○ DB query vs installed database cluster size ● Last piece: Compute. AWS Lambda, Google Cloud Function, Azure Functions, IBM OpenWhisk
  • 4. #cfgmgmtcamp @gerardthefox What is serverless? Or where is serverless? SaaS Serverless PaaS IaaS In house Hardcore Power Datacenter Compute Super-/Hypervisor OS / container SW stack / Middleware / messaging Business application Business rules Business process
  • 5. #cfgmgmtcamp @gerardthefox So what? Toil, muck, yak shaving, etc. https://aws.amazon.com/security/security-bulletins/AWS-2018-013/
  • 9. #cfgmgmtcamp @gerardthefox So what? ● You can save a few € by updating older systems to sls ○ but the € 20k vs € 100 cloud bill won't matter that much on the total budget Bigger, better reasons ● Opportunity Cost. What you miss out on https://en.wikipedia.org/wiki/Opportunity_cost ● Transaction Cost. The reason organizations exist https://en.wikipedia.org/wiki/Transaction_cost ● Jevons Paradox. Create higher order systems https://www.cio.com/article/2384346/cloud-computing/what-economists-can-teach-us-about-cloud-computing.html ● FinDev / Why the fuss about serverless? https://hackernoon.com/why-the-fuss-about-serverless-4370b1596da0
  • 10. #cfgmgmtcamp @gerardthefox So what? The short short version: Don't do undifferentiated heavy lifting http://archive.oreilly.com/network/2006/12/20/web-20-bezos.html
  • 11. #cfgmgmtcamp @gerardthefox Serverless products & services Providers: ● AWS: Lambda, S3, DynamoDB, SQS, SNS, Step functions, etc. ● GCP: Cloud functions, Cloud datastore, Cloud Pub/Sub, etc. ● MS Azure: Azure functions, Blob storage, etc. On your own servers: ● Apache OpenWhisk ● Kubeless ● OpenFaaS ● Fission.io
  • 12. #cfgmgmtcamp @gerardthefox Get a grip It's newish (if we ignore /cgi-bin/, cron et al) Can't hire "10 years of experience with Lambda in production" Can't get industry certifications, trainings No Best Practices™ to copy-pasta You'll have to do the work yourselves (or ignore, always an option)
  • 13. #cfgmgmtcamp @gerardthefox Get a grip You're not alone! While no Best, there are Emerging Practices and Good Practices to put to use http://serverlessconf.io/ https://www.jeffconf.com/ https://serverless.com/ https://github.com/anaibol/awesome-serverless And people blog, present, open source, and otherwise share all over the web
  • 14. #cfgmgmtcamp @gerardthefox Approach - invest Different from the last 30 years. Invest time in learning. It's an investment, you will get a return on it!
  • 15. #cfgmgmtcamp @gerardthefox Approach - commit Yes, you are locking yourself in. Maybe more so than otherwise, maybe less so. Do the risk assessment. Accept it. Commit to it. Back to the economics of it. What is the risk of AWS pulling an *racle and raising prices 2000%? What is the risk of AWS discontinuing a service on short notice? What is the risk of not moving up? What if your competitors do move up?
  • 16. #cfgmgmtcamp @gerardthefox Approach - commit https://twitter.com/i/web/status/958050456101642241
  • 18. #cfgmgmtcamp @gerardthefox Approach - standardization You say: we standardized on Java EE! (or Docker, or Node.js, or ...) You think people hear: we made a decision! we have things under control! We benefit from specialization, efficiencies of scale! we're building an ecosystem! People hear: we make you eat soup with a knife!
  • 19. #cfgmgmtcamp @gerardthefox Approach - lifecycle Built in lifecycle mgmt ● Your app could be killed after milliseconds. It can be started from scratch at any time. Initialize fast. Think light ● Your app could be running for hours. Check if it already initialized. Clean up temp files. Memory mgmt (nullify references) ● Your first deploy is not "done", it's the beginning. Deploy, update, discontinue. Make functions / API versioned
  • 20. #cfgmgmtcamp @gerardthefox Approach - lifecycle Built in lifecycle mgmt ● Lifecycle policies for storage. S3 object storage, SQS queues, DB records. ● Phoenix data centers. Recycle your cloud account. Blue/green cloud accounts. Also an excellent BCP exercise
  • 21. #cfgmgmtcamp @gerardthefox Approach - organization ● Compartmentalize (or dare I say... containerize! ) ○ Map your system, Wardley mapping ○ Systems, processes, etc. get only one team as the owner ● You built it, you run it ○ No handoffs. Devops / product team model ○ Freedom + responsibility ● Right size ○ 5, 6 people to a team https://hackernoon.com/my-basics-for-mapping-a-business-5b20f364b216 https://queue.acm.org/detail.cfm?id=1142065
  • 22. #cfgmgmtcamp @gerardthefox Approach - organization ● Right size ○ Bundle related FE functions in 1 git repo, BE functions in another git repo ● Automate ○ Use CI/CD to track, create and deploy ○ CD is the only thing that changes production, try for the other environments too
  • 23. #cfgmgmtcamp @gerardthefox Approach - hands off There is no SSH/RDP'ing in, attaching debuggers/tracers/profilers Not logging into production servers was a good practice, now not even an option Apply your 12-factor, devops, µ-service, etc. practices: ● Log shipping Usually built into the platform. Format your logs in JSON ● Metrics shipping Same. ● Correlation IDs Forward them to the next step. HTTP headers, tags ● Distributed tracing (X-Ray, OpenTracing) https://12factor.net/ https://hackernoon.com/capture-and-forward-correlation-ids-through-different-lambda-event-sources-220c227c65f5
  • 24. #cfgmgmtcamp @gerardthefox Approach - attitude with some platitudes 'If everything seems under control, you're not going fast enough.' - Mario Andretti MTTR > MTBF Continuous improvement is better than delayed perfection - Mark Twain Responding to change over following a plan "Testing" in production, aka monitoring, observability https://www.kitchensoap.com/2010/11/07/mttr-mtbf-for-most-types-of-f/ https://en.wikipedia.org/wiki/Continual_improvement_process http://agilemanifesto.org/ https://opensource.com/article/17/8/testing-production
  • 26. #cfgmgmtcamp @gerardthefox Serverless framework $ sls create -t public_template --name my_app $ sls create -u https://my_template_repo/awesome_template -n my_other_app $ $EDITOR serverless.yml $ sls invoke local -f my_function $ sls deploy --stage test $ sls deploy -s test --function single_function $ sls deploy -s prod $ sls remove
  • 27. #cfgmgmtcamp @gerardthefox So why not serverless? ● Limited available features. Might not fit your use case (cold start latency, runtime, memory, price, etc) ● Limited available features. Might not fit your organization's current way of working "we make you eat soup with a knife" ● Metered. Might not fit your organization's budgeting and invoicing ● Limited providers. Might not fit your organization's policies or regulatory requirements e.g. no foreign providers. no providers under US control. running a full serverless stack in your own datacenter likely not worth the effort vs VMs/containers ● ...
  • 28. #cfgmgmtcamp @gerardthefox Serverless (or insert-better-name-here-please) Do's Don'ts Recognize as important part of compute-as-utility Ignore Commit (after due diligence) Half arse it Maintain a set of standards Set single standard, or set no standards Lifecycle mgmt Feature factory Product teams Waterfall, handoffs, and silos Automate, CI/CD Ambachtelijke IT. Artisanal creative handicraft IT Use agile approach Apply methods created for other contexts