How do you migrate to Docker? Which steps do you need to plan for when converting legacy apps or infrastructure to Docker containers? Keep reading for a quick guide to Docker migration.
When it comes to adopting Docker, your mileage will vary, of course. The nature of the legacy software that is being migrated to Docker will be different in one organization than it is in another. So will the type of Docker environment that you choose to implement; it could use any number of different orchestrators, registries, hosting environments and so on.
Still, there are some questions that apply to anyone who is planning a migration to Docker. Those questions include:
- Are you going to use Docker for production? For most people, the answer to this question is yes. But it’s possible that you only want to use Docker for development or testing. For these purposes, containers can help you to streamline internal processes. If you are using Docker for production, you’ll need to plan for a large-scale migration. If you’re only going to use containers for development or testing, then you may not need an entire Docker stack. So make sure you know the answer to this question before beginning your migration.
- Do your apps run on Linux or Windows? Docker can now support both Linux and Windows apps. But Docker on Windows still has some limitations, and you can’t simply move a Docker app for Windows to a Docker environment hosted on Linux or vice versa. This means that, for now, you should take extra care if you are planning to host Windows apps with Docker.
- Which hosting environment is best for you? Part of Docker’s value is that it can run in the cloud or on-premise. It can also run on virtual machines or on bare-metal servers. There are various benefits and trade-offs associated with these different options. For example, if you host Docker on a virtual machine, your Docker environment will be easily portable. But your containers won’t benefit from bare-metal access to physical hardware on the host.
- Will you refactor or rebuild legacy apps? Some legacy apps can be migrated to run inside Docker containers quite easily. They can simply be refactored. In other cases, however–such as if you have an app that was not designed to run as a set of microservices–you’ll need to rebuild the whole app in order to use Docker.
- How many containers do you need? Docker is very scalable. A production Docker environment could consist of a dozen containers or many thousands. In order to optimize resource usage, you don’t want to over- or under-provision your Docker environment. So think through this question carefully.
Are there other questions you ask before planning a migration to Docker? We’d love to hear your thoughts in the comments.