This blog post showcases the use of Go, Rails, Docker and Cloud 66 as infrastructure set up in a customer case study.
Golang is a young, open source programming language, created by Google. Go, allows developers to create simple and efficient software and web applications in a quick way, without worrying about dependency management.
Jacob Jackson wrote a chapter in the Docker and Container Ecosystem (TheNewStack), about how Golang supports Docker and containers. Jacob explained that the magic of Go gives Docker power, flexibility and simplicity, where the "developers can build their applications from within the container itself. And they don’t even need to have Go on their own computers."
Taking into account Golangs' importance in the Docker I have spoken with one of Cloud 66 customers, Ed Gonzalez, who is a Managing Director at Ardan Labs. Ed shares his experience of using Docker in development, qa and in production.
Ardan Labs Background
Ardan Labs offer web and mobile technology. Their success is based on the perfect combination of usability, design and marketing, for the main aspect of the software development for large and small businesses.
Ardan Labs ensure their clients that the job will be done right first time; by balancing current technologies, best practices, as well as over 60 years of experience.
They have a lot of experience in building software across all of the industries, including Healthcare, Mortgage, CIM (Contact Interaction Management), Real Estate, Insurance, Finance, Retail and Gaming.
Let's hear from Ed about how containers power Ardan Labs services.
What is your infrastructure set up and what part of it is Docker?
The infrastructure varies, based on the project that Ardan Labs is working on. They are big users of Golang and, to a lesser extent, a rails shop. They work on a lot of different projects and deploy to several different cloud providers based on the actual project requirements. They are using Cloud 66 for one of their internal projects. The infrastructure for that project is a rails and mobile app that talk to Golang API. The API then talks to a MongoDB backend. Both the rails app and the Go api run as containers. Ardan Labs CI server actually builds the container image, checks it into the repo and then uses a web hook to deploy their application via the Cloud 66 platform.
How does Docker support your business?
Using Dockers allows Ardan Labs to run their application anywhere Docker runs. "As long as you can run a docker image, you can run our application." In addition, they have the web app and api set up as separate containers, which allows them to easily scale out part of the application.
How difficult is it to use Docker in production?
"Its not difficult to use, however, it is difficult to get right. Docker is still a young technology, so there are still issues around security that are being addressed."
What Cloud 66 features are you using?
"Since we are a small shop, a lot of us wear multiple hats. We have to handle setting up multiple environments (dev, staging, production) and configuring deployment between environments, etc. Cloud66 actually assists us in a lot of different ways. Some of the features that interest us are being able to deploy a server in multiple cloud environments. We use AWS, Linode and to some extent Digital Ocean. Being able to spin up, configure and lock down a server with a couple of clicks helps us be nimble and efficient in our dev ops related tasks. The ability to scale out our application under load, via a couple clicks, is another extremely helpful feature. The web admin helps abstract a lot of the manual tasks we would have to do by logging in to every machine or scripting it out. One of my favorite features is that I can log in to a running container via the CLI with 1 command. I have had troubleshoot issues with containers and this feature has really helped out quite a bit."
What are your future plans to use Docker?
Ardan Labs use and plan to use Docker wherever they can and always internally. However, they have some customers who don’t want them to use Docker for their applications. One instance where Ardan Labs is not using docker, is for disk I/O intense applications such as a database. They feel that there is still some overhead for using those type of applications via Docker.
We are extremely happy to work with the awesome folks at Ardan Labs! I would like to thank Ed for finding the time in his super busy schedule to chat about Docker use with us. It was a pleasure to find out more about Ardan Labs' fabulous product and services!