In the Cloud, there are many services that allow you to host your application. One such service is AWS Elastic Compute Cloud (EC2). EC2 is a virtual machine where you can rent its computing power to host your web applications, gaming server, processing datasets, running analytics, and many more. Companies such as Netflix, Airbnb, and financial institutions use EC2 to run handle heavy compute and storage requirements, such as on-demand delivery of video content, process bookings, handling search queries, managing data storage, risk analysis models, performing algorithmic trading, and handling high-frequency trading operations.
However, not everyone wants to endure the hard labor of configuring and maintaining servers. We just want to focus on building good and unique applications, things that are vital to our company. With serverless computing, you can do just that.
Serverless Computing
The term “serverless” means that your code runs on servers, but you do not need to provision or manage these servers.
Another benefit of serverless computing is the flexibility to scale serverless applications automatically. Serverless computing can adjust the applications' capacity by modifying the units of consumption, such as throughput and memory.
There are many serverless like Amazon Lambda, Azure Function, Google Cloud Functions, and IBM Cloud Functions.
AWS Lambda
While using AWS Lambda, you pay only for the compute time that you consume. Charges apply only when your code is running. You can also run code for virtually any type of application or backend service, all with zero administration.
Containers
Another way to deploy your application is to use containers. Containers provide you with a standard way to package your application's code and dependencies into a single object.
One problem is scalability. When you scale you would have to manage multiple hosts with hundreds or thousands of containers on memory usage, security, logging, and so on.
To implement containers in your workload:
1. Choose an orchestration tool: Amazon ECS or EKS
2. Choose a platform: EC2 that you manage or Fargate that manages them for you.
Container Orchestration Tools
Docker |
Kubernetes |
---|---|
Software platform that enables you to build, test, and deploy applications quickly |
Software that enables you to deploy and manage containerized applications at scale |
A tool for creating and running containers |
A tool for managing and orchestrating multiple containers across multiple hosts |
Creating images and running containers locally or on a single host |
Deploying and managing containers at scale across multiple hosts in a cluster |
AWS Fargate
AWS Fargate is a serverless compute engine for containers. It works with both Amazon ECS and Amazon EKS.
- You do not need to provision or manage servers.
- Manages your server infrastructure for you.
Comparing compute types
Feature |
EC2 (Elastic Compute Cloud) |
Serverless Computing |
Containers |
---|---|---|---|
Provisioning |
Requires manual provisioning |
No manual provisioning |
Requires manual provisioning |
Scalability |
Vertical and horizontal scaling |
Auto-scales based on demand |
Horizontal scaling |
Deployment |
Manual deployment and configuration |
Deployed automatically |
Manual deployment and configuration |
Resource Management |
Manual resource management |
Managed by the cloud provider |
Manual resource management |
Startup Time |
Longer startup time |
Instant startup |
Short startup time |
Cost |
Pay for running instance |
Pay per request or execution |
Pay for running instance |
Isolation |
Isolated virtual machines |
Isolated functions |
Isolated containers |
Complexity |
Requires more configuration and management |
Simplified configuration and management |
Moderate configuration and management |
Flexibility |
Full access to OS |
Limited control, focused on function logic |
Moderate control and customization |
Use Cases |
Traditional applications |
Event-driven, Service-oriented short-lived functions |
Microservices, portable applications |
Comments
Post a Comment