DevOps From Beginning: Basic Introduction
DevOps is a software development strategy that bridges the gap between the developers and the IT staff.
This process includes automated
testing, builds, releases, and many other manual tasks that can reduce the
software delivery process:
· Easily Scalable
· Enable automation
· Faster delivery
· Reduced IT costs
· Better response time
· Increase customer
satisfaction
· Continuous
build, test, integrate and Deploy
DevOps Engineer:
A DevOps Engineer is an IT professional who works for both teams – development and operations. They work on tools, principles, methodologies, and processes for the software development life cycle from coding and development, to deployment to maintenance and updates.
Why DevOps:
Before DovOps came into
existence, IT companies developed software using traditional methods such as
Waterfall Madrid & Belle Methodology. Let's have a quick overview of what
these methodologies are and how exactly they work.
Waterfall Model:
The Waterfall Model is a model
of software development that is pretty straightforward and linear. This model
follows a top-down approach.
Challenges:
· Risky and uncertain
· Lack of visibility of the
current progress
· Not suitable when the
requirements keep changing
· Difficult to make changes in
the testing phase
· The end product is available
only at the end of the cycle
· Not suitable for large and
complex projects
Agile Model:
Agile is an iterative software development approach where the software project is broken down into
various iterations or sprints. Every iteration has phases like the waterfall
model such as requirements gathering, design, development, testing, and
maintenance.
Challenges
· Highly dependent on clear
customer requirements.
· Quite difficult to predict
time and effort for larger projects
· Not suitable for complex
projects d. Lacks documentation efficiency
· Increased maintainability
risks
· Lack of documentation efficiency
How does DevOps help?
DevOps integrates developers
and operations teams to improve collaboration and productivity.
According to the DevOps culture, a singe group of Engineers (developers, system admins, QA Testers, etc., turned
into DevOps Engineers) has end-to-end responsibility of the application.
(software) right from gathering the requirement to development, to testing, to
infrastructure deployment, to application deployment and finally monitoring
& gathering feedback from the end users, then again implementing the
changes.
DevOps Lifecycle Phases:
· Continuous Development
· Continuous Integration
· Continuous Testing
· Continuous Monitoring
· Virtualization and
Containerization
Let's now learn more about each of these stages one by ere.
CONTINUOUS DEVELOPMENT
Tools: Git, SVN, Mercurial, CV
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
CONTINUOUS INTEGRATION
Tools: Jenkins. TeamCity,
Travis
This stage is the core of the entire DevOps life cycle. It is a practice in which the developers are required to commit changes to the source code more frequently. This may be either on a daily or weekly basis.
CONTINUOUS TESTING
Tools: Jenkins, Selenium
TestNG, JUnit
This is the stage where you
test the developed software continuously for bugs using automation testing
tools.
CONTINUOUS DEPLOYMENT
Configuration Management
Tools-Chef, Puppet, Ansible
Containerization Tools- Docker,
Vagrant
This is the stage where you
deploy the code on production servers. It is also important to ensure that you
correctly deploy the code on all the servers. The mentioned set of tools here
helps in achieving Continuous Deployment (CD).
CONTINUOUS MONITORING
Tools: Splunk, ELK Stack,
Nagios, New Relic
This is a very critical stage
of the DevOps lifecycle 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 the system errors such as low memory, server not
reachable, etc in this phase.
Comments
Post a Comment