Docker, appengine and the flexible environment

For my Ephemeral Exchange project I needed to integrate a whole bunch of technologies for the front end development, but it also gave me some new challenges with other stuff that was new to me too. I had started with the intention of hosting Redis, my back end database on a Compute engine VM, the API as Node/express app on another VM and my front end stuff on Cloud storage. As usual, plans changed.


When App engine first came out, you were stuck with PHP, Python or Java - none of which are my goto solutions. Then Go came along, but shortly afterwards it was announced that app engine was going to support Node. For us JavaScript developers, that's a perfect solution. In fact the way does that is by allowing containers to be hosted by appengine in what they call their flexible environment. They provide a prebuilt Node environment of course, but you can create any kind of containers and run that on app engine too. This means that there's not much point in bothering with spinning up your own VMs on compute engine. Instead just build a container with everything you need in it.


If you think about a VM as being an environment that's hosted by a host OS, but that has a virtual encapsulated OS - essentially a machine running on another - you still have to manage that as if it were a real machine. Docker is an application focused version of a VM, where you package your app and everything it needs (including an operating system to support it) into a container, then anything that can run Docker can run your App. The Docker Hub is a repository of containers that others have made and you can base your container on one of them - or you can start from scratch and build your own. In these pages I'll be going into Docker containers and showing some examples.


For more like this, see React, redux, redis, material-UI and firebase Why not join our forum, follow the blog or follow me on twitter to ensure you get updates when they are available.