When you move into the docker world, important realization of docker is that a docker image could be from a bare metal, single system is basically almost a bare metal all the way to a docker container, inside of a docker container, inside of a virtual machine or that has a virtual machine.
You can really scale and it's really ... You wouldn't have had with the virtual machines only, I don't think you would really have this micro-services. I know you didn't love that word. This idea that we can have a container that's really, really small.
When I develop each of the functions that cumulatively make up my application, instead of putting a bunch of those into one virtual machine, 'cause we got to pull them together 'cause virtual machines are clunky and has a lot of overhead. I can say one of these little tiny docker containers and say, "I just wanted to run this one function and it can be web callable. A bunch of those are going to make up my application."
It would put VM sprawl in the dust in a sense, but then we have ephemoral stuff at the same time. It's hard to approach from a traditional mindset to think about how it would be to operationalize it.
Rob Hirschfeld: You're going to have micro-service sprawl without a doubt. The funny thing about micro-services, if your service has to do a significant amount of work, it's not a micro-service anymore. You're going to end up needing to have a stateless micro-service front end for some data backend.
Art Fewell: That's why you're going to have it automatically scale out and bring out 10 ephemoral copies of the micro-service. Then you'll have 10 services running at like one cycle of CPU each lol ;)
Rob Hirschfeld: Now, you've just ... I love this term. Somebody was talking about heisenbugs at Facebook or Google or something like that which is basically bugs that only exist in the essence of this stateless scale environment. They show up, there's this weird coding thing and boom!
This is ... We're back to where complexity is. The thing that you just described requires somebody to develop architecturally for that purpose. That's five years out because it's going to take people time to develop for it.
I think that we're closer to being able to take more traditional services and then use the service brokers we have to then use DevOps automation to couple those together. I think that we don't have to do the full level of re-architecting a new application development to take advantage of containerized service discovery. I don't even think we need to containerize it.
Sign up for CIO Asia eNewsletters.