What Can’t Docker Be Used for?
When RingCentral Senior QA Engineer Andrey Smirnov attended a machine learning workshop, he was hoping to leave with some new insights surrounding the growing subset of AI.
Instead, his key observation was the absence of an open-source container engine such as Docker.
“The author of the workshop had sent instructions on how to prepare a working environment in advance,” Smirnov said. “But during the workshop, it was difficult for others to follow, and time was spent waiting for resources to be set up properly.”
That’s when it hit Smirnov.
“If Docker can simplify the situation, why has it not been done, and why are we not doing it everywhere?” Smirnov said.
From then on, Smirnov sought to implement Docker into every step of the software development cycle at RingCentral, to deploy code more quickly every day.
The impact has been difficult to quantify because the communications platform leans on Docker as a unified container for complex configurations, testing environments, application deployment and more.
“It is hard to pinpoint just one benefit of using Docker because it has changed every aspect of the development process,” Smirnov said.
How does Docker fit into your tech stack and how do you leverage it in your work?
During the last five years, Docker has changed the way we are developing, testing, deploying and operating software at RingCentral. It has become a unified container for whatever we want to build. Snapshots of virtual machines, package managers, binary distributions, complex configurations and more have all been replaced with a single Dockerfile. By leveraging Docker, everything from the way we test on different levels to mock dependencies to deploying testing environments has changed and positively affected our efficiency. Continuous integration servers do not need specialized snowflake-like agents anymore. Deployment of applications have dramatically increased in speed and Docker has opened a door to more advanced and stable software delivery solutions to ensure our customers are receiving the most reliable products.
Calling from the cloud
What is your favorite thing about Docker?
Simplicity. Docker has aggregated and wrapped several concepts in a clear API that allowed our developers to build and deliver software in a faster and more reliable way. The most striking moment in my practice was when I realized at the machine learning workshop just how much simplicity Docker was able to provide. After that moment, Docker has been instrumental in our work in providing simple and straightforward solutions that we leverage every single day.
It is hard to pinpoint just one benefit of using Docker because it has changed every aspect of the development process.”
What’s the biggest benefit or improvement your team has seen since adding Docker to your tech stack?
It is hard to pinpoint just one benefit of using Docker because it has changed every aspect of the development process. From my point of view, Docker is much more than simple technological changes. Docker gathers and unites best practices across the industry, making them the default way of operating. The Docker community is also able to spread and build different tools that have become a reliable ecosystem for many. We are putting our application binaries in Docker images, executing testing with Docker Compose and using other images as an environment for running different scripts and automation. Docker became an atomic distribution package that our teams trust and rely on, making it an instrumental benefit to our team.