A question from a colleague– do I think everything will go containers? Our conversation kind of got lost in a conversation around devops and version control. But we had a good and healthy debate
To try and answer his question , my view is that Containers are a solution to two problems:
- It’s a business problem experienced by startups in silicon valley who need to iterate functionality quickly. With a small team they need to get something to market and then keep adding new functionality quickly. So it’s solving a business problem around small teams, speed to market and the ability to pivot based on a rapidly changing market requirement and competition (uber vs lyft for example). Containers are a way of supporting that microservices type architecture to facilitate a devops / minimum viable product / continuous integration approach. Other existing technologies don’t support that requirement as well as containers.
- It’s a technology problem experienced by guys who are using public cloud wherein the infrastructure is typically crap and unreliable. So the ability to quickly deploy lots of copies of your app enables you to mitigate that crap infrastructure. Application portability is a problem that legacy technology platforms don’t really answer very well (hard coded / embedded IP addresses say “hi”)
For those problems, containers are great. But that’s not every use case. Banks selling mortgages is a relatively static requirement, heavily regulated. The bank may take on more mortgages but they don’t have the need to iterate quickly. That requirement is to have an architecture that supports speed, resiliency and high data processing. Walmart might need to iterate quickly to get an app to market to differentiate against Target. But the core requirement to take payments for products in store and for the sale of product to be reflected in the stock replenishment system is a static requirement.
For the benefits they bring, they will bring other problems (integration into existing monitoring dashboards for performance, errors, etc is a massive ops issue that devs don’t consider for example). If an organization can see past wanted to use the latest shiny thing and can match an infrastructure + software solution to their actually need – I don’t see containers replacing everything.
But then maybe I’m an out of date old guy.