Answers: <p>First of all, I would like to emphasize that DevOps is a culture and not a role. In my opinion one could compare it with a team of commandos that have their own expertise, e.g. sniper, marine, sapper (think about the commandos series). The combination of these expertises, basically working together, makes it possible to accomplish missions or creating business value as soon as possible. </p>
  
  <p><strong>LowOps and NoOps</strong></p>
  
  <p>Since a couple of weeks I found that after lot's of conversations with people, that a rather talk about LowOps these days. If I implement a solution then this means that it is completely automated and that a colleague can deploy machines themselves rather than asking me. Sometimes it is not immediately possible to automate it completely, but then I ensure that it is automated for myself to ensure that I only have to run one command in order to get the work done (LowOps), instead of wasting a couple of hours. If I have created such solution, I ensure that a ticket has been created for a colleague to automate my personal solution for everybody. Example: a collegue of mine transformed one of my bash script in a bot that it now run every night. This means that the knowledge has been transferred and that a NoOps solution has been created and we can both focus on new tasks. </p>
  
  <p><a href="https://i.sstatic.net/T7Xsf.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/T7Xsf.png" alt="enter image description here"></a></p>
  
  <p>Figure 1: <a href="https://www.gslab.com/blog-post/what-is-noops/" rel="nofollow noreferrer">https://www.gslab.com/blog-post/what-is-noops/</a></p>
  
  <blockquote>
    <p>"how to start with devops"</p>
  </blockquote>
  
  <p>Ensure that you are part of a team with mixed competences and that the team has to deploy the software themselves. Talk with all team members and start with tasks that nobody wants to do as there is a lack of knowledge or willingness. If you start with a task then you will bump into things you do not know. Start to watch videos, attend <a href="https://www.meetup.com/" rel="nofollow noreferrer">meetups</a>, buy and read books, read blogs and official documentation about tooling, ask colleagues to review your pull requests and communicate and listen well to people, document things well and prepare and demonstrate solutions to colleagues (knowledge sharing). The last suggestion is to keep an eye on the <a href="https://en.wikipedia.org/wiki/Work%E2%80%93life_balance" rel="nofollow noreferrer">work-life balance</a>.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-27T10:18:33.370Z
Answers: 2019-07-27T10:46:18.863Z
Answers: 2019-07-27T10:46:18.863Z
Answers: 030
Answers: <p>Other answers here have focussed on tools. In my opinion, gaining competence in a toolkit is of course a good thing, but will not make you a good fit in a DevOps culture. DevOps is first a set of <em>practices</em>, or <em>methods</em>.</p>
  
  <p>Understanding <em>why</em> thes practices and methods are useful comes with experience, but you don't have that luxury. I would therefore point you to </p>
  
  <ul>
  <li><a href="https://rads.stackoverflow.com/amzn/click/com/1942788002" rel="nofollow noreferrer" rel="nofollow noreferrer">the DevOps Handboox</a></li>
  <li><a href="https://rads.stackoverflow.com/amzn/click/com/1942788339" rel="nofollow noreferrer" rel="nofollow noreferrer">Accelerate</a></li>
  </ul>
  
  <p>as a foundational texts.</p>
  
  <p>The <a href="https://continuousdelivery.com/" rel="nofollow noreferrer">Continuous Delivery website</a> also has a set of <a href="https://continuousdelivery.com/principles/" rel="nofollow noreferrer">Principles</a> and <a href="https://continuousdelivery.com/foundations/" rel="nofollow noreferrer">Foundations</a> which give you the relevant grounding when starting.</p>
  
  <p>Starting from these, you will learn practice and methods, which will inform <em>how</em> you collaborate and use tools.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-24T09:57:06.243Z
Answers: 2019-07-24T09:57:06.243Z
Answers: Bruce Becker
Answers: <p>All you need to learn is Linux, Docker, Networking, Git, Jenkins etc. You can learn them interactively <a href="https://www.katacoda.com/" rel="nofollow noreferrer">here</a></p>
  
  <p>If you are looking for video tutorials then <a href="https://www.pluralsight.com/search?q=devops" rel="nofollow noreferrer">pluralsight</a> has something good for you.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-29T04:55:57.887Z
