So you’ve been using Docker to package your apps in development and testing environments, and now you’re itching to extend this to production as well. You’ve had a talk with your boss about using Docker in production, but he didn’t feel your excitement. He has asked you to build a business case for it. All you can think about is how much you love Docker, and you don’t get why your boss is so apprehensive. You’re in a spot that many developers find themselves in now that Docker is gaining mainstream adoption. This post gives you some tactics to convince your boss why the team should make the move to Docker for production.
1.Check your motives
Before we start, a word of caution. You need to ask yourself the real reason why you want to use Docker in production. If it’s just because containers are hot right now, you’re starting with the wrong motive.
Your boss is cautious of new technology and suspects Docker could be just another fad. And this is with good reason. He doesn’t want to risk losing money for the business just to stay on the bleeding edge of technology.
2. Quantify the business value
Though Docker makes your life easier as a developer, your boss has bigger priorities, like the application’s stability for end users, and meeting business expectations. So, instead of starting with a generic “Let’s use Docker in production because it eliminates dependency issues,” try to emphasize a more specific benefit for your application. For example, you may be deploying your app on a cloud-based PaaS, and need high fault tolerance. You could quantify this by saying, “If we Dockerize our app in production, we can reduce downtime by 30%.” Then, your boss is much more likely to be all ears.
The key benefit will be different for each app. It could be automation, scalability, fault tolerance, monitoring, or continuous deployment. Whatever the benefit, you need to explain how Docker can solve this issue, and quantify it in terms that make sense to your boss.
3. Address the Ops-stacles
Docker makes it easy for you to package an app and hand it off to Ops to deploy. But for Ops, this could be a nightmare.
A survey by ClusterHQ found that the top three challenges to container deployment are persistent storage, networking, and security. These are major concerns for Ops teams who need to orchestrate multiple containers for each app, and monitor their performance. This causes many Ops folks to hate Docker.
You need to work with your Ops team to find solutions to these challenges. Rather than throwing a container over the wall to Ops, involve them in the creation of containers that are compliant. Work together to find the right toolset to orchestrate and monitor containers in production. This is where you need a container lifecycle management platform like Codefresh to simplify the adoption of containers.
Your boss is mindful of the Ops side of things, and you should be, too.
4. Start small
A typical rookie mistake is to Dockerize your entire app in one go. This is bound to fail because of all the complexities involved in running an app in production, and the fact that Docker is in a nascent stage. The best way to start is to containerize a few small services, and build up as you go.
You could start a pilot running just your app’s notifications service in Docker, for example. Be sure to benchmark existing performance so you have a baseline to compare the performance after Docker. Once your pilot is successful, you’ll find it easier to Dockerize additional services that make up your app. Your boss will find it easier to approve a pilot project than the entire app, and you can avoid costly errors in production. You may not reach complete Dockerization anytime soon, but keep your eye on the goal—to containerize just what you need.
5. Use your competitor
If your boss still doesn’t budge, the last resort you could use is to mention a competitor or similar organization that uses Docker in production. If a competitor is using it, they can innovate faster than you. Even if not immediately, your boss will take note of this, and may be more open to making the switch to Docker in the future.
Finally, if all this fails, you need to consider the drawbacks of not using Docker in production right away—and weigh its importance. Sometimes, it’s better to wait it out than risk straining the relationship with your boss. It’s only a matter of time before Docker becomes the norm for deploying apps in production. If your boss doesn’t see the value of Docker now, he will when it becomes widespread in production environments.