Ø What Is DevOps?
Ø Do We Really Need DevOps?
Ø DevOps Quantifiable Benefits
Ø How Does DevOps Work ?
Ø Challenges and Problems Out There
Ø 7Cs Approach of DevOps
Top concerns that we hear from customers are:-
Ø “How can we release on-time?”
Ø “How can we have a stable release?”
Ø “How can we address the problems before end users get impacted?
Solution is:- “Embrace DevOps”
Whether you are a tiny startup, a mid-sized one or a Fortune 500 company, be informed that the IT industry is adopting DevOps at an amazing pace. Even then, majority of IT professionals either don’t know about DevOps or just have a partial understanding of the big picture
DevOps is a business driven software delivery approach, an approach that takes a new or enhanced business idea from design to development to testing and all the way to production, providing business value to customers in an efficient manner.
What is DevOps?
Patrick Debois, who’s often called “the father of DevOps”, coined the word “DevOps” in 2009. As the word depicts, it was formed by combining two words: “development” and “operations”. DevOps is a collaborative way of developing and deploying software.
DevOps (a combination of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) operation professionals
“It’s a movement of people who think it’s change in the IT Industry ,time to stop wasting money, time to start delivering great software, and building systems that scale and last”-- Patrick Debois
Ø DevOps is an approach based on agile and lean principles in which business owners, development, operations, and quality assurance team collaborate to deliver software in a continuous stable manner
Ø DevOps is an environment that promotes cross practicality, shared business tasks and belief
Ø DevOps is a movement that improves IT service delivery agility
Ø DevOps is a culture that promotes better working relationship within the company
Ø DevOps is a set of practices that provides rapid, reliable software delivery
Do we really need DevOps?
Developers always want to deliver changes as soon as possible. Operations want reliability and stability. Lee Thomson describes this as a wall of confusion between development and operations. This wall of confusion not only exists between the mindsets of the two teams but also with the tools they use. Development uses some tools and operation uses some other tools to perform the same stuff.
DevOps break down the walls between development and operations team, unifying development to operations for better, faster outcomes.
DevOps Quantifiable Benefits
Ø Increased collaboration between departments
Ø Improved quality of deployed applications
Ø Increased numbers of customers using software/services
Ø New software/services that would otherwise not be possible/explored
Ø Fewer employees working on developing and deploying software/services
Ø Reduced time-to-time market for software/service
Ø An increase in revenue
Ø Software/service made available across more platforms
Ø A reduction in spend on developement and operations
Ø Increased frequency of deployments of software/services
How does DevOps work?
DevOps is a way of thinking.
Five Basic Principles of DevOps :
Ø Eliminate the blame game, Open post-mortems, Feedback, Rewarding failures
Ø Continous Delivery, Monitoring, Configuration Management
Ø Business value for end user
Ø Performance Metrics, Logs, Business goals Metrics,People Integration Metrics, KPI
Ø Ideas, Plans, Goals, Metrics, Complications, Tools
DevOps combines the best of all teams providing the following:
Ø Develops and verifies against production-like systems
Ø Reduces cost/time to deliver - Deploy often, deploy faster with repeatable, reliable process
Ø Increases Quality - Automated testing, Reduce cost/time to test
Ø Reduces Defect cycle time - Increase the ability to reproduce and fix defects
Ø Increases Virtualize Environments utilization
Ø Reduces Deployment related downtime
Ø Minimizes rollbacks
Challenges and problems out there
It doesn’t matter whether you are in Cloud, Enterprise or Mobile. For each one of you, stable software delivery on time is the key to your business success
Some of the serious issues blocking your software delivery are:
Ø Building and maintaining servers – Time consuming and unproductive
Ø No environment management - Differences in development and production environments
Ø Slow deployments – Costly error prone manual process and efforts
Ø No shared ownership - Lack of feedback and proper metric leads
Ø No proper configuration management - Discrepancies in managing configurations
Ø Deployments are a blocker - Upgrade risk due to manual management of multiple application configuration and versions - Dependency on specific deployment engineer
Ø Production downtime - Due to lack of improper deployment instructions / checklist
Ø Hacking – Fixing directly in production (instead of a proper hotfix process) and forgets to check-in into source control
Realize your entire business gets impacted if you do not have Continuous Delivery. To enable that, you must adopt DevOps
7Cs Approach OF DevOps
Agile mantra:- “People over Process over Tools”.
With the right people, we establish the right process and choose the right tools to deliver the end results
Ø People – Communication & Collaboration
Ø Process – Source Control Check-ins, Code Review, Code Quality, Change Control, RCAs
Ø Tools – For Continuous Delivery (achieve by the combination of Continuous Integration, Continuous Deployment and Continuous Testing) and Continuous Monitoring
7 Cs of Devops
Ø Controlled Process
Ø Continuous Integration
Ø Continuous Deployment
Ø Continuous Testing
Ø Continuous Monitoring
Ø Automate Provisioning - Infrastructure as Code
Ø Automate Builds – Continuous Integration
Ø Automate Deployments – Defined Deployment Pipeline and Continuous Deployments with appropriate configurations for the environments
Ø Automate Testing – Continuous Testing, Automated tests after each deployment
Ø Automate Monitoring – Proper monitors in place sending alerts
Ø Automate Metrics – Performance Metrics, Logs
DevOps is a process that creates a stable infrastructure which enables to release new code frequently,easily and rapidly with confidence.
DevOps is an Enterprise Architecture Framework that allows seamless communication between development and operations team to deliver stable software on time.