Devops

Devops

  • Overview
  • Syllabus
  • Project
  • Interview Questions

Overview

Traditionally development, implementation and management of software and IT Infrastructure were done using various different framework and best practices. These frameworks did not effectively integrated development, implementation and management stages and there were gaps among these stages resulting into many issues.

DevOps is an emerging set of principles, methods and practices for communication, collaboration and integration between software development (application/software engineering) and IT operations (systems administration/infrastructure) professionals. It has developed in response to the emerging understanding of the interdependence and importance of both the development and operations disciplines in meeting an organization’s goal of rapidly producing software products and services. • It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably. • Companies that practice DevOps have reported significant benefits, including significantly shorter time-to-market, improved customer satisfaction, better product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation.

There are several tools available which will help performing work in specific area. Every company may use different tool so companies provide tools training when employee joins. Example – Docker, Jenkins, ELK, Monit, Nagios etc…

Individual working in IT Industry at any level or function should do this training & certification. Almost all companies started adapting DevOps framework. In the next 5 years this framework will be used by almost all companies as per prediction made by Gartner and Forrester, so doing this certification now will add value in your career and give you multi fold return on your investment in this training and certification.

Syllabus

    1.DevOps Essentials 

    •  Why DevOps? 
    •  What is DevOps?
    •  DevOps Market Trends
    •  DevOps Engineer Skills
    •  DevOps Delivery Pipeline
    •  DevOps Ecosystem 
    •  Use Case 

    3.GIT AND JENKINS 

    •  Introduction to VCS and GIT
    •  GIT File workflow 
    •  Important GIT Commands 
    •  Introduction to Continuous Integration and Jenkins
    •  Plugin Management in Jenkins
    •  Various scenarios of Building Delivery Pipeline 

    5.Build and Test Automation 

    •  Build Setup in Jenkins
    •  Test Automation
    •  Security in Jenkins
    •  Notification System 

    7.Containerization using Docker 

    •  What and Why of Containers
    •  Introduction to Docker
    •  Docker Fundamentals
    •  Image Distribution
    •  Docker Containers  

     

    2.Docker Commands and Use-cases

    •  Docker Networking
    •  Docker Volumes
    •  Docker Files

    4.ANSIBLE 

    • Introduction to Ansible
    •  Install Ansible and run Adhoc commands 
    •  Ansible playbooks
    •  Ansible Roles
    •  Ansible Variables
    •  Ansible Vault
    •  Integrate Ansible with AWS 

    6.NAGIOS 

    •  Introduction to Nagios
    •  Nagios installation
    •  Monitoring using Nagios 

If you haven’t used a DevOps approach, or are trying to transition over, how do you set your team up for success when managing DevOps projects? Here are eight best practices to help you get started.
1. Start with small projects
When starting a new way of managing a project, it’s a good idea to start small. Let your team get a sense of how this new DevOps approach works in the real world. The best way to accomplish this introduction—even better than reading books and taking courses—is to try it with a small project.
This approach is especially effective if the team is well connected and has been working together for a while. This maximizes the chances of success and will create the right environment to start implementing some of the other practices explained in this article.
2. Minimum Viable Product
Even within the context of a small project, if you haven’t yet started using this approach, the concept of the minimum viable product, or MVP, is extremely helpful. One popular industry belief is that the MVP is a critical and necessary part of any DevOps project.
A minimum viable product focuses on high return and lost risk projects, and can be measured and improved upon with each iteration. Putting this into action is a way to create fast, small products that can be deployed quickly and measured for feedback. A well-run DevOps environment can take full advantage of what is learned in these short cycles and do small, Agile course corrections along the way.
3. Use the right tools
Because DevOps is all about collaboration, communication, the removal of silos and unnecessary overhead, it’s extremely important to use tools that will facilitate these principles. Success in DevOps is typically very much connected to the tools used.
When considering tools for your DevOps project, look for solutions that will simplify aspects of configuration management, application deployment, monitoring and version control.
4. Eliminate silos
If there’s one bad word in DevOps circles, it’s the word “silo.” Silos and DevOps do not go together. The reason is simple: DevOps has to do with flow and integration, which means development and operations move quickly and in a horizontal manner. Silos, on the other hand, are vertical and walled in.
But how do we break down silos and the silo culture? According to a Forbes article by Brent Gleeson, some of the best ways to break down the silo mentality are to create a unified vision within the organization so all stakeholders and team members understand that they are all working towards a common goal. Additionally, it’s important to motivate and incentivize flow and integration not only in the context of a single project, but across all aspects of work.
5. Reduce handoffs
Some of the most wasteful aspects of any project are handoffs. This is work that is completed by one person or team, and then packaged and handed off to the next phase to be completed by another team or person. This process turns any project into a sequence of discrete steps.
DevOps projects, on the other hand, sees projects as a continuous flow from beginning to end. By minimizing handoffs, discrete steps tend to disappear, facilitating a DevOps culture.
6. Create real-time project visibility
This is very important: In order to maximize flow and integration, everyone who’s part of a DevOps system needs to know where the project stands. While access to progress measurements can be useful, in a DevOps environment it’s paramount that all team members have access to the status of the project and its many indexes of progress.
Creating real time project visibility can be done by using the right tools and encouraging all involved to engage in a centralized way. Consider using collaborative project management software that everyone can access, and one that shows updated schedules every time a change is made.
7. Reduce overhead
There are many ways to maximize collaboration and productivity. Reducing company overhead is an interesting approach that many don’t consider. Work and resources saved from processing overhead can be redirected to increase productivity and collaboration.
For example, overhead can be reduced by:
  •  Cutting back on meetings (duration and number of)
  •  Eliminating status reports
  •  Minimizing company turnover. By investing in your team, you will motivate them to stay with the company and do good work.
  •  Give employees the option to exchange some commute time for work time.
8. Manage change collaboratively
Effective change management can be a struggle for any project. Having a systematic way to approach change management is critical.
In DevOps, dealing with change management is even more important. In an effort to maximize flow and collaboration, dealing with change effectively can only be done when the team collaborates and works together.
The first step is to understand and communicate the need for a change management culture. Then, using the tools mentioned earlier, create procedures and processes to manage these changes in a transparent and collaborative way.
DevOps is a fascinating topic, and will become more and more mainstream. (Target just announced its moving to DevOps.) If you want to get in on more DevOps discussions and insights, I highly recommend the Arrested DevOps podcast.