Intriduction to Severless Computing
Define serverless computing and describe its concepts
- Serverless computing is the concept of building and running applications that do not require server management
- It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled , and billed in response to the exact demand needed at the moment.
Serverless = FaaS + BaaS
FaaS paltform are used to run functions
BaaS represents backend cloud services, such as databases obkect storage, and message queues
Identify key characteristics of serverless computing
Serverless architecture concepts
- Abstracts infrastructure and software environment
- Code runs in a cloud platform
- Cloud provider manages the hardware and software setup, security, performance
- Billed only for usage
- Developers only need to focus on applications and code in the form of functions
Serverless characteristics
- Hostless
- Elastic
- Load balanced
- Stateless
- Event driven
- Highly available
- Usage-based/granular billing
Developer's role
Focus on application developemnt
Build functions using a popular programming language
- Extend functionality
- Perform better testing
- Optimize apps and functions
- Improve user experience
Cloud provide responsibilities
Cloud providers manage common infrastructure and maintenance task such as:
- Maximizing utilization
- Minimizing costs
- Server management
- Autoscaling
- High availability
- Security
- Performance(low latency)
- Monitoring and logging
Serverless Pros and cons
- In traditional computing, developement and operations team sr u adn maintain infrastructure
- Setup and deployment are time-consumin, complex, and expersive
- Arrival of cloud, containers, and serverless computing means developers can focus on writeing high-quality code
- Developers can build and run applications in milliseconds without worrying about infrastructiure, scalability, and fault tolerance
- Challenges include vendor lock-in, 3rd-party dependencies, and networking
Serverless computing benefits
- Reduced costs
- Built-in HA and FT
- Increased dev productivity
- Code runs when triggered
- Fast run time
- Built-in code editor
- Pay as you go
- Language independent
- Third-party auth and DB services
- Faster time to market
- Innovate and experiment
- Green computing
Serverless computing constraints
- Unsuitable for long-running processes
- Vendor lock-in risks
- Cold starts
- Latency unsuitable for tim-critical apps
- Security concerns
- Complex monitoring and debugging
- Language support dependency
- Server optimization loss
- No state persistence