This post is going to do a couple things I don’t like to do. I am going to use myself as an example. I don’t mind sharing experiences or relaying what I care about. But, I find too much public self-reflection is vain and not much value to others.
But I don’t know how else to write this without referring to my own personal experience and approach I have taken, unplanned as it was. So I ask your forgiveness early in this post. I am nothing special and hold no special wisdom or natural ability over you. I may or may not be looking simply from a different perspective. And the only way any solution is solved, improved, or discovered is through approaching from different angles and/or dumb luck.
There is a complete change happening now in the way we look at technology. Instead of proving that point with a long diatribe of links, opinions, and examples I will illustrate this way.
10 years ago to setup 10,000 servers, connect them to a network, place an operating system, turn them on, and install applications on each, would have been a feat of both physical and logistical effort. It would have required teams of hardware experts, datacenter grunts, energy/cooling engineers, networking geeks, software snobs, and nodding technology managers. Even the mention of such a task would ring the bells above the heads of so many sales people, local airfare cost would jump 15% by demand alone.
Take this task with the same scope and apply it to the technology and emerging perspective that Cloud Computing has created. The approach changes because old rules are gone and new connection points exists between so many different pieces of the workflow. You can spin up 10,000 virtual servers in minutes using API’s, object based scripting, or numerous open source and commercial tools. You can use these same methods to connect networking, mount ISO’s with automated installs, and trigger package downloads to roll through automated application installs. And this entire process can be keyed with centralized metadata. Every virtual server when birthed can be tagged for its purpose in life. Every stage of the process can refer to this identity and become a key to every task. The key change is we are building an object-based thought process when we look at datacenter resources. Cloud Computing ultimately sees and demands what would have been a massive logistical effort with extremely limited applications. From the server to the application itself, we are moving into a time when the only limit to how far you can automated and optimize is your ability to think creatively.
Granted the above is a highly generic example. But I am not writing this to sell you on why Cloud Computing is going to change us all. Because I don’t have to. You will either lead or follow with this inevitable movement with different benefits to each. I am writing this to say that it is critical that you recognize that a change in the way we look at technology means a drastic need for individuals that are prepared for it. Or in a more concise way, cloud computing is going to change what makes you good at what you do.
In the 10 years ago example I talked about multiple roles, each of which needed strong rigid knowledge of their disciplines to manage their silo effectively. Each of these individuals would have dedicated multiple years of study followed by years of practical experience. They would be able to recite the compatibility matrix of their server blades, the BTU numbers for their floor units, exact wiring lengths, and have memorized complex application install procedures for a multitude of possible platforms. You were what you could manage. You were a server girl, a storage guy, or a developer each with their respective stereotypes.
But that is all going to change. When your switches are software-based with API’s that can be touched from a million possible codebases and they live on a cloud OS and stateless object-manageable servers; memorizing protocols and matrixes won’t cut it. When your applications are not only agnostic to the platform but aware of the infrastructure they are deployed on, staying out of the ‘infrastructure’ is counter-productive.
There is a movement called DevOps that I have found pretty fascinating. I had a really interesting experience in my last position that this reminds me of. Our new CIO attacked our poor process management and delivery with a new revolution focused on Agile methodologies as an approach to software development. This change was painful but pretty awesome to see. I was already starting to become a convert when the order came down that we were to start running our Infrastructure/Operations group as Agile also. I remember those in my team that balked at the idea. Why would a development designed process ever work for us? We are different!
I saw it differently. I saw how Agile inspired ownership and creativity in the development teams and I knew that would be a major victory in the Infra/Ops team. And I pulled it off. I wrote a new approach and implemented it against the grain dragging my own boss behind (who was a great guy BTW). And the result? Fresh air. People owned their work and had visibility. More importantly, because Infra/Ops were speaking the same language as Development we would constantly cross pollinate the teams. I would assign team members to a different team for a percentage of their time. They would go to their meeting and participate in their stand-ups. They would not only be exposed to a new perspective on the task at hand but also be able to answer questions immediately on Infra/Ops matters. This removed one of the biggest obstacles with classic makeup of information technology departments: lack of information.
This is why I like DevOps. It is basically Agile thinking around fostering communication and promoting ownership while focusing on merging two classically separate silos. What is more important is that this movement is evolving out of a necessity. Just like manufacturing had to change with new approaches like the Theory of Constraints and XP/Agile to solve a new expanding demand for feature and function from software; DevOps is arriving out of the strong need for infrastructure and operations to move towards a development perspective. I honestly think DevOps is no more a solid definition than Cloud Computing but they both signify a movement to change thinking.
And this is where I come back to you. I assume you are reading my technology blog as a person involved in some discipline within it. Cloud Computing is going to demand the same thing from Vendors, Consultants, Businesses, and you. Creativity.
You can’t look at things as silos and teams anymore. Everything is possible and those that lead will be the ones that see it. Memorizing a single codebase while shunning books on networking will limit you. Phrases like: “That’s not how we do it.” won’t fit anymore. Those deep in core infrastructure knowledge will have to load up PDFs on object-based programming to map their minds to a new way to think about a server. Or a network, or an application, or anything. The one caveat to creativity is you must always be curious.
It is important that you don’t look at this as a burden or a hill to climb. If anything it is a time to be excited about being able to do things in a new way. To be able to be creative in solving tedious tasks and more importantly to make something cool. Something Agile, XP, DevOps, and Cloud Computing all share is the need for Creativity. The ability to repeat a task or be a highly accurate library of specific knowledge is no longer paramount. It is your ability to think outside of the silo. Your ability to communicate with those of different knowledge. Your ability to find an answer rather than know an answer.
My whole life there has been one main thing I don’t like. I don’t like being put into a box. Tell me I am a network guy and I would write a helpdesk in PHP to prove you wrong. Tell me something can’t be done and every cell in my body wants to prove you wrong. I just happen to be born at the right time that my spastic and probably mentally unhealthy nature is paying off. The people I consider friends and respect most are the ones that challenge me when I too venture into “It can’t be done.”
Which is the point of why I wrote this post. Now is the time to cross the cube sets and get to know the developer across the hall. Now is time to pick up a book on Agile or Theory of Constraints. To take a class on storage design or IPv6. It is time to start a blog and write about what you have found. Now is the time to sit down and imagine something and then try to make it.
The movement to cloud computing, the movement to “* as a service” will require people that don’t live in well-designed boxes. It will need people with well-designed passion for creativity.