2. Stages of Cloud Adoption
1
Stage 1
“Try It
Out”
Stage 2
“The
Cloud
Way”
Stage 3
“Serverless
Computing”
3. Cloud Adoption – Stage 1 – Try It Out
● First-generation adoption guided by ease-of-
migration
● Operational concern to maintain continuity-of-
service
● Largely like-for-like
● Testing the waters
● Desire for vendor-neutral
2
4. Cloud Adoption – Stage 1 – Try It Out
● Service Adoption
○ Software-as-a-service outsourcing as direct
substitution for self-hosted services
○ Infrastructure-as-a-service replacing on-premise
like-for-like compute (virtual machines, databases,
disks)
○ VPN links to support secure connectivity between
enterprise intranet and cloud
3
5. Cloud Adoption – Stage 2 – The Cloud Way
● Following strategic commitment to cloud
● Begins to embrace the “cloud way”
● Impact on system architecture evolution and
development
4
6. Cloud Adoption – Stage 2 – The Cloud Way
● Building for the cloud and distributed systems
○ Disaggregation of services (SOA)
○ Asynchronous design patterns
● Less concern with vendor-lock-in
● Service Adoption
○ Platform-as-a-service tooling
○ Bucket storage
○ Identity management
5
7. Cloud Adoption – Stage 3 – Serverless Computing
● An umbrella term meaning computing services for
which end-user does not need to explicitly manage
the underlying supporting computing resources
● Obviously, there are servers!
● But they are transparent
6
8. Cloud Adoption – Stage 3 – Serverless Computing
● Represents a natural evolution of cloud services
abstraction
● Emphasis on building (higher-level blocks) rather than
managing (eliminating cloud stack complexity)
● Greater infrastructure utilization and multi-tenancy
density
● Synonyms and conflations:
○ Backend-as-a-service
○ Functions-as-a-service
7
9. Evolution of Cloud
● Born of opportunity to monetise excess compute and storage
capacity
● Closely mirrors expected customer adoption patterns
● Growth strategy:
○ Facilitate early easy wins (on-premise migration)
○ Build developer mindshare (focusing on technical benefits)
○ Low-friction adoption (tooling and migration services)
○ Rapid capacity growth to defend against new market entrants
○ Proprietary service build-out (e.g. AWS Aurora, serverless computing)
● Now challenging traditional system architecture thinking
altogether
8
10. Functions-as-a-Service
● On-demand execution of user-defined code fragments in
response to some specified event(s)
○ HTTP API Request
○ File update on bucket storage
○ Message queue event
● Code executes in isolated, virtual environment to completion
and then unloads
● Optional temporal caching (for efficient re-execution)
● Access to other cloud services (e.g. databases)
● Zero-infrastructure management, infinitely scalable
9
14. Serverless: Benefits
● Lower relative operational cost
○ Fine-grained usage charges
○ You pay for what you use
13
15. Serverless: Benefits
● Lower relative development cost
○ Focus effort only on direct value add (code
and data)
○ No need to pay for servers, etc.
14
20. Serverless: Weaknesses
● Vendor control
○ Simplicity-of-delivery comes at the cost of
fewer features and less flexibility
○ Homogenized one-size-fits-all
19
21. Serverless: Weaknesses
● Vendor lock-in
○ No industry standards means vendor-led de
facto standards
○ Likely impediment to porting to competitor
platform
20
22. Serverless: Weaknesses
● Loss of control over server
implementation
○ Server details are transparent so apps
cannot take advantage of any server-side
bespoke tuning/configuration
21
23. Serverless: Weaknesses
● Potential repetition of (code) logic
○ A particular concern of FaaS
○ Harder to organise code for maximum
sharing across execution contexts
22
24. Serverless: Weaknesses
● Multi-tenancy sharing
○ By definition, higher infrastructure utilization
implies resource sharing
○ Harder to make guarantees about execution
runtimes
23
25. Serverless: Weaknesses
● No natural server-side statefulness
○ Execution contexts are ephemeral
○ App logic must explicitly manage state
across invocations (e.g. Database)
24
28. Serverless: Weaknesses
● Testing
○ More difficult to test locally before
deployment
○ Likely very different from ultimate target
execution environment
27
30. The Likely Future Ahead
● We can speculate on the impact of serverless but it is likely, in
the near term, that the trend towards serverless will continue
● Suits vendors
○ Easier to offer, manage and support
○ Sticky
● Suits users
○ Easier to adopt, refresh and scale
○ Cost benefits
● But potentially represents a significant tip of control towards
vendors
29