I have had an idea that to share my perspective of what the infrastructure role will be after passing the AWS Solutions Architect - Professional exam. My intention is certainly not flaunting how the honor it is, instead, it is more about sharing the following thoughts in the cloud world specifically within these years.
Obviously, one of the common strategies in the cloud world is that to use the services offered by each provider instead of managing them, no matter the solutions you adopted are IaaS, PaaS, or SaaS. For this reason, a bunch of the infrastructure routines offloaded for instance;
Therefore, the next and expected question would be what the infrastructure role will be in the upcoming future? Before I dig into it, there is one thought in my mind that has not been changed as yet - we are still valuable indeed. Our values/contributions are just presented differently instead.
Typically, a full cloud environment takes place for most start-ups. The reason is quite easy to think - they do not have too many histories that need to be taken into account. Their culture is fresh and lightweight. Therefore, they do not really need a consolidated infrastructure team for designing the architecture, operating the deployments, and observing the availability of each service they launched. What they need is a DevOps team. The strategy is correct due to the following reasons;
If so, why the infrastructure roles are valuable nonetheless?
Apparently, most organizations have many histories/considerations that need to look after, hence they cannot move forward to the cloud world easily. Sometimes you want to go faster, but someone stops you due to something you need to bear in mind - those accumulated histories/considerations, over years than years.
However, the reality is that you cannot stop the trend of infrastructure modernization. Therefore, they have to move forward, no matter how many difficulties need to overcome. For this reason, our values/contributions are presented in an entirely different way.
This domain knowledge will not be gone easily due to it is still in use over the world nowadays.
Since you no longer act as an infrastructure owner, an infrastructure consumer instead, therefore, it is definitely not enough if you are still only familiar with what you have been good at. Unlike the on-premises infrastructure that has a precise ownership boundary, the cloud world is opposite - very blurry instead.
Here is an easy-to-see and clear case - launch an EC2 instance.
I am not even pointing out if this instance needs to have special permission to access other resources without the credentials (Security) - Instance Profile. Obviously, you have not faced this kind of composition in the on-premises world due to each space is managed by different owners.
Since you no longer act as an infrastructure owner, an infrastructure consumer instead, therefore, it is definitely not enough if you are still only familiar with what you have been good at. As a result, you need to think about how to make this next-generation operation as more efficiently as possible. Then you will be aware that the best way is to streamline it - automation. Every deployment has its own pipeline for either patch, fallback, or both, and without minimum or even zero human intervention. In the real world, you may not even aware that you have transited successfully. Therefore, do not be afraid to change your mindset due to you even do not know how excellent you will be.
As of today, we know Ansible, Python, and Terraform are very popular languages to streamline your routine jobs. However, do you really need to get involved in all of them? Not at all for sure. They are just tools for simplifying your routines. An well-automated framework does not mean that you have to get involved in those modern languages, instead, it is more about how do you leverage the toolset that you have been familiar with then streamlining several manual clicks and repetitions.
I am certainly proud that I am an infrastructure guy due to it is where I come from. However, the reality is that you cannot stop the world transition, therefore, you need to or even have to follow up with it. We do not know when will next divide come up so that what we can do is accept it positively.
Because of the digital transformation, we have seen that more and more organizations have refactored their old-school/isolated development and delivery silos to a more agile and flexible framework; that is the primary reason why the DevOps cycle is almost able to be seen everywhere. Intrinsically, the pillar of the DevOps cycle has two from my perspective;
As a result, that is why we deem the entire framework as a "cycle" due to everything always keeps running.
I am neither a developer nor DevOps and my expertise has not covered those spaces, either; however, it is a bit abstract without using an example/real case to elaborate the whole workflow. When turning to a modernized and automated workflow nowdays, all the processes are taken place in three environments - Dev, Stage, and Production. Let us dig into what they differ from each other by the following tables (concise summary).
Phase | Category | Task | Action | Fallback |
---|---|---|---|---|
Day 0 | CI / Dev | Code Build | Produce/revise the deliverables according to the collected feedback | |
Day 1 | CI / Dev | Unit Test | Verify the functionalities of the deliverables without interacting with any external ingredients | Return to the Code Build phase if any revision requires |
Day 1 | CI / Dev | Integration Test - Isolated | Interact the deliverables with the enclosed API requests | Return to the Code Build phase if any revision requires |
Day 2 | CD / Ops | Code Deploy | Provision the deliverables that fine-tuned in the Day 1 phase | Return to the Code Build phase if any revision requires |
Day 2 | CD / Ops | Status Check | Confirm health check of the deliverables that fine-tuned in the Day 1 phase | Return to the Code Build phase if any revision requires |
Phase | Category | Task | Action | Fallback |
---|---|---|---|---|
Day 0 | CI / Dev | Code Build | Revise the deliverables according to the collected feedback | |
Day 1 | CI / Dev | Integration Test - Full | Interact the deliverables with the full-feature APIs and databases | Return to the Code Build phase if any revision requires |
Day 2 | CD / Ops | Code Deploy | Provision the deliverables that fine-tuned in the Day 1 phase | Return to the Code Build phase if any revision requires |
Day 2 | CD / Ops | Status Check | Confirm health check of the deliverables that fine-tuned in the Day 1 phase | Return to the Code Build phase if any revision requires |
Phase | Category | Task | Action | Fallback |
---|---|---|---|---|
Day 2 | CD / Ops | Code Deploy | Provision the final/latest deliverables | |
Day 2 | CD / Ops | Function Check | Verify the functionalities of the final/latest deliverables | |
Day 2 | CD / Ops | Status Check | Confirm health check of the final/latest deliverables |
Published on 26th May 2021.