Answers: 2019-07-29T04:55:57.887Z
Answers: Prakash
Answers: <p>The very first things you need to learn and get comfortable with:</p>
  
  <ul>
  <li>unix (file system, permissions, processes, services, logs, networking, etc…)</li>
  <li>ssh &amp; reverse tunneling</li>
  <li>nano/vim</li>
  <li>python</li>
  <li>git</li>
  </ul>
  
  <p>Then you could move on to more specific topics:</p>
  
  <ul>
  <li>containerization (e.g. docker)</li>
  <li>configuration management (e.g. ansible)</li>
  <li>continuous deployment (e.g. jenkins)</li>
  <li>monitoring (e.g. prometheus/grafana)</li>
  </ul>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-25T07:12:17.777Z
Answers: 2019-07-27T20:37:01.317Z
Answers: 2019-07-27T20:37:01.317Z
Answers: GG.
Answers: <p>This is the kind of question I have been asking myself many times, and that tends to follow me (now that I am barely out of "beginner", I am wondering where to learn more advanced topics). Sadly, as you pointed out, asking those questions on search engine tends to flood with websites targeting executives and trying to explain <em>What is devops?</em> and <em>Why should we industrialize the software cycle with devops?</em></p>
  
  <p>That being said, to try and answer your question, I can only speak from personal experience: I started my learning journey with the excellent <a href="https://docs.docker.com/get-started/" rel="nofollow noreferrer">Docker Get started guide</a>.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-24T08:08:32.420Z
Answers: 2019-07-24T08:08:32.420Z
Answers: Ad N
Answers: <p>"Learning DevOps" strikes me as too broad a query, as you also found out, but I can remember having to google the same thing.</p>
  
  <p>To add to @jhamfler's answer: Ask yourself, why do you want to learn about it? Which context are you coming from? DevOps usually has to do with breaking down manual hurdles, or also silo structures in teams (everyone just doing their own task and relying on somebody else to think about integrating the results). Are there such "gaps" in your project (I assume you have one)? What parts of it could benefit from automation? </p>
  
  <p>Typical problems I could suggest are: </p>
  
  <ul>
  <li>manual server maintenance VS scripted solutions</li>
  <li>reliability and backups</li>
  <li>automating integration tests </li>
  <li>automating continuous deployment (e.g. of a web service)</li>
  <li>...</li>
  </ul>
  
  <p>Perhaps a search for "continuous deployment" and "continuous integration" (CI/CD) could also help you.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-24T09:55:04.620Z
Answers: 2019-07-24T09:55:04.620Z
Answers: Sir Jane
Answers: <p>Devops relate to the execution of software. It is all about how to run an application or service. So server configuration tools, virtual machines and containers are the next steps. I suggest looking at the documentation of those tools and learning from them things like discovery, observability, scalability and redundancy. Just to name some examples:</p>
  
  <p>Server config:</p>
  
  <ul>
  <li>PXE</li>
  <li>Ansible</li>
  <li>Puppet</li>
  </ul>
  
  <p>VM:</p>
  
  <ul>
  <li>Vagrant</li>
  <li>QEMU</li>
  </ul>
  
  <p>Container:</p>
  
  <ul>
  <li>Docker</li>
  <li>Kubernetes</li>
  </ul>
  
  <p>EDIT: Cloud technologies overview:</p>
  
  <ul>
  <li><a href="https://landscape.cncf.io/images/landscape.png" rel="nofollow noreferrer">CNCF landscape</a></li>
  </ul>
  
  <p>When your software architecture is about microservices, then containers are a good choice. When you are using old monolithic applications then VMs are not a bad option. So it always depends on the context what you need to learn specifically.
  The topic is rather broad to summarize it. A book might help with that but sadly I cannot suggest a good broad one. "Kubernetes in Action" gives you a good start in Kubernetes though.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-07-25T10:27:03.363Z
Answers: Would also add something about ci/di, for instance bamboo, jenkins, teamcity or similar.
Answers: Cyclonecode
Answers: CC BY-SA 4.0
Answers: 2019-07-25T11:31:29.847Z
Answers: One thing I forgot and which might help. An overview for cloud technologies: [CNCF landscape](https://landscape.cncf.io/images/landscape.png)
Answers: jhamfler
Answers: CC BY-SA 4.0
Answers: 2019-07-25T12:26:29.283Z
Answers: Well edit you post and add more information =) I actually stared this.
Answers: Cyclonecode
Answers: CC BY-SA 4.0
Answers: 2019-07-25T12:57:14.717Z
Answers: @Cyclonecode you are right. done
Answers: jhamfler
Answers: CC BY-SA 4.0
Answers: 2019-08-12T05:59:23.027Z
Answers: sorry if this is a stupid question, if EC2 is already running inside a virtual machine, why do I need Docker?
Answers: PirateApp
Answers: CC BY-SA 4.0
Answers: 2019-07-24T09:33:59.173Z
Answers: 2019-07-25T12:56:16.910Z
Answers: 2019-07-25T12:56:16.910Z
Answers: jhamfler
Body: <p>Searching "how to start with devops" didn't really help as, many of them like <a href="https://devops.com/9%C2%BD-simple-steps-start-devops-today/" rel="noreferrer">this</a> and <a href="https://hackernoon.com/the-roadmap-to-become-a-devops-dude-from-server-to-serverless-dd97420f640e" rel="noreferrer">this</a> as well as many others don't really point me in the right way. Every youtube video I have seen so far hasn't helped either (as I don't need videos explaining to me what IS devops), <a href="https://youtu.be/JHoy3lDZOfY" rel="noreferrer">this</a> video being the only true exception so far (that shows how things integrate with each other).</p>
  
  <p>I am a CCNA and also highly proficient with DBMS-s (currently learning parallelism execution as well as other stuff). </p>
  
  <p>But I have no idea what I am supposed to learn first (or where to find the <strong>correct</strong> resources for that matter).</p>
  
  <p>I am about to graduate, so I have no access to real world experience. </p>
  
  <p>Any advice or help?</p>
  
Tags: <learning>
Title: Where do I start learning DevOps?
UserDisplayName: Chessbrain
ThreadText: # Where do I start learning DevOps?
  
  (Asked by: username_0 on 2019-07-23)
  
  Searching "how to start with devops" didn't really help as, many of them like [this](https://devops.com/9%C2%BD-simple-steps-start-devops-today/) and [this](https://hackernoon.com/the-roadmap-to-become-a-devops-dude-from-server-to-serverless-dd97420f640e) as well as many others don't really point me in the right way. Every youtube video I have seen so far hasn't helped either (as I don't need videos explaining to me what IS devops), [this](https://youtu.be/JHoy3lDZOfY) video being the only true exception so far (that shows how things integrate with each other).
  
  I am a CCNA and also highly proficient with DBMS-s (currently learning parallelism execution as well as other stuff).
  
  But I have no idea what I am supposed to learn first (or where to find the **correct** resources for that matter).
  
  I am about to graduate, so I have no access to real world experience.
  
  Any advice or help?
  
  **Tags:** learning
  
  
  ---
  
  ## 7 answers
  
  ### Answer by username_7 on 2019-07-24. Score: 6 | Accepted answer
  
  Devops relate to the execution of software. It is all about how to run an application or service. So server configuration tools, virtual machines and containers are the next steps. I suggest looking at the documentation of those tools and learning from them things like discovery, observability, scalability and redundancy. Just to name some examples:
  
  Server config:
  
  * PXE
  * Ansible
  * Puppet
  
  VM:
  
  * Vagrant
  * QEMU
  
  Container:
  
  * Docker
  * Kubernetes
  
  EDIT: Cloud technologies overview:
  
  * [CNCF landscape](https://landscape.cncf.io/images/landscape.png)
  
  When your software architecture is about microservices, then containers are a good choice. When you are using old monolithic applications then VMs are not a bad option. So it always depends on the context what you need to learn specifically.
  The topic is rather broad to summarize it. A book might help with that but sadly I cannot suggest a good broad one. "Kubernetes in Action" gives you a good start in Kubernetes though.
  
  > **Comments:**
  > **username_8**: Would also add something about ci/di, for instance bamboo, jenkins, teamcity or similar.  
  > **username_7**: One thing I forgot and which might help. An overview for cloud technologies: [CNCF landscape](https://landscape.cncf.io/images/landscape.png)  
  > **username_8**: Well edit you post and add more information =) I actually stared this.  
  > **username_7**: @username_8 you are right. done  
  > **username_9**: sorry if this is a stupid question, if EC2 is already running inside a virtual machine, why do I need Docker?  
  
  ---
  
  ### Answer by username_1 on 2019-07-27. Score: 4
  
  First of all, I would like to emphasize that DevOps is a culture and not a role. In my opinion one could compare it with a team of commandos that have their own expertise, e.g. sniper, marine, sapper (think about the commandos series). The combination of these expertises, basically working together, makes it possible to accomplish missions or creating business value as soon as possible.
  
  **LowOps and NoOps**
  
  Since a couple of weeks I found that after lot's of conversations with people, that a rather talk about LowOps these days. If I implement a solution then this means that it is completely automated and that a colleague can deploy machines themselves rather than asking me. Sometimes it is not immediately possible to automate it completely, but then I ensure that it is automated for myself to ensure that I only have to run one command in order to get the work done (LowOps), instead of wasting a couple of hours. If I have created such solution, I ensure that a ticket has been created for a colleague to automate my personal solution for everybody. Example: a collegue of mine transformed one of my bash script in a bot that it now run every night. This means that the knowledge has been transferred and that a NoOps solution has been created and we can both focus on new tasks.
  
  [![enter image description here](https://i.sstatic.net/T7Xsf.png)](https://i.sstatic.net/T7Xsf.png)
  
  Figure 1: <https://www.gslab.com/blog-post/what-is-noops/>
  
  > "how to start with devops"
  
  Ensure that you are part of a team with mixed competences and that the team has to deploy the software themselves. Talk with all team members and start with tasks that nobody wants to do as there is a lack of knowledge or willingness. If you start with a task then you will bump into things you do not know. Start to watch videos, attend [meetups](https://www.meetup.com/), buy and read books, read blogs and official documentation about tooling, ask colleagues to review your pull requests and communicate and listen well to people, document things well and prepare and demonstrate solutions to colleagues (knowledge sharing). The last suggestion is to keep an eye on the [work-life balance](https://en.wikipedia.org/wiki/Work%E2%80%93life_balance).
  
  
  ---
  
  ### Answer by username_2 on 2019-07-24. Score: 3
  
  Other answers here have focussed on tools. In my opinion, gaining competence in a toolkit is of course a good thing, but will not make you a good fit in a DevOps culture. DevOps is first a set of *practices*, or *methods*.
  
  Understanding *why* thes practices and methods are useful comes with experience, but you don't have that luxury. I would therefore point you to
  
  * [the DevOps Handboox](https://rads.stackoverflow.com/amzn/click/com/1942788002)
  * [Accelerate](https://rads.stackoverflow.com/amzn/click/com/1942788339)
  
  as a foundational texts.
  
  The [Continuous Delivery website](https://continuousdelivery.com/) also has a set of [Principles](https://continuousdelivery.com/principles/) and [Foundations](https://continuousdelivery.com/foundations/) which give you the relevant grounding when starting.
  
  Starting from these, you will learn practice and methods, which will inform *how* you collaborate and use tools.
  
  
  ---
  
  ### Answer by username_3 on 2019-07-29. Score: 2
  
  All you need to learn is Linux, Docker, Networking, Git, Jenkins etc. You can learn them interactively [here](https://www.katacoda.com/)
  
  If you are looking for video tutorials then [pluralsight](https://www.pluralsight.com/search?q=devops) has something good for you.
  
  
  ---
  
  ### Answer by username_4 on 2019-07-25. Score: 1
  
  The very first things you need to learn and get comfortable with:
  
  * unix (file system, permissions, processes, services, logs, networking, etc…)
  * ssh & reverse tunneling
  * nano/vim
  * python
  * git
  
  Then you could move on to more specific topics:
  
  * containerization (e.g. docker)
  * configuration management (e.g. ansible)
  * continuous deployment (e.g. jenkins)
  * monitoring (e.g. prometheus/grafana)
  
  
  ---
  
  ### Answer by username_5 on 2019-07-24. Score: 1
  
  This is the kind of question I have been asking myself many times, and that tends to follow me (now that I am barely out of "beginner", I am wondering where to learn more advanced topics). Sadly, as you pointed out, asking those questions on search engine tends to flood with websites targeting executives and trying to explain *What is devops?* and *Why should we industrialize the software cycle with devops?*
  
  That being said, to try and answer your question, I can only speak from personal experience: I started my learning journey with the excellent [Docker Get started guide](https://docs.docker.com/get-started/).
  
  
  ---
  
  ### Answer by username_6 on 2019-07-24. Score: 1
  
  "Learning DevOps" strikes me as too broad a query, as you also found out, but I can remember having to google the same thing.
  
  To add to @username_7's answer: Ask yourself, why do you want to learn about it? Which context are you coming from? DevOps usually has to do with breaking down manual hurdles, or also silo structures in teams (everyone just doing their own task and relying on somebody else to think about integrating the results). Are there such "gaps" in your project (I assume you have one)? What parts of it could benefit from automation?
  
  Typical problems I could suggest are:
  
  * manual server maintenance VS scripted solutions
  * reliability and backups
  * automating integration tests
  * automating continuous deployment (e.g. of a web service)
  * ...
  
  Perhaps a search for "continuous deployment" and "continuous integration" (CI/CD) could also help you.
  
  
  ---
  
  