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

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
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
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
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
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
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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
 

Recently uploaded (20)

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
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
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
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
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...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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...
 

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?