UNIT-1
INTRODUCTION
INTRODUCTION
Software Development Life Cycle (SDLC) :
• A software life cycle model (also termed
process model) is a pictorial and diagrammatic
representation of the software life cycle.
• A life cycle model represents all the methods
required to make a software product transit
through its life cycle stages.
SDLC
Waterfall model
Agile development model
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.
• DevOps (development and operations) is a set of
practices that combines software development.
• (Dev) and IT operations (Ops) in order to shorten the
systems development life cycle and provide
continuous delivery with high software quality.
• DevOps aims to improve collaboration between
development and operations teams, automate and
streamline the process of building, testing, and
deploying software, and reduce the time it takes to
deliver new features and updates to users.
• DevOps involves a cultural shift towards increased
collaboration and communication between teams, as well
as the adoption of tools and processes that enable
automation and continuous integration and delivery (CI/CD)
This includes practices such as agile development,
continuous integration, continuous delivery, infrastructure
as code, and monitoring and feedback loops .
• By adopting DevOps practices, organizations can increase
the speed of software delivery, improve the quality of
software, and reduce the likelihood of errors or downtime .
• This can lead to greater customer satisfaction, increased
competitiveness, and improved business outcomes .
Why DevOps?
• Before going further, we need to understand why we need the
DevOps over the other methods.
• o The operation and development team worked in complete
isolation.
• o After the design-build, the testing and deployment are performed
respectively. That's why they consumed more time than actual build
cycles.
• o 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.
• o Manual code deployment leads to human errors in production.
• o Coding and operation teams have their separate timelines and are
not in synch, causing further delays.
DEVOPS LIFECYCLE
ITIL
• ITIL is an abbreviation of Information Technology
Infrastructure Library.
• It is a framework which helps the IT professionals for
delivering the best services of IT. This framework is a set of
best practices to create and improve the process of ITSM
(IT Service Management).
• It provides a framework within an organization, which
helps in planning, measuring, and implementing the
services of IT.
• The main motive of this framework is that the resources
are used in such a way so that the customer get the better
services and business get the profit.
1) Service Strategy: It is the first and initial stage in the lifecycle of the
ITIL framework. The main aim of this stage is that it offers a strategy
on the basis of the current market scenario and business
perspective for the services of IT.
• This stage mainly defines the plans, position, patters, and
perspective which are required for a service provider. It establishes
the principles and policies which guide the whole lifecycle of IT
service.
• Following are the various essential services or processes which
come under the Service Strategy stage:
• o Financial Management
• o Demand Management
• o Service Portfolio Management
• o Business Relationship Management
• o Strategy Management
2) Service Design: It is the second phase or a stage in the lifecycle of a service in
the framework of ITIL. This stage provides the blueprint for the IT services.
The main goal of this stage is to design the new IT services. We can also
change the existing services in this stage.
Following are the various essential services or processes which comes under
the Service Design stage:
• o Service Level Management
• o Capacity Management
• o Availability Management
• o Risk Management
• o Service Continuity Management
• o Service Catalogue Management
• o Information Security Management
• o Supplier Management
• o Compliance Management
• o Architecture Management
3) Service Transition: Service Transition is the third stage
in the lifecycle of ITIL Management Framework.
• The main goal of this stage is to build, test, and develop
the new or modified services of IT. This stage of service
lifecycle manages the risks to the existing services. It
also certifies that the value of a business is obtained.
• This stage also makes sure that the new and changed IT
services meet the expectation of the business as
defined in the previous two stages of service strategy
and service design in the lifecycle.
• It can also easily manage or maintains the transition of
new or modified IT services from the Service Design
stage to Service Operation stage.
There are following various essential services or
processes which comes under the Service Transition
stage:
o Change Management
o Release and Deployment Management
o Service Asset and Configuration Management
o Knowledge Management
o Project Management (Transition Planning and
Support)
o Service Validation and Testing
o Change Evaluation
4)Service Operations: Service Operations is the fourth
stage in the lifecycle of ITIL.
• This stage provides the guidelines about how to
maintain and manage the stability in services of IT,
which helps in achieving the agreed level targets of
service delivery.
• This stage is also responsible for monitoring the
services of IT and fulfilling the requests.
• In this stage, all the plans of transition and design are
measured and executed for the actual efficiency. It is
also responsible for resolving the incidents and
carrying out the operational tasks.
There are following various essential services or
processes which comes under the stage of
Service Operations:
o Event Management
o Access Management
o Problem Management
o Incident Management
o Application Management
o Technical Management
5) Continual Service Improvement: It is the fifth stage in the
lifecycle of ITIL service. This stage helps to identify and
implement strategies, which is used for providing better services
in future.
Following are the various objectives or goals under this CSI:
o It improves the quality services by learning from the past failures.
o It also helps in analyzing and reviewing the improvement
opportunities in every phase of the service lifecycle.
o It also evaluates the service level achievement results.
o It also describes the best guidelines to achieve the large-scale
improvements in the quality of service.
o It also helps in describing the concept of KPI, which is a process
metrics-driven for evaluating and reviewing the performance of
the services
There are following various essential services or
processes which comes under the stage of CSI:
o Service Review
o Process Evaluation
o Definition of CSI Initiatives o Monitoring of CSI
Initiatives
Advantages of ITIL
• Following are the various advantages or benefits of ITIL:
1. One of the best advantages of ITIL is that it helps in increasing
the customer satisfaction.
2. It allows managers to improve the decision-making process.
3. It is also used for creating the clear structure of an
organization.
4. It also helps managers by controlling the infrastructure
services.
5. It improves the interaction between the customers and the
service provider.
6. With the help of this framework, service delivery is also
improved.
7. It establishes the framework of ITSM for the organization.
The DevOps process and Continuous Delivery
• The DevOps process flow is all about agility
and automation.
• Each phase in the DevOps lifecycle focuses on
closing the loop between development and
operations and driving production through
continuous development, integration, testing,
monitoring and feedback, delivery, and
deployment.
Continuous Delivery and pipeline
• Continuous Planning: Continuous Planning process
makes business capable of planning delivery of new
feature continuously.
• New business requirement
• Change required in existing functionality
• Prioritized defect
• Could be planned to deliver continuously and
becomes input to implementation team.
Requirements management tools, matured
communication models, and effective feedback loops
make it possible to establish continuous planning.
• Continuous Development:
• This is the phase that involves ‘coding‘of the software.
• The vision ofthe project is decided during the planning
phase and the developers begin developing the code for
the application. there are a number of tools for
maintaining the code.
• The code can be written in any language, but it is
maintained by using Version Control tools. The most
popular tools used are Git,SVN, Mercurial, CVS, and JIRA.
• Also tools like Ant, Maven, Gradle can be used in this
phase forbuilding/ packaging the code into an
executable file that can be forwarded to any of the next
phases.
Continuous Integration: This stage is the heart of the
entire DevOps life cycle.
• It is a software development practice in which the
developers require to commit changes to the
source code more frequently.
• Jenkins is a very popular tool used in this phase.
Whenever there is a change in the Git repository,
Jenkins fetches the updated code and itprepares a
build of that code which is an executable file in the
form of a war or a jar. This build is then forwarded
to the test server or the production server
• 4. Continuous Testing: This is the stage where the
developed software is continuously tested for bugs.
• For Continuous testing, automation testing tools like
Selenium, TestNG, JUnit, etc are used.
• 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, Docker Containers
can be used for simulating the test environment.
• Selenium does the automation testing, and the reports
are generated by TestNG. This entire testing phase can
be automated with the help of a Continuous
Integration tool called Jenkins.
5. Continuous Deployment: This is the stage where
the code is deployed to the production servers. It is
also important to ensure that the code is correctly
deployed on all the servers. Configuration
management tools play an important role in
executing tasks quickly and frequently.
• Some populartools that are used here are Puppet,
Chef, Ansible, Puppet ect. Containerization tools
help inmaintaining consistency across the
environments where the application is developed,
tested anddeployed
• 5. Continuous Deployment: This is the stage where
the code is deployed to the production servers.
• It is also important to ensure that the code is
correctly deployed on all the servers.
Configurationmanagement tools play an important
role in executing tasks quickly and frequently.
• Some populartools that are used here are Puppet,
Chef, Ansible, Puppet ect. Containerization tools
help in maintaining consistency across the
environments where the application is developed,
tested and deployed.
6. Continuous monitoring: This is a very crucial stage of the
DevOps life cycle where youcontinuously monitor the
performance of your application. Here vital information
about the use ofthe software is recorded. This information
is processed to recognize the proper functionality of
theapplication.
The system errors such as low memory, server not reachable,
etc are resolved in this phase. The popular tools used for
this are Splunk, ELK Stack, Nagios, NewRelic and Sensu.
7. Continuous Feedback: In this phase the feedback on
multiple application aspects from different
• stakeholders and tools is given back to a team who can
consider it for next iteration of release.
• Scrum is a framework used by teams to manage
work and solve problems collaboratively in short
cycles.
• Scrum is an Agile framework for managing and
completing complex projects, particularly in
software development.
• In Scrum, a team works in sprints of two to four
weeks, during which time they plan, design,
develop, test, and deliver a potentially shippable
product increment.
• The team meets regularly to discuss progress,
review work, and plan for the next sprint.
Scrum Lifecycle
Kanban
• Although Kanban was created for manufacturing,
software development shares many of the same
goals, such as increasing flow and throughput.
• In Kanban, work is visualized on a board,
typically with columns that represent the various
stages of work, such as "To Do," "In Progress,"
and "Done." Each piece of work is represented
by a card or sticky note that moves across the
board as it progresses through the stages
Key principles of Kanban
• Visualize the Flow of Work.
• Limit Work in Progress (WIP).
• Manage Flow.
• Make Process Policies Explicit..
• Implement Feedback Loops.
• Improve Collaboratively, Evolve
Experimentally.
• Kanban boards
• The Kanban board is one of the tools teams use
to implement Kanban practices. A Kanban
board can be a physical board or a software
application that shows cards arranged into
columns.
• Typical column names are To-do, Doing, and
Done, but teams can customize the names to
match their workflow states. For example, a
team might prefer to use New, Development,
Testing, UAT, and Done.
Kanban and Scrum in Agile development
• While broadly fitting under the umbrella of
Agile development, Scrum and Kanban are
quite different.
● Scrum focuses on fixed length sprints, while
Kanban is a continuous flow model.
● Scrum has defined roles, while Kanban doesn't
define any team roles.
● Scrum uses velocity as a key metric, while
Kanban uses cycle time.
• Delivery Pipeline:
• A DevOps pipeline is a set of automated processes
and tools that allows both developers and
operations professionals to work cohesively to build
and deploy code to a production environment.
• In DevOps, a delivery pipeline is a process that
enables the continuous delivery of software
applications, from development to production. The
pipeline is a series of stages or steps that automate
the build, test, and deployment of software, as well
as any necessary quality checks and security scans
BottleNecks
• Here are some common bottlenecks in DevOps:
• Database schema changes.
• Test data doesn't match expectations.
• Deploys are person dependent, and the person
wasn't available.
• There is unnecessary red tape associated with
propagating changes.
• Your changes aren't small and therefore require
a lot of work to deploy safely. This might be
because your architecture is basically a
monolith.

