top of page
Search

Is Cloud Native really worth it in AWS? - Part 2

Marcin Łukasiak

Introduction

In the first part of this blog series, we discussed the architectural concepts behind serverless architecture on AWS and Kubernetes-based microservice apps. Now, let's dive into the advantages and disadvantages of these two approaches.



Serverless Architecture on AWS


Advantages:
  • Cost Efficiency: With AWS Lambda, you pay only for the compute time you consume, and there is no charge when your code is not running. This leads to cost savings, especially for applications with varying workloads.

  • Scalability: Managed services like Lambda, DynamoDB, and SQS automatically scale with the demands of your application, without any manual intervention.

  • Simplified Infrastructure Management: AWS takes care of infrastructure management, allowing developers to focus on writing business logic.

  • Faster Time-to-Market: The high level of abstraction provided by managed services enables faster development and deployment of applications.

Disadvantages:
  • Vendor Lock-In: Relying on AWS-specific services makes it more challenging to migrate your application to another cloud provider in the future. The complexity will differ depending on the technology stack, but will be hard to omit completely.

  • Limited Customization: Managed services offer less flexibility in terms of customization, as they are designed to cater to a wide range of use cases. Time limits are one of the examples.

  • Cold Starts: AWS Lambda functions can experience latency due to cold starts, which occur when a new instance of a function is created to serve a request. We can keep a function ready to serve requests all the time, but then the cost benefit is not longer a factor.

EKS-based Microservice Apps



Advantages:
  • Flexibility: Microservices architecture offers a high level of flexibility, allowing you to choose the best technology stack for each service and make independent decisions about scaling, deployment, and maintenance.

  • Portability: Kubernetes is an open-source platform that can be used with any cloud provider or on-premises infrastructure, reducing vendor lock-in and allowing for easier migration between environments.

  • Strong Ecosystem: Kubernetes has a thriving community and ecosystem, with numerous tools and extensions available to enhance its functionality.

Disadvantages:
  • Increased Complexity: Microservices architecture and container orchestration introduce additional complexity in terms of management, monitoring, and deployment.

  • Operational Overhead: Running and maintaining a Kubernetes cluster, even with a managed service like EKS, can require more operational effort compared to using managed services like Lambda, DynamoDB, and SQS.

  • Cost: Depending on your application's workload and usage patterns, running a Kubernetes cluster might be more expensive than using managed services due to the need to manage and maintain the underlying infrastructure. EKS has also a flat charge for a cluster - regardless if it is used or not.

Conclusion

In conclusion, both serverless architecture on AWS and EKS-based microservice apps have their own set of advantages and disadvantages. Serverless architecture offers cost efficiency, scalability, and simplified infrastructure management, but may lead to vendor lock-in and limited customization options. EKS-based microservice apps provide flexibility, portability, and better fault isolation, but can introduce increased complexity and operational overhead.

When choosing between these two approaches, it's essential to carefully consider your application's specific requirements, your team's expertise, and your long-term objectives.


In the next part of this blog series, we will provide guidance on choosing the right approach for your use case and share some best practices for implementing each architecture.

0 comments

Recent Posts

See All

Comentários


bottom of page