Unlocking New Possibilities: Transitioning from VMware Pivotal Cloud Foundry (PCF) to Amazon EKS
Tags: aws, eks, containers, vmware
Published: 2024-05-02 14:05:32

In the ever-evolving landscape of application development, the shift from traditional infrastructure to containerized environments represents a major leap forward. As businesses seek to innovate and scale, the limitations of older platforms like VMware Pivotal Container Service (PCF) become increasingly apparent. 

Today, the industry is moving towards more flexible, scalable, and cost-effective solutions offered by modern container orchestration platforms, with Kubernetes leading the charge.


The State of Containerization in 2024.

Containerization has revolutionized the way organizations deploy and manage their applications. According to a recent CNCF survey, Kubernetes usage in production has grown to 91%, underscoring its adoption as the de facto standard for container orchestration. Despite its pioneering beginnings, VMware's PCF has really struggled to keep pace with the dynamic demands of modern software development, leading to specific pain points for its users, let me mention a few below:

1. Scalability and Flexibility Challenges: Many organizations find PCF restrictive due to its opinionated nature, which limits customization and scalability essential for handling complex applications.


2. Cost Implications: The licensing model of PCF, combined with operational overheads, makes it an expensive proposition compared to Kubernetes solutions.

3. Technical Debt: Enterprises running PCF are increasingly facing the burden of technical debt as they scale and evolve, making system maintenance and upgrades more cumbersome and risk-prone.

4. Vendor Lock-In: With PCF, customers often find themselves locked into a specific technology stack and vendor, reducing their ability to adapt to new technologies and market changes.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ky1lqr0kvntwqhwijo47.png)


Shifting forward toward a cloud native solution. How does EKS solve my problem?

Amazon Elastic Kubernetes Service (EKS) is recognized as a highly reliable and scalable Kubernetes management service, offering significant benefits for container orchestration on AWS. EKS automates key tasks such as the deployment, scaling, and management of containerized applications, and is fully managed by AWS, which means it takes care of the Kubernetes control plane without user intervention. This service integration extends to AWS core services like EC2, IAM, and Auto Scaling Groups, enhancing monitoring and security management capabilities.

EKS supports a wide array of AWS services and integrates seamlessly into the AWS ecosystem, allowing for more efficient application workflows and reducing the operational burden on teams. Notably, EKS reduces costs through efficient resource provisioning and automatic application scaling. It also improves cost efficiency by supporting ARM-based instances like AWS Graviton2, which offer up to 40% better price performance compared to equivalent x86-based instances. Additionally, EKS is designed to provide enhanced security for Kubernetes clusters, featuring built-in integrations with AWS services such as IAM for fine-grained access control and VPC for network isolation.

For businesses looking to migrate or scale their Kubernetes applications, EKS provides a robust, secure, and cost-effective environment. It simplifies cluster management and offers out-of-the-box integrations for a variety of AWS services and Kubernetes plugins, ensuring a comprehensive and streamlined operational experience. Moreover, EKS's support for both Windows and Linux nodes, as well as IPv6, allows for flexible, future-proof architecture designs that can easily scale with the demands of modern applications

Why Migrate to AWS EKS?

When I talk to customers about this topic its really important to keep in perspective that adopting AWS EKS allows organizations to vastly open up their container and application strategies and allow them the benefit of truly being able to modernize and transform their application landscape that they never thought possible.

Here are the gains: 

1. Optimize operational efficiency with a managed Kubernetes environment that reduces the need for in-depth configuration and maintenance. Managed Kubernetes environments, like EKS, handle the complex setup and maintenance of Kubernetes infrastructure, including control plane components and node lifecycle management. This allows teams to focus on deploying and managing their applications rather than worrying about underlying infrastructure.

2. Scale seamlessly with the demands of business, thanks to EKS’s integration with AWS’s elastic infrastructure.EKS provides capabilities for automatic scaling and rolling updates, which streamline operations by adjusting resources based on demand and ensuring that clusters stay up-to-date with the latest security patches and features without manual intervention.

3. Reduce costs by eliminating the need for upfront hardware investments and minimizing the operational overhead associated with managing Kubernetes.

4. Leverage AWS's comprehensive suite of services and tools, enhancing application development, deployment, and monitoring capabilities. Services such as Fargage, Fargate is a serverless compute engine for containers, offering seamless integration with Amazon EKS and ECS. It eliminates the need to manage servers or clusters, enabling you to run and scale applications effortlessly. Lambda to run compute services in response to events. X-Ray, which helps you analyze and debug distributed applications, providing end-to-end insights into how requests flow through your system. This tool enhances monitoring and troubleshooting capabilities by identifying performance bottlenecks and errors.


Now, let me guide you through the future architecture and demonstrate the realm of possibilities.


Future State Architecture with AWS and EKS 

In ongoing efforts to enhance efficiency and reduce costs,  whats been helpful is to propose a strategic shift in customers infrastructure from Pivotal Cloud Foundry (PCF) to Amazon Web Services (AWS). The following architecture diagram illustrates this transition, highlighting how you can leverage AWS's scalability, robustness, and advanced cloud capabilities while maintaining the strengths of your existing PCF setup. Below is a detail of each component of this architecture, ensuring a seamless understanding of how this transition benefits into your operations.

Architecture Overview

The architecture diagram, as shown below, maps out the integration between PCF and AWS services, providing a clear visualization of your cloud and container management strategy for migrating off PFC and into Amazon EKS. This setup is designed to minimize migration efforts, optimize costs, and enhance system resilience and scalability.

By walking through this architecture, we can visualize the practical steps and strategies involved in the migration process, making it easier for stakeholders to understand and support this transition.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9vpg43crb9fobp8avuo7.png)

Lets review the key components and benefits of this architecture.


The target architecture comprises Amazon ECS services, organized by domains and managed within individual AWS application accounts. The architecture incorporates several key changes as outlined below:

1. Shared Services
The Config Server and Eureka services are now housed in a shared services account, connected to the application accounts via an AWS Transit Gateway. These services are utilized across all applications in the environment. The Spring Cloud Config server has been migrated to an Amazon ECS service, while Eureka has been deployed on Amazon EC2. The Config server is secured by a private Application Load Balancer (ALB).

2. Publicly Accessible Services
Services that are publicly accessible are exposed through an ALB. The Spring Cloud Gateway, hosted on Amazon ECS, is retained behind the load balancer for intelligent routing, authentication, and authorization.

3. Credential Management
AWS Secrets Manager is utilized for credential management, in addition to encrypted options provided through the Config server.

4. CI/CD
Docker image builds are initiated from build processes using AWS CodePipeline and AWS CodeBuild, with integrated image security scans.

Continuous deployment is achieved using a standardized AWS CodePipeline, which deploys to Amazon ECS through either rolling deployments or AWS CodeDeploy blue-green deployments.

5. Observability
Observability is managed using Amazon CloudWatch Logs for logging, AWS Distro for OpenTelemetry for tracing, Container Insights, and various third-party monitoring tools.


Streamlining DevOps in the Transition from PCF to EKS

CI Migration: Moving from Pivotal Cloud Foundry to Amazon EKS requires a shift from traditional executables to container images, necessitating the setup of new repositories in Amazon ECR and adjustments to existing CI pipelines. Integrating AWS CodePipeline and AWS CodeBuild can help facilitate this transition while maintaining regular release workflows.

CD Migration: The migration changes deployment processes from using `cf push` to adopting Amazon EKS, which can be managed through AWS CodePipeline and AWS CodeDeploy to ensure smooth, uninterrupted deployment cycles.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n89561yoccex0c17sulh.png)

In Conclusion: 

This architecture not only supports current operational needs but also sets a robust foundation for future growth and innovation. By migrating to AWS, you can position your organization to take full advantage of cloud scalability, security, and efficiency, ensuring that infrastructure continues to support your organizations strategic business objectives effectively.