From 92ec666d3bf64bff288fcfb4f8b084de1bf3df93 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Tue, 12 Nov 2024 15:28:46 -0700 Subject: [PATCH] Add related guides to devops guides --- src/data/guides/devops-automation.md | 9 +++ src/data/guides/devops-career-path.md | 9 +++ src/data/guides/devops-lifecycle.md | 9 +++ src/data/guides/devops-principles.md | 9 +++ src/data/guides/devops-shift-left-testing.md | 9 +++ src/data/guides/devops-skills.md | 9 +++ src/data/guides/devops-vs-full-stack.md | 9 +++ .../guides/how-to-become-devops-engineer.md | 64 ++++++++++++------- 8 files changed, 104 insertions(+), 23 deletions(-) diff --git a/src/data/guides/devops-automation.md b/src/data/guides/devops-automation.md index eda03b946..53b38a7b9 100644 --- a/src/data/guides/devops-automation.md +++ b/src/data/guides/devops-automation.md @@ -7,6 +7,15 @@ seo: title: 'What is DevOps Automation? 8 Best Practices & Advice' description: 'Streamline your DevOps pipeline! Explore what DevOps automation is and the 8 best practices for seamless delivery.' ogImageUrl: 'https://assets.roadmap.sh/guest/what-is-devops-automation-03k11.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' isNew: true type: 'textual' date: 2024-11-05 diff --git a/src/data/guides/devops-career-path.md b/src/data/guides/devops-career-path.md index 30a75b476..007843d4b 100644 --- a/src/data/guides/devops-career-path.md +++ b/src/data/guides/devops-career-path.md @@ -7,6 +7,15 @@ seo: title: 'Is DevOps engineering a good career path in @currentYear@?' description: 'Learn why a DevOps career path is a smart choice in 2024. Get insights into demand, growth, and earning potential in DevOps.' ogImageUrl: 'https://assets.roadmap.sh/guest/devops-engineer-career-path-2h4r7.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-08-20 diff --git a/src/data/guides/devops-lifecycle.md b/src/data/guides/devops-lifecycle.md index 77fc58d88..7dfc87638 100644 --- a/src/data/guides/devops-lifecycle.md +++ b/src/data/guides/devops-lifecycle.md @@ -7,6 +7,15 @@ seo: title: 'What Are the 7 Key Phases of the DevOps Lifecycle?' description: 'Master the DevOps lifecycle by exploring its 7 phases, designed to enhance collaboration, streamline processes, and deliver software with agility.' ogImageUrl: 'https://assets.roadmap.sh/guest/key-phases-of-devops-lifecycle-788fa.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-11-01 diff --git a/src/data/guides/devops-principles.md b/src/data/guides/devops-principles.md index a2b5c4f79..98d6a94e9 100644 --- a/src/data/guides/devops-principles.md +++ b/src/data/guides/devops-principles.md @@ -7,6 +7,15 @@ seo: title: '11 DevOps Principles and Practices to Master: Pro Advice' description: 'Elevate your game by understanding this set of key DevOps principles and practices. Gain pro insights for a more efficient, collaborative workflow!' ogImageUrl: 'https://assets.roadmap.sh/guest/devops-engineer-skills-tlace.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-09-24 diff --git a/src/data/guides/devops-shift-left-testing.md b/src/data/guides/devops-shift-left-testing.md index 844ac3406..13e3521b8 100644 --- a/src/data/guides/devops-shift-left-testing.md +++ b/src/data/guides/devops-shift-left-testing.md @@ -7,6 +7,15 @@ seo: title: 'Why Does DevOps Recommend Shift-Left Testing Principles?' description: 'Understand why DevOps emphasizes shift-left testing to boost early bug detection, reduce costs, and improve release cycles.' ogImageUrl: 'https://assets.roadmap.sh/guest/devops-shift-left-testing-16zah.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: true type: 'textual' date: 2024-11-04 diff --git a/src/data/guides/devops-skills.md b/src/data/guides/devops-skills.md index 48bed1cb3..915638be4 100644 --- a/src/data/guides/devops-skills.md +++ b/src/data/guides/devops-skills.md @@ -7,6 +7,15 @@ seo: title: '10+ In-Demand DevOps Engineer Skills to Master' description: 'Find out exactly what it takes to be a successful DevOps engineer with my recommendations for essential DevOps skills' ogImageUrl: 'https://assets.roadmap.sh/guest/devops-engineer-skills-tlace.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-09-12 diff --git a/src/data/guides/devops-vs-full-stack.md b/src/data/guides/devops-vs-full-stack.md index 69cb7d7c4..6a5d22276 100644 --- a/src/data/guides/devops-vs-full-stack.md +++ b/src/data/guides/devops-vs-full-stack.md @@ -7,6 +7,15 @@ seo: title: 'DevOps engineer vs Full stack developer: Which is best?' description: 'DevOps engineer vs Full stack developer: Compare the roles, required skills, and future prospects to make an informed career choice.' ogImageUrl: 'https://assets.roadmap.sh/guest/devops-engineer-vs-full-stack-developer-jccsq.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'How to become a DevOps Engineer in 2024': '/devops/how-to-become-devops-engineer' + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-10-17 diff --git a/src/data/guides/how-to-become-devops-engineer.md b/src/data/guides/how-to-become-devops-engineer.md index 6c6b5b34f..13e01d4b5 100644 --- a/src/data/guides/how-to-become-devops-engineer.md +++ b/src/data/guides/how-to-become-devops-engineer.md @@ -7,6 +7,15 @@ seo: title: 'How to become a DevOps Engineer in @currentYear@' description: 'Want to become a DevOps engineer? Our @currentYear@ guide covers skills, certifications, and expert career advice. Start your journey today!' ogImageUrl: 'https://assets.roadmap.sh/guest/become-devops-engineer-4x2p7.jpg' +relatedGuidesTitle: 'Other Guides' +relatedGuides: + 'Is DevOps engineering a good career path in 2024?': '/devops/career-path' + '10+ In-Demand DevOps Engineer Skills to Master': '/devops/skills' + 'DevOps engineer vs Full stack developer: Which is best?': '/devops/vs-full-stack' + '11 DevOps Principles and Practices to Master: Pro Advice': '/devops/principles' + 'What Are the 7 Key Phases of the DevOps Lifecycle?': '/devops/lifecycle' + 'Why Does DevOps Recommend Shift-Left Testing Principles?': '/devops/shift-left-testing' + 'What is DevOps Automation? 8 Best Practices & Advice': '/devops/automation' isNew: false type: 'textual' date: 2024-06-11 @@ -47,55 +56,60 @@ Let’s dive into the essential skills required for a DevOps engineer. ## Skills required to become a DevOps engineer -### Operating system +### Operating system + A DevOps engineer should understand the operating system, especially Linux (distribution or any variant). This is because most of the servers in use are Linux-based, so having a solid foundation in the Linux OS is imperative for infrastructure management and troubleshooting. ### Solid programming fundamentals + As a DevOps engineer, you will use your knowledge of programming languages and scripting languages (bash scripting, shell scripting, etc) to: - Automate processes and frequent tasks -- Patch a security bug exposing your internal application to outside users +- Patch a security bug exposing your internal application to outside users - Create automation tools, monitoring tools, and logging tools - Create monitoring dashboards to visualize workload and resource usage -Hence, hands-on experience with programming is crucial to excel in your DevOps career. +Hence, hands-on experience with programming is crucial to excel in your DevOps career. ### Version control + A basic understanding of version control is one of the essential DevOps skills required for DevOps engineer jobs. In your DevOps career, you will likely work in a team rather than alone. Systems like Git facilitate collaboration in a team while providing a centralized repository for the code. ### Networking fundamentals + Many modern-day applications are distributed systems that rely on networking. For instance, a single application could be composed of a frontend, backend, database, file server, etc., each residing on a separate server. For a seamless user experience, these separate entities should be able to communicate smoothly. ### Containerization and orchestration + Containerization (or container technology) and orchestration help solve the issues of software deployment and resource utilization. Knowledge of containerization and orchestration helps reduce deployment time and allows you to scale applications quickly without downtime, resulting in a better user experience. ### Cloud deployment + Procuring hardware to deploy the software is not always feasible and beneficial. Furthermore, once you purchase the hardware, you need more time and resources to manage the new hardware. Depending upon the complexity of the application, choosing the cloud instead of on-premise hardware can significantly reduce deployment time and cost. ### Infrastructure as Code (IaC) + IaC can be seen as a superior form of automation for a DevOps engineer. IaC tools like Terraform and Amazon Cloud CDK allow the operations team to set up and manage infrastructure by simply changing a configuration file. This makes it easier to manage and scale the application. -So, how do you learn these essential skills? In what sequence do you acquire these skills? +So, how do you learn these essential skills? In what sequence do you acquire these skills? The following section presents a complete DevOps roadmap on how you can learn these skills and become a DevOps engineer. ## How to become a DevOps engineer: the DevOps roadmap -The internet is full of resources for learning DevOps and DevOps tools. Many of these guides lack structure and organization, resulting in a dilemma of where to start. +The internet is full of resources for learning DevOps and DevOps tools. Many of these guides lack structure and organization, resulting in a dilemma of where to start. -To help beginners learn DevOps in a structured manner, [roadmap.sh](https://roadmap.sh/) has a beginner-friendly [DevOps engineer roadmap](https://roadmap.sh/devops?r=devops-beginner) that will help you land into DevOps engineer positions. +To help beginners learn DevOps in a structured manner, [roadmap.sh](https://roadmap.sh/) has a beginner-friendly [DevOps engineer roadmap](https://roadmap.sh/devops?r=devops-beginner) that will help you land into DevOps engineer positions. This section presents a concise version of the DevOps engineering roadmap. It is recommended that you implement real-world projects recommended in each stage of the roadmap. In the end, you can publish these DevOps projects to GitHub as an open-source project repository, and the repository will act as your portfolio and increase your exposure in the DevOps community. ### Step 1: Learn a programming language -Programming language is essential to a DevOps engineer. I recommend you start with either Python or Go. [Python](https://roadmap.sh/python) is a popular language that is easier to learn and used in various projects involving [backend](https://roadmap.sh/backend) development, writing machine learning algorithms, automating everyday tasks, etc. - +Programming language is essential to a DevOps engineer. I recommend you start with either Python or Go. [Python](https://roadmap.sh/python) is a popular language that is easier to learn and used in various projects involving [backend](https://roadmap.sh/backend) development, writing machine learning algorithms, automating everyday tasks, etc. ![Popular programming languages](https://assets.roadmap.sh/guest/learn-a-programming-language-he481.jpeg) - -[Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) is an excellent resource for learning Python and basic programming concepts. It will also come in handy when building automation tools. +[Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) is an excellent resource for learning Python and basic programming concepts. It will also come in handy when building automation tools. To demonstrate your understanding of Python, you can create a web scraper (or other coding projects) that extracts a list of hotels, their address, prices, reviews, and locations from a site like [booking.com](http://booking.com/). @@ -105,7 +119,7 @@ According to [Gitnux](https://gitnux.org/linux-statistics/), 92.4% of the world ![The most popular operating systems today](https://assets.roadmap.sh/guest/most-popular-operating-systems-exdwq.jpeg) -Furthermore, you should make the terminal your best friend. Some programs and packages may not have a GUI counterpart, and even when they exist, using the CLI(Command Line Interface) alternative is faster and easier to automate. +Furthermore, you should make the terminal your best friend. Some programs and packages may not have a GUI counterpart, and even when they exist, using the CLI(Command Line Interface) alternative is faster and easier to automate. An excellent way to practice Linux for DevOps engineers is to install it on a thumb drive and try to do everyday tasks like changing the directory, creating new files and folders, editing files, searching for files and folders, etc., using Linux commands instead of using the GUI interface. @@ -115,12 +129,13 @@ Version control systems like Git make it easier for developers to track changes ![Git and GitHub](https://assets.roadmap.sh/guest/git-and-github-kui4q.jpeg) -[This tutorial](https://www.atlassian.com/git) will help you learn Git basics and how to use Git for collaboration using Bitbucket, a code hosting platform. +[This tutorial](https://www.atlassian.com/git) will help you learn Git basics and how to use Git for collaboration using Bitbucket, a code hosting platform. For advanced concepts on git branching, [refer to this site.](https://learngitbranching.js.org/) Once you go through the tutorial, you can easily switch from Bitbucket to GitHub and GitLab, which are more popular among developers. ### Step 4: Networking fundamentals -Learning networking fundamentals becomes vital to the DevOps team when working with software components constantly communicating with other services. Knowledge of networks comes in handy when setting up resources in the public cloud. At a minimum, you should clearly understand standard protocols(TCP/IP, UDP), routing, IP addressing, subnetting, and ports. + +Learning networking fundamentals becomes vital to the DevOps team when working with software components constantly communicating with other services. Knowledge of networks comes in handy when setting up resources in the public cloud. At a minimum, you should clearly understand standard protocols(TCP/IP, UDP), routing, IP addressing, subnetting, and ports. A DevOps engineer should have a sound knowledge of web servers like Nginx. Nginx allows you to serve your application on the web while handling reverse proxy and load balancing. [Apache](https://httpd.apache.org/) is another web server that provides similar features. @@ -130,34 +145,33 @@ For your practice, you can create a simple frontend (or clone it from GitHub) an ### Step 5: Containerization -An application developed by one developer may not work on other machines due to the difference in environment. To eliminate this issue, DevOps engineers use containerization tools like Docker. +An application developed by one developer may not work on other machines due to the difference in environment. To eliminate this issue, DevOps engineers use containerization tools like Docker. -Docker allows engineers to create consistent development, testing, and production environments. It also ensures the developed application is portable across different platforms. +Docker allows engineers to create consistent development, testing, and production environments. It also ensures the developed application is portable across different platforms. ![Docker and Kubernetes](https://assets.roadmap.sh/guest/docker-and-kubernetes-fxplh.jpeg) +Applications rely on multiple containers that communicate with each other. To facilitate the orchestration of these containers, you can use container orchestration tools like [Kubernetes](https://roadmap.sh/kubernetes). The [Docker Roadmap](https://roadmap.sh/docker) provides essential resources to help you master Docker and Kubernetes. -Applications rely on multiple containers that communicate with each other. To facilitate the orchestration of these containers, you can use container orchestration tools like [Kubernetes](https://roadmap.sh/kubernetes). The [Docker Roadmap](https://roadmap.sh/docker) provides essential resources to help you master Docker and Kubernetes. - -You can demonstrate your understanding of containerization tools by creating a simple project with frontend and back deployed as two separate containers. If you have already developed these components in the previous stages of the roadmap, re-use them to save time. +You can demonstrate your understanding of containerization tools by creating a simple project with frontend and back deployed as two separate containers. If you have already developed these components in the previous stages of the roadmap, re-use them to save time. Alternatively, certifications like Docker Certified Associate and Certified Kubernetes Administrator can help you prove your knowledge. ### Step 6: Cloud services -Cloud services like [AWS](https://roadmap.sh/aws), Azure, and Google Cloud Platform are some popular cloud providers that allow you to deploy your projects without investing in expensive hardware. Many cloud services across these cloud platforms are analogous. +Cloud services like [AWS](https://roadmap.sh/aws), Azure, and Google Cloud Platform are some popular cloud providers that allow you to deploy your projects without investing in expensive hardware. Many cloud services across these cloud platforms are analogous. -If you are a beginner, start with AWS. It is the most widely used cloud platform. Once you are comfortable with AWS’s services and key concepts, you can deploy the application created in earlier stages to the AWS. +If you are a beginner, start with AWS. It is the most widely used cloud platform. Once you are comfortable with AWS’s services and key concepts, you can deploy the application created in earlier stages to the AWS. Alternatively, you could demonstrate your understanding by taking the [certification exam from AWS](https://aws.amazon.com/certification/?trk=dc557659-52ab-4a28-b2b8-0b1fb90235db&sc_channel=ps&ef_id=CjwKCAjw88yxBhBWEiwA7cm6pRXCRcI-uDNNigl81tPxsbbyV9RqT6MsdSM_x5EzoFnfxcr6N22rvBoCS7IQAvD_BwE:G:s&s_kwcid=AL!4422!3!465713397254!e!!g!!aws%20certification!11138243015!111694711080&gclid=CjwKCAjw88yxBhBWEiwA7cm6pRXCRcI-uDNNigl81tPxsbbyV9RqT6MsdSM_x5EzoFnfxcr6N22rvBoCS7IQAvD_BwE). Becoming an AWS certified DevOps engineer helps you gain credibility for your DevOps skills. ![Top cloud providers](https://assets.roadmap.sh/guest/top-cloud-providers-76zj5.jpeg) - Once comfortable launching your infrastructure using the GUI, you should learn about Infrastructure as Code(IaC). I recommend using [Terraform](https://www.terraform.io/) for IaC as it is cloud-agnostic and popular among software developers and operations teams. Terraform allows you to set up and make changes to infrastructure resources by editing a configuration file, resulting in infrastructure automation. ### Step 7: Continuous integration and delivery -[Continuous Integration and Continuous Delivery](https://www.youtube.com/watch?v=nyKZTKQS_EQ) (or Continuous Deployment) (CI/CD) is a set of practices aimed at automating and streamlining software changes from development to production. + +[Continuous Integration and Continuous Delivery](https://www.youtube.com/watch?v=nyKZTKQS_EQ) (or Continuous Deployment) (CI/CD) is a set of practices aimed at automating and streamlining software changes from development to production. Today, in practice, when you commit and push your changes to the remote repository (say GitHub), the tests kick-off; if the tests pass successfully, your changes are merged and then deployed to the staging and production server. @@ -165,7 +179,7 @@ Today, in practice, when you commit and push your changes to the remote reposito CI/CD is a combination of three skills: programming, writing configuration files, and Git. As such, you don’t need to learn new skills to implement CI/CD. However, some organizations use tools like CircleCI and Jenkins to simplify the process. -You can practice CI/CD using GitHub actions. [GitHub provides a set of tutorials](https://docs.github.com/en/actions/learn-github-actions) for the same. You can follow along those tutorials to get a good grasp of Continuous Integration and Continuous Deployment. +You can practice CI/CD using GitHub actions. [GitHub provides a set of tutorials](https://docs.github.com/en/actions/learn-github-actions) for the same. You can follow along those tutorials to get a good grasp of Continuous Integration and Continuous Deployment. Finally, you can implement CICD in one of your projects created while learning previous skills in this roadmap. @@ -176,15 +190,19 @@ Next, let’s discuss the mindset needed to become a DevOps engineer. To become a successful DevOps engineer and successfully embrace the DevOps culture, you must orient your thoughts around the following: ### Automation + Software products or systems are prone to various errors, including human errors. Stress during work and the race against deadlines can increase the frequency of these errors. Automating processes helps reduce human error and eliminate boring tasks. ### Risk awareness + DevOps engineers must understand the risks entangled with changes to a software system and deployment infrastructures. The risk should be minimized by utilizing automated testing, monitoring, and incremental changes. ### Systems thinking + DevOps professionals or any member of the operations teams must understand how different components within a system communicate and interact with each other to deliver the desired solution. A graphical representation of the system can come in handy when fixing issues or knowledge transfer within the DevOps teams. ### Continuous learning + A continuous learning and continuous improvement mindset is essential across all roles in software engineering, but its importance is amplified for a DevOps engineer. A DevOps engineer must continually learn about new technologies, tools, DevOps principles, and DevOps practices and implement the ones best suited to the project. You may not have the DevOps mindset, but that is okay. You can build this mindset as you learn and grow into the role. Let us look at some technical skills required to become a DevOps engineer.