Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Future of Serverless from ServerlessConf London October 2016
1. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
The future of serverless
Musings on the things we might be doing in a year
Paul Johnston
CTO of Movivo
@PaulDJohnston on twitter and medium
2. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
The future of serverless
Musings on the things we might be doing in a year
Paul Johnston
CTO of Movivo
@PaulDJohnston on twitter and medium
Jeff
3. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Movivo
4. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
AWS Lambda
Note: Serverless is more than FaaS
5. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Serverless is…
Reducing Maintenance
“…but there are always servers…”
(“shut up” says Jeff)
6. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Function as a Service (FaaS)
Very Low Maintenance
Stateless
Highly Scalable
Do one thing well
Zero or one data transformations
Don’t chain them together
Minimise libraries (pref none)
Environment variables
Shared libraries
More runtimes / Binary support
Priority Functions
Queuing solutions
7. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Auth
Authentication - Who are you?
Authorisation - Do you have
access?
FaaS are stateless
3rd party authentication options
MFA
Cognito + IAM/API Gateway
Best practices need to be defined
Good solutions available
Integration of services
8. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Data
Scalable solutions require scalable storage
“RDBMS first”
NoSQL provides different options
Right tool for the job
NoSQL largely unmanaged
Several managed data services
Often used inappropriately
RDBMS not so universally
appropriate
(Some) NoSQL is good
Managed scaled storage
More distributed data storage
solutions needed
Data storage by country/region
Data protection worldwide
New data practices and tooling
9. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Events and Streaming Data
Nano function chaining
Auditing functions
Complexity increased without events
FiFo Queues
Ordering of invocations
Parallel less important
Queues via DynamoDB Events
Has issues
No specific “serverless queue”
solution yet
Replaces monolith app internals
Improved queueing services
Auditing of system
Combined logging for system state
view
10. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Beyond EC2 / Instances
Cloud != Instances
Cloud is evolving into services
Serverless / FaaS is big evolutionary step
Instance + Firewall is biggest
security hole
AWS and other Vendors know this
Vendors want you to move to
services
Containers are not the answer
Cloud vendors pushing services
over instances
Unfortunately, new tutorials/
perception needed
Over time stricter controls on
instances
11. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
API Gateway
Controlled access to walled garden
Much better than monolith routing
Has added extras
Can hide functionality behind a
service
Auth built in: API Gateway +
Cognito
Overly complex
The most important change you’ll
make
Simplification of API access
Addition of other Auth solutions
Pushed as solution to avoid
instances
12. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Frameworks
Frameworks are like initial structure of building
Old school
Lots of options - built for the monolith
Originally built for non-cloud scenario
Instances + framework != Cloud (imho)
Serverless Framework, Apex,
Claudia etc
Deploying/managing FaaS not that
hard
Complexity comes in config of
other services
Terraform at Movivo
We need more “frameworks”
Config + Code rather than just
code
Abstraction is not necessarily a
good thing
Hard to retrofit - please make it
easier!
13. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Solutions
Four major cloud vendors
Most complete is AWS (could change) - services and APIs
Opportunity in tooling
Can foresee other players entering space
Don’t copy please… Innovate!
14. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Data Infrastructure
Managed data services more important
Scaling of instance = easy
Scaling of data storage seems to be harder
Specific data types (search etc)
(up until recently) “Always RDBMS”
RDBMS originally non-cloud (and
still are)
Now is mix and match
Managed services more
purposeful
e.g. search
Learn to use right tools at right time
Case studies more than just “look
at NoSQL”
Weaning off RDBMS (and ORM)
Service discovery tools
15. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Logging and Auditing
No more tail -f /var/log/error.log
Distributed systems need distributed logging
Moving away from servers/
instances = confusion
Per FaaS logging
Server logs
Lots of logs causes problems
Good alerts = easy to respond
Combined logging is a necessity
Audit trails needed - future
service?
Services for logging not just
invocations but data
Data protection (again)
16. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Deployment and CI/CD
Initially FaaS was internal process tool
Addition of API interface means much more
Deployment tools are behind curve
“Roll your own” approach (behind curve)
FaaS is covered, but other services aren’t
CI tools for FaaS more complex
(terraform!)
Testing harder and CI focus different
Integration Testing needs separate
deployment
Full configuration is harder
Services are “part of the whole” system
FaaS is not the whole deployment
Vendors need to consider more
deployment options
Duplicate accounts (please!)
17. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Testing
Unit testing relatively simple
Stateless FaaS do one thing (usually)
State can couple two functions - harder testing
System/Integration tests are harder
Deployment required (Terraform)
Testing 3rd parties - difficult
Reliance on 3rd parties
Automation of testing harder than monolith
Services must provide test options
Vendors should share test details
Testing of scenarios needs to be
automatable
Vendors should provide sandbox of
production
18. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
Future Serverless?
Fast on-demand binaries
Paid for on-demand Latency
Always on (websocket)
Data services - more and more specialised
Much better tooling
More case studies and best practices
19. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
The future of serverless
Suggested questions:
How do you decide what projects are good/bad for Serverless?
Everyone keeps saying monolith… what do they mean?
What are the biggest drawbacks? (hint: tooling)
What are migration strategies for both code and infrastructure?
You make it sound so easy to do! Is it?
Or do you have to hack stuff to make it work?
20. Paul Johnston - CTO of Movivo - paul@movivo.mobi - @PaulDJohnston
The future of serverless
Thank you.
Paul Johnston
CTO of Movivo
@PaulDJohnston on twitter and medium