I don’t usually spend much time talking about enterprise infrastructure (what I do for a day job) on this blog, but I spent part of yesterday getting caught up on my enterprise cloud computing reading, and had an observation I wanted to pass along. Afterall, any internet software company has to think about computing resources some (even if it’s not their differentiator).
I think the concept of “Infrastructure as Code” is an extremely powerful concept and it’s one that’s likely to change who the customer is in cloud computing. It will take the drive to cloud computing from the CTO (the person in charge of infrastructure) to the CIO (the person in charge of the application development). Essentially, “Infrastructure as Code” means leveraging cloud APIs from within the custom-developed software so that the software itself requests new computing resources when necessary.
For now, the CTO is in charge of the cloud computing initiatives at most companies. The CTO receives the application code from the CIO and his developers and look it as a black box. Without looking at the code he or she must run it as fast, securely, reliably and cheaply as possible on whatever resources exist in the datacenter or the cloud. Even with the huge moves to cloud computing in SaaS (running full software applications that are hosted on the internet), most company’s custom-developed applications only moved as far as either virtualized hardware or Infrastructure as a Service servers. This means that if you’re Amazon, or any of the other major cloud providers, you spent most of your time selling to CTOs who were buying your machines instead of buying new hardware.
With “Infrastructure as Code” the game has changed. CIOs are starting to realize that one of the advantages to cloud computing is the opportunity to get resources instantaneously through an automated request. That request can come from the application itself! This breaks down the “black box” separation between applications and infrastructure. It means that CIOs (and their automated tools) don’t have to guess when the application needs more servers or CPU or memory or storage. It also means that Amazon isn’t selling to the CTO anymore. Any application that leverages “Infrastructure as Code” can effectively bypass the CTO and deploy directly in whatever cloud it’s programmed to communicate with. This means that the cloud computing industry needs to start selling to the CIO.
This transition won’t be an overnight process, but it’ll be an interesting one to keep an eye on over the next 10 to 20 years. It would not surprise me at all if in 10 years most of the good computer science schools are churning out programmers who primarily view infrastructure as something that their code should interact with directly. At that point, we’ll really start to see the tables shift.