When people think about whether or not to deploy on a container management platform like Kubernetes, the decision often comes down to its operational benefits: better resource efficiency, higher scalability, advanced resiliency, security, etc. But Kubernetes is also beneficial to the software development side of the house. Whether it’s improved portability of your code, or better productivity, Kubernetes is a win for developers, not just operators.
For one thing, as we argued in Re-architecting to cloud native: an evolutionary approach to increasing developer productivity at scale, Kubernetes makes it easier to adopt modern cloud-native software development patterns like microservices, which can give you:
- Increased developer productivity, even as you increase your team sizes.
- Faster time-to-market – Add new features and fix defects more quickly.
- Higher availability – Increase the uptime of your software, reduce the rate of deployment failures, and reduce time-to-restore in the event of incidents.
- Improved security – Reduce the attack surface area of your applications, and make it easier to detect and respond rapidly to attacks and newly discovered vulnerabilities.
- Better scalability – Cloud-native platforms and applications make it easy to scale horizontally where necessary—and to scale down too.
- Reduced costs – A streamlined software delivery process reduces the costs of delivering new features, and effective use of cloud platforms substantially reduces the operating costs of your services.
Google of course invented Kubernetes, which Google Cloud offers as the fully managed service, Google Kubernetes Engine (GKE). But did you know that Google Cloud also offers a full complement of developer tools that are tightly integrated with GKE? Today, in honor of KubeCon, we’re revisiting a few blogs that will show you how to develop apps destined for GKE, how to deploy them safely and efficiently, and how to monitor and debug them once they’re in production.
Developing for GKE: It all starts with you
Even the most enterprise-y applications get their start in life on a developer’s laptop. The same goes for applications running on GKE. To make that possible, there’s a variety of tools you can use to integrate your local development environment with GKE.
- Developers are known for tricking out their laptops with lots of compute resources. Using Minikube, you can take advantage of GPUs, for example. There are also local development tools to help you containerize Java apps: Jib, and Skaffold. Jib helps to containerize your Java apps without having to install Docker, run a Docker daemon, or even write a Dockerfile, and is available as a plugin for Maven or Gradle. Then, you can use Skaffold to deploy those containerized Java apps to a Kubernetes cluster when it detects a change. Skaffold can even inject a new version of a file into a running container! Read about this in depth at Livin’ la vida local: Easier Kubernetes development from your laptop.
- Another popular tool among GKE developers is Cloud Code, which provides plugins for the popular Visual Studio and IntelliJ integrated development environments (IDEs) to simplify developing for GKE. For example, we recently updated Cloud Code to have much more robust support for Kubernetes YAML and Custom Resource Definitions (CRDs). Read more at Cloud Code makes YAML easy for hundreds of popular Kubernetes CRDs.
Have a quick and dirty development task to do? Check out Cloud Shell Editor, which launches a full-featured, but self-contained, container development environment in your browser. Read more at New Cloud Shell Editor: Get your first cloud-native app running in minutes.
By Drew Bradstock. Source: Google Cloud Blog.