Skip to content
Securely manage Docker, Swarm, Kubernetes and Podman clusters in the cloud, on-premise, and in the data center.
Secure app deployment and device management for your Industrial IoT, IoT and Edge devices.
Let Portainer's Managed Platform Services accelerate your containerization journey.
Manage all your Docker, Swarm, Kubernetes and Podman clusters from a single secure interface.
Portainer empowers Platform Engineering teams to deliver efficient, user-centric services.
Empower your business by adopting containerization the easy way with Portainer.
Deploy to and manage your fleet of remote devices centrally and securely.
Onboard, manage and deploy workloads across hundreds of devices securely with Portainer.
Deployment scenarios
Partner Solutions
crawl-walk-run
Neil Cresswell, CEOJanuary 17, 20233 min read

Why You Should Crawl, Walk, Run When Adopting Containerization and Migrating Legacy Applications to Containers

The world of containerization is rapidly growing, and many organizations are eager to adopt this technology to improve the efficiency and scalability of their applications.

For many people, the term Kubernetes is now synonymous with containers, and when looking to adopt containers, they automatically think this means Kubernetes from day 0. However, before diving headfirst into containerization and orchestration with Kubernetes, it's important to understand that this transition should not be taken lightly.

Adopting a "crawl, walk, run" approach can ensure a smooth and successful transition for your organization.

How to adopt content strategy? Crawl, walk, then run - Content Company,  Inc. - Digital & Content Strategy Consulting for Content-Rich Websites -  Hilary Marsh

 

One of the main reasons for this is that containerization and Kubernetes are complex systems that require a deep understanding of how they work. Jumping straight into Kubernetes without a proper understanding of containerization, and its specific differences from Virtual Machines can lead to confusion, frustration, and ultimately, failure. Furthermore, migrating legacy applications to containers requires a different approach than developing new applications from scratch.

The first step in the process is to "crawl." This involves getting familiar with basic containerization concepts and technologies such as Docker. Start by containerizing a simple application and running it on a single host. Destroy the container, redeploy it, update it, learn how these standard operations work, and how they impact your application. Understand what is persisted and what isn't, what changes, and what doesn't. So many mistakes are made from flawed assumptions around container persistence (or more accurately, lack thereof). Remember, a container is NOT a VM, so it doesn't behave like one.

This experimentation will give you a basic understanding of how containers work and how they can be used to ship, deploy and run applications. This step also includes understanding the impact of containerization on your existing infrastructure, such as networking, security, monitoring, etc.

This is a good point to get your hands on Portainer, to help you learn what's possible (we visually show you what is possible with Kubernetes or Docker, without you first needing to learn what's possible).

Once you have a good understanding of containerization, it's time to "walk." This involves deploying multiple containers on a single host and learning how to manage and orchestrate them as a singular cohesive unit (a stack in Docker terms). This can be done using tools such as Docker Compose or Kubernetes Minikube. This step also includes understanding the impact of distributed containers on your existing applications. For example, distributing your application across multiple containers can introduce cross-service latency, and this can negatively impact the performance of your applications.

This step also includes experimenting with different ways of migrating your legacy applications to containers, monitoring them, and managing them. Existing tools purchased for a VM-based platform likely will not be effective in the highly dynamic world of containers.

Finally, once you have a solid understanding of containerization and orchestration, it's time to "run" and move on to more advanced systems like Kubernetes. This involves deploying and managing multiple containers across multiple hosts, and learning how to handle scaling, updates, and rollbacks. Likely this will also include evaluating tools providing GitOps, observability, logging etc.

Here elements like management of the orchestrator also come into play, as you now need to actively deploy the orchestration layer (Kubernetes), update it, secure it, and grant access to it (think user access control and RBAC).

It's important to note that the process of containerization and Kubernetes adoption is never truly complete. It's a continuous process of learning and improvement. Therefore, it's essential to monitor your containerized applications and evaluate their performance, and make adjustments as necessary.

In summary, the adoption of containerization and Kubernetes should not be taken lightly, especially when migrating legacy applications. The "crawl, walk, run" approach is a proven method for gradually gaining experience and understanding of containerization before moving on to more advanced systems. By taking the time to properly understand and adopt containerization, organizations can ensure a smooth transition and successful implementation of these powerful technologies. Furthermore, migrating legacy applications requires a different approach and a good understanding of the impact of containerization on your existing infrastructure and microservices architecture."

Hope this helps to understand why you need to tread slowly and carefully. 

Try Portainer with 3 Nodes Free

If you're ready to get started with Portainer Business, 3 nodes free is a great place to begin. If you'd prefer to get in touch with us, we'd love to hear from you!

 

Neil

avatar

Neil Cresswell, CEO

Neil brings more than twenty years’ experience in advanced technology including virtualization, storage and containerization.

COMMENTS

Related articles