You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/pages/devops_intro.html
+11-11
Original file line number
Diff line number
Diff line change
@@ -9,13 +9,13 @@
9
9
<p>Depending on which background and pre-knowledge you have, you need to first make sure to get any missing prerequisite knowledge.</p>
10
10
<p>As a system administrator or a network engineer, learn software development workflows. As a developer, learn the basics of infrastructure, virtual servers etc. Of course, with zero or little IT background, you have to get all this prerequisite knowledge from server administration to development first.</p>
<p>DevOps covers the whole software development lifecycle, so you work with lots of different tools and technologies. Plus, DevOps is still evolving and there are lots of new tools being developed all the time.</p>
<h3><strong>1. Concepts of Software Development</strong></h3>
18
+
<h3><spanstyle="color:#1565c0;"><strong>1. Concepts of Software Development</strong></span></h3>
19
19
<p>As a DevOps engineer you will not be programming the application, but as you are working closely with the development team to improve and automate tasks for them, you need to understand the concepts of:</p>
20
20
<ul>
21
21
<li>How developers work and collaborate (Agile, Jira workflows)</li>
@@ -25,7 +25,7 @@ <h3><strong>1. Concepts of Software Development</strong></h3>
25
25
</ul>
26
26
<p>And generally understand what the whole software development lifecycle covers from idea to code, all the way to releasing it to end users.</p>
27
27
<p> </p>
28
-
<h3>2. OS & Linux Basics</h3>
28
+
<h3><spanstyle="color:#1565c0;">2. OS & Linux Basics</span></h3>
29
29
<p>As a DevOps engineer you are responsible for preparing and maintaining the infrastructure (servers) on which the application is deployed. So you need to know the basics of how to administer a server and install different tools on it.</p>
30
30
<p>Since most servers use Linux OS, you need to know and feel comfortable using Linux, especially its Command Line Interface. Basic concepts of Operating Systems you need to understand:</p>
31
31
<ul>
@@ -43,7 +43,7 @@ <h3>2. OS & Linux Basics</h3>
<p>Docker is by far the most popular container technology.</p>
48
48
<p>As containers have become the new standard of software packaging, you will most probably run your application as a container. This means you need to generally understand:</p>
<p>CI/CD is kind of the heart of DevOps. In DevOps, all code changes, like new features or bug fixes, need to be integrated into the existing application and deployed to the end users continuously and in an automated way. Hence, the term: Continuous Integration and Continuous Deployment (CI/CD).</p>
67
67
<p>When the feature or bug-fix is done, a pipeline running on a CI server (e.g. Jenkins) should be triggered automatically, which:</p>
<li>Configuring artifact repositories (like Nexus) and integrate with pipeline</li>
83
83
</ul>
84
84
<p> </p>
85
-
<h3>5. Learn One Cloud Provider - AWS</h3>
85
+
<h3><spanstyle="color:#1565c0;">5. Learn One Cloud Provider - AWS</span></h3>
86
86
<p>Some popular Cloud platforms are - AWS, Microsoft Azure, Google Cloud. AWS is the most powerful and most widely used IaaS platform, but also a difficult one.</p>
87
87
<p>Nowadays, many companies use virtual infrastructure on the cloud, instead of managing their own infrastructure. These are Infrastructure as a Service (IaaS) platforms, which offer a range of additional services, like backup, security, load balancing etc.</p>
<p>Since containers are popular and easy to use, many companies are running hundreds or thousands of containers on multiple servers. This means these containers need to be managed somehow. For this purpose, there are container orchestration tools.</p>
99
99
<p>Kubernetes (also known as K8s) is the most popular container orchestration tool. Kubernetes automates the deployment, scaling and management of containerized applications.</p>
<h3>7. Monitoring & Observability - Prometheus & Grafana</h3>
113
+
<h3><spanstyle="color:#1565c0;">7. Monitoring & Observability - Prometheus & Grafana</span></h3>
114
114
<p>Once software is in production, it is important to monitor it to track the performance, discover problems in your infrastructure and the application.</p>
115
115
<p>So one of your responsibilities as a DevOps engineer is to:</p>
116
116
<ul>
@@ -124,7 +124,7 @@ <h3>7. Monitoring & Observability - Prometheus & Grafana</h3>
124
124
<p>You should also understand how systems can collect and aggregate data with the goal of using it to troubleshoot, gain business insights etc.</p>
125
125
<p><strong>ELK Stack:</strong> A popular log management stack.</p>
126
126
<p> </p>
127
-
<h3>8. Infrastructure as Code - Ansible & Terraform</h3>
127
+
<h3><spanstyle="color:#1565c0;">8. Infrastructure as Code - Ansible & Terraform</span></h3>
128
128
<p>Manually creating and maintaining infrastructure is time consuming and error prone. Especially when you need to replicate the infrastructure, e.g. for a Development, Testing and Production environment.</p>
129
129
<p>In DevOps, we want to automate as much as possible and that's where Infrastructure as Code comes into the picture.</p>
130
130
<p>With IaC we use code to create and configure infrastructure and there are 2 types of IaC tools you need to know:</p>
@@ -136,14 +136,14 @@ <h3>8. Infrastructure as Code - Ansible & Terraform</h3>
136
136
<p><strong>Terraform:</strong> This is the most popular infrastructure provisioning tool.</p>
137
137
<p><strong>Ansible: </strong>This is the most popular configuration management tool.</p>
138
138
<p> </p>
139
-
<h3>9. Scripting Language - Python</h3>
139
+
<h3><spanstyle="color:#1565c0;">9. Scripting Language - Python</span></h3>
140
140
<p>Since you are closely working with developers and system administrators to also automate tasks for development and operations, you will need to write scripts and small applications to automate them. For that, you will need some scripting or basic programming skills.</p>
141
141
<p>Examples: utility scripts like flushing the cache, starting the builds and deployments etc.</p>
142
142
<p>This could be an OS specific scripting language like bash or Powershell. But what's more demanded is an OS-independent language like Python, Ruby or Go.</p>
143
143
<p>These languages are more powerful and flexible. If you know one of these, it will make you much more valuable as a DevOps engineer.</p>
144
144
<p>There are many programming languages, but I would recommend starting with Python. Python is widely used, easy to learn and used in many different cases, especially in DevOps.</p>
145
145
<p> </p>
146
-
<h3>10. Version Control - Git</h3>
146
+
<h3><spanstyle="color:#1565c0;">10. Version Control - Git</span></h3>
147
147
<p>You write all automation logic as code. And just application code, automation code should also be managed and hosted on a version control tool, like Git.</p>
148
148
<p>Git is a CLI Tool, which you install locally. It enables the tracking of changes in the source code and enables better collaboration on code.</p>
<tdstyle="border-bottom-style:none;border-left-style:none;border-right:0.5pt solid windowtext;border-top-style:none;padding-left:1px;padding-right:1px;padding-top:1px;"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;">List all commits from all branches</span></td>
<tdstyle="background-color:rgb(207, 207, 207);border-bottom-style:none;border-left-style:none;border-right:0.5pt solid windowtext;border-top-style:none;padding-left:1px;padding-right:1px;padding-top:1px;"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;">List all commits from all branches</span></td>
208
208
</tr>
209
209
<tr>
210
210
<tdstyle="background-color:rgb(217, 217, 217);border-bottom-style:none;border-left:0.5pt solid windowtext;border-right:.5pt solid black;border-top-style:none;height:28.05pt;padding-left:1px;padding-right:1px;padding-top:1px;" colspan="2"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;"><strong>git show <COMMIT>, <object>, <tag>, or <keyword></strong></span></td>
<tdstyle="border-bottom:0.5pt solid windowtext;border-left-style:none;border-right:0.5pt solid windowtext;border-top-style:none;padding-left:1px;padding-right:1px;padding-top:1px;width:200pt;"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;">(-n) check any unnecessary files in current dir. (-f) delete them. (-x) clean .ignore</span></td>
<tdstyle="border-bottom-style:solid;border-color:windowtext;border-left-style:none;border-right-style:solid;border-top-style:none;border-width:0.5pt;padding-left:1px;padding-right:1px;padding-top:1px;width:200pt;"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;">File names mention inside the .gitignore will not be exposed to staging and remain secret.</span></td>
<tdstyle="background-color:rgb(207, 207, 207);border-bottom-style:solid;border-color:windowtext;border-left-style:none;border-right-style:solid;border-top-style:none;border-width:0.5pt;padding-left:1px;padding-right:1px;padding-top:1px;width:200pt;"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;">File names mention inside the .gitignore will not be exposed to staging and remain secret.</span></td>
274
274
</tr>
275
275
<tr>
276
276
<tdstyle="background-color:rgb(217, 217, 217);border:0.5pt solid windowtext;height:45.6pt;padding-left:1px;padding-right:1px;padding-top:1px;width:330pt;" colspan="2"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;"><strong>There're Three different environments: 1. WorkSpace (Working directory) 2. Staging (Index) 3. Repository (Commit)</strong></span></td>
277
277
</tr>
278
278
<tr>
279
-
<tdstyle="border:0.5pt solid windowtext;height:50.4pt;padding-left:1px;padding-right:1px;padding-top:1px;width:330pt;" colspan="2"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;"><strong>Methodes to authenticate remote repository: 1. SSH Keys 2. Personal Access Token (PAT) for HTTPs authentication 3. Two-Factor Authenticaiton</strong></span></td>
279
+
<tdstyle="background-color:rgb(207, 207, 207);border:0.5pt solid windowtext;height:50.4pt;padding-left:1px;padding-right:1px;padding-top:1px;width:330pt;" colspan="2"><spanstyle="color:black;font-family:Calibri, sans-serif;font-size:11pt;"><strong>Methodes to authenticate remote repository: 1. SSH Keys 2. Personal Access Token (PAT) for HTTPs authentication 3. Two-Factor Authenticaiton</strong></span></td>
0 commit comments