We are currently using Amazon EKS as a production environment where we deploy multiple services because we serve banks using our services for identifying threat analysis and synthetic identity. Our main use case for Amazon EKS involves deploying our services based on scoring to determine whether a particular user is valid or invalid based on their social security number and any fraudulent entity they provide. We analyze this information and use Amazon EKS as the platform for deploying that application. We mainly deploy applications using Kubernetes deployments, and based on that, we deploy pods which contain the container that runs the application.
Amazon EKS helps us manage these deployments for threat analysis and synthetic identity because the controller part is managed by AWS. This addresses our concern about managing it ourselves, as we are managing a large environment where Amazon EKS ensures we can confidently manage our application rather than relying solely on the controller. We have implemented Karpenter, which manages the nodes and continuously monitors to see if any nodes or pods are underutilized or unable to load. It identifies the requirements from the pod side, automatically creates a node, and schedules the pod based on its resource needs. This automation allows us to respond quickly, especially during high load times when pods may get stuck or unable to upload images. The alerts help us react promptly, and another pod will be scheduled to fulfill the user's request within seconds.
The best feature Amazon EKS offers is automation, particularly with the automatic scheduling of pods on nodes. Karpenter, the new feature added recently that manages the node initialization, is something I really appreciate as it makes independent decisions based on the requirements, unlike older autoscaling configurations. Karpenter prioritizes cost-effectiveness by selecting the cheapest options for nodes, whether they are spot instances or on-demand. Additionally, whenever there is an issue, the pod can be automatically recreated using the defined replica set, providing a significant advantage of Kubernetes.
Karpenter helps keep costs down by consistently evaluating whether it should take on-demand instances or lower-cost alternatives. It constantly monitors for the lowest price model available in AWS. However, because the cheapest instance can be terminated with little notice, Karpenter quickly transitions to the next available on-demand instance. This proactive cost management is a key feature.
Amazon EKS has positively impacted my organization as Kubernetes offers orchestration of container-based applications, allowing us to rapidly deploy and fulfill user requests. During busy business days or promotional offers, we experience increased traffic, and Amazon EKS enables quick deployment of containers to meet this demand. If a pod is unresponsive, Amazon EKS can easily launch another pod to maintain service delivery. This adaptability not only enhances user service but also contributes to cost savings since we leverage Karpenter to manage nodes dynamically based on usage.