2. Module Contents
What is DevOps?
What is DevTestOps?
Module Objectives
❏ Learn, comprehend and practice DevOps principles and
fundamentals
❏ Understanding of where testing plays a part
❏ Become a competent and courageous DevOps
Team member.
5. What is DevOps?
The WIKI definition of DevOps
DevOps is a software engineering practice that
aims at unifying software development (Dev) and
software operation (Ops). The main characteristic
of the DevOps movement is to strongly advocate
automation and monitoring at all steps of
software construction, from integration, testing,
releasing to deployment and infrastructure
management. DevOps aims at shorter
development cycles, increased deployment
frequency, more dependable releases, in close
alignment with business objectives
11. What is DevOps? Continue...
6 Principles of DevOps
1. Customer Centric Action
➢ Meeting customer requirements through short
feedback loops
➢ Courage to act and innovate continuously
➢ Pivot When strategy is not working
➢ Invest in products and services for customer
delight
12. What is DevOps? Continue...
2. Create With the End In Mind
➢ Let go of waterfall process-oriented models
➢ Act as product companies selling to real
customers
➢ All members require an engineering mindset
to envision and realise the product
13. What is DevOps? Continue...
3. End to End Responsibility
➢ Vertically organised teams
➢ Team is responsible till end of life
➢ Full support including quality and performance
14. What is DevOps? Continue...
4. Cross Functional
Autonomous Teams
➢ Fully responsible
➢ T-Shaped all rounders
➢ Hotbed for growth
15. What is DevOps? Continue...
5. Continuous Improvement
➢ Fail Fast
➢ Minimise waste
➢ Optimise for speed costs and ease of delivery
➢ Experimentation is paramount
➢ If it hurts do it more
16. What is DevOps? Continue...
6. Automate Everything You Can
➢ Adopt CI culture with high cycle rates and
instant feedback
➢ Includes infrastructure and container based
cloud platforms
➢ Synonymous with drive to renew delivery
methods
17. What is DevOps? Continue...
Key Elements of DevOps Teams
❏ Team Building
18. What is DevOps? Continue...
Key Elements of DevOps Teams
❏ Team Building
❏ CI and Problem Solving
19. What is DevOps? Continue...
Key Elements of DevOps Teams
❏ Team Building
❏ CI and Problem Solving
❏ Leadership and
Feedback
20. What is DevOps? Continue...
Key Elements of DevOps Teams
❏ Team Building
❏ CI and Problem Solving
❏ Leadership and Feedback
❏ Courage and Experimentation
28. What is DevOps? Continue...
Summary
History and Definition
6 Principles of DevOps
Key Elements of DevOps Teams
Organisational Model
Solution Architecture
29. What is DevOps? Continue...
Questions?
pmateos@planittesting.com
@paulconsults
https://www.linkedin.com/in/paul-mateos-213b2167/
30. What is DevOps? Continue...
https://blogs.msdn.microsoft.com/uk_faculty_connection/2016/06/23/devops-the-wall-of-confusion-un
derstanding-the-basics-of-devops/
https://www.mulesoft.com/resources/api/microservices-devops-better-together
https://www.devopsagileskills.org/dasa-devops-principles/
http://leanmanufacturingtools.org/77/the-seven-wastes-7-mudas/
https://www.slideshare.net/SherryChang/evolving-team-structure-in-devops
https://www.slideshare.net/DevOpstastic/support-that-devops-change-agents-need
http://www.planitdevops.com
References
31. What is DevOps? Continue...
https://purplegriffon.com/quizzes/devops-mini
Quiz TIme
33. What is DevTestOps?
DevOps with Quality Assurance as the
focul point
Bringing Planit’s Strengths in Agile,
Automation, Engineering and Quality
Assurance together
Implementation of Testing practices
throughout the DevOps End to End
process
36. What is DevTestOps? Continue...
Strategic Objective
What does the organisation want versus what they need?
● Speed To Market
● Product Quality
● Or Stability of the Production Environment
37. What is DevTestOps? Continue...
Paths To Communication - 5 Steps
1. Identify - Anyone who works outside of your team
2. Connect - Make connections with each individual
3. Invite - Widen the connection by bringing in new
people
4. Mark - Recording the communication for future
use
5. Widen - the path through activities that engage
38. What is DevTestOps?
Testing pyramid
● The reality is Test Automation is
expensive and takes a long time to
implement
● Micro service testing is quick to execute
but still costly to develop
● Unit testing requires dedication, discipline
and a FAITH
39. What is DevTestOps?
The Bug filter
● Bugs move between layers
● A good start but not complete
40. What is DevTestOps? Continue...
The Bug filter - Unit Sorting
Smaller bugs are caught by smaller filters while larger bugs are caught by larger
filters
41. What is DevTestOps? Continue...
The Bug filter - Unit Sorting
● Six layers to the DevOps bug filter.
● Top three are for testing that occurs in the development
environment
○ unit testing
○ integration testing
○ and end-to-end testing
● Bottom three are for the information that is captured in production
that can be used to detect bugs and determine product quality
○ Alerting
○ Monitoring
○ and logging
42. What is DevTestOps? Continue...
Creating Tests At Each Filter
Unit Testing
● TDD (Test Driven Development) is a crucial foundation
● Unit test frameworks for specific code
● Mocking services to isolate integrations
● Powerful when implemented within a CI/CD pipeline and run
against integration environments
● Can be difficult to implement is some circumstances
● GUI interactions
● Databases
● Legacy code
● As DevOps engineers, this is not optional
43. What is DevTestOps? Continue...
Creating Tests At Each Filter
Integration Testing
● Runs unit tests in a complex context (component)
● Bugs can be introduced from indirect interactions with other
services and applications. (System)
● Manual testing can provide great value
● Microservices is a must have architecture
● Knowledge of tools is a must for all testers
● SOUPUI
● POSTMAN
● Concept regarding NFR’s should be introduced here
● CI/CD tooling becomes essential to build, test, deploy and
then test again
● Product fitness rather than code quality
44. What is DevTestOps? Continue...
Creating Tests At Each Filter
End-to-End Testing
● Is more efficient through DevOps principles
● Strongly supported by automation
● Scalable environments
● Coded change and deployments
● Coded tests and failure highlighting
● Planit champions this phase
● The fork in the road. Where DevOps can be introduced
● DevOps brings more exploratory and targeted testing ability
to satisfy customer feedback
45. What is DevTestOps? Continue...
Creating Tests At Each Filter
Monitoring and Alerts Testing
● Issues should be detected by monitors
● Real or Mocked data can be used
● Controlled data easier to distinguish
● Rules based so standard testing practices apply
● Ensure alerts are sent and received successfully
● Ensure they are also fixable
● Ensure they detail the issue clearly
46. What is DevTestOps? Continue...
Creating Tests At Each Filter
Log Testing
● Records everything that is happening
● At application, Server and Cloud
level
● Errors that generate no logs
highlights issues with logging
● Reveals user behavior and hidden
issues
47. What is DevTestOps? Continue...
Testing in Production
● A/B Testing - Multiple versions released for
feedback
● Beta Testing - Released to a subset of users
● Feature Toggles - Change configuration in the
application
● Cannery Servers - Adjust deployment if too many
issues
● “TIP” is a hot topic on the interwebs
49. What is DevTestOps? Continue...
Other Tests within DevOps
● Orchestration Pipeline Testing
● Code Quality Gates
● Infrastructure Configuration Testing
● Bug Bash
● Crowdsourced
● Infrastructure Resilience Testing - chaos
monkey
● Repeatable Performance and Security Tests
50. What is DevTestOps? Continue...
Summary
Risk Appetite
Strategic Objective
Paths To Communication
Testing Pyramid
Bug Filter
Testing In Production and Other Tests in DevOps
51. What is DevTestOps? Continue...
Questions?
pmateos@planittesting.com
@paulconsults
https://www.linkedin.com/in/paul-mateos-213b2167/
52. What is DevTestOps? Continue...
A Practical Guide To Testing in DevOps - Katrina Clokie
http://www.belatrixsf.com/blog/an-introduction-to-testing-in-production/
http://infiniteundo.com/post/158179632683/abandoning-the-pyramid-of-testing-in-favor-of-a
https://www.slideshare.net/dhelper/benefit-from-unit-testing-in-the-real-world
https://test.io/software-testing-guide/devops-best-practices-integrating-qa-devops/
References
53. VM and Docker Basics
● Setting up a centos VM
● Installing Docker
● Pull Jenkins Docker image and start it up
54. VM and Docker Basics Continue...
● Oracle Virtualbox installed
○ Developer Tools
○ Networking Tools
● Create new RedHat linux vm
● 50GB HDD, 2048MB RAM
● Networking: NAT with port forwarding
○ Host Port: 8080 Guest Port: 8080
55. VM and Docker Basics Continue...
● Docker CE installed
Difference between VM and Docker?
- VM’s are complete machines while
docker is a collection of libraries sharing
the host’s kernel
- There are now vSphere Containers
56. VM and Docker Basics Continue...
● Create Docker Container with Jenkins
Master
● Create Docker Container with Jenkins
Slave
● Use Docker compose to start up both
services