# Stitch Fix's Move to Kubernetes for More Agile Service Deployment

DevFeed: [Stitch Fix's Move to Kubernetes for More Agile Service Deployment](<https://devfeed.tech/articles/towards-service-deployment-agility-29346.md>)

Original publisher: [Read original article](<https://multithreaded.stitchfix.com/blog/2023/09/19/towards-service-deployment-agility/>)

Published: 2023-09-19T15:00:00Z

Content type: article

Language: en

Sources: [Stitch Fix](<https://devfeed.tech/sources/stitch-fix.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Amazon Elastic Kubernetes Service](<https://devfeed.tech/topics/amazon-elastic-kubernetes-service.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [autoscaling](<https://devfeed.tech/topics/autoscaling.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>)

Tags: [autoscaling](<https://devfeed.tech/tags/autoscaling.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [emr](<https://devfeed.tech/tags/emr.md>), [golang](<https://devfeed.tech/tags/golang.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [python](<https://devfeed.tech/tags/python.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>)

## AI overview

This article describes Stitch Fix's effort to improve service deployment agility. It explains the platform's self-service goals, its transition from EMR-based Spark infrastructure to EKS, and the deployment challenges that motivated consideration of Kubernetes for core platform services, including standardization across languages, autoscaling, rollback, and traffic segmentation.

## Source excerpt

Introduction At Stitch Fix, our data platform is designed to be self-service, with our users taking ownership of their own ETL, models, and microservices. To support this approach, the platform team prioritizes user autonomy and end-to-end tooling in their tooling designs, minimizing the involvement of platform engineers in day-to-day engineering and data science workflows. We regularly evaluate our infrastructure against new frameworks to assess the costs and benefits of potential updates. Last year, we transitioned our EMR-based Spark infrastructure to EKS to take advantage of its benefits. The next logical step was to re-examine how our core platform services were deployed and updated, especially those still deployed directly to instances. We also recognized that Kubernetes, a popular open-source system for handling the deployment of containerized applications, could provide benefits for microservice orchestration beyond just batch compute infrastructure. Our existing instance-based service deployment framework was beginning to show its age in areas that were critical for Stitch Fix, such as the development lifecycle's velocity. As we saw an opportunity to leverage Kubernetes to address these issues, we identified pain points in our service deployment ecosystem. Pain Points Building and deploying services can be a time-consuming process, involving multiple steps and dependencies. We needed a solution that would streamline this process and enable us to deploy services more efficiently. Polyglot environments, where multiple programming languages are used within the same system, can present a challenge for deployment standardization. At Stitch Fix, we use a variety of languages, including Python, Golang, Nodejs, and JVM (Java and Scala), making it difficult to establish consistent deployment practices across the board. We needed a way to deploy polyglot environments in a standardized and efficient manner. Autoscaling and rollback capabilities are essential for manag