What every newbie in DevOps need to know
Are you considering being a DevOps engineer?
This article addresses preliminary details you need to know when starting your journey to becoming a DevOps engineer. If you’re new to the programming world, I will do an intro on what programming is and what you can consider while going into the field.
What is a programming language?
Programming language is a computer language used in computer programming to implement algorithms. An algorithm is a specific procedure for solving a well-defined computational problem. Some programming languages are Python, Java, JavaScript, PHP, Ruby, SQL, Rust, Kotlin, C++, etc.
Anyone venturing into being a DevOps engineer should have a basic knowledge of some programming languages. I would recommend Python and Java. They seem pretty much easy for those getting into the programming world. For versatility, you can still consider others too.
Tools for programming
While you learn these languages it’s important you practice along. This gives you mastery for working on projects and delivering jobs. Code editors enable you to practice your code as you learn. Some code editors you can consider are Visual studio code, Kite, Atom, Webuilder, Notepad++. I would also recommend Visual studio code as it’s flexible to use.
Linux and version control
Linux
Linux is an open-source (that is; the code is available to the public even for editing) operating system that manages the communication between software and hardware of a system.
Version control
Version control is the practice of controlling and managing changes to a software code. It’s also known as source control. It helps the software team manage changes to the source code continuously. The most popular version control tool is Git.
We would not be covering the various commands in this article as regards Linux and git but we would do in other articles.
What is DevOps?
DevOps is a combination of two words — development and operation, it’s a set of practices that combines the development aspect of programming and the operations aspect of programming. It is a combination of software development and IT operations. DevOps was introduced to make the deployment of software applications easy. Before DevOps, programmers spend lots of time deploying their applications. With the introduction of DevOps, deploying applications became faster, it also gave rise to a more stabilized work environment, an improvement in code quality, automation, and continuous delivery became possible.
DevOps lifecycle
The DevOps lifecycle consists of the following; Continuous development, Continuous Integration, Continuous Testing, Continuous Monitoring, and Continuous Deployment. We would be discussing them for more understanding.
→ Continuous Development: This phase is where planning and software coding takes place. Planning involves understanding the project. Software coding involves the plan implemented on various software applications with various programming languages as we discussed earlier in the article. The process of maintaining the code is what we call Source Code Management (SCM). This is done with the aid of Git, Gitlab, TFS e.t.c.
→ Continuous Integration: As the developers work on the code, there is usually frequent change which could be daily or weekly basis. This is where continuous integration comes to play. In continuous integration, the new code or the changes made are integrated into the existing code. A popular tool for continuous integration is Jenkins, it makes the whole process easy and proceeds the code to either testing or production.
→ Continuous Testing: In this phase, the software is continuously tested for bugs. With continuous testing, developers save time because it’s an automated process compared to when it’s done manually. It’s a guaranteed way to know the codes are working and evaluate the quality of the software as part of a continuous delivery process. Some continuous testing tools are TestNG, Selenium and JUnit.
→ Continuous Monitoring: Continuous monitoring helps with sustaining the availability of services in the application. Here, threats and reoccurring system errors are checked. Also, security issues get resolved and problems are automatically detected and fixed. Some tools used for continuous monitoring are ELK Stack, Sensu, NewRelik, and Nagios.
→ Continuous Deployment: This phase occurs before continuous monitoring and is always active in the lifecycle. As codes are deployed, integrated, and tested, they are deployed, while the monitoring happens alongside. Configuration management is introduced in this phase as it carries out the deployment of the code on all servers. Some configuration management tools are Ansible, puppet, and Chef.
There is more to know about DevOps like I said earlier it’s just a preliminary to what DevOps is all about.
We would be taking you through the journey. kindly keep a watch on our page; aleqxan.medium.com or twitter.com/aleqxan