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 "Development" and "Operations".
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, GitHub Actions or Travis. 
- 
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 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:
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:
- 
Plan While planning your project, you should consider all phases of your products life cycle, not just development. 
- 
Code Developers want to code. They don't want to reinvent wheels or spend a day setting up the project and its databases. 
- 
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. 
- 
Test Most Tests can be automated. Our goal is to reduce, but also improve your manual tests. 
- 
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. 
- 
Deploy This is probably the most popular case. Manual deployments can take so much time. Once you automate them, you will never look back. 
- 
Operate Most systems do not need routine maintenance. But they do require automated backups, SSL certificate renewals, software updates and emergency plans. 
- 
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, Facebook or Twitter.
 
 
              

 
    
Top comments (1)
😼 cheers ⭐⭐⭐