devops, from inception to conclusion
TRANSCRIPT
INTRODUCING DEVOPS
DevOps Whitepaper A Beginners’ Manual, From Inception to Conclusion
Abhishek Gaurav
[ T Y P E T H E C O M P A N Y A D D R E S S ]
Patrick Debois”Creator of
DevOps”
C
C
DevOps- Beginner’s Handbook
In the current fast growing, modern software delivery environment, the below three principles should always exist for the success of
the overall delivery.
Communication C Collaboration C Integration I
This Article is dedicated to all the newcomers in the world of DevOps. This will give you a
detailed understanding of the Toolset Process and Methodology used in DevOps
DevOps (Development+Operations) was first coined by Patrick Debois, as an extension of agile development
environments that aims to enhance the process of software delivery as a whole.
After 2009 there was a paradigm shift in the development methodology, where people started shifting from
conventional waterfall to Agile by making each development stage independent and incorporating continuous
testing early on and throughout the development cycle.
The efficiency was increased by using “Agile” approach because of the fact that developers could make
immediate changes before shipping to production based on the continuous feedback they received from
customer. Although the development process was enhanced but there was still a discrepancy in the flow when
it came to deployment, which still embraced the waterfall methodology. While development used agile to
lower risk and increase efficiency, deployment hung on to the linear waterfall structure, slowing down delivery
and leaving testing to the end of the process — a process that wrongfully split ownership
It was through seeing this disconnect between development and deployment as well as understanding the
benefits of embracing agile in all aspects of software delivery that Debois “The Creator of DevOps” came up
with the concept of DevOps. The marriage of development and operations along with the extended best
practices and principles associated with agile had the potential to greatly increase efficiency and lower
delivery risks
In Gartner’s latest Hype Cycle for Enterprise Architecture DevOps is positioned right in the Innovation Trigger phase
DevOps is a part of the “Innovation Trigger Phase” as outlined in Gartner’s latest Hype Cycle for Enterprise Architecture
The speed of application development and application change is increasing, and with it, the demand of “Rolls Royce like” quality; Companies look to build new capabilities with high expectations being placed on the IT department. While the IT industry has taken huge leaps in technology innovation, the quality of application development projects has been lagging. Many IT projects run inefficiently, missing implementation deadlines and causing outages during or after implementation and therefore costing significant more than anticipated.DevOps is the new development that addresses such inefficiencies. DevOps connects development, quality assurance, and technical operations personnel in a way that the entire ‘build-test-release-run-repeat’ process operates as a factory, having clear roles and responsibilities and well-defined inputs and outputs It is a concept that connects developers, quality assurance and technical operations people.
What is DevOps DevOps, in itself, is not a new concept. A development to operation lifecycle has been existing for quite some time. The latest developments include the ambition to industrialize, automate, and connect the entire process covering infrastructure, application, as well as business changes. The prime focus is on outage reduction and quality improvement.
DevOps Overview
In simple terms, DevOps refers to an umbrella concept that encompasses people, processes, and technologies required to connect development to execution.
DevOps Practice
DevOps aim is to revolutionize the transition, de-risk IT deployments, eliminate the Excuse “but-it-works-on-my-system”, and break the silos between developers, Testers, release managers, and system operators. The products and tools developed in this area focus on maximizing predictability, visibility, and flexibility, while Maintaining stability and integrity.
Version Control for all
Automated Testing
Proactive Maintenance
Proactive Monitoring
DevOps is the practice of operations and development engineers participating together in the entire service
lifecycle, from design through the development process to production support.
DevOps is also characterized by operations staff making use many of the same techniques as developers for their
systems work.
Scrum/Kankan
Visible ops/Change
management
Configuration management
Incident command system
Continuous
integration/Deployment/delivery
Virtualization, Cloud, Containers
Transparent uptime
Toolchain approach
Process Checklist
DevOps Overview and Checklist
Below is a snapshot of the delivery process in the field of DevOps. The Common Delivery cycle starting from Planing to Operations are supported by various enablers like Continuous Integration/Continuous Delivery and collaboration.
Find ways to collaborate – involve others early
Find ways to automate and make self-service
Become metrics driven
Learn new things, continually improve
Understand the larger business goals, metrics, and priorities you
support
Communicate
Work in parallel with small batches
Allow refactoring
Prove the business value to management
Developers always want to deliver changes as soon as possible. Operation team wants reliability and stability
The Wall of confusion always exists between the development and operations, because of the fast that development uses different tools and processes and operations uses different tools and processes to perform their daily activities. DevOps break down the walls between development and operations team, unifying development to operations for better, faster outcomes.
Why Do we Need DevOps
This is the complete tool of a DevOps Process because without Automation there is no DevOps
Index Process Description Tools
1 Continous Integration Developers integrate code into a shared repository multiple times a day and each isolated change to the code is tested immediately in order to detect and
prevent integration problems.
TFS, Jenkins, Teamcity, TravisCI, CircleCI
2 Continuous Delivery (CD) As an extension of CI and the next step in incremental software delivery, TFS,Jenkins, Teamcity, TravisCI, Electric
DevOps – Tools DevOps-Tools
continuous delivery (CD) ensures that every version of the code that is tested in the CI repository can be released at any moment.
Cloud, Go, Codeship, AWS CodeDeploy
3 Configuration Management n a nutshell, the process of maintaining up-to-date, detailed records of hardware and software — including versions, requirements, network addresses, and design
and operational information — is known as configuration management (CM). You can use CM tools such as Chef, Puppet, or Ansible to aid the process. You can also use Bash and Python to build your own configuration management
automation.
TFS,Chef, Puppet, Ansible, Saltstack, Vagrant, CFEngine
4 Containers Linux containers are lightweight virtualization components that run isolated application workloads. They run their own processes, file systems, and network stacks, which are all virtualized using the root operating system (OS) running on
the hardware.
Docker, CoreOs, Kubernetes, Mesos, ElasticBox
5 Source (Version) Control Version control includes practices and tools that help R&D organizations maintain and control changes within their source code repository. R&D members
use source control tools to document and track system configuration files as well.
GitHub, Bitbucket, JFrog, Artifactory, TFS
6 Bug Tracking A bug tracker is a system that aggregates and reports software bugs and defects. It helps R&D organizations with task management and is part of the consistent
feedback loop that the DevOps methodology requires.
BUGtrack, JIRA, GitHub
7 Test Automation Test automation facilitates test engineer work by supporting multiple tests that run continuously. It enhances test coverage while supporting efficient release
cycles. For example, test automation tools help manage, execute, and measure functional tests and load tests
Selenium, Cucumber, JUnit, TestNG, JMeter. MS Test Studio
8 Monitoring Monitoring is a primary element of IT performance management and is one of the most important aspects when operating online services. Monitoring tools are essential and provide crucial information that helps to ensure service robustness
in terms of availability, security, and performance
New Relic, AppDynamics, DataDog AWS CloudWatch, Nagios, Zabbix, Sensu, Icynga
9 Log management Log management (or log analytics) is the practice of dealing with large volumes of computer-generated messages.
Logz.io (ELK), Splunk, Sumo Logic
DevOps- Toolset