What are Containers?
ChatGPT - Just like shipping containers are standardized, self-contained, and can be easily loaded and unloaded from ships, trains, and trucks, container technology allows developers to package applications in a standardized, portable, and isolated way. This means that applications can be easily deployed and run on any machine that supports the container technology, without worrying about the underlying hardware or operating system.
As a PM you often hear container, docker or kubernetes (k8s) when engineers are talking about local development, deployment, orchestration yada yada. Have you ever felt like things are going over your head because you are trying to process these technical terms while also thinking about prioritization, upcoming product review, followup with the DS team? Trust me we have all been there.
The intent of this stack is to simplify and make you understand technology with a simple analogy. Lets get started!
What is Docker?
Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code.
Developing apps today requires so much more than writing code. Multiple languages, frameworks, architectures, and discontinuous interfaces between tools for each lifecycle stage creates enormous complexity. Docker simplifies and accelerates your workflow, while giving developers the freedom to innovate with their choice of tools, application stacks, and deployment environments for each project.
Docker is so popular is almost synonymous with containers. Don’t take my word for it, Here is a breakdown of the current marketshare.
Think of the times when you install files that you download for your MAC or PC. you download a package file (.pkg) or a disk image file (.img). You mount the file and run it. At the end you have an application running on your computer. Now imagine you are the team building these images. You would need to build separate images for Windows, Mac, Ubuntu, Fedora, Redhat and whatnot. It quickly escalates to a highly complex setup. Now think of a way where you build one version that can run on any machine. Containers make that possible. It enables running an application irrespective of the underlying OS and Hardware.
Imagine instead of zoom or vlc player, you want to install a simple MySQL Database to play around. Instead of following all the instructions to download and install, all you have to do is pull a docker image from the docker hub, irrespective of if you are running windows, mac or whatever, you are good to go with a simple pull.
Now extend that to one of your applications that your team builds and deploys on a daily basis. Think of all the resources, components, dependencies that are needed for a successful build and deploy. You can’t imagine an efficient way of accomplishing that without containers.
Why do we need them?
Portability - Containers are portable across different operating systems and hardware platforms. This makes it easy to deploy applications to different environments, such as development, staging, and production.
Consistency - Containers are consistent in their environment, which means that applications will run the same way regardless of where they are deployed. This can help to improve reliability and reduce troubleshooting time.
Efficiency - Containers use fewer resources than virtual machines, which can lead to improved performance and cost savings.
Agility - Containers can be quickly and easily created, deployed, and scaled. This can help to accelerate the development and delivery of applications.
Security - Containers can be used to isolate applications from each other, which can help to improve security.
Conclusion
Container technology is a powerful tool that has changed the way we build and deploy applications at scale. By understanding the basics of containers, platform product managers can better communicate with engineers and make more informed decisions about how to build and deploy their products at scale.
Next-up
serverless apps
Resources
https://www.docker.com
https://scoutapm.com/blog/how-containerized-applications-work
https://6sense.com/tech/containerization/docker-market-share#:~:text=Docker%20has%20market%20share%20of,Mesos%20with%201.14%25%20market%20share.