Bring Your Monolithic Applications Back From the Dead
We take a quick, high-level look at how containers can help breath some life back into monoliths by accelerating microservice development.
Join the DZone community and get the full member experience.Join For Free
It was the early 2000’s, your .NET application was the best thing to hit the streets since the IBOOK G3 came out. Let’s just say that your application was so money, it didn’t even know it. It had its shiny new (insert any sweet .NET functionality here) and all of the Java-based applications were jealous of it. Those were the days…
Now turn to today. You feel like John Ritter and your application is the problem child from hell. It’s stuck in the past; it won’t allow you to update it. You’re constantly supporting all of its bad consumption habits and it won’t play nice with your other applications.
Where do you turn for help when you feel like your only option is to send your application “to a nice farm, where it can live out its days and play with other applications”?
Containers you say!?
Yes, containers. Containers are like boarding school for your applications. Send them away for a few weeks/months and they’ll come back well behaved and buttoned up.
But What Are Containers?
A container is a unit of software which packages up all the code, along with its dependencies, so that it can run quickly, independently, and reliably in any computing environment. Containers can be used to run Windows-based applications (even your legacy problem child).
The software inside of a container is isolated from the environment, allowing it to perform consistently, regardless of what environment it is running in.
Ok, So You Fixed Alice. What About my Other “Problem Children”? I Have 20 of Them
Starting down a microservices path requires a minimum level of operational readiness. Yes, this is a team project, others will have to pitch in to make this whole thing work. It requires building new kinds of continuous delivery pipelines to independently build, test, and deploy executable services, and the ability to secure, debug and monitor a distributed architecture. Operational readiness maturity is required whether we are building greenfield services or decomposing an existing system.
Containerization Is the Future
Containers are becoming the go-to option for developing and deploying your applications due to their portability, light-weight, and effective use of resources. If you plan on developing larger and more complex applications, you’ll most likely want to start with a container readiness audit.
Opinions expressed by DZone contributors are their own.