I now have arrived at the moment I need an infrastructure for the production environment. As a technology for deployment I already decided on containerisation with Docker. This seems the most portable and manageable way to deploy and update the platform. I have been looking at hosting companies with Docker support, and although al lot of the hosters talk and know about Docker, almost everyone is just giving you a Kubernetes (later on that) environment deployed on the same VPS we have been renting for years now. IBM Cloud/Bluemix and Digital Ocean are the exceptions. IBM is way to expensive, but Digital Ocean seems like a really good place to go the Container only way. To stay flexible I will start designing the platform infrastructure based on three VM’s and will try to keep in mind Digital Ocean if I want to reduce complexity.
Now on Kubernetes, when building an infrastructure for Docker all arrows are pointing to Kubernetes as the orchestration layer. For such a small platform Kubernetes might be overkill, but looking to the future and wanting to learn about Kubernetes I will use it as the Orchestration layer. So to visualise the infra I made the following picture.
Most hosters provide a Load Balancer and a Storage service, so I won’t deploy those myself. That leaves me with getting Docker and Kubernetes to run. And as a next big step, creating a MySQL cluster. Not sure about the solution for that, Persona XtraDB, Group Replication, Single master etc…Gonna be looking into that as the next step.