Ian Lewis Ian Lewis is a web developer living in Tokyo Japan. His current interests are in Go, Python, alternative databases and rapid web application development.
About Me...

Using Kubernetes Health Checks

I've seen a lot of questions about Kubernetes health checks recently and how they should be used. I'll do my best to explain them and the difference between the types of health checks and how each will affect your application. ## Liveness Probes Kubernetes health checks are divided into liveness and readiness probes. The purpose of liveness probes are to indicate that your application is ru[...]

Google Cloud Platform HTTP Load Balancers Explained via the CLI

The Google Cloud Platform Load Balancers are based off of technology that Google developed for our applications. There are two types of load balancers, the Network (L3) Load Balancer and the HTTP (L7) Load Balancer. The HTTP Load Balancer is global so the same IP can be used everywhere in the world, but still supports very high scalability with no warmup. Setting up the HTTP Load Balancer is[...]

Creating Smaller Docker Images: Part #2

This is the second post in a series on making smaller Docker images. In my previous blog post I talked about how to create smaller Docker images but there were limits to how small we could make the images. I outlined a way in which you can make the layers you add to your Docker image smaller, but there may be times where it just isn’t possible. Perhaps you need to run some steps in a particul[...]

Creating Smaller Docker Images

Recently I've been working with containers a lot and the most popular technology out there is, of course, Docker. On top of allowing you to easily run containers using the `docker run` command, Docker provides a method to build container images and a format for the resulting image. By writing a `Dockerfile` and executing the `docker build` command you can easily create images that can be run [...]

Looking Back At My First Year at Google

I joined Google one year ago today. It's been a really busy year and I can't believe it's over so fast. I still feel like I just joined and there's so much that I'm still getting used to. Google has been at the same time the easiest and the hardest, the most fun and the least fun company I've worked at so far. I'll try to explain a bit what I mean. But first I want to take a look back at my f[...]

HTTP/2 and Go

> UPDATE (2015/10/15): HTTP/2 is now enabled by default for http servers in tip and will be released as part of Go 1.6. That means that you will be able to create HTTP/2 servers without even calling `ConfigureServer()`. > >> At #golang tip @HTTP_2 server now enabled by default. https://t.co/dcaTfboGVe & https://t.co/c8xbVtBqRe Thx @enneff, @bmizerany & others! >> >> -- Brad Fitzpatrick (@[...]

Cross-Region HTTP Services on Container Engine

We recently released a new tutorial on using Google Cloud Platform’s HTTP load balancer with Container Engine. This is really exciting because it opens up lots of possibilities based on the features of the HTTP load balancer. The HTTP load balancer enables you to route traffic to different backends (Container Engine clusters, normal Compute Engine instances, etc.) based on the URL. But, the m[...]

Testing Django Views Without Using the Test Client

The normal way to test Django views is via the test client. The test client fakes being a wsgi server and actually makes an HTTP request through all of Django’s request routing machinery. There are a number of reasons why this isn’t an ideal approach. ## Tests are Slow When you use the Django test server, you are making an HTTP request from the WSGI server level on up. This invokes logic fo[...]

Using Kubernetes Namespaces to Manage Environments

One of the advantages that Kubernetes provides is the ability to manage various environments easier and better than you have been doing. For most nontrivial applications, you have test, staging, and production environments. You can spin up a separate cluster of resources, such as VMs, with the same configuration in staging and production, but that can be costly and managing the differences be[...]

Deploying Go Servers with Kubernetes on Container Engine

> UPDATE (2015/07/13): Now using the v1 API. > > Cross posted on medium I was trying to get a Go app running on Container Engine and couldn't quite find what I was looking for. There are guides out there about how to use Go and Docker, and how to use Kubernetes but but not many about Go apps and Container Engine. I also found it easy to deploy apps but most guides lacked information on bes[...]