Cloud, DevOps, Programming, Relationship, Learning Path, Resources & Cheatsheets
Sandip Das
Senior Cloud & DevOps Engineer | Kubernetes Expert | SRE, Platform Engineering, MLOps & AIOps Practioner | AWS Container Hero | Teacher | Mentor
Excellent Cloud, DevOps, Programming Learning Path and Resources in one place
Before going through all the learning paths and resources, lets first understand what exactly is Cloud, DevOps & Programming and why all three are inseparable and work in harmony
CLOUD:
Cloud or also known as Cloud Computing is the delivery of computing services such as servers, storage, databases, networking, software, analytics, and intelligence—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale. We typically pay only for cloud services that we use, helping lower our operating costs, run our infrastructure more efficiently and scale as our business needs change.
In simple terms, it's just someone else's computing resources and services we use, on pay-as-you-go or Cloud Service Provider's given payment options.
DEVOPS:
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity, evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.
In simple terms, DevOps i.e. combination of two words "Dev" and "Ops" which represents the Development Team and Operations Team, DevOps makes sure the communication and collaboration between these teams improve in order to make development, testing and release faster and integrate whatever tool required to do so.
PROGRAMMING:
Programming is the?process of creating a set of instructions that tell a computer how to perform a task. Programming can be done using a variety of computer programming languages, such as JavaScript, Python, Go, Java and C++.
Now, let's understand the relationship between each other:
We use a Programming language to program and develop the application which consists of all the business logic to get things done, now while developing we usually do the development in our own personal computers/ laptops, but usually, the goal is to make the developed application available and accessible to everyone on the internet, now just guess if we do host the application from local and share your public IP or point a domain to your pubic IP, all going well, the application is accessible to everyone via domain/internet, now suddenly there is some issue with your local internet service provider then no one will be able to access your application, similarly, for example, if there is a power fault in your local area and thee will be no internet for next 1-3 days, then your application will be not accessible to anyone.
Here comes the savior "Cloud", Instead of hosting applications locally, we can and should host the application on the cloud and make sure the application is scalable and make cloud infrastructure scaleable accordingly along with fault-tolerant and high availability best practices within the budget.
Manually deploying the coding/programming changes in the cloud for one server is simple, but what if there are 100s or 1000s or more servers ??, now can you deploy changes manually? no! right? and also you have to keep tracking of who is making what changes and what will be the actual outcome of the changes, that need to be tested well, both automatically after that one human check if it's a critical application. There has to be a well-defined process for this. Operations teams must know what developers are doing and what changes need to be deployed, development teams should know if any issue in the cloud hosting or if there is any feedback the operations team has to redirect feedback to the dev team and so on...
Here comes the savior "DevOps", if it's implemented well, there will be smooth communication between the Development team and Operations team, each team knows what other teams doing and what they are going to do, Development ==> Deployment ==> Feedback, there is a proper pipeline defined. Codes getting pushed are sources controlled and version managed so that we know who is making what changes and what's the result of the change, via automated test and build process i.e. a proper CI/CD in place, if all good, changes will be moved to the staging server, then either after the manual check or automated process as denied the changes will be moved to the production environment. If any feedback needs to be passed to the development team from the operations team or vice-versa, there will be the use of proper tools which will keep track of the communications and documents/logs, etc.
Now you got the full view right?
We Develop applications using "Programming" languages, we host the application in "Cloud", we use "DevOps" to make sure smooth development, testing, deployment, feedback are in place, and they're proper communication between different teams.
Now based on your interest, feel free to follow the learning paths and use the below resources to learn those skills:
Cloud
AWS Learning Resources:
Free (Certification courses are also a good way to learn):
(By Andrew)
(By Mike)
(By Edureka)
(By Intellipaat)
Paid:
(Udemy: Stephane Maarek)
领英推荐
Azure:
Free:
Paid:
(Udemy)
GCP:
Free:
Paid:
Google Cloud Platform MasterClass - All 4 GCP Certification (By LevelUp360)
DevOps & Programming:
Read this article (DevOps Roadmap & Resources ) to know the DevOps learning path as well as resources to learn DevOps Skills and Programming languages.
For other roadmaps check: https://roadmap.sh/
Cheatsheets:
Any kind of coding, programming, DevOps cheatsheet you will find here: https://cheatography.com/
Feel free to suggest resources you find best and could be useful for other, I will make sure to add them in the article for others!
Also, do like this article and share, this will be surely useful for them.
About the Author:
Sandip Das works as a Sr. Cloud Solutions Architect & DevOps Engineer for multiple tech product companies/start-ups, also holding the title of "AWS Container Hero ".
He is always in "keep on learning" mode, enjoys sharing knowledge with others, and currently holds 6 AWS Certifications. Sandip finds blogging as a great way to share knowledge: he writes articles on?Linkedin ?about Cloud, DevOps, Programming, and more. He also creates video tutorials on his?YouTube channel .
Immediately Available
2 年How to decide which cloud provide certification will be most optimum and beneficial?
Quality Analyst at DIGIT SECURE INDIA PRIVATE LIMITED
2 年Good explanation on Dev and Cloud DevOps Sandip Das
Cloud Security Architect | Pre Sales Architect | Cloud Solution Architect | Infrastructure Solution Architect | Public & Private Cloud | DC Migration | Infrastructure Modernization | DR I CSPM I CWPP I ZTNA I DevSecOps
2 年Sandip this is very helpful and useful... ??
Systems Architect | Cloud Architect | Solutions Architect | Technical Program Management | Veteran
2 年Sandip thanks for sharing! This is very helpful for someone who is navigating the gauntlet of vocabulary and technology in the expansive world of cloud tech