DevOps working in containers on the cloud is all the rage now. That sounds great, but when you give engineers the chance to create on the fly, they can do so with abandon and no control, and that can create a mess for your IT department.
Avoid These Mistakes When Setting Up Containers on the Cloud
The first mistake is setting them up in an ad hoc manner. It is super easy for your team members to get into a mode of setting up containers for single application they are working on in DevOps as they go. It happens when one developer decides that they would use far fewer resources if inside a container than on a mainframe so they deploy right away to complete testing of the application. Before long, you have a host of independent, non-networked containers in your cloud. Just as it does with your local computer, unmanaged files clog up the system quickly. Unmanaged containers do the same. Have IT devise a company policy about them. It will save the company major resources overall.
Don't have too many of them. Since they are not networked, what happens when any of the applications develop a bug or the cloud itself does? How will you plan to network those that you keep up there? Sure the containers are great to use. They are far more efficient than using your entire system to do such a small operation, but who is going to upload a patch to that mess? That patch will take twice as long to upload without a proper network. If you have so many containers, you might as well not use them and just use a VM instead.
Don't try to split off a single application from your local legacy configuration just to run a container on the cloud. That is a disaster waiting to happen. There are too many components the application uses in your original configuration for it to work properly in the container. Instead, re-architect your local configuration first to separate out the applications and then put one or two up top.
Don't even consider deploying a container without employing some form of education about their use with the staff first. There are plenty of avenues you can take for that. You wouldn't give the keys to your Benz to your 10-year-old, so why employ such unknown technology with your staff?
The goal for your enterprise is auto scalability for your containers. The best way to set that up is to design your container orchestration first. Plan your cloud storage carefully beforehand. You will already need to network your container grid so that your IT department can effectively manage any software issues that come up over time. But beyond that, that container grid is no different than your local grid. It is going to break down over time. Gremlins occur on the cloud even more easily than on the ground due to the constant movement of software back and forth. You need a solid network, a limit to the number of containers that is well defined in the plan, and a well-planned storage for that network.
Don't jump on the container bandwagon before checking the cost structure of the configuration first. As noted above, its easy to play with software by creating new containers. But your IT department has to maintain all that cloud infrastructure. That costs money to your enterprise as someone or some team will have to be devoted to it and that was not originally planned. Plan the network and devise its size and scalability beforehand. You will save yourself a heap of trouble later.