Professional Documents
Culture Documents
Chapter 1 Introduction To
Chapter 1 Introduction To
Chapter 1 Introduction To
Subject :- DevOps
Projections about failover, redundancy, data centre Projections about failover, redundancy, disaster recovery
locations, and storage requirements are skewed as locations, and storage requirements are pretty accurate
no inputs are available from developers who have due to the inputs from the developers.
deep knowledge of the application.
In DevOps, the Operations team is completely aware of
The operations team has no clue about the progress
progress. Operations teams interact with developers and
of the Development team. The operations team
monitoring plan that caters to IT and business needs. Th
develops a monitoring plan as per their
advanced Application Performance Monitoring (APM) T
understanding.
Before going go-live, the load testing makes the applica
Before going go-live, the load testing crashes the
development team quickly fixes the bottlenecks, and the
application, and the release is delayed.
released on time.
SDLC stands for Software Development Life Cycle. SDLC is a process that
Products. This tutorial will give you an overview of the SDLC basics SDLC
models available and their application in the industry. This tutorial also
A lean organization understands customer value and focuses its key processes to
continuously increase it. The ultimate goal is to provide perfect value to the
customer through a perfect value creation process that has zero waste.
The term "lean" was coined to describe Toyota's business during the late 1980s
by a research team headed by Jim Womack, Ph.D., at MIT's International Motor
Vehicle Program.
Purpose: What customer problems will the enterprise solve to achieve its
own purpose of prospering?
Process: How will the organization assess each major value stream to make
sure each step is valuable, capable, available, adequate, flexible, and that all
the steps are linked by flow, pull, and leveling?
Lean is a business methodology that promotes the flow of value to the customer
through two guiding tenets: continuous improvement and respect for people.
Jim Benson of Modus Cooperandi defines Lean methodology in this way:
“Lean is both a philosophy and a discipline which, at its core, increases access
to information to ensure responsible decision making in the service of creating
customer value.”
Lean methodology is not a new concept, but its modern application to business
is constantly evolving. Before Lean was known as a business methodology, it
was an approach to the manufacturing process. Keep reading to learn more
about the history and application of Lean, as well as key Lean methodology
principles.
Roots in Manufacturing
Over time, the success of applying Agile and Lean principles to software
development piqued the interest of other departments and other industries.
Today, Lean development methodology is being applied to knowledge work
that follows a process – which is essentially all knowledge work.
There are two primary concepts that guide all practice of Lean methodology,
which we call the Pillars of Lean. They are: continuous improvement and
respect for people.
Continuous improvement
When some people think of Lean methodology, they equate it with the
elimination of waste. While it’s true that Lean organizations aim to eliminate
waste (defined as anything that does not deliver value to the customer), the goal
is not elimination – it’s value creation.
Often, the best ideas come from the people with their hands on the product. In
most organizations, decisions are made at the top of the organization and
trickled down to the frontline. Lean thinking encourages allowing everyone,
especially those closest to the product and the customer, to have an equal voice,
to ensure that the voice of the customer, and those doing the work, is heard.
This is the Lean concept of going to the gemba – going to the place where the
work is done – to get ideas for improving work and creating value. Lean
thinking says that good people want to do their best work and are motivated to
make decisions that optimize their time and talent to create the most value for
the customer. Going to the gemba allows the organization to capture the best
ideas and bring them to fruition.
During the late 1980s the Central Computer and Telecommunication Agency
(CCTA) in the United Kingdom started to work on what is now known as ITIL,
the Information Technology Infrastructure Library.
The Information Technology Infrastructure Library (ITIL) is a set of concepts
and techniques for managing information technology (IT) infrastructure,
development, and operations.
The Information Technology Infrastructure Library (ITIL) is a set of practices
for IT service management (ITSM) that focuses on aligning IT services with the
needs of business.
ITIL describes processes, procedures, tasks and checklists that are not
organization-specific, used by an organization for establishing integration with
the organization's strategy, delivering value and maintaining a minimum level
of competency. It allows the organization to establish a baseline from which it
Figure : ITIL
“Service Support.”
Service Support focuses on ensuring that the customer has access to
appropriate services to support their business functions. It covers
configuration management and other support management issues including
incident, problem, change, and release management.
“Service Delivery.”
Service Delivery covers the service the business requires of IT to enable
adequate support to the business users. This includes processes for service-
level management, availability management, capacity management, financial
management for IT services, and continuity management.
“Security Management.”
It looks at security from the service provider perspective, identifying the
relationship between security management and the IT security officer, as
well as outlining how it provides the level of security necessary for the entire
organization. It further focuses on the process of implementing security
requirements identified in the IT service level agreement.
“Application Management.”
Application Management addresses the complex subject of managing
applications from initial business requirements through the application
management lifecycle, up to and including retirement. A strong emphasis is
placed on ensuring that IT projects and strategies are tightly aligned with
those of the business throughout the applications life cycle. Once an
application is approved and funded, it is tracked throughout its life cycle by
the software asset management function of ITIL.
9. Breaks larger code base into small pieces: DevOps is based on the agile
programming method. Therefore, it allows breaking larger codebases into
smaller and manageable chunks.
DevOps Workflow
Workflows provide a visual overview of the sequence in which input is
provided. It also tells about performed actions, and output is generated for an
operations process.
De
vOps WorkFlow
Workflow allows the ability to separate and arrange jobs that the users top
request. It also can mirror their ideal process in the configuration jobs.
Other than it being a cross-functional combination of the terms and concepts for
They railed against the traditional software development model, which called
for those who write code to be organizationally and functionally apart from
those who deploy and support that code.
Emphasize breaking down barriers between developers and DevOps is about software deployment and
management. operation teams.
Addresses gaps between customer requirements and development Addresses the gap between the development and
teams. Operation team
Focuses more on functional and non-functional readiness It focuses on operational and business readiness.
Agile development manages on “sprints”. It means that the timetable DevOps strives for consolidated deadlines and
is much shorter (less than a month), and several features are to be benchmarks with significant releases rather than
produced and released in that period. smaller and more frequent ones.
DevOps Principles
Here are six principles that are essential when adopting DevOps:
5. Work as one team: In the DevOps culture, the designer, developer, and
tester are already defined, and all they need to do is work as one team with
complete collaboration.
A DevOps engineer will work with development team staff to tackle the coding
and scripting needed to connect code elements, like libraries or software
development kits.
1) 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. It enables to manage entire
infrastructure as code without expanding the size of the team.
Features
Features
3) Docker
Docker is a high-end DevOps tool that allows building, ship, and run distributed
applications on multiple systems. It also helps to assemble the apps quickly
from the components, and it is typically suitable for container management.
Features
4) 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.
5) CHEF
A chef is a useful tool for achieving scale, speed, and consistency. The chef is a
cloud-based system and open source technology. This technology uses Ruby
encoding to develop essential building blocks such as recipes and cookbooks.
The chef is used in infrastructure automation and helps in reducing manual and
repetitive tasks for infrastructure management.
Chef has got its convention for different building blocks, which are required to
manage and automate infrastructure.
Features
6) Jenkins
Jenkins is a DevOps tool for monitoring the execution of repeated tasks. Jenkins
is 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.
Features
7) Git
Features
8) SALTSTACK
Features
9) Splunk
Features
10) Selenium
Features
Benefits
o With the help of SCM we can easily control all changes which are
done in development process.
o It gives the surety to check that changes are done on required area.
o It is helpful to generate the new software with old components.
o SCM has the capacity to explain everything about the process of
software development.
SCM Process
It uses the tools which keep that the necessary change has been implemented
adequately to the appropriate component. The SCM process defines a number of
tasks:
o Version Control
o Change Control
o Configuration Audit
Role Description
The change builder is the person who plans and implements the change; it could
Change
be argued that the planning component is (partially) taken on by the project
builder
manager.
Identify
Require new A customer desires new functionality and formulates a
potential
functionality REQUIREMENT.
change
Analyze Determine The project manager determines the technical feasibility of the
change technical proposed CHANGE REQUEST, leading to a CHANGE
request feasibility TECHNICAL FEASIBILITY.
Plan change Analyze change The extent of the change (i.e. what other items the change
impact effects) is determined in a CHANGE IMPACT ANALYSIS. It
The change builder tests whether what (s)he has built actually
works and satisfies the CHANGE REQUEST. As depicted in the
Test change
diagram, this can result in an iterative process together with the
above two sub-activities.
Review and Verify change The implementation of the change in the new SYSTEM
close RELEASE is verified for the last time, now by the project
This can be simplified as, though you have automated testing, the release
process is also automated, and any deployment can occur at any time with just
one click of a button.
Continuous Delivery gives you the power to decide whether to make the
releases daily, weekly, or whenever the business requires it. The maximum
benefits of Continuous Delivery can only be yielded if they release small
batches, which are easy to troubleshoot if any glitch occurs.
Continuous Deployment ensures that any change that passes through the stages
of production is released to the end-users. There is absolutely no way other than
any failure in the test that may stop the deployment of new changes to the
output. This step is a great way to speed up the feedback loop with customers
and is free from human intervention.
Your team will need to write automated tests for each new feature,
improvement or bug fix.
You need a continuous integration server that can monitor the main repository
and run the tests automatically for every new commits pushed.
Developers need to merge their changes as often as possible, at least once a day.
What you gain:-
Less bugs get shipped to production as regressions are captured early by the
automated tests.
Building the release is easy as all integration issues have been solved early.
Less context switching as developers are alerted as soon as they break the build
and can work on fixing it before they move to another task.
Testing costs are reduced drastically – your CI server can run hundreds of tests
in the matter of seconds.
Your QA team spends less time testing and can focus on significant
improvements to the quality culture.
You need a strong foundation in continuous integration and your test suite needs
to cover enough of your codebase.
Deployments need to be automated. The trigger is still manual but once a
deployment is started there shouldn't be a need for human intervention.
Your team will most likely need to embrace feature flags so that incomplete
features do not affect customers in production.
What you gain
The complexity of deploying software has been taken away. Your team doesn't
have to spend days preparing for a release anymore.
You can release more often, thus accelerating the feedback loop with your
customers.
There is much less pressure on decisions for small changes, hence encouraging
iterating faster.
Continuous deployment
Your testing culture needs to be at its best. The quality of your test suite will
determine the quality of your releases.
Your documentation process will need to keep up with the pace of deployments.
Feature flags become an inherent part of the process of releasing significant
changes to make sure you can coordinate with other departments (support,
marketing, PR...).
What you gain
You can develop faster as there's no need to pause development for releases.
Deployments pipelines are triggered automatically for every change.
Releases are less risky and easier to fix in case of problem as you deploy small
batches of changes.
Customers see a continuous stream of improvements, and quality increases
every day, instead of every month, quarter or year.
Basic Features
Architecture
Linux was designed with scalability in mind. It was during the days when UNIX
was the operating system in charge. One day, UNIX was closed off for
modification, and developers no longer had control over the inner workings of
the operating systems. Linux was born out of this need, and today it powers
almost all of the technologies you’re using in your everyday life.
Linux offers the DevOps team the flexibility and scalability needed to create a
dynamic development process. You can set it up any way that suits your needs.
Rather than letting the operating system dictate how you work, you can
configure it to work for you. There’s no greater freedom than that, and there is
no better asset for DevOps teams then a Linux OS that supports the process at
scale.
1) pwd Command
2) mkdir Command
3) rmdir Command
4) ls Command
5) cd Command
6) touch Command
7) cat Command
Syntax:
cat [OPTION]... [FILE]..
cat > <file name>
// Enter file content
Press "CTRL+ D" keys to save the file. To display the content of the file,
execute it as follows:
cat <file name>
8) rm Command
9)cp Command
10) mv Command
Syntax:
mv <file name> <directory path>
rename 's/old-name/new-name/' files
For example, to convert all the text files into pdf files, execute the below
command:
rename 's/\.txt$/\.pdf/' *.txt
17) su Command
su <user name>
Syntax: cat <fileName> | cat or tac | cat or tac |. . .
19 )grep Command
The grep is the most powerful and used filter in a Linux system. The 'grep'
stands for "global regular expression print." It is useful for searching the
content from a file. Generally, it is used with the pipe.
Syntax: command | grep <searchWord>
Scope of any variable is the region from which it can be accessed or over
which it is defined. An environment variable in Linux can
have global or local scope.
Global
A globally scoped ENV that is defined in a terminal can be accessed from
anywhere in that particular environment which exists in the terminal.
That means it can be used in all kind of scripts, programs or processes
running in the environment bound by that terminal.
Local
SYNTAX: $NAME
(NOTE: Both local and global environment variables are accessed in the same
way.)
SYNTAX:
$ printenv //displays all the global ENVs
or
$ set //display all the ENVs(global as well as local)
or
$ env //display all the global ENVs
SYNTAX:
$ NAME=Value
1.19 Networking:-
ss It is a replacement of netstat.
1. Log on as root.
2. Create the BCAN_USER account.
3. Assign a password to the BCAN_USER account. Make a note of the group to
which the user account belongs. You would be asked for this group name by the
installer.
(It recommends not using the at sign (@) in the password because some device
file transfers might fail because they use the user:password@host/file format.
You can configure the location of the TFTP, FTP, and SCP directories later in
the Device Agent Editor, Admin > Device Agents.
127.0.0.1 localhost
10.1.2.3 ena-server-01
Library requirements
If you are installing on a 64-bit version of Linux, confirm that both 32-bit and
64-bit version of the following libraries are available:
libXtst.so: Confirm that the library is available by executing the following
command:
locate libXtst.so
If the library is not available and yum is configured on a Red Hat Linux system,
you can install 32-bit and 64-bit version of the library by using the following
command:
yum install libXtst libXtst.i686
libXrender.so: Confirm that the library is available by executing the following
command:
locate libXrender.so
If the library is not available and yum is configured on a Red Hat Linux
system, you can install 32-bit and 64-bit version of the library by using
the following command:
yum install libXrender libXrender.i686
RPM Package Manager (also known as RPM), originally called the Red-hat
Package Manager, is an open source program for installing, uninstalling, and
managing software packages in Linux. RPM was developed on the basis of the
Linux Standard Base (LSB).
RPM keeps an internal database of the installed packages and allows you to
later manage the installed packages using the package name. On the other
hand, installing a package with YUM only requires the package name, and
doesn't require the package location.
RPM refers to RPM Package Manager (formerly known as Red Hat Package
Manager) is a powerful, command-line package management tool developed for
the Red Hat operating system.
The -i switch tells the package manager you want to install the file.