Last night, I had the opportunity to share our experience in using Docker for the last one year with learndot.com platform.
I began by telling a story on how it all began.
|Docker was depicted as the "Beast"; strong but gentleman. Learndot was depicted as the "Beauty"; beautiful, young and sweet LMS.|
Then, I started to share our principles in developing software and the importance of effecient deployment pipeline. I have shown our DevOps architecture to the audience on how we decompose the services and recompose them all back.
It is probably better to compare Docker Swarm with etcd by CoreOS for example, although they are not exactly the same. Docker Swarm is more low level tool to manage your Docker cluster via discovery service from Docker Hub, whereas Kubernetes is more full-fledged ecosystem to run your compute unit on the cloud on Google’s Omega paper best practices.
What is the recommended way to run Docker for Windows/Mac development machine?
How do we secure the internal services (like LDAP) from the internet access?
While typically you might be able to configure VPN access to LDAP, we simply do not expose it at all. Everything runs on local Docker network. Only the containers can see each other.
Now, the services is composed into a single host machine. What could be your strategy to move to multiple machine?
We have been evaluating and considering ECS as our main cloud computing strategy. But, we also think project like Kubernetes is really cool. We like ECS due to the security features and tight integration with AWS services, even though it’s proprietry. We like Kubernetes being open sources and really make sense and easy to use.