One restaurant that has always done it right is Bareburger. If you don’t live in

sannachrisoffici sarf
10 min readDec 8, 2020


One big learning for us was we could have taken a different and lesser resistant path to adopting Kubernetes. We were just bought into Kubernetes as the only solution that we didn’t even care to evaluate other options.

Should we have migrated to Kubernetes? Yes, absolutely. There are several benefits of using Kubernetes — service-discovery, better cost management, resilience, governance, abstraction over infrastructure of cloud infrastructure to name a few. We are reaping all these benefits today as well. But that was not our primary goal when we started and the self-imposed pressure and pain of delivering the way we did was perhaps unnecessary.

Almost two years back, we took the decision to leave behind our Ansible based configuration management setup for deploying applications on EC2 and move towards containerisation and orchestration of applications using Kubernetes. We have migrated most of our infrastructure to Kubernetes. It was a big undertaking and had its own challenges — from technical challenges of running a hybrid infrastructure until most of the migration is done to training the entire team on a completely new paradigm of operations to name a few.

Luckily for him, his icon-tweet ended up with hundreds of retweets, thousands of likes, and over a hundred thousand impressions, within a day. “The day after that, almost a million,” he says.

Even if you offload operating Kubernetes to a managed Kubernetes service such as EKS, GKE or AKS, deploying and operating applications on Kubernetes properly also has a learning curve. Your development team should be up for the challenge. A lot of benefits can only be realised if your team follows the DevOps philosophy. If you have central sysadmin teams writing manifests for applications developed by other teams, we personally see lesser benefit of Kubernetes from the perspective of DevOps. Of course, there are numerous other benefits that you can choose Kubernetes for, for example cost, faster experimentation, faster auto-scaling, resilience, etc.

On September 16th, Apple officially released iOS 14, opening an entirely new world of home screen customizations to millions of iPhone users. Just five days later, designer Traf went on Twitter to share a picture of his home screen setup, and, it instantly caught the attention of plenty of Apple fans.

In simple words, Marques introduced Traf’s icon-set to his audience of millions of viewers. For Traf, it was a shout-out of a lifetime. “The next thing I knew,” writes Traf, “I was making $28 what felt like every 28 seconds.” He eventually had to turn his smartphone notifications off.

Finally, six days after his initial tweet, the icon-designer had already managed over $100,000. That’s six figures in six days. “The right content, posted at the right time, can create unimaginable results,” writes Traf. And he’s not done yet, as he’s just about to touch $300,000 at the time of this writing.

Finally, six days after his initial tweet, the icon-designer had already managed over $100,000. That’s six figures in six days. “The right content, posted at the right time, can create unimaginable results,” writes Traf. And he’s not done yet, as he’s just about to touch $300,000 at the time of this writing.

We made some mistakes on this front. Our primary reason to migrate to Kubernetes was to build a continuous integration infrastructure that could assist us with rapid re-architecture of our microservices in which a lot of architecture debt had crept in over the years. Most new features required touching multiple code bases and hence, development and testing all of them together would slow us down. We felt the need to be able to provision an integrated environment for every developer and every change to assist with faster development and testing cycles without coordinating who gets the “shared stage environment”.

We will see in this blog post that migration and operations on Kubernetes are not the same as deploying on cloud VMs or bare metals. There is a learning curve for your cloud engineering and development teams. It might be worth it for your team to go through it. But do you need to do that now is the question. You must try to answer that clearly.

In this post, we would like to reflect on our experience and share our learning from this journey with you, to help you make better decisions and increase your chances of success.

If you don’t know Marques (or MKBHD), he’s quite famous in the YouTube tech-community, he’s almost as big as it gets, and, also, my personal favorite. Anyway, Marques used Traf’s icons in his video to create one of his own home-screen layouts and left a link to Traf’s website in case anyone was interested.

If you are already deploying on cloud VMs or perhaps another PaaS, why are you really considering migrating to Kubernetes from your existing infrastructure? Are you confident that Kubernetes is the only way to solve your problems? You must be clear about your motivations as migrating an existing infrastructure to Kubernetes is a big undertaking.All that serverless and containers thing is nice. If you are starting a new business and building everything from scratch, by all means go ahead and deploy your applications using containers and orchestrate them using Kubernetes if you have the bandwidth (or may be not, read on) and the technical skills to configure and operate Kubernetes as well as deploy applications on Kubernetes.Traf was quick to notice all the hype around custom icons and to the initial response that his own design had received. So he acted on his impulse and decided to package his icon-set and offer it at a $28 price tag on his website. According to Traf, the entire process took less than two hours.

Apple enthusiasts turned out to be quite excited to play around with all the new iOS upgrades, especially app-icons. And they were soon all over the internet sharing pictures of their home screen setups — a social media trend that was previously almost exclusive to Android users.It took us almost 1.5 years to stabilize this complex CI setup by building additional tooling, telemetry and redoing how every application is deployed. For the sake of dev/prod parity, we had to deploy all these micro-services to production as well or else just the drift between the infrastructure and deployment setup will make the applications hard to reason about for developers and would have made ops for developers a nightmare.We do this today very well. We provision 21 micro-services in an integrated environment under 8 minutes today on Kubernetes. Any developer can use our home-grown tool to do this. We also provision a subset of this environment for every pull request created for any of these 21 micro-services. The entire test-cycle (provisioning the environment and running tests) takes under 12 minutes. It might feel like awfully long but it prevents us from shipping bad changes in the architectural mess we are currently in.

We have mixed feelings about this topic. In retrospect, we think we made our problem of solving for continuous integration worse because the complexity of pushing all microservices to production for dev/prod parity made the challenge of achieving faster CI builds a lot more complex and difficult. Before Kubernetes, we were using Ansible with Hashicorp Consul and Vault for infrastructure provisioning, configuration management and deployments. Was it slow? Yes, absolutely. But we think we could have introduced service discovery with Consul and optimized Ansible deployments a bit to get close enough to our goal in a reasonably shorter time.