Getting Started with DevOps
Tags: devops, beginners, productivity, howto
Published: 2020-05-29 19:45:57

---
title: Getting Started with DevOps
published: true
date: 2020-05-17 16:00:00 UTC
tags: DevOps,Beginners,Productivity,howto
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/e7dpra2im1ton2q5rbme.png
canonical_url: https://www.justice.sh/blog/devops/getting-started-with-devops/
series: Getting Started with DevOps
---


DevOps. This buzzword is thrown around a lot and can be hard to understand at first. So what does it mean?  
Within this series I'm want to break it down for fellow developers step-by-step:

**What is DevOps** and **how can you get started**?

The name DevOps says a lot, as it's a combination of "**Dev**elopment" and "**Op**erations".  
It basically stands for a mindset of embracing the entire software development process. Including planning, releasing and operating the software product.  
Sounds like a lot of work? That's why DevOps Engineers automate anything they can.  
As an example, here are a few things I implement within my projects to embrace DevOps:

*   **PowerShell scripts to install tools and setup your project**  

    New co-workers don't have to waste 1-2 days installing software and configuring their system. Get to the fun parts!
*   **Deployment scripts**  

    These can be small local PowerShell scripts that upload your website via FTP or they can be actual build scripts in a system like [Azure DevOps](https://dev.azure.com/), [GitHub Actions](https://help.github.com/en/actions/getting-started-with-github-actions) or [Travis](https://travis-ci.org/).
*   **File conversion scripts**  

    Do colleagues need to convert lots of files? E.g. sound files from .ogg to .wav? I'll create a script using [ffmpeg](https://ffmpeg.org/) for that. Start the script, have a cup of coffee, 100 sound files converted. No tedious clicking.
*   **Monitoring alerts**  

    Is your server becoming crowded? I like getting an e-mail when we reach 60% load. This gives me enough time to plan ahead without checking monitoring systems manually.
*   **Define Processes**  

    Do you have a step-by-step guide for releases, user tests and other processes? I highly recommend them. A wiki is the best place to document them.

This is a small taste of what we will learn during this series, but let's take a step back.

# The DevOps Lifecycle

The DevOps mindset can be applied throughout the entire lifecycle of your projects. You've probably come across this image online already:

<figure class="wp-block-image size-full is-style-default">![The DevOps Lifecycle](https://dev-to-uploads.s3.amazonaws.com/i/nhjy8f8o9o4ulr2wuig3.png)

<figcaption>The DevOps Lifecycle</figcaption>

</figure>

As you can see, the only prerequisite to implementing DevOps is working in iterations.  
I have broken down the DevOps Lifecycle into chunks and will offer a deep look at each one of them:

1.  **Plan**

    While planning your project, you should consider all phases of your products life cycle, not just development. 
2.  **Code**  

    Developers want to code. They don't want to reinvent wheels or spend a day setting up the project and its databases.
3.  **Build**  

    Build Systems speed up and simplify your build process. However they can also provide additional services, such as static code analysis or uploading binaries for your testers.
4.  **Test**

    Most Tests can be automated. Our goal is to reduce, but also improve your manual tests.
5.  **Release**  
    
    A release is much more than just uploading your built software. There is much to plan: You have to validate your built software, plan your release (frontend and backend), migrate your databases to the new version, and more. Let's optimize it all.
6.  **Deploy**  

    This is probably the most popular case. Manual deployments can take so much time. Once you automate them, you will never look back.
7.  **Operate**  

    Most systems do not need routine maintenance. But they do require automated backups, SSL certificate renewals, software updates and emergency plans.
8.  **Monitor**  

    Of course we can monitor our servers and see if they are still running. However, we can answer many more questions: How many users are using our servers? How is our growth? When do we need to scale? And can we scale automatically?

I will also include excursions where I see them as useful (expect a crash course on cross-platform scripting).  
Are there any DevOps topics you would like me to write about?  
I'm open for questions and suggestions on our [Discord](https://discordapp.com/invite/4FmEwGp), [Facebook](https://www.facebook.com/BrutalHackGames/) or [Twitter](https://twitter.com/BrutalHackGames).