Skip to content

Commit

Permalink
feat: add a FAQ section and some nitpicks
Browse files Browse the repository at this point in the history
  • Loading branch information
Pradumnasaraf committed Jul 27, 2024
1 parent 41aa764 commit 0902e86
Show file tree
Hide file tree
Showing 12 changed files with 68 additions and 24 deletions.
1 change: 1 addition & 0 deletions .github/workflows/publish-ghcr.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Publish Image - GHCR

on:
workflow_dispatch:
release:
types: [published]

Expand Down
6 changes: 0 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,6 @@
<br>
<br>

<div align="center">

<b>If you find the repository helpful, please consider sponsoring my efforts via <a href="https://github.com/sponsors/Pradumnasaraf">GitHub Sponsors</a></b>

</div>

<!-- ### Topic to cover
- Ansible
- Terraform
Expand Down
5 changes: 1 addition & 4 deletions docs/argocd/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,10 @@ sidebar_position: 1
title: ArgoCD Introduction
---

- [ArgoCD](https://argoproj.github.io/cd)
- [ArgoCD GitHub Repo](https://github.com/argoproj/argo-cd)
Argo CD is a popular GitOps controller. It is used to deploy applications to Kubernetes clusters. It is also used to manage the configuration of the cluster itself. It can be changed too.

> _"One the founding principles of GitOps - everything stored in Git."_
Argo CD is a popular GitOps controller. It is used to deploy applications to Kubernetes clusters. It is also used to manage the configuration of the cluster itself. It can be changed too.

- For production we can use the [Autopilot](https://github.com/argoproj-labs/argocd-autopilot). For a traditional approach we can use the [Manifest directory](https://github.com/argoproj/argo-cd/tree/master/manifests) approach. Community [Helm](https://github.com/argoproj/argo-helm/tree/master/charts/argo-cd) charts are also available

<p align="center"><img width="1014" alt="Screenshot 2022-11-29 at 11 44 57 PM" src="https://user-images.githubusercontent.com/51878265/204613004-e5dace25-7502-487d-acea-86d63c70cc2a.png"></img></p>
Expand Down
57 changes: 57 additions & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
sidebar_position: 18
description: Frequently asked questions about DevOps.
title: FAQ
---

Having questions or doubts about DevOps is totally reasonable and normal. Here are some frequently asked questions about DevOps:

### Do I need to know programming to learn DevOps?

Yes, you need to know programming to learn DevOps. DevOps is a combination of software development (Dev) and information technology operations (Ops). You need to know programming to automate the process of software delivery and infrastructure changes.

### What are the prerequisites to learn DevOps?

It's good to have knowledge of one programming language, databases, operating systems, Linux commands, and networking concepts. You can learn some of these concepts while learning DevOps, but it's good to have a basic understanding of them.

### Do I need to know Linux to learn DevOps?

Yes, you need to know Linux to learn DevOps. Linux is the most popular operating system used in the DevOps world. You need to know Linux commands and bash scripting. In most places, you will be writing Linux commands only.

### Do I need to learn all the tools in DevOps?

No, you don't need to learn all the tools in DevOps. You can learn the tools based on the requirements of the project and the team. It's good to have knowledge of multiple tools, but you can start with one tool and then learn others.

### Where should I start in DevOps?

You can start learning DevOps by understanding the basics of DevOps, the DevOps lifecycle, networking concepts, Linux commands, and Git. Then, start learning the tools in DevOps. You can start with one tool and then learn others. I recommend starting with Docker and then choosing tools based on the requirements of your project and team.

### Is DevOps hard to learn?

No, DevOps is not hard to learn. Yes, it's a vast field with many tools available, but you can start by understanding the basics of DevOps, the DevOps lifecycle, networking concepts, Linux commands, and Git. Then, start learning the tools in DevOps. You can start with one tool and then learn others.

### Can a beginner learn DevOps?

Yes, a beginner can learn DevOps. Start by learning the basics and core concepts, and then move on to learning the tools in DevOps. When you have a clear understanding of the core concepts, you can learn any tool in DevOps. This approach applies to any field, not just DevOps.

### How much time does it take to learn DevOps?

There is no fixed time to learn DevOps. It depends on your current knowledge, how much time you are spending on learning, how you are learning, and how you are practicing. While you should keep progressing and learning new things, there is no fixed time to learn DevOps. I recommend devoting as much time as you can to the tools you are learning and practicing.

### Do I need to know cloud to learn DevOps?

Yes, you need to know about the cloud to learn DevOps. Cloud is an essential part of DevOps. You need to know how to deploy your applications on the cloud, manage your infrastructure on the cloud, and monitor your applications on the cloud. It's not a prerequisite, and you can learn about the cloud while learning DevOps.

### What resources are available to learn DevOps?

Under each tool section in the sidebar, you will find a page called "Learning Resources." You can find various resources like books, courses, tutorials, and documentation to learn that tool. These are resources I have used to learn that tool, so they are tried and tested. Almost all of them are free resources. If you find some good resources, feel free to raise an issue for that tool so others can also benefit from them.

### What communities can I be part of while learning DevOps?

Here are some communities you can join while learning DevOps:

- [Kubernetes Slack](https://kubernetes.io/community/)
- [Docker Slack](https://www.docker.com/community)
- [kubesimplify Discord Community](https://kubesimplify.com/)
- [Collabnix Slack](https://collabnix.com)
- [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/)
2 changes: 1 addition & 1 deletion docs/github-actions/_category_.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"label": "GitHub Actions",
"position": 3
"position": 4
}
2 changes: 0 additions & 2 deletions docs/github-actions/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ sidebar_position: 1
title: GitHub Actions Introduction
---

## GitHub Actions

GitHub Actions is a feature that allows you to automate your software development workflows. You can write individual tasks, called actions, and combine them to create a custom workflow. Workflows are custom automated processes that you can set up in your repository to build, test, package, release, or deploy any code project on GitHub.

### Resources
Expand Down
2 changes: 1 addition & 1 deletion docs/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: DevOps
description: Introduction to DevOps
---

> Hey, I created this repository to keep my learning, notes, and code in one place for various tools in DevOps. Now, it's helping thousands of learners, practitioners, and professionals every day in their DevOps journey. - [Pradumna Saraf](https://twitter.com/pradumna_saraf)
> Hey, I created this repository to keep my learning, notes, and code in one place for various tools in DevOps. Now, it's helping thousands of learners, practitioners, and professionals every day in their DevOps journey. Good luck with your DevOps journey! - [Pradumna Saraf](https://twitter.com/pradumna_saraf)
## What is DevOps?

Expand Down
2 changes: 0 additions & 2 deletions docs/jenkins/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ title: Jenkins Introduction

Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.



## Jenkinsfile - Pipeline as Code

Insted of configuring the pipeline in the Jenkins UI, we can define the entire pipeline in a Jenkinsfile and check it into source control. The file name is case sensitive and must be named `Jenkinsfile`.
Expand Down
2 changes: 1 addition & 1 deletion docs/kubernetes/_category_.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"label": "Kubernetes",
"position": 4
"position": 3
}
10 changes: 5 additions & 5 deletions docs/linux/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ sidebar_position: 1
title: Linux Introduction
---

### Overview of Linux and Why it is so popular?
### Overview of Linux and Why it is so popular?

Linux is an open-source operating system (OS) that runs on a computer and controls all of the other software and hardware on the computer. Initially, Linux was built on the Unix operating system, which was created many decades ago as a platform for scientific and academic computing. It is used on a wide range of devices, including servers, desktop computers, laptops, cloud computing, and Mobile devices.

As Linux is open-source software so anyone can access its source code and make changes to it. Other than this Linux is known for its Security features. It has a large community of users and developers who are constantly working to identify and fix security vulnerabilities. Also, Linux is well known for its Customizability allowing users to modify and configure it in order to meet their specific needs.

### Linux Architecture Components
### Linux Architecture Components

The main architectural components that work together to form a complete Linux OS include Kernel, System Libraries, User Space, Shell, System Utilities, Daemons, and Configuration files.

Expand All @@ -29,14 +29,14 @@ The main architectural components that work together to form a complete Linux OS

![architecture](https://user-images.githubusercontent.com/37767537/225990738-9e505c6d-bad0-4820-a2b2-4ce84ef286c9.jpg)

### Linux Distributions
### Linux Distributions

Linux distributions, also known as "distros," are different versions of the Linux operating system that are built
and packaged with specific versions of the architectural components, the package management system used, the graphical user interface, and the tools and applications included in it.

Examples of Linux distros include Ubuntu, Fedora, Debian, CentOS, Mint, Red Hat Enterprise Linux (RHEL), etc.

### Linux File Systems
### Linux File Systems

The Linux file system is the way that the operating system organizes and stores files and directories on a computer's hard drive or other storage devices. It consists of a hierarchical structure where files and directories are arranged in a tree-like format starting from the root directory (represented by "/"). Each file and directory has a unique location within the file system hierarchy, and these locations can be referred to using a path similar to how file paths work in other operating systems.

Expand All @@ -56,7 +56,7 @@ There are several types of file systems available for use in Linux including bel

![Linux-1](https://user-images.githubusercontent.com/37767537/226102852-2ca35206-f833-44e0-994f-a003a88c6b84.png)

### Organization of Linux File System
### Organization of Linux File System

In Linux, the file system is organized into a hierarchical structure, with the root directory (/) at the top of the hierarchy. The root directory contains several subdirectories, each with its own specific purpose that form the foundation of the Linux file system hierarchy. The subdirectories include:

Expand Down
2 changes: 1 addition & 1 deletion docs/yaml/_category_.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"label": "YAML",
"position": 8
}
}
1 change: 0 additions & 1 deletion docs/yaml/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ sidebar_position: 1
title: YAML Introduction
---


## YAML - YAML Ain't Markup Language

YAML is a human-readable data serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted.
Expand Down

0 comments on commit 0902e86

Please sign in to comment.