Learning Lessons, I learned (DevOps and Cloud Computing)
Two decade ago, knowing Unix and SQL was basic need for anyone who joined IT industry irrespective of their technology stack. In last few years DevOps and Cloud computing is considered as basic knowledge everyone should have. As companies increasingly looking for cost optimisation, automation and faster go to market approach. These are the two tech domain playing a big role in that. These are the key contributor for companies Digital Transformation.
Now the Question is how much one should know, the answer is - No limit of gaining knowledge. Learning anything has 4 phases.
1. Fundamental
2. Information
3. Specialist
4. Innovation.
It’s an individual choice based on how much someone want to learn. But having said so, learning “fundamental on both DevOps and Cloud Computing” is need of the hour.
DevOps: DevOps adoption require change in Organisation Culture, much beyond knowing DevOps Tools. In this topic we will only concentrate on DevOps tool chains and how to learn their usage. There are hundreds of tools in market to support adoption of DevOps, it’s difficult to know all the tools in depth. If you are not a DevOps architect /Devps engineer then how much you should learn it’s important to know. You should know “Fundamental of DevOps” tools available and usage of tools (At least one tool for each area). It’s a vast ocean, I am just naming few as per area.
·Planning:
Tools : JIRA , MS Project ,Gitlab , Version one, Azure board , pivotal tracker
Issue Tracking
Tools : JIRA, You Track, Zen desk.
Source control management
For Foundational tech , Asset control , limit transportation waste
Tools - Git , GitHub, Gitlab, Subversion ,SVN
Build and testing
o Build tools
For : Consistent Packaging , Automate an error prone activity ,Yields early quality signal
Tools : Maven/Gradle (JAVA) , msbuild (.net) , Sonatype (Build and managing package)
o Testing tools
For : Put focus on built-in quality , create confidence in deployed artifacts
Tools : jUnit , xUnit , Selenium (UI), Jasmin (Node.js and Java script), Cucumber (Infra)
Continuous Integration and Continuous deployment
o CI
For Fast feedback , reduce defect waste and waiting waste
Tools :Jenkins , Rundeck, CircleCI, Concourse, AWS CodePipeline , Azure Pipeline
o CD
For : Limit production inventory, automate complex pipeline .
Tools : AWS CodeDeploy , Spinnaker , OcTopus deploy ,Jenkins, Rundeck
Configuration management tools
For : Enforce consistency and threat infrastructure as code
Tools : Ansible ,Tarraform , Chef, Puppet ,
Monitoring and Logging tool .
For :Fast recovery , Responsiveness , Transparency , limited human involvement during incidents
Tools : Riverbed, ELK Stack ,Azure Monitor, Splunk
Communication and Knowledge sharing tools
Communication :
For : Connect Teams , Limit waiting waste , Improve communications
Tools : Email , Slack , MS teams ,
Knowledge Sharing
For :Reduce Knowledge Waste , Increase New-Hire productivity , limit repetitive mistake
Tools : GitHub Page, Confluence , Wiki
If you want to understand the fundamental, it’s better to have fair idea about at least one tool in each area and how it fits in the DevOps ecosystem.
Cloud Computing
Cloud computing is an extremely vast subject. There are models of cloud services eg. IaaS, PaaS, SaaS, FaaS etc... There are Service provider: market leaders like AWS, MS Azure, GCP, Oracle Cloud, Alibaba cloud and there are Private cloud provider also. This is an evolving area. Learning Cloud computing is also coming with Specialisation (Service Provider agnostic)
Application development with Cloud
Data/Big Data engineering with cloud
AI/ML with Cloud
Implementing DevOps with Cloud
IOT with cloud
Cloud Security
Etc...
For example, someone expert in Data engineering it will be good to have fundamentally strong in cloud and then get specialisation on “Data/Big Data engineering with cloud”
How to go ahead with gaining knowledge
If you are lucky enough to work on a cloud project / DevOps nothing can beat that but if not, gaining knowledge can’t be stopped here. You can chose any of the below options as per your need of learning.
MOOC Provider : There are MOOC and individual institutes taking lead on helping resources to upskill on DevOps and Cloud, they have small technical Courses/Serialisation/Learning paths .These are mostly prerecorded sessions (there are exceptions also) helpful for quickly getting insights about the technology.
EDX, Coursera, Pluralsight, Udemy are Edu companies pioneer in this field.
Education Platform: Like Simplilearn /Edureka/Jigsaw Academy/ Great learning/UpGrad etc. providing their own Master’s program (Online classes). Udacity provides very technical oriented Nanodegree program. These courses are very good, some taught by Industry experts.
It’s good to see now renowned education institutes collaborating with few Education Platform coming up with Proper formal Degrees (Post graduate program /Post Graduate Diploma) to enhance the fundamental of the technologies along with specialisation.
Now few universities started providing MS/M-tech in Cloud computing based on the growing demand of these necessary skills.
What I am trying to emphasise, enough material/Courses are available to sharpen skills in DevOps and Cloud computing, it’s based on you, what level of knowledge you want to acquire based on your role and motivation.
Consise and well articulated !!
Very well written.. 👌
Very well written Animesh 👍🏻
Nice one. Your last statement summarizes it all. With the widespread availability of materials and avenues for learning, it all boils down to answering some smart and simple questions. Why do you want to learn? What do you want to learn? How much energy and time you can devote?
#goodread Animesh!