This document discusses the shift from traditional server-based applications to serverless architectures in cloud computing. It notes that in pre-cloud days, developers had to manage servers, provision resources, plan for scaling and availability, and deal with maintenance, which required spending on hardware and staffing. The cloud reduced these burdens by providing on-demand virtual machines and abstracting away the hardware. Serverless computing takes this further by allowing developers to run code without managing servers or infrastructure, paying only for the resources required to run their code. It provides examples of scenarios well-suited for serverless computing and walks through building a sample serverless application and linking it to cloud APIs and services.
4. Not only Development – What about
Deployment
• We also need to think a lot about
• Servers
• Budget / Cost
• Deployment time
• Scale
• Migration
• Maintenance
• Connectivity
• Availability
5. Later
• As demand grows, it became more complicated
• Many servers
• Providing racks, power, Internet access and other key resources.
• Dealing with provisioning, clustering, and maintaining servers required
spending:
• Lots of money (capital expenditures, power, internet, cooling, security)
• Tons of time and detailed planning (contingency, develop/test/produce,
site growth, and so on)
9. What does it mean?
• On demand service
• Cost reduction
• Scalability and Elasticity
• Easy Maintenance
• High Performance
• Multi-tenancy
• Reliability
• Resource pooling
10. Cloud – Seismic shift
• Provides an almost limitless supply of virtual machines
• With no upfront costs
• With just a bit of effort, developers can
• fire up servers with their operating system of choice
• load in their applications (custom or open-source)
• and they’re off and running.
• Launching hundreds of servers and coordinating among them is a bit
more work but it’s still far easier than it was just few years ago.
• Total cost of ownership of servers has fallen dramatically.
14. VMs
Machine as unit of scale
Abstracts the Hardware
Containers
Applications as the unit of scale
Abstracts the OS
Serverless
Functions as the unit of scale
Abstracts the language runtime
I want to configure
machines, storage,
networking and my
OS
I want to run servers,
configure applications
and control scaling
I want to run my code
when it’s needed
15. Still, it needs server
• Serverless does not mean “No Server” required
• It means think less about servers
• such as scalability, high-availability, infrastructure-security, and so forth
https://pbs.twimg.com/media/Cr1HEpnXgAAK9vV.jpg
16. Serverless
• Run code without provisioning or managing servers
• Backend as a Service
• A model for providing web app and mobile app developers with a way to link their
applications to backend cloud storage and APIs exposed by back end applications while
also providing features such as user management, push notifications, and integration
with social networking services.
• Function as a Service
• Develop, run, and manage application functionalities without the complexity of building
and maintaining the infrastructure typically associated with developing and launching an
app
Pay only for time your code runs
17. Scenarios
• Time based processing
• Event based activity / processing
• Serverless web application
architectures
• Serverless mobile backends
• Real-time stream processing
• File Processing
• Data and Analytics
• Websites
• Mobile applications
18. • Problem
• Replicate one log
from one data
center to another
• Analyze the logs
• Take action
• Before Serverless
• Setup a
VM/Container/WebJobs
• Build/Patch/Deploy
• Monitor
• Manage FTP cred
• Use FTP library
• Use cloud service SDK
• Using Serverless
• Setup a
VM/Container/WebJobs
• Build/Patch/Deploy
• Monitor
• Manage FTP cred
• Use FTP library
• Use cloud service SDK