SlideShare a Scribd company logo
1 of 22
Download to read offline
Meetup info
Luca Bianchi
Serverless User Group - Italy
github.com/aletheia
https://it.linkedin.com/in/lucabianchipavia
@bianchiluca
Welcome to the first Serverless On Stage Meetup!
• Born last June as an experiment (honestly after a number of beers..)
• 140 members in few months
• Monthly meetups (?) bi-monthly?
• Thanks to our sponsor that made it possible
Serverless technologies are
• cool
• very fast evolving
• very bad documented
The most important thing about Serverless Italy Meetup
The most important thing about Serverless Meetup
• Join the discussion online
• Present topics at Serverless On Stage events
• Give contributions and ideas
• Help spreading the word, save the world (from servers)!
www.neosperience.com | blog.neosperience.com | info@neosperience.com
November 2015
Serverless 1.x - build services in days, not weeks
Luca Bianchi, Chief Technology Officer @ Neosperience
github.com/aletheia
https://it.linkedin.com/in/lucabianchipavia
@bianchiluca
CTO @ Neosperience
Who am I?
Working on a lot of bleeding edge technologies. Passionate developer. Love writing code, not Powerpoints.
The Neosperience Cloud
• Software as a service cloud for Digital Customer Experience processes (couponing, gamification, proximity, etc.)
• Completely built on AWS
• Moved from VMWare, to EC2, to Elastic Beanstalk, to Lambda
• Dozens of micro and nano services
Neosperience
The Digital Customer Experience Company, aims to change the way brands and customers interact with an
approach of a software vendor targeting Digital Customer Experience as the evolution of Marketing automation.
✓ Functions are the unit of development and scaling
✓ No machine, VMs or containers visible in the programming model
✓ Permanent storage lives elsewhere (stateless code)
✓ Scales per request. Users cannot over or under-provision capacity
✓ Never pay for idle
✓ Implicitly fault tolerant
✓ BYOC - Bring Your Own Code
✓ Metrics and logging are an universal right
The Serverless Manifesto
The Serverless Framework
• Started less than one year ago (was named JAWS)
• Provides an opinionated view of Serverless technologies
• Fast moving (with a bi-weekly release model)
• Funded by a 3M investment
• Manages service deployments and provisioning
• Vendor independent (in a future release)
The Serverless Framework 1.0
• One configuration file for everything
• Auto-provision of resources
• Verbose output
• Supports for micro-services
• Improved plugin management system
• Production ready
The Serverless Framework 1.1
• Services deployment rollback
• Allow services without functions
• Functions can run locally
• Supports templates
• Bug Fixes
Hello World!
• Install Serverless locally (trust me, it’s better)

npm install serverless —save
• Create a function in NodeJS (also Java and Python are supported)

serverless create —template=aws-nodejs
• Deploy service

serverless deploy
done!
DEMO
Show me something more real!
• Marketing needs to track leads opening their links
• Standard trackers are “ugly”
• You can pay bit.ly
• …or you can spend a few hours programming
• Show me the code!!
sls-url-shortener
Wait a minute.. let’s talk about architecture
• Dependency Injection
• Configuration injected
• Each layer can be tested with a minimal amount of
mocks
• AWS -independent
a layered model adapted for Serverless
Lambda
Response Event
Lambda
Request Event
Lambda Response
Event
Lambda Request
Event
handler
Receives Lambda event, handles AWS specific code and is injected with validator
validator
Perform event / input validation, enforcing constraints and rejecting invalid
payloads. Additional permission checks should be implemented here
translator
Converts input data to business logic data, adding and building system consistent
representation. Is injected with logic layer
logic
Implements Business Logic for a specific service. Works on Business Objects,
being an equivalent of MVC Service layer. Is injected with the adapter
adapter
Converts data to a persistence actionable format, does not know about
persistence concrete implementation, builds queries but does not initialize any
connection to persistence. It is injected with repository.
repository
Implements direct API calls to underlying persistence system
AWS
Amazon Web Service persistence layer. It can be either dynamoDB, Redis, S3 or
another microservice
DEMO
The good..
• Fast time to market (the whole project built in 8h)
• Modularity by design
• Functions can run locally
• Everything is contained and versioned
• Serverless avoids a lot of boilerplate
• Incremental deployments
• Supports CI
• Enables services and infrastructure versioning
• Cost-effective
..the bad..
• Architecture has to be enforced (your code is as good as you)
• Testing is unavoidable, TDD is encouraged
• Every deploy hits the cloud
• Cannot test offline (no matter how you try)
• Avoid Lambda cold start issue
• SLS Documentation is fragmented (now improved with 1.1)
• Not everything is supported by CloudFormation
..the ugly!!
• Removed environment variables from 0.5 (!!)
• Sometimes CloudFormation hangs
• YAML is not for humans (and Serverless does not support JSON anymore)
• You have to be an architect not (only) a developer
• Avoid distributed monoliths
• Avoid “barilotto” experience
Overall experience
• Faster time to market compared to standard stacks
• Unopinionated view on microservices, with a small opinionated layer (SLS)
• It makes you a better developer
• Enforces creative solution finding (by opening a set of possibilities)
• Supports CI
• Do not attempt manual deploy
• Really Cost-effective
• Test coverage is a must
Thank you
github.com/aletheia
https://it.linkedin.com/in/lucabianchipavia
@bianchiluca
• sls-url-shortener available on Github
• Slides available on slideshare
• Questions?
www.neosperience.com | blog.neosperience.com | info@neosperience.com

More Related Content

What's hot

Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Assaf Flatto
 
Webhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 ConferenceWebhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 ConferenceSparkPost
 
How to avoid microservice pitfalls
How to avoid microservice pitfallsHow to avoid microservice pitfalls
How to avoid microservice pitfallsParticular Software
 
Increasing velocity via serless semantics
Increasing velocity via serless semanticsIncreasing velocity via serless semantics
Increasing velocity via serless semanticsKfir Bloch
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collideEdward Wilde
 
Chat automation in a modern it environment
Chat automation in a modern it environmentChat automation in a modern it environment
Chat automation in a modern it environmentJaap Brasser
 
Apply chat automation today - work smarter tomorrow
Apply chat automation today - work smarter tomorrowApply chat automation today - work smarter tomorrow
Apply chat automation today - work smarter tomorrowJaap Brasser
 
Immutable infrastructure with Boxfuse
Immutable infrastructure with BoxfuseImmutable infrastructure with Boxfuse
Immutable infrastructure with BoxfuseLars Östling
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
New Server in an Hour #sqlsat121
New Server in an Hour #sqlsat121New Server in an Hour #sqlsat121
New Server in an Hour #sqlsat121Mike Hillwig
 
Jenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itJenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itCamilo Ribeiro
 
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...DevOpsDays Tel Aviv
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroPayara
 
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeStash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeAtlassian
 
Cloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewCloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewWeaveworks
 
Collaborative communication
Collaborative communicationCollaborative communication
Collaborative communicationIcinga
 

What's hot (20)

Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2
 
Webhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 ConferenceWebhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 Conference
 
How to avoid microservice pitfalls
How to avoid microservice pitfallsHow to avoid microservice pitfalls
How to avoid microservice pitfalls
 
Increasing velocity via serless semantics
Increasing velocity via serless semanticsIncreasing velocity via serless semantics
Increasing velocity via serless semantics
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
 
Chat automation in a modern it environment
Chat automation in a modern it environmentChat automation in a modern it environment
Chat automation in a modern it environment
 
The Architect Way
The Architect WayThe Architect Way
The Architect Way
 
DevOps at Lowe's - Our Journey
DevOps at Lowe's - Our JourneyDevOps at Lowe's - Our Journey
DevOps at Lowe's - Our Journey
 
Apply chat automation today - work smarter tomorrow
Apply chat automation today - work smarter tomorrowApply chat automation today - work smarter tomorrow
Apply chat automation today - work smarter tomorrow
 
Immutable infrastructure with Boxfuse
Immutable infrastructure with BoxfuseImmutable infrastructure with Boxfuse
Immutable infrastructure with Boxfuse
 
Ci & proServer
Ci & proServerCi & proServer
Ci & proServer
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
New Server in an Hour #sqlsat121
New Server in an Hour #sqlsat121New Server in an Hour #sqlsat121
New Server in an Hour #sqlsat121
 
Jenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itJenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate it
 
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...
Scaling Humans - BigPanda's Fabulous ChatOps Adventure - Erik Zaadi, BigPanda...
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
 
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeStash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
 
Go with the flow!
Go with the flow!Go with the flow!
Go with the flow!
 
Cloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewCloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of view
 
Collaborative communication
Collaborative communicationCollaborative communication
Collaborative communication
 

Viewers also liked

Ambientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humanoAmbientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humanokmilo Viasus
 
Enajenación Parental : Revisión Narrativa de Literatura
Enajenación Parental : Revisión Narrativa de LiteraturaEnajenación Parental : Revisión Narrativa de Literatura
Enajenación Parental : Revisión Narrativa de LiteraturaPaul-Jesús Fericelli
 
Best Help Scout Alternative
Best Help Scout AlternativeBest Help Scout Alternative
Best Help Scout AlternativeLiveAgent
 
LiveAgent's tour
LiveAgent's tourLiveAgent's tour
LiveAgent's tourLiveAgent
 
Engineer Into The Workforce
Engineer Into The WorkforceEngineer Into The Workforce
Engineer Into The WorkforceDavid Mayes
 
Charleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing SampleCharleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing SampleDanielle Lockemy
 
Como poner una radio online en tu blog
Como poner una radio online en tu blogComo poner una radio online en tu blog
Como poner una radio online en tu blogYiyaaaaah
 
TrouDigital Creative Studio Walkthrough
TrouDigital Creative Studio WalkthroughTrouDigital Creative Studio Walkthrough
TrouDigital Creative Studio WalkthroughMario Troullis
 
Iglesia presbiteriana de sincelejo
Iglesia presbiteriana de sincelejoIglesia presbiteriana de sincelejo
Iglesia presbiteriana de sincelejoJosue Vargas Jordan
 
Strata 2016 - Network intelligence
Strata 2016 - Network intelligence Strata 2016 - Network intelligence
Strata 2016 - Network intelligence Mike Conover
 
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...DC Department of General Services
 

Viewers also liked (20)

Ambientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humanoAmbientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humano
 
Enajenación Parental : Revisión Narrativa de Literatura
Enajenación Parental : Revisión Narrativa de LiteraturaEnajenación Parental : Revisión Narrativa de Literatura
Enajenación Parental : Revisión Narrativa de Literatura
 
Documento Formal
Documento FormalDocumento Formal
Documento Formal
 
Best Help Scout Alternative
Best Help Scout AlternativeBest Help Scout Alternative
Best Help Scout Alternative
 
Miniclase
MiniclaseMiniclase
Miniclase
 
LiveAgent's tour
LiveAgent's tourLiveAgent's tour
LiveAgent's tour
 
Cd 2186
Cd 2186Cd 2186
Cd 2186
 
Engineer Into The Workforce
Engineer Into The WorkforceEngineer Into The Workforce
Engineer Into The Workforce
 
Charleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing SampleCharleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing Sample
 
Ficha robotica
Ficha roboticaFicha robotica
Ficha robotica
 
Como poner una radio online en tu blog
Como poner una radio online en tu blogComo poner una radio online en tu blog
Como poner una radio online en tu blog
 
TrouDigital Creative Studio Walkthrough
TrouDigital Creative Studio WalkthroughTrouDigital Creative Studio Walkthrough
TrouDigital Creative Studio Walkthrough
 
Itil v3 2010
Itil v3 2010Itil v3 2010
Itil v3 2010
 
Iglesia presbiteriana de sincelejo
Iglesia presbiteriana de sincelejoIglesia presbiteriana de sincelejo
Iglesia presbiteriana de sincelejo
 
Ciencias 3
Ciencias 3Ciencias 3
Ciencias 3
 
Output
OutputOutput
Output
 
Strata 2016 - Network intelligence
Strata 2016 - Network intelligence Strata 2016 - Network intelligence
Strata 2016 - Network intelligence
 
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
 
Walter_resume_PTM
Walter_resume_PTMWalter_resume_PTM
Walter_resume_PTM
 
Velisözleşmesi
VelisözleşmesiVelisözleşmesi
Velisözleşmesi
 

Similar to 20161103 Serverless Italy Meetup

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps StartupsDaniel Zivkovic
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryEmilio Garcia
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best PracticesPavel Mička
 
Serverless java
Serverless   javaServerless   java
Serverless javaVishwas N
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
 
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyBoyan Dimitrov
 
Continuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSSContinuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSSDaniel Woods
 
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig DicksonAWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig DicksonAmazon Web Services Korea
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadSoftware Guru
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Rez gateway - RezOS - innovate the future
Rez gateway - RezOS -   innovate the futureRez gateway - RezOS -   innovate the future
Rez gateway - RezOS - innovate the futureindikaMaligaspe
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the futureindikaMaligaspe
 

Similar to 20161103 Serverless Italy Meetup (20)

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
JustLetMeCode-Final
JustLetMeCode-FinalJustLetMeCode-Final
JustLetMeCode-Final
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud Foundry
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
Serverless java
Serverless   javaServerless   java
Serverless java
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journey
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Continuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSSContinuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSS
 
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Amis conference soa deployment. the dirty tricks using  bamboo, nexus and xl ...Amis conference soa deployment. the dirty tricks using  bamboo, nexus and xl ...
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
 
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig DicksonAWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Rez gateway - RezOS - innovate the future
Rez gateway - RezOS -   innovate the futureRez gateway - RezOS -   innovate the future
Rez gateway - RezOS - innovate the future
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the future
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 

Recently uploaded (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 

20161103 Serverless Italy Meetup

  • 1. Meetup info Luca Bianchi Serverless User Group - Italy github.com/aletheia https://it.linkedin.com/in/lucabianchipavia @bianchiluca
  • 2. Welcome to the first Serverless On Stage Meetup! • Born last June as an experiment (honestly after a number of beers..) • 140 members in few months • Monthly meetups (?) bi-monthly? • Thanks to our sponsor that made it possible Serverless technologies are • cool • very fast evolving • very bad documented
  • 3. The most important thing about Serverless Italy Meetup
  • 4. The most important thing about Serverless Meetup • Join the discussion online • Present topics at Serverless On Stage events • Give contributions and ideas • Help spreading the word, save the world (from servers)!
  • 5. www.neosperience.com | blog.neosperience.com | info@neosperience.com November 2015 Serverless 1.x - build services in days, not weeks Luca Bianchi, Chief Technology Officer @ Neosperience github.com/aletheia https://it.linkedin.com/in/lucabianchipavia @bianchiluca
  • 6. CTO @ Neosperience Who am I? Working on a lot of bleeding edge technologies. Passionate developer. Love writing code, not Powerpoints. The Neosperience Cloud • Software as a service cloud for Digital Customer Experience processes (couponing, gamification, proximity, etc.) • Completely built on AWS • Moved from VMWare, to EC2, to Elastic Beanstalk, to Lambda • Dozens of micro and nano services Neosperience The Digital Customer Experience Company, aims to change the way brands and customers interact with an approach of a software vendor targeting Digital Customer Experience as the evolution of Marketing automation.
  • 7. ✓ Functions are the unit of development and scaling ✓ No machine, VMs or containers visible in the programming model ✓ Permanent storage lives elsewhere (stateless code) ✓ Scales per request. Users cannot over or under-provision capacity ✓ Never pay for idle ✓ Implicitly fault tolerant ✓ BYOC - Bring Your Own Code ✓ Metrics and logging are an universal right The Serverless Manifesto
  • 8. The Serverless Framework • Started less than one year ago (was named JAWS) • Provides an opinionated view of Serverless technologies • Fast moving (with a bi-weekly release model) • Funded by a 3M investment • Manages service deployments and provisioning • Vendor independent (in a future release)
  • 9. The Serverless Framework 1.0 • One configuration file for everything • Auto-provision of resources • Verbose output • Supports for micro-services • Improved plugin management system • Production ready
  • 10. The Serverless Framework 1.1 • Services deployment rollback • Allow services without functions • Functions can run locally • Supports templates • Bug Fixes
  • 11. Hello World! • Install Serverless locally (trust me, it’s better)
 npm install serverless —save • Create a function in NodeJS (also Java and Python are supported)
 serverless create —template=aws-nodejs • Deploy service
 serverless deploy done!
  • 12. DEMO
  • 13. Show me something more real! • Marketing needs to track leads opening their links • Standard trackers are “ugly” • You can pay bit.ly • …or you can spend a few hours programming • Show me the code!! sls-url-shortener
  • 14. Wait a minute.. let’s talk about architecture • Dependency Injection • Configuration injected • Each layer can be tested with a minimal amount of mocks • AWS -independent a layered model adapted for Serverless Lambda Response Event Lambda Request Event
  • 15. Lambda Response Event Lambda Request Event handler Receives Lambda event, handles AWS specific code and is injected with validator validator Perform event / input validation, enforcing constraints and rejecting invalid payloads. Additional permission checks should be implemented here translator Converts input data to business logic data, adding and building system consistent representation. Is injected with logic layer logic Implements Business Logic for a specific service. Works on Business Objects, being an equivalent of MVC Service layer. Is injected with the adapter adapter Converts data to a persistence actionable format, does not know about persistence concrete implementation, builds queries but does not initialize any connection to persistence. It is injected with repository. repository Implements direct API calls to underlying persistence system AWS Amazon Web Service persistence layer. It can be either dynamoDB, Redis, S3 or another microservice
  • 16. DEMO
  • 17. The good.. • Fast time to market (the whole project built in 8h) • Modularity by design • Functions can run locally • Everything is contained and versioned • Serverless avoids a lot of boilerplate • Incremental deployments • Supports CI • Enables services and infrastructure versioning • Cost-effective
  • 18. ..the bad.. • Architecture has to be enforced (your code is as good as you) • Testing is unavoidable, TDD is encouraged • Every deploy hits the cloud • Cannot test offline (no matter how you try) • Avoid Lambda cold start issue • SLS Documentation is fragmented (now improved with 1.1) • Not everything is supported by CloudFormation
  • 19. ..the ugly!! • Removed environment variables from 0.5 (!!) • Sometimes CloudFormation hangs • YAML is not for humans (and Serverless does not support JSON anymore) • You have to be an architect not (only) a developer • Avoid distributed monoliths • Avoid “barilotto” experience
  • 20. Overall experience • Faster time to market compared to standard stacks • Unopinionated view on microservices, with a small opinionated layer (SLS) • It makes you a better developer • Enforces creative solution finding (by opening a set of possibilities) • Supports CI • Do not attempt manual deploy • Really Cost-effective • Test coverage is a must
  • 21. Thank you github.com/aletheia https://it.linkedin.com/in/lucabianchipavia @bianchiluca • sls-url-shortener available on Github • Slides available on slideshare • Questions?