Comparisons
UCROPS - Usability, Cost, Reliability, Operations, Performance, Security
Comparison - Serverless, Server
UCROPS | Serverless (ie. Lambda) | Server (ie. EC2) |
---|---|---|
Usability | ✅ Easy setup out-of-box if less-customized requirements with preconfigured options. to medium-sized workloads. Low cost for low usage. | Requires more manual configuration work/knowledge. |
Cost | ✅ More cost-effective for small to medium-sized workloads. Low cost for low usage. | ✅ More cost-effective for larger workloads. |
Reliability | ✅ High availability and fault tolerance built-in, server maintenance or hardware failures | No built-in high availability and fault tolerance must be implemented and maintained manually, can be more complex and time-consuming to set up and maintain. |
Scalability | ✅ Easier for more variable and unpredictable workloads. Automatic scalability built-in. | Better for predictable and steady workloads, where it can be fine-tuned by knowledgeable staff. More control, but more manual and reliant on expertise. |
Latency | ✅ Latency varies, although slower in some cases, faster with options to use on Edge locations for lower. Cold starts could be an issue in some cases. | ✅ Server-based options may have lower latency for a particular region, but may require more configuration to get it, and may have less latency stability. |
Operations | ✅ Less provisioning/maintenance, stateless environments, testing and staging may be more complex | More control over the deployment process |
Flexibility | Less flexible. Opinionated pre-configuration and cloud provider managed | ✅ More flexibility to change granular configurations. |
Customization | May be easier setup for if only built-in customization options are required. | ✅ More control over the underlying infrastructure or the ability to run custom software |
Compliance and Security | May not fulfill complex compliance requirements, but out-of-box security may be easier. | ✅ Better if specific compliance or security requirements must be met, but may require more configuration and maintenance. |
What is the expected workload for the application or service?
- If you expect a consistent, high workload, a server like EC2 may be more suitable as it can handle sustained usage.
- If you expect occasional or unpredictable usage, serverless like Lambda may be more cost-effective as you only pay for the exact amount of usage.
How much control do you need over the underlying infrastructure?
- EC2 provides more control over the server configuration and the ability to run custom software.
- Lambda, on the other hand, abstracts away the infrastructure and allows you to focus on writing code.
How important is cost and scalability?
- EC2 instances may be more expensive, especially for consistent, high-traffic workloads.
- Lambda is typically more cost-effective for infrequent or variable workloads, as you only pay for the exact amount of usage.
- Lambda also automatically scales to match the incoming traffic, which may save you the effort of configuring scaling rules.
How much traffic is the application or service expected to handle?
- If you expect high traffic, a server like EC2 may be more suitable as it can handle high traffic more easily.
- If you expect low or unpredictable traffic, serverless like Lambda may be more cost-effective.
What are the requirements for the runtime environment of the application or service?
- EC2 allows you to run any software or runtime environment that is compatible with the chosen operating system.
- Lambda currently supports a variety of languages and runtimes, including Node.js, Python, Java, Go, and .NET.
How much state needs to be maintained for the application or service?
- EC2 instances can maintain state by storing data on the local disk or external storage.
- Lambda functions are stateless, meaning that they do not maintain any data between invocations, but it can be store in S3, DynamoDB or other services.
How important is security for the application or service?
- EC2 instances can be configured with custom security settings and allow you to control access to the server.
- Lambda provides built-in security features such as VPC support, resource-based policies, and encryption of data at rest and in transit.
Are there any specific performance requirements for the application or service?
- EC2 instances offer more options for customizing the hardware and network configuration to meet specific performance requirements.
- Lambda provides automatic scaling and may not offer the same level of control over performance.
What is the expected life cycle of the application or service?
- EC2 instances may be more suitable for long-term, production workloads.
- Lambda may be more suitable for short-term, experimental, or event-driven workloads.