Ilya Dmitrichenko (@errordeveloper) of Weaveworks and Michael Hausenblas (@mhausenblas) of RedHat recently co-authored a blog on some best practices for developing applications on Kubernetes for the Kubernetes blog. The authors discuss the different types of tools available and also strategies on how to develop your applications locally.
The article assumes that you will choose a language and an IDE, and with that in mind, the authors do a deep dive on what your local development environment could look like. They discuss the tools of the trade that you need to consider and then follow this up with a hands-on walk-through using some of the tools and how you can effectively leverage them for Kubernetes application development.
Where to run your cluster?
One of the first things to think about is how you will run your cluster locally during development. There are a few different options that Ilya and Michael presented like minikube, Docker for Mac, and Minishift. Some of these tools integrate with IDEs like Eclipse Che or Cloud 9, but if you’re not using any of those IDEs you may want to consider running Minikube locally in its own VM.
Tools of the Trade
Another decision that you’ll need to make is what continuous deployment, debugging, and Docker build tools you will use in your setup so that you can iterate faster on your development cluster. There are many options out there and this blog discusses some of the more common options out on the market today such as: Draft, Skaffold, Squash, Telepresence, and Ksync.
Tools in this space are releasing on a nearly weekly basis, which makes it particularly difficult to know which ones you should be spending your time on.
An end-to-end Walkthrough
The authors then take you through a sample stock simulator application that consists of two microservices. The step by step tutorial takes you through the entire process of setting up a local cluster, updating the code, debugging it and then deploying the services to your development cluster.
See, Developing on Kubernetes to read the post in its entirety.
Weaveworks now offers Production Grade Kubernetes Support for enterprises. For the past 3 years, Kubernetes has been powering Weave Cloud, our operations as a service offering, so we couldn’t be more excited to share our knowledge and help teams embrace the benefits of cloud native tooling.
Kubernetes enables working as a high velocity team, which means you can accelerate feature development and reduce operational complexity. But, the gap between theory and practise can be very wide - which is why we've focused on creating GitOps workflows, building from our own experiences of running Kubernetes in production. Our approach uses developer-centric tooling (e.g. git) and a tested approach to help you install, set-up, operate and upgrade Kubernetes. Contact us for more details.