DevOps for absolute beginner📝

DevOps for absolute beginner📝

1. What is DevOps 🙄

If we break the word “DevOps” we notice two different combination i.e. “Dev” and “Ops”. The turm dev refer to as development, and the turm ops refer to as operation. The Development is responsible for development, design & building the application. In other hand s operation is responsible for deployment, testing of application. It is the technology to shorten the system development lifecycle and provide continuous delivery with high software quality.

2. Is it suitable to learn DevOps for student/beginner in tech industry/ other stream of academic education🤷‍♂️🤷‍♀️

First of all the answer is absolutely yes🎉. In case of my prospective any one can learn DevOps either he/she a student, working professional, beginner in tech industry or other stream of academic education with some computer literacy.

3. What is DevOps do✒✏

DevOps is the combination of culture, philosophies, practices and tools that deliver applications and service at high velocity, evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.

4. Lifecycle of DevOps 🚲

In case of DevOps lifecycle there are 7 stages in DevOps that are mention below:

DevOps-Steps-1.gif

Continuous Development:

Tools Used: Git, SVN, Mercurial, CVS download.png

This is the phase that involves ‘planning‘ and ‘coding‘ of the software. You decide the project vision during the planning phase and the developers begin developing the code for the application. There are no DevOps tools that are required for planning, but there are a number of tools for maintaining the code.The code can be in any language, but you maintain it by using Version Control tools. This process of maintaining the code is known as Source Code Management.After the code is developed, then you move to the Continuous Integration phase.

Continuous Integration:

Tools: Jenkins, TeamCity, Travis Continuous-Integration_Blog-486x300.png

This stage is the core of the entire DevOps life cycle. It is a practice in which the developers require to commit changes to the source code more frequently. This may be either on a daily or weekly basis.You then build every commit and this allows early detection of problems if they are present. Building code not only involves compilation but it also includes code review, unit testing, integration testing, and packaging.The code supporting new functionality is continuously integrated with the existing code. Since there is a continuous development of software, you need to integrate the updated code continuously as well as smoothly with the systems to reflect changes to the end users. In this stage, you use the tools for building/ packaging the code into an executable file so that you can forward it to the next phases.

Continuous Testing :

Tools: Jenkins, Selenium TestNG, JUnit Continuous-Delivery-Continuous-Delivery-Edureka.png

This is the stage where you test the developed software continuously for bugs using automation testing tools. These tools allow QAs to test multiple code-bases thoroughly in parallel to ensure that there are no flaws in the functionality. In this phase, you can use Docker Containers for simulating the test environment.Selenium is used for automation testing, and the reports are generated by TestNG. You can automate this entire testing phase with the help of a Continuous Integration tool called Jenkins.Suppose you have written a selenium code in Java to test your application. Now you can build this code using ant or maven. Once you build the code, you then test it for User Acceptance Testing (UAT). This entire process can be automated using Jenkins.

Continuous Deployment:

Tools Used:Chef, Puppet, Ansible, Docker, Vagrant c-2-528x201.png

This is the stage where you deploy the code on the production servers. It is also important to ensure that you correctly deploy the code on all the servers. Before moving on, let us try to understand a few things about Configuration management and Containerization tools. These set of tools here help in achieving Continuous Deployment (CD).

Configure Management:

Configuration Management is the act of establishing and maintaining consistency in an application’s functional requirements and performance. Let me put this in easier words, it is the act of releasing deployments to servers, scheduling updates on all servers and most importantly keeping the configurations consistent across all the servers.

Containerization:

Containerization tools also play an equally crucial role in the deployment stage. The containerization tools help produce consistency across Development, Test, Staging as well as Production environments. Besides this, they also help in scaling-up and scaling-down of instances swiftly.

Continuous Monitoring:

Tools Used: Splunk, ELK Stack, Nagios, New Relic Picture12-1-528x240 (1).png

This is a very critical stage of the DevOps life cycle where you continuously monitor the performance of your application. Here you record vital information about the use of the software. You then process this information to check the proper functionality of the application. You resolve system errors such as low memory, server not reachable, etc in this phase.This practice involves the participation of the Operations team who will monitor the user activity for bugs or any improper behavior of the system. The Continuous Monitoring tools help you monitor the application’s performance and the servers closely and also enable you to check the health of the system proactively.

DevOps tools are all open source, and enable everything from container builds and orchestration to micro services networking, configuration management, CI/CD automation, full-stack monitoring and more.

6. It is a free or not💸

To apply DevOps we need cloud dervice of a specific cloud service provider. Some of these are AWS, GCP, Azure cloud, alibaba cloud service etc. This cloud service provider are not free at all. The charges, term & condition, license duration are different each cloud service providers. But the tools that are use in cloud service all open source.

Many folks combine DevOps and cloud computing as one and the same. The answer is partially “yes” and partially “no”. Because they are related but they are actually two different job roles and different areas of IT industry.

8. Who is a DevOps Engineer 👨‍💻👩‍💻

Who-Is-A-DevOps-Engineer-DevOps-Engineer-Edureka-1.png DevOps Engineer is somebody who understands the Software Development Lifecycle and has the outright understanding of various automation tools for developing digital pipelines (CI/ CD pipelines).DevOps Engineer works with developers and the IT staff to oversee the code releases. They are either developers who get interested in deployment and network operations or sysadmins who have a passion for scripting and coding and move into the development side where they can improve the planning of test and deployment.

9. Reference and Resources🚩

If you want to learn more about DevOps here is some best resources, Just check it out⬇

SRE vs. DevOps

Thats it for this blog. I hope you will try it out and learn something new. Also incase i have missed something feel free to share your thoughts and feedback. Thanks for reading.

  • Reachout to me

Twitter🔗

Linkedin🔗

GitHub🔗

Getting-Started-as-a-DevOps-Engineer.jpg

Did you find this article valuable?

Support Hashnode by becoming a sponsor. Any amount is appreciated!