Week-10 Slides
Week-10 Slides
Construction and
Development
Week-10
DevOps
• The DevOps is the combination of two words, one is Development
and other is Operations. It is a culture to promote the development
and operation process collectively.
• The DevOps will help you to learn DevOps basics and provide depth
knowledge of various DevOps tools such as Git, Ansible, Docker,
Puppet, Jenkins, Chef, Nagios, and Kubernetes.
Why DevOps?
• The operation and development team worked in complete isolation.
• After the design-build, the testing and deployment are performed
respectively. That's why they consumed more time than actual build
cycles.
• Without the use of DevOps, the team members are spending a large
amount of time on designing, testing, and deploying instead of
building the project.
• Manual code deployment leads to human errors in production.
• Coding and operation teams have their separate timelines and are not
in synch, causing further delays.
Water Fall Vs Agile
Waterfall Development Process
• Linear/Sequential
• Stages
• Advantages
• Disadvantages
Agile
• Iterative Process
• Workflow
• Advantages
• Disadvantages
• Agile Vs Waterfall
• Linear fashion of software development
Why DevOps?
◆ Efficiency - Faster time to market
◆ Predictability - Lower failure rate of new releases
◆ Reproducibility – Version everything
◆ Maintainability - Faster time to recovery in the event of a new
• 5) Monitor • 7) Operate
• Continuous monitoring is used to identify • DevOps changes the way traditional approach
any risk of failure. Also, it helps in tracking of developing and testing separately. The
the system accurately so that the health of teams operate in a collaborative way where
the application can be checked. The both the teams actively participate
monitoring becomes more comfortable with throughout the service lifecycle. The
many third-party tools such as Splunk. operation team interacts with developers, and
they come up with a monitoring plan which
• 6) Deploy serves the IT and business requirements.
• Many systems can support the scheduler for • 8) Release
automated deployment. The cloud
• Deployment to an environment can be done
management platform enables users to
by automation. But when the deployment is
capture accurate insights and view the made to the production environment, it is
optimization scenario, analytics on trends by done by manual triggering.
the deployment of dashboards.
DevOps Lifecycle
• 1) Continuous Development
• This phase involves the planning and coding of the software. The
vision of the project is decided during the planning phase. And the
developers begin developing the code for the application. There
are no DevOps tools that are required for planning.
• 2) Continuous Integration
• This stage is the heart of the entire DevOps lifecycle. It is a
software development practice in which the developers require to
commit changes to the source code more frequently on a daily or
weekly basis. Building code is not only involved compilation, but it
also includes unit testing, integration testing, code review, and
packaging. Jenkins is a popular tool used in this phase.
• 3) Continuous Testing
• This phase, where the developed software is continuously testing
for bugs. For constant testing, automation testing tools such as
TestNG, JUnit, Selenium, etc are used. These tools allow QAs to
test multiple code-bases thoroughly in parallel to ensure that
there is no flaw in the functionality. This entire testing phase can
automate with the help of a Continuous Integration tool called
Jenkins.
• ent
• Ali is a PhD student and teaches BS students
DevOps Lifecycle
• 4) Continuous Monitoring
• Monitoring is a phase that involves all the operational factors of the entire DevOps process, where
important information about the use of the software is recorded and carefully processed to find out
trends and identify problem areas. It may occur in the form of documentation files or maybe produce
large-scale data about the application parameters when it is in a continuous use position. The system
errors such as server not reachable, low memory, etc are resolved in this phase. It maintains the security
and availability of the service.
• 5) Continuous Feedback
• The application development is consistently improved by analyzing the results from the operations of
the software. This is carried out by placing the critical phase of constant feedback between the
operations and the development of the next version of the current software application.
• 6) Continuous Deployment
• In this phase, the code is deployed to the production servers. Also, it is essential to ensure that the code
is correctly used on all the servers. The new code is deployed continuously, and configuration
management tools play an essential role in executing tasks frequently and quickly. Here are some
popular tools which are used in this phase, such as Chef, Puppet, Ansible, and SaltStack.
• Continuous Operations
• It is clear from the discussion that continuity is the critical factor in the DevOps in removing steps that
often distract the development, take it longer to detect issues and produce a better version of the
product after several months. With DevOps, we can make any software product more efficient and
increase the overall count of interested customers in your product.
DevOps Principles
• End to End Responsibility:
DevOps team need to provide performance support until they become the end of life. It
enhances the responsibility and the quality of the products engineered.
• Continuous Improvement:
• DevOps culture focuses on continuous improvement to minimize waste. It
continuously speeds up the growth of products or services offered .
• Automate Everything:
• Automation is an essential principle of the DevOps process. This is for software
development and also for the entire infrastructure landscape .
• Custom Centric Action:
• DevOps team must take customer-centric for that they should continuously invest in
products and services.
• Monitor and test everything:
• The DevOps team needs to have robust monitoring and testing procedures.
• Work as one team:
• In the DevOps culture role of the designers, developers, and testers are already
defined. All they needed to do is work as one team with complete collaboration.
DevOps Tools
• Puppet
• Puppet is the most widely used DevOps tool. It allows the delivery and release of the
technology changes quickly and frequently. It has features of versioning, automated
testing, and continuous delivery.
• Ansible
• Ansible is a leading DevOps tool. Ansible is an open-source IT engine that automates
application deployment, cloud provisioning, intra service orchestration, and other IT tools.
• Docker
• Docker is a high-end DevOps tool that allows building, ship, and run distributed
applications on multiple systems.
• Nagios
• Nagios is one of the more useful tools for DevOps. It can determine the errors and rectify
them with the help of network, infrastructure, server, and log monitoring systems.
• Jenkins
• Jenkins is a DevOps tool for monitoring the execution of repeated tasks. Jenkins is a
software that allows continuous integration. Jenkins will be installed on a server where the
central build will take place. It helps to integrate project changes more efficiently by finding
the issues quickly.