DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. Will Software Containers Solve Everything?

Will Software Containers Solve Everything?

Containers are a leap forward in architecture, but it's not right for everything. Legacy apps still need special consideration, and adoption could involve a fresh start.

Ron Gidron user avatar by
Ron Gidron
·
Mar. 28, 17 · Opinion
Like (6)
Save
Tweet
Share
5.47K Views

Join the DZone community and get the full member experience.

Join For Free

Software containers are in vogue and Docker is all the rage. It will revolutionize the way we work. It will solve world hunger. Well not quite, but given all the hype you could be forgiven for thinking this. The technology is not even particularly new — it has existed in various forms before, as far back as mainframes. However, the idea of separate workloads that are managed individually is relatively new in Linux, Unix, and Windows.

Reasons Why People Think Containers Will Solve Everything

Containers are not just the natural evolution of virtualization, and they are much more than lightweight virtual machines. The architectures of Google, Facebook, and most other leading web-scale companies have all been built around this capability, so it is not hard to see why people are looking at this and reaching the conclusion containers are an easy solution for all of software’s problems.

When an application is architected as container-based or built on a container platform such as Docker or Kubernetes, its components become extremely portable and can be dynamically moved from one machine to another. Furthermore, dynamic scaling – more computer power when you need it and less when you don’t — is “built-in” and is a major step forward. Updating deployment processes, application maintenance, and operations processes are all simplified and easier to work with when an application is containerized.

In comparison to virtual machines, containers are extremely lightweight, and you could run roughly 17 containers on the same hardware required for just one or two virtual machines. If, for instance, you have a container that’s running a print service and you want to scale it up to service more requests, it is extremely quick and straightforward; just a single command line and the new process is ready to take on workloads and all the wiring (disk/network, etc.) is already done. By contrast, a virtual machine requires a longer setup time. Each one runs an operating system of its own and needs to be configured for storage and networking, before an application can even be installed on it. It’s easy to see why containers are so appealing to so many.

Reasons Why Containers Won’t Solve Everything

Here is the first thing you need to know about containers: You can’t just take your existing applications, put them in a container and get all these wonderful benefits. It simply isn’t possible to take large legacy apps and make them portable at the drop of a hat. This is a somewhat naïve view often initially held by certain enterprises before they get a deeper look at the technology. Don’t think that you can always easily containerize all your applications. If you don’t redesign the architecture of your applications, the effects of containerization will be at best restricted, and at worst poorer than your existing capabilities. The fact is containerization is an application architecture in and of itself. If your applications aren’t architected for containers, you are going to have to rebuild/rearchitect them, sometimes from scratch.

The best advice I can give is that you need to look at your application portfolio as you are modernizing it, and as part of your digital transformation, consider what the containers comprise as they enter the ecosystem. It isn’t as simple as just taking an Oracle E-Business application and sticking it onto a container. It would still be an old app with a lot of complex processes, dependencies and scalability bottlenecks. For example, auto-scaling won’t work and deployment is still going to require the same complexity it always did. Ultimately, if you just think of, or treat, containers as VMs that’s what you’ll get and that’s nothing new!

If you want to reap the rewards, you are going to have to rearchitect and rewrite the applications. Despite the extensive workload and man-hours, it be may be worth the effort and cost because some modern-day requirements around agility, scalability and omni-channel delivery can only be met using this architecture. But you will need to design a completely new architecture for your application, address security deployment and build the teams to support it.

Enterprises are right to be looking at containerization and a lot of new development is going into it. However, if you are thinking about your entire ecosystem then break it down and analyze it on an application-by-application perspective, and build a roadmap which is in line with your digital transformation goals and business priorities. In each instance ask, would the application fit a redesign into container architecture and would that work? What are the benefits I will get from this?

So What Are We Trying to Say?

Containers are great and a lot of the hype is justified, especially given the advancements of container technology like Docker, Kubernetes, and others which make it so much more approachable to enterprises. Containers are also the most natural way to develop cloud-based applications.

However, the truth is containerization is no panacea, and there is probably going to be a world of containers and non-containers side by side for the foreseeable future. Therefore, you want to orchestrate a toolchain that includes them, but not at the expense of everything else.  It is also very important to remember that since containers are not about to replace all of our other existing infrastructure and architecture anytime soon, they are ultimately yet another layer that needs to be managed, integrated and maintained within the IT toolbox.

Kubernetes Docker (software) application Software

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • GitLab vs Jenkins: Which Is the Best CI/CD Tool?
  • The Power of Zero-Knowledge Proofs: Exploring the New ConsenSys zkEVM
  • Key Elements of Site Reliability Engineering (SRE)
  • DevOps vs Agile: Which Approach Will Win the Battle for Efficiency?

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: