Lec 34-36
Lec 34-36
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 for building/ packaging
the code into an executable file that can be forwarded to any of the next phases.
Continuous Development
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.
Continuous Testing
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. This may be on a daily or a weekly basis.
Every commit is then built and this allows early detection of problems if they are
present. Building code not only involves compilation but it also includes code
review, unit testing, integration testing, and packaging.
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 it prepares 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.
Continuous Integration
Continuous Deployment
This is the stage where the code is deployed to the production servers. This done
by Configuration management and Containerization tools.
Containerization tools also play an equally important role in the deployment stage.
Docker and Vagrant are the popular tools used for this purpose.
The popular tools used for this are Splunk, ELK Stack, Nagios, NewRelic and
Sensu.
Tools of Devops
Tools of Devops
Scripts are the connector pieces that bring the disparate tools and classes together
into a more coherent whole. Scripts also help with automated and complicated
build, deployment, and automation tasks. Scripting is incredibly flexible and with it,
you can do almost anything.
Tools of Devops
Continuous Integration/Delivery Tools are almost the enterprise level package in
the DevOps world. They try to do all of the things. They schedule, gather results,
kick-off scripts/processes/tools, integrate with other tools, and report on success.
Tools of Devops
Build tools are an essential foundational piece of DevOps. With more developers
working on a code-base, checking in code, and moving your product/project
forward, it’s essential there be a tool that can automate bringing together the right
dependencies and generating an installable compiled package.
Tools of Devops
With the distributed nature of teams in the DevOps world, powerful, enabling source
code management tools are essential. These tools help to manage multiple
simultaneous update streams for the codebase and ensure code coherency through
branching and merging mechanisms.
Tools of Devops
With the levels of automation that are becoming standard in the DevOps
ecosystem, it makes sense that there be an automated capability for code to be
deployed into your desired environments. It’s necessary for automation to happen,
but may also be desired for manual testing or UAT steps. Deployment tools need
to be able to integrate with your virtualization solutions as well.
Tools of Devops
With the concept that each application or service you wish to deploy having a
different optimal server configuration grew the idea that every application could run
in its own independent container. As this concept grew, it greatly empowered
testers and developers who worked best in their own walled environment.
Tools of Devops
Test automation is one of the biggest topics in DevOps with numerous threads,
intents, and tool systems. The number of tools and their target is large. Any
automation solutions/tools that you decide to include in your solution should be
capable of integrating with the other tools in your DevOps ecosphere.
Some common concepts
Microservices is an architectural design
for building a distributed application
using containers.
DevOps is huge.
Keep practicing and
learning on the way!
Don’t be this guy ->