Recently, I have listened to the Docker webinars with Chad Metcaft, a Solutions Engineering Manager for Docker. Chad mentioned that the aim of Docker is to “support the core business, not to become one!” And this is what Cloud 66 believe in to. We provide full stack container management as a service in production to help developers save the time and focus on their product whilst we take care of the entire backend.
I decided to show how you can use containers to your advantage. So, I got in touch with Cloud 66s’ awesome customers and learned about their amazing projects! This week, let's kick off with Allegorithmic! And stay tuned for more posts coming up soon!
Are you a fan of 3D animation and gaming? Discover Dockers’ role in this environment.
What does Allegorithmic do?
Allegorithmic is a fantastic company with the groundbreaking innovation that has reinvented animation texturing. They are the developers of Substance, which provide a full 3D texture toolset including Substance Designer, Substance Painter and Substance B2M.
Allegorithmic has more than 50,000 3D artists using their application worldwide, mainly focused on gaming. About 80% of global games that used Substance in one way or another received AAA studios certification. Their technology is used in the curriculum at a number of universities, specialized schools and training centers.
Watch the end product of Substance - Texturing Reinvented.
I have spoken with Clement Jacob, a Software Engineer at Allegorithmic, who shared with me how the use of containers supports their production.
What did you use before Docker era?
Clement explained that before Docker, they used scripts for deployment and provisioning of machines. They tried Vagrant for the "developer side as close as the production side." That was “kind of heavy” and in fact what they wanted in the end was the developer side driving the final server side. Clement mentioned "we - as developers - know what the app needs, and we want to control what will be available in the production environment by ‘tailoring’ a custom Docker image.”
Also, they used to work with virtual environment, as most of their web applications were Python and Django (it's more webapp-dependent now and their latest service is in Node.JS and Express.JS). They used Git as a deployment tool, as that part worked quite well and it's still applicable with Docker.
For the server setup, Allegorithmic used to manually install the OS either on bare metal, or, in virtualized environment with KVM on Proxmox OS and then they installed the dependencies manually.
Clement expressed that Docker was everything they wanted, even though "the learning curve at that time was steep due to poor documentation/tutorials availability". Everybody wanted to use it, but nobody understood it well and the workflow had to be imagined from scratch.
Allegorithmic journey of using Docker
They adopted the Docker technology since its first release and they "never looked back". First, they deployed Docker apps using AWS, without any management interface. But, instead of focusing on the product (the real added value for Allegorithmic), Clement became a server administrator and had to create a whole suite of Python scripts to admin their Docker services and this started to become very difficult to maintain.
I was curious "How Allegorithmic came across Cloud 66?" Clement first used Cloud 66 while he was working on a non-Docker web stack. And when he got tired of AWS/EC2 for his last services, he thought of using Cloud 66 containers. Clement explained, "I decided to give it a go with Docker. I coupled Cloud66 and DigitalOcean as a backend (and Quay.io for our private registry) and I've never made any server admin anymore. Things just work! And the config is still easily customizable if needed. Good job, Cloud66 (and DigitalOcean BTW :D)!"
How do you use Docker?
There are two main reasons for Docker at Allegorithmic:
to connect services, which include the license service, crashdump collection service, and home made licensing analytics service.
to developed prototypes, for example, a web-based Substance rendering engine.
For the deployment side, they also use a private registry (Quay.io) where developers push new images to be used in production. All tests are executed on image build so they are pretty confident that the things will work in the end. Moreover, they always deploy to a staging server before releasing to production: docker helps here too!
"Cloud 66's Docker is an incredible tool, as it helps to deploy and maintain live services." It eases the development process and allows a new team member to easily start hacking and test new ideas.
What Cloud 66 features are you using?
Mainly the use of SSL and Managed DB backups, although they plan using load balancing very soon for the license server to get the max availability possible.
What is the next setup for Docker at Allegorithmic?
In an imaginary world without technical constraints, Docker might be a good fit for building desktop software. If it could handle hosting windows / os x software. It is already possible to build Windows software from a Docker image by cross compiling, but compilers are imposed by the 3rd parties so it's not doable easily. If this was possible Allegorithmic could simplify their CI infrastructure. In fact Clement has already managed (on a personal project) to build embedded ARM firmware from a Docker image. This way he has a repeatable development environment that is not easy to get right at first try!
I asked Clement, "what is the next project that he and his team are working on?" He replied, "We work on special things here, Docker implied, but cannot talk too much about it! :)". Sounds very intriguing and we are looking forward to the release!
Thank you Allegorithmic and Clement for finding the time to share your amazing story with me! I cannot wait to hear the update on your secret project!
Are you working on something cool? Or perhaps you want to start using Docker? Get in touch!