3 Reasons Why I am learning DevOps as a developer

What why should I learn DevOps as a software developer?
As I started my work as quality engineer I have noticed high demand in other skills that was omitted by the media and own understanding of what a engineer/developer does or is required to know at his day to day job.
1. Operating Systems & Linux

Operations
As a developer you most likely where required to know Linux based operating systems more often that you may assume you would(sorry Windows). Apart from that should be comfortable using CLI and Shell scripting!
Why so well at my work I expected mainly coding tasks etc, but in mater of fact had to operate on multiple Linux machines and use commands as: grep, cp, cat, scp and so much more. If you want to know reason I switched to Linux check the link bellow. 👇
Shell scripting can not be omitted as well as even if you write a project with Python shell script is an easier way to pass in attributes(like file locations) to your argument variables and run python within shell script. More on that check here.
Network & security
Something I know little about but personally the above mentioned + file/server management are my personal focus. But in network and security Load Balancers, HTTP/HTTPS, Firewall, Proxy Servers fall into.
Note: You don’t have to have full knowledge about these fields, understanding the basics is good enough. Own professions Sys Admins, Network, and Security are there to take care of the rest.
2. Containers & Container Orchestration

Docker
Containers are becoming the defacto software packaging model.
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
After seeing how corporates industries are excessively using Docker I have became eager to learn more about it and try to implement it in my own projects. Virtualization concepts are as important as creating a containers.
Virtualization is a relatively new technology that allows creating a completely isolated machine from scratch, all in software.
Kubernetics
Containers need to be managed. For small applications Docker compose or Docker Swarm is enough to mange them. But in case of big micro-services big container orchestration tool like Kubernetics does the job. It will help to administer and manage the cluster and deploy applications in it.
A lot of developers are good with programming languages and dislike or not willing to learn Docker as its a DevOps skillset same as Kubernetics. But as there are more developers your skillset should branch out elsewhere not solely development.
3. Continuous Integration & Continuous Deployment(CI/CD)

The developer features and bug fixes should get from development team to the servers to make it available to the end users. How will we release the new application?
That’s where CI/CD comes in with efficient and fast and automated way.
When I stepped in a Junior role I have been instantly thrown into learning Jenkins to create a job for a certain integration stage. It’s really important to know and understand the stages it takes to get to production faze.
Where do I start?
There are a lot of online resources but as of late I prefer the good old fashioned book as try to limit my screen time and use it just when needed.
