This blog post is co-authored by Anusha Ragunathan, Shrinand Javadekar, Corey Caverly, Jonathan Nevelson, and Rene Martin.

“In this world, nothing is certain except death, taxes and Kubernetes” — Anonymous

Image for post
Image for post

Background and scope

This is the second blog in our two-part series on the adoption of Kubernetes for Intuit’s TurboTax tax filing software. In the first blog, we explained the design of the Kubernetes compute infrastructure, including the slicing of Kubernetes namespaces, AWS account topology, and the design of access to the data platform. We also provided insight into how a compute cluster looks, as shown below in figure 1.

This blog delves into the technical roadblocks faced due to the scale of TurboTax, resolutions made, and lessons learned. It is intended for anyone interested in building an AWS-based Kubernetes platform and learning about using Kubernetes at scale and handling peak loads. For a clearer understanding, it’s best to read Part 1 of the series first. …

Written by Shrinand Javadekar, Ed Lee

Spot instances provide an attractive option to use cost-effective compute. They can be up to 10x cheaper than on-demand instances. However, they do come with their own caveats and limitations. To use a spot instance on AWS, the user has to continuously submit a “bid price”. If this “bid price” is ever less than the “clearing price” determined by AWS, the spot instance will be terminated.

Short-lived jobs and workflows are perfect use cases for leveraging spot instances. Further, any application that can tolerate node failures can also benefit from using spot instances. …

Written by Shrinand Javadekar, Abhinav Das

Image for post
Image for post

Docker containers are a very useful tool for running other tools, so it is quite natural to invoke Docker containers as just another tool from another container. There are many use cases for Docker-in-Docker (a.k.a. DinD)— 1) Continuous Integration (CI) app (e.g. Jenkins) may be containerized and you want to provide a build/test container for each CI job you want to run, 2) running a Docker Compose file inside a pod on a Kubernetes cluster, 3) building a Docker container image inside a containerized CI job, and more.

In a previous series of blogs, we made a case for running a pod on Kubernetes that itself runs Docker. …

Shrinand Javadekar

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store