As serverless technology matures, there are common threads of missing functionality across providers. This talk will cover the features and services that need to be expanded, developed, or created for serverless to fulfill its potential.
8. iRobot 2017 | 8@ben11kehoe
• 2015: Roomba 980
• Internet connected
• Systematic navigation
• Business already at scale
• Millions of robots per year
• Recently passed 20 million robots sold
• Connected across Roomba models
iRobot
18. iRobot Confidential 2017 | 18
What are the primitives, patterns, and
platforms that will make event-driven
programming easy?
Cornelia Davis at Emit 2017
19. iRobot Confidential 2017 | 19
Functions and events? Maybe. I haven't got
a clue.
Cornelia Davis at Emit 2017
20. iRobot 2017 | 20@ben11kehoe
• CQRS: Command/Query Responsibility
Separation
• Separate R from CUD
• Event sourcing
• One unified immutable write log, many
readers with their own materialized views
• Shopping cart
• Deployment
• Mixed architecture
CQRS and event-sourcing
28. iRobot 2017 | 28@ben11kehoe
Adoption
• Serverlessconf attendees are the vanguard
• We all know it's the future, but how do we
make the future sooner?
• Meet people where they are
• Azure Functions support Batch scripts(!)
29. iRobot 2017 | 29@ben11kehoe
• Extend
• Events on the fringes
• Port to serverless
• Save money
• Refactor
• Simplify & strengthen
• Develop
• New features can be serverless native
• Organize
• Reverse Conway's Law
• Greenfield
• Serverless native
• Event-driven
Reality Ideal
The event-driven+serverless adoption cycle
30. iRobot 2017 | 30@ben11kehoe
• We're actually doing great here!
Extend
Events on the fringes
31. iRobot 2017 | 31@ben11kehoe
• Remember, this is taking existing code
and running it on serverless infra
• Service discovery
• Latency
• Frameworks
• Consulting/Contracting
Port
Save money
32. iRobot 2017 | 32@ben11kehoe
• Refactor to event-driven flows
• Refactor into serverless "style"
• Patterns and best practices
• Solve hard problems once
Refactor
Simplify and strengthen
33. iRobot 2017 | 33@ben11kehoe
• It's easy, it's quick
• It lets you use a web framework
• Good for adoption!
• It bloats your Lambda with web logic
• Schema checks no longer free
• It vastly increases your attack surface
• Your API is less self-documenting
Pros Cons
AWS Lambda proxy integration
A crotchety old man digression
34. iRobot 2017 | 34@ben11kehoe
• Answer Cornelia's questions
Develop
Go serverless native for new features
35. iRobot 2017 | 35@ben11kehoe
• Serverless especially, but event-driven
architecture as well, means setting
expectations is important
• Visibility
• Control
Organize
Reverse Conway's Law
36. iRobot 2017 | 36@ben11kehoe
Serverless in
organizations
3
37. iRobot 2017 | 37@ben11kehoe
• Moving from servers to serverless is a bit like
the change from on-prem to cloud
• It’s easier, in many respects, but it’s not
without its own idiosyncratic issues
• You stand on the shoulders of giants (Tim
Wagner is pretty tall), through outsourcing
these operations
• But outsourcing doesn’t mean you do zero
work
• Being clear about this organizationally is
important
DiffOps
No such thing as a free lunch
38. iRobot 2017 | 38@ben11kehoe
• No provider is immune to problems
• Small effects are more common than big
outages
• More services = blips could be encountered
more frequently
• This comes with the territory
• Setting expectations organizationally is
important
• Architecting robustly is key
̶ Event based
̶ Async
̶ Microservices
The cloud has weather
39. iRobot 2017 | 39@ben11kehoe
• Biggest operational downside: visibility
• You only know what the provider tells you
• Architecture
• Security
• Operations
• How do they actually do all of the stuff they
do?
• Many known unknowns and unknown
unknowns
• Unknown unknown unknowns: what you
don’t know that they don’t know they don’t
know
Visibility
40. iRobot 2017 | 40@ben11kehoe
• Serverless requires a change in mindset
• These incidents can be opaque
• Feeling out of control of your own destiny
can be frustrating
• But the truth: you’d probably not do a better
job
• And in fact, you would likely do a lot worse
• And actions still need to be taken:
• Alert management to potential impact
• Proactively reach out to customer base
• Activate cross-region failover, etc.
Reacting to platform outages
When it’s a Cloud Provider problem
When it’s the platform’s problem, we still have work to do
Cloud Computing peaked around 2010, but with a 2-5 year time-to-plateau
Why is iRobot sponsoring serverlessconf?
Why is iRobot sponsoring serverlessconf?
Cool stuff museum
Why is iRobot sponsoring serverlessconf?
Often conflated
Synonymous with FaaS?
Increased latency – kinesis empties a little slowly, but catches up
More services, we see these effect more pieces of our infrastructure, may be difficult to pinpoint exactly where problems are happening
AWS has an excellent commitment to security, and many certifications, but there are a lot of areas that certifications don’t cover and security details aren’t divulged
The recent S3 outage was due to user error. It’s easy to play armchair hyperscale cloud operator and say you’d have prevented it.