Carlos Sanchez is a Senior Cloud Software Engineer at Adobe Experience Manager, specializing in software automation, from build tools to Continuous Delivery and Progressive Delivery. Involved in Open Source for over 15 years, he is the author of the Jenkins Kubernetes plugin and a member of the Apache Software Foundation amongst other open source groups, contributing to several projects, such as Jenkins or Apache Maven.
Join us to learn the challenges we faced and the solutions we implemented moving Adobe Experience Manager, an existing product built mostly in Java, to Kubernetes.
The need to scale triggered a micro-service architecture to support the existing app, and to scale the development organization. This drove the creation of API first services and operators with independent SLOs that work together to provide the full product. Running in multiple Kubernetes clusters across regions forced high levels of automation and Continuous Delivery pipelines, tied with monitoring and alerting across the globe.
We will dig into specific details of Java that require more attention when migrating to Kubernetes, like resource management, decomposition of services or availability amongst others.
Moving to Kubernetes opens the door to a world of possibilities, the amount of workloads that can be run and the flexibility it provides. However this comes at a cost on managing the resources used by many applications and teams. Java applications can be specially challenging when running in containers. At Adobe we make extensive use of standard Kubernetes capabilities to reduce resource usage and we have also built some solutions at several levels of the stack to improve it.
From autoscaling to workload hibernation, from automated resource requests to Kubernetes Jobs, we have experimented with and implemented several features that decrease our resource usage and lower the cost of running many Kubernetes clusters at scale. Both at workload resource level and also at achieving higher density clusters that reduce the number of clusters we need and the operating costs.