DEVOPS __20204_DEVELOPMENT +2210UNIT1.pptx

  • 1.
  • 2.
    INTRODUCTION Software Development LifeCycle (SDLC) : • A software life cycle model (also termed process model) is a pictorial and diagrammatic representation of the software life cycle. • A life cycle model represents all the methods required to make a software product transit through its life cycle stages.
  • 3.
  • 4.
  • 5.
  • 7.
    DevOps The DevOps isthe combination of two words, one is Development and other is Operations. It is a culture to promote the development and operation process collectively.
  • 8.
    • DevOps (developmentand operations) is a set of practices that combines software development. • (Dev) and IT operations (Ops) in order to shorten the systems development life cycle and provide continuous delivery with high software quality. • DevOps aims to improve collaboration between development and operations teams, automate and streamline the process of building, testing, and deploying software, and reduce the time it takes to deliver new features and updates to users.
  • 9.
    • DevOps involvesa cultural shift towards increased collaboration and communication between teams, as well as the adoption of tools and processes that enable automation and continuous integration and delivery (CI/CD) This includes practices such as agile development, continuous integration, continuous delivery, infrastructure as code, and monitoring and feedback loops . • By adopting DevOps practices, organizations can increase the speed of software delivery, improve the quality of software, and reduce the likelihood of errors or downtime . • This can lead to greater customer satisfaction, increased competitiveness, and improved business outcomes .
  • 10.
    Why DevOps? • Beforegoing further, we need to understand why we need the DevOps over the other methods. • o The operation and development team worked in complete isolation. • o After the design-build, the testing and deployment are performed respectively. That's why they consumed more time than actual build cycles. • o 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. • o Manual code deployment leads to human errors in production. • o Coding and operation teams have their separate timelines and are not in synch, causing further delays.
  • 11.
  • 13.
    ITIL • ITIL isan abbreviation of Information Technology Infrastructure Library. • It is a framework which helps the IT professionals for delivering the best services of IT. This framework is a set of best practices to create and improve the process of ITSM (IT Service Management). • It provides a framework within an organization, which helps in planning, measuring, and implementing the services of IT. • The main motive of this framework is that the resources are used in such a way so that the customer get the better services and business get the profit.
  • 15.
    1) Service Strategy:It is the first and initial stage in the lifecycle of the ITIL framework. The main aim of this stage is that it offers a strategy on the basis of the current market scenario and business perspective for the services of IT. • This stage mainly defines the plans, position, patters, and perspective which are required for a service provider. It establishes the principles and policies which guide the whole lifecycle of IT service. • Following are the various essential services or processes which come under the Service Strategy stage: • o Financial Management • o Demand Management • o Service Portfolio Management • o Business Relationship Management • o Strategy Management
  • 16.
    2) Service Design:It is the second phase or a stage in the lifecycle of a service in the framework of ITIL. This stage provides the blueprint for the IT services. The main goal of this stage is to design the new IT services. We can also change the existing services in this stage. Following are the various essential services or processes which comes under the Service Design stage: • o Service Level Management • o Capacity Management • o Availability Management • o Risk Management • o Service Continuity Management • o Service Catalogue Management • o Information Security Management • o Supplier Management • o Compliance Management • o Architecture Management
  • 17.
    3) Service Transition:Service Transition is the third stage in the lifecycle of ITIL Management Framework. • The main goal of this stage is to build, test, and develop the new or modified services of IT. This stage of service lifecycle manages the risks to the existing services. It also certifies that the value of a business is obtained. • This stage also makes sure that the new and changed IT services meet the expectation of the business as defined in the previous two stages of service strategy and service design in the lifecycle. • It can also easily manage or maintains the transition of new or modified IT services from the Service Design stage to Service Operation stage.
  • 18.
    There are followingvarious essential services or processes which comes under the Service Transition stage: o Change Management o Release and Deployment Management o Service Asset and Configuration Management o Knowledge Management o Project Management (Transition Planning and Support) o Service Validation and Testing o Change Evaluation
  • 19.
    4)Service Operations: ServiceOperations is the fourth stage in the lifecycle of ITIL. • This stage provides the guidelines about how to maintain and manage the stability in services of IT, which helps in achieving the agreed level targets of service delivery. • This stage is also responsible for monitoring the services of IT and fulfilling the requests. • In this stage, all the plans of transition and design are measured and executed for the actual efficiency. It is also responsible for resolving the incidents and carrying out the operational tasks.
  • 20.
    There are followingvarious essential services or processes which comes under the stage of Service Operations: o Event Management o Access Management o Problem Management o Incident Management o Application Management o Technical Management
  • 21.
    5) Continual ServiceImprovement: It is the fifth stage in the lifecycle of ITIL service. This stage helps to identify and implement strategies, which is used for providing better services in future. Following are the various objectives or goals under this CSI: o It improves the quality services by learning from the past failures. o It also helps in analyzing and reviewing the improvement opportunities in every phase of the service lifecycle. o It also evaluates the service level achievement results. o It also describes the best guidelines to achieve the large-scale improvements in the quality of service. o It also helps in describing the concept of KPI, which is a process metrics-driven for evaluating and reviewing the performance of the services
  • 22.
    There are followingvarious essential services or processes which comes under the stage of CSI: o Service Review o Process Evaluation o Definition of CSI Initiatives o Monitoring of CSI Initiatives
  • 24.
    Advantages of ITIL •Following are the various advantages or benefits of ITIL: 1. One of the best advantages of ITIL is that it helps in increasing the customer satisfaction. 2. It allows managers to improve the decision-making process. 3. It is also used for creating the clear structure of an organization. 4. It also helps managers by controlling the infrastructure services. 5. It improves the interaction between the customers and the service provider. 6. With the help of this framework, service delivery is also improved. 7. It establishes the framework of ITSM for the organization.
  • 25.
    The DevOps processand Continuous Delivery • The DevOps process flow is all about agility and automation. • Each phase in the DevOps lifecycle focuses on closing the loop between development and operations and driving production through continuous development, integration, testing, monitoring and feedback, delivery, and deployment.
  • 26.
  • 27.
    • Continuous Planning:Continuous Planning process makes business capable of planning delivery of new feature continuously. • New business requirement • Change required in existing functionality • Prioritized defect • Could be planned to deliver continuously and becomes input to implementation team. Requirements management tools, matured communication models, and effective feedback loops make it possible to establish continuous planning.
  • 28.
    • Continuous Development: •This is the phase that involves ‘coding‘of the software. • The vision ofthe project is decided during the planning phase and the developers begin developing the code for the application. there are a number of tools for maintaining the code. • The code can be written in any language, but it is maintained by using Version Control tools. The most popular tools used are Git,SVN, Mercurial, CVS, and JIRA. • Also tools like Ant, Maven, Gradle can be used in this phase forbuilding/ packaging the code into an executable file that can be forwarded to any of the next phases.
  • 29.
    Continuous Integration: Thisstage is the heart of the entire DevOps life cycle. • It is a software development practice in which the developers require to commit changes to the source code more frequently. • Jenkins is a very popular tool used in this phase. Whenever there is a change in the Git repository, Jenkins fetches the updated code and itprepares a build of that code which is an executable file in the form of a war or a jar. This build is then forwarded to the test server or the production server
  • 31.
    • 4. ContinuousTesting: This is the stage where the developed software is continuously tested for bugs. • For Continuous testing, automation testing tools like Selenium, TestNG, JUnit, etc are used. • 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, Docker Containers can be used for simulating the test environment. • Selenium does the automation testing, and the reports are generated by TestNG. This entire testing phase can be automated with the help of a Continuous Integration tool called Jenkins.
  • 33.
    5. Continuous Deployment:This is the stage where the code is deployed to the production servers. It is also important to ensure that the code is correctly deployed on all the servers. Configuration management tools play an important role in executing tasks quickly and frequently. • Some populartools that are used here are Puppet, Chef, Ansible, Puppet ect. Containerization tools help inmaintaining consistency across the environments where the application is developed, tested anddeployed
  • 34.
    • 5. ContinuousDeployment: This is the stage where the code is deployed to the production servers. • It is also important to ensure that the code is correctly deployed on all the servers. Configurationmanagement tools play an important role in executing tasks quickly and frequently. • Some populartools that are used here are Puppet, Chef, Ansible, Puppet ect. Containerization tools help in maintaining consistency across the environments where the application is developed, tested and deployed.
  • 35.
    6. Continuous monitoring:This is a very crucial stage of the DevOps life cycle where youcontinuously monitor the performance of your application. Here vital information about the use ofthe software is recorded. This information is processed to recognize the proper functionality of theapplication. The system errors such as low memory, server not reachable, etc are resolved in this phase. The popular tools used for this are Splunk, ELK Stack, Nagios, NewRelic and Sensu. 7. Continuous Feedback: In this phase the feedback on multiple application aspects from different • stakeholders and tools is given back to a team who can consider it for next iteration of release.
  • 36.
    • Scrum isa framework used by teams to manage work and solve problems collaboratively in short cycles. • Scrum is an Agile framework for managing and completing complex projects, particularly in software development. • In Scrum, a team works in sprints of two to four weeks, during which time they plan, design, develop, test, and deliver a potentially shippable product increment. • The team meets regularly to discuss progress, review work, and plan for the next sprint.
  • 37.
  • 38.
    Kanban • Although Kanbanwas created for manufacturing, software development shares many of the same goals, such as increasing flow and throughput. • In Kanban, work is visualized on a board, typically with columns that represent the various stages of work, such as "To Do," "In Progress," and "Done." Each piece of work is represented by a card or sticky note that moves across the board as it progresses through the stages
  • 39.
    Key principles ofKanban • Visualize the Flow of Work. • Limit Work in Progress (WIP). • Manage Flow. • Make Process Policies Explicit.. • Implement Feedback Loops. • Improve Collaboratively, Evolve Experimentally.
  • 40.
    • Kanban boards •The Kanban board is one of the tools teams use to implement Kanban practices. A Kanban board can be a physical board or a software application that shows cards arranged into columns. • Typical column names are To-do, Doing, and Done, but teams can customize the names to match their workflow states. For example, a team might prefer to use New, Development, Testing, UAT, and Done.
  • 41.
    Kanban and Scrumin Agile development • While broadly fitting under the umbrella of Agile development, Scrum and Kanban are quite different. ● Scrum focuses on fixed length sprints, while Kanban is a continuous flow model. ● Scrum has defined roles, while Kanban doesn't define any team roles. ● Scrum uses velocity as a key metric, while Kanban uses cycle time.
  • 42.
    • Delivery Pipeline: •A DevOps pipeline is a set of automated processes and tools that allows both developers and operations professionals to work cohesively to build and deploy code to a production environment. • In DevOps, a delivery pipeline is a process that enables the continuous delivery of software applications, from development to production. The pipeline is a series of stages or steps that automate the build, test, and deployment of software, as well as any necessary quality checks and security scans
  • 43.
    BottleNecks • Here aresome common bottlenecks in DevOps: • Database schema changes. • Test data doesn't match expectations. • Deploys are person dependent, and the person wasn't available. • There is unnecessary red tape associated with propagating changes. • Your changes aren't small and therefore require a lot of work to deploy safely. This might be because your architecture is basically a monolith.