Cloud-Organization aka IT-as-Code

Imagine 💡

  • Imagine you could copy your entire IT organization into a stick memory.
  • Imagine you could publish your entire IT department (hardware and software), from scratch, with just a single click and in less than an hour.
  • Imagine you would lose zero information when a senior IT manager leaves.
  • Imagine you would exactly know how much each department’s cost is at any specific moment.
  • Imagine you could move all assets (hardware and software) from one department to another with a single click and in a few seconds.
  • Imagine you could communicate what a department head’s responsibility and ownership are by giving him ownership to some specific code in GIT.

Don’t Image Anymore 🙂

In what you will read and see in the Cloud Org blog series all the above imaginations come true. I am proposing a methodology in building and running the IT organizations that will forever change how IT organizations are run.

In order to make it more interesting to read and tangible to grasp I combine the theory with a story of a fictional startup that has a vision to build a city in the sky. I show how my theory expands as this startup expands into a global enterprise.

And guess what? this is not just a theory! As I move along I will introduce tools built by me that realizes what I preach. In fact, I implement my fictional startup in Azure as we go along.

My Vision

Coming from a system and engineering background, I have always been looking at how to systematically run the IT department of the largest enterprises in the world. Public clouds have made it possible to systematically run an IT department at any size by allocating resources via code and defining governance in an exact and tangible manner. These two adjective are of ultimate importance. I am going to briefly talk about each in this blog but before doing so I am going to state my vision around writing these series of the cloud-organization blogs.

If in the past, IT department’s assets the software and the hardware were treated as different types of resources and were managed separately, in the cloud world, they have converged into the same type of resource. These days allocating a set of servers or cluster of databases is not any different than developing a set of enterprise applications. We can use Infrastructure-as-Code (IAC) to define the infrastructure which also include all the security rules and polices also defined as code aka Security-as-Code (SAC). IAC, SAC, and applications (I call the latter Application-as-Code or AAC to be consistent and avoid confusion from now on) are all kept in a code repository (GitHub for example), built and tested using the continuous integration (CI) pipeline, and deployed to various environments (DEV, QA, PROD) using the continuous deployment (CD) pipeline. The pipeline itself is stored as YAML or json code so called Pipeline-as-Code (PAC). A modern IT organization treats all of its assets as code. This new way of conceiving IT is revolutionary and makes administration tasks like business continuity and disaster recovery (BCDR) as simple as deploying the latest version of an application to the production.

I can now specify my vision:

  1. To code the entire IT department (I call this IT as Code or ITAC) and
  2. To specify hierarchies of IT staff each in charge of architecting, developing, maintaining, and releasing a specific level of the ITAC.

Based on this vision, the CTO role is specifically defined as setting up the governance which is to set who is in charge of what portion of ITAC. This definition is exact since all responsibilities of a given head of unit is coded (I call this Unit-as-Code or UAC) and is tangible since when UAC is released it produces hardware and software assets that are managed and owned by the unit. Management is also precisely and consistently defined based on best IT processes like agile or continuous software delivery. This way we can say head of each unit is in fact the delivery manager of his or her UAC.

How the entire ITAC is split among various managers and how efforts among managers are coordinated is what I will try to think and write about in these series of blogs.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s