SlideShare a Scribd company logo
1 of 29
Download to read offline
Cloud agnostic continuous quality assurance
Software Quality Days 2019
Andreja Sambolec
Cloud agnostic continuous quality
assurance
Cloud agnostic continuous quality assurance
Speaker/company introduction
▪ Software developer at
Splendit IT-Consulting GmbH
▪ Developing Eclipse plugin for automatic
Java code refactoring
Slide 2
Cloud agnostic continuous quality assurance
Agenda
▪ Why cloud agnostic
▪ Source control
▪ Code review
▪ Build automation
▪ Code quality
▪ Processes
Slide 3
Cloud agnostic continuous quality assurance
Why cloud agnostic
Slide 4
Cloud agnostic continuous quality assurance
Why cloud agnostic
▪ Exit cost for cloud provider
▪ GitHub acquisition
▪ Services being abandoned (Stride from atlassian)
▪ EU data shield
▪ Migration from datacenter
▪ Move to using common source control
▪ Move to cloud deployment with already familiar tool
Slide 5
Cloud agnostic continuous quality assurance
Toolset
▪ Toolset for demo
▪ Docker
• Container implementation
• Docker makes running services much easier
▪ Docker compose
• Used for defining environment setup
• Basically starting up multiple containers
▪ Using docker hub images
▪ Demo code available on GitHub
• https://github.com/asambolec/code-pipeline.git
Slide 6
Cloud agnostic continuous quality assurance
Source control - Intro
Slide 7
Cloud agnostic continuous quality assurance
Source control
Slide 8
Cloud agnostic continuous quality assurance
Source control
▪ Problem
▪ More than one developer working on project need to share same code base
▪ Solution
▪ Source control offers elegant solution for collaboration
▪ Widely adopted
▪ Implementation
▪ Gerrit implements free and open source git source code repository
▪ Clients available and integrated in IDE’s and CLI
▪ Quality assurance
▪ Easy refactoring
▪ History containing information about changes and authors
▪ Teaching opportunity
Slide 9
Cloud agnostic continuous quality assurance
Source control
▪ When to use source control
▪ Rule of thumb: Always
▪ There is no project small enough that it should not be put into source control
▪ Even POC or hello world projects can be valuable for someone
▪ Early implementation problems get documented in history
▪ Warning
▪ Source control tools usually offer statistics about user activities, don’t use them to
measure your developer productivity
• They will just do more commits to improve their statistics
• It will not give you any information about quality of work
▪ Guidelines
▪ It is very important to have common non IDE dependant code formatting
• i.e. Google code formatter
▪ Commit messages are important
Slide 10
Cloud agnostic continuous quality assurance
Source control - demo
Demo video
https://www.youtube.com/watch?v=LpdLwDJzkJI
Slide 11
Cloud agnostic continuous quality assurance
Code review
Slide 12
Cloud agnostic continuous quality assurance
Code review
▪ Pair programming has great impact on code quality
▪ Code review is trying to mimic pair programming without overhead
▪ Code Quality impact
▪ More experienced programmers can review code to maintain quality standards
▪ All code gets second view with different perspective
▪ Gerrit
▪ Implementation of code review as pull requests
▪ Allows integration with other tools to do automated approval
▪ Very advanced CLI support
▪ New and shiny polymer UI in version 2.16
Slide 13
Cloud agnostic continuous quality assurance
Code review
▪ Guidelines
▪ Pull requests as small as possible
▪ Avoid starvation of junger developers
▪ Be flexible (for skeleton teams approvals can be big overhead) to avoid
• blocking developers by waiting for approval
• overwhelming senior developers with too much requests
Slide 14
Cloud agnostic continuous quality assurance
Code review - Demo
Slide 15
Demo video
https://www.youtube.com/watch?v=uJTNeOZxFEY
Cloud agnostic continuous quality assurance
Build automation
Slide 16
Cloud agnostic continuous quality assurance
Build automation
▪ Problem
▪ Deployments are Error prone and builds are not repeatable
▪ Information about environment status can be lost
▪ Knowledge exchange about build and deployment processes
▪ Level of automation
▪ Automate as much as possible
▪ All non automated things will come back later as technical dept
• As lost knowledge due to people change
• As time consuming items when scaling up
▪ Naming conventions are most important consideration (Prefix all the stuff)
▪ Jenkins
▪ Generic extendable build and delivery automation tool
▪ Trunk based development and delivery pipelines are first class citizens
Slide 17
Cloud agnostic continuous quality assurance
Build automation
▪ Guidelines
▪ Use build automation tools (Maven, Gradle) on all projects from start
▪ Use CI/CD tools as soon as possible on any project
▪ Deploy small batches to production
▪ Don't tightly couple projects, independent life cycles bring more value
• Integration tests are easier to maintain and write
• Deployment process is simpler
Slide 18
Cloud agnostic continuous quality assurance
Build automation - Demo
Slide 19
● Update docker-compose.yaml
with Jenkins container
● Create Jenkinsfile (right) and
pom.xml in hello-world project
● Commit and push to master
Cloud agnostic continuous quality assurance
Build automation - Demo
Slide 20
Demo video
https://www.youtube.com/watch?v=8_MLtyo7fac
Cloud agnostic continuous quality assurance
Code quality control
Slide 21
Cloud agnostic continuous quality assurance
Code quality control
▪ Problem
▪ Wasted time on pull requests for common code issues (i.e. formatting)
▪ Measure quality of code and give measurable code quality targets
▪ Danger zone
▪ Eliyahu M. Goldratt: Tell me how you measure me, and I will tell you how I will
behave
▪ Most important goal is to avoid developers doing things just to improve metrics
(Code coverage most likely candidate)
▪ SonarQube
▪ Implements automated solution for code quality analyzes
▪ Automatically checks for 400+ common code quality issues and smells
Slide 22
Cloud agnostic continuous quality assurance
Code quality control - Demo
Slide 23
● Update docker-compose.yaml with SonarQube container
● Update Jenkinsfile with Sonar stage
● Commit and push to master
Cloud agnostic continuous quality assurance
Code quality control - Demo
Slide 24
Demo video
https://www.youtube.com/watch?v=Q0UoiEt6qeY
Cloud agnostic continuous quality assurance
Processes
Slide 25
Cloud agnostic continuous quality assurance
Processes
▪ How to improve
▪ Use code review to protect coding standards and teach new developers
▪ Automate build and deployment
▪ Write tests to make refactoring safe
▪ Split monolith into microservices
▪ Reduce deployment cycle
• Ideally each microservice independant release cycle with each commit being deployed to
production before next merge is done
▪ Measure quality using metrics tool
Slide 26
Cloud agnostic continuous quality assurance
WTFs/Minute
Slide 27
Cloud agnostic continuous quality assurance
Summary
▪ Any dependency to specific cloud provider should be carefully
considered with exit cost in mind
▪ Every project must have
▪ Code repository
▪ Build automation and dependency management
▪ Every project should have
▪ Code review
▪ Delivery pipeline
▪ Code quality analysis
Slide 28
Cloud agnostic continuous quality assurance
Thank you for your attention!
Any questions…?
Andreja Sambolec
andreja.sambolec@gmail.com
https://github.com/asambolec
https://www.linkedin.com/in/andreja-sambolec-22aa6396/

More Related Content

What's hot

Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Agile+DevOps - do we understand it?
Agile+DevOps - do we understand it?Agile+DevOps - do we understand it?
Agile+DevOps - do we understand it?toamitkumar
 
Security Testing for Containerized Applications
Security Testing for Containerized ApplicationsSecurity Testing for Containerized Applications
Security Testing for Containerized ApplicationsSoluto
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOpsTechWell
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cdAmandeep Singh
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsTag1 Consulting, Inc.
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Luca Minudel
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringSushma
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationZahra Golmirzaei
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery Sarah Elson
 
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...Michael Meyers
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflowAlbina Tiupa
 
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungOpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungDigicomp Academy AG
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsJanBask Training
 
Drupalcon Sessions about Devops
Drupalcon Sessions about DevopsDrupalcon Sessions about Devops
Drupalcon Sessions about DevopsAGILEDROP
 

What's hot (20)

Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Agile+DevOps - do we understand it?
Agile+DevOps - do we understand it?Agile+DevOps - do we understand it?
Agile+DevOps - do we understand it?
 
Dev ops
Dev opsDev ops
Dev ops
 
Security Testing for Containerized Applications
Security Testing for Containerized ApplicationsSecurity Testing for Containerized Applications
Security Testing for Containerized Applications
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...
 
Devops ppt
Devops pptDevops ppt
Devops ppt
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality Engineering
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery
 
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflow
 
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungOpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
 
Drupalcon Sessions about Devops
Drupalcon Sessions about DevopsDrupalcon Sessions about Devops
Drupalcon Sessions about Devops
 

Similar to Cloud agnostic continuous quality assurance

Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019ciberkleid
 
Java Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeekJava Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeekZoltan Iszlai
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowAcquia
 
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Vietnam Open Infrastructure User Group
 
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...Kellton Tech Solutions Ltd
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentationIan Renyard
 
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQuality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQAware GmbH
 
Software testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptxSoftware testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptxMeseAK
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOpsDaniel Oh
 
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...Nima Badiey
 
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...QAware GmbH
 
CI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUCI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUHanokh Aloni
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdfVinothini Raju
 
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”Emerasoft, solutions to collaborate
 
Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Pascal Dufour
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetHarald Rietman
 

Similar to Cloud agnostic continuous quality assurance (20)

Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019
 
Java Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeekJava Code Quality Improvements - DevWeek
Java Code Quality Improvements - DevWeek
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
 
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
 
How to Add Perfecto to Your CI
How to Add Perfecto to Your CIHow to Add Perfecto to Your CI
How to Add Perfecto to Your CI
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentation
 
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQuality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
 
Software testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptxSoftware testing proposal for the software comppany .pptx
Software testing proposal for the software comppany .pptx
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
 
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
 
CI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUCI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOU
 
Project P Open Workshop
Project P Open WorkshopProject P Open Workshop
Project P Open Workshop
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
 
Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
 

Recently uploaded

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Recently uploaded (20)

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

Cloud agnostic continuous quality assurance

  • 1. Cloud agnostic continuous quality assurance Software Quality Days 2019 Andreja Sambolec Cloud agnostic continuous quality assurance
  • 2. Cloud agnostic continuous quality assurance Speaker/company introduction ▪ Software developer at Splendit IT-Consulting GmbH ▪ Developing Eclipse plugin for automatic Java code refactoring Slide 2
  • 3. Cloud agnostic continuous quality assurance Agenda ▪ Why cloud agnostic ▪ Source control ▪ Code review ▪ Build automation ▪ Code quality ▪ Processes Slide 3
  • 4. Cloud agnostic continuous quality assurance Why cloud agnostic Slide 4
  • 5. Cloud agnostic continuous quality assurance Why cloud agnostic ▪ Exit cost for cloud provider ▪ GitHub acquisition ▪ Services being abandoned (Stride from atlassian) ▪ EU data shield ▪ Migration from datacenter ▪ Move to using common source control ▪ Move to cloud deployment with already familiar tool Slide 5
  • 6. Cloud agnostic continuous quality assurance Toolset ▪ Toolset for demo ▪ Docker • Container implementation • Docker makes running services much easier ▪ Docker compose • Used for defining environment setup • Basically starting up multiple containers ▪ Using docker hub images ▪ Demo code available on GitHub • https://github.com/asambolec/code-pipeline.git Slide 6
  • 7. Cloud agnostic continuous quality assurance Source control - Intro Slide 7
  • 8. Cloud agnostic continuous quality assurance Source control Slide 8
  • 9. Cloud agnostic continuous quality assurance Source control ▪ Problem ▪ More than one developer working on project need to share same code base ▪ Solution ▪ Source control offers elegant solution for collaboration ▪ Widely adopted ▪ Implementation ▪ Gerrit implements free and open source git source code repository ▪ Clients available and integrated in IDE’s and CLI ▪ Quality assurance ▪ Easy refactoring ▪ History containing information about changes and authors ▪ Teaching opportunity Slide 9
  • 10. Cloud agnostic continuous quality assurance Source control ▪ When to use source control ▪ Rule of thumb: Always ▪ There is no project small enough that it should not be put into source control ▪ Even POC or hello world projects can be valuable for someone ▪ Early implementation problems get documented in history ▪ Warning ▪ Source control tools usually offer statistics about user activities, don’t use them to measure your developer productivity • They will just do more commits to improve their statistics • It will not give you any information about quality of work ▪ Guidelines ▪ It is very important to have common non IDE dependant code formatting • i.e. Google code formatter ▪ Commit messages are important Slide 10
  • 11. Cloud agnostic continuous quality assurance Source control - demo Demo video https://www.youtube.com/watch?v=LpdLwDJzkJI Slide 11
  • 12. Cloud agnostic continuous quality assurance Code review Slide 12
  • 13. Cloud agnostic continuous quality assurance Code review ▪ Pair programming has great impact on code quality ▪ Code review is trying to mimic pair programming without overhead ▪ Code Quality impact ▪ More experienced programmers can review code to maintain quality standards ▪ All code gets second view with different perspective ▪ Gerrit ▪ Implementation of code review as pull requests ▪ Allows integration with other tools to do automated approval ▪ Very advanced CLI support ▪ New and shiny polymer UI in version 2.16 Slide 13
  • 14. Cloud agnostic continuous quality assurance Code review ▪ Guidelines ▪ Pull requests as small as possible ▪ Avoid starvation of junger developers ▪ Be flexible (for skeleton teams approvals can be big overhead) to avoid • blocking developers by waiting for approval • overwhelming senior developers with too much requests Slide 14
  • 15. Cloud agnostic continuous quality assurance Code review - Demo Slide 15 Demo video https://www.youtube.com/watch?v=uJTNeOZxFEY
  • 16. Cloud agnostic continuous quality assurance Build automation Slide 16
  • 17. Cloud agnostic continuous quality assurance Build automation ▪ Problem ▪ Deployments are Error prone and builds are not repeatable ▪ Information about environment status can be lost ▪ Knowledge exchange about build and deployment processes ▪ Level of automation ▪ Automate as much as possible ▪ All non automated things will come back later as technical dept • As lost knowledge due to people change • As time consuming items when scaling up ▪ Naming conventions are most important consideration (Prefix all the stuff) ▪ Jenkins ▪ Generic extendable build and delivery automation tool ▪ Trunk based development and delivery pipelines are first class citizens Slide 17
  • 18. Cloud agnostic continuous quality assurance Build automation ▪ Guidelines ▪ Use build automation tools (Maven, Gradle) on all projects from start ▪ Use CI/CD tools as soon as possible on any project ▪ Deploy small batches to production ▪ Don't tightly couple projects, independent life cycles bring more value • Integration tests are easier to maintain and write • Deployment process is simpler Slide 18
  • 19. Cloud agnostic continuous quality assurance Build automation - Demo Slide 19 ● Update docker-compose.yaml with Jenkins container ● Create Jenkinsfile (right) and pom.xml in hello-world project ● Commit and push to master
  • 20. Cloud agnostic continuous quality assurance Build automation - Demo Slide 20 Demo video https://www.youtube.com/watch?v=8_MLtyo7fac
  • 21. Cloud agnostic continuous quality assurance Code quality control Slide 21
  • 22. Cloud agnostic continuous quality assurance Code quality control ▪ Problem ▪ Wasted time on pull requests for common code issues (i.e. formatting) ▪ Measure quality of code and give measurable code quality targets ▪ Danger zone ▪ Eliyahu M. Goldratt: Tell me how you measure me, and I will tell you how I will behave ▪ Most important goal is to avoid developers doing things just to improve metrics (Code coverage most likely candidate) ▪ SonarQube ▪ Implements automated solution for code quality analyzes ▪ Automatically checks for 400+ common code quality issues and smells Slide 22
  • 23. Cloud agnostic continuous quality assurance Code quality control - Demo Slide 23 ● Update docker-compose.yaml with SonarQube container ● Update Jenkinsfile with Sonar stage ● Commit and push to master
  • 24. Cloud agnostic continuous quality assurance Code quality control - Demo Slide 24 Demo video https://www.youtube.com/watch?v=Q0UoiEt6qeY
  • 25. Cloud agnostic continuous quality assurance Processes Slide 25
  • 26. Cloud agnostic continuous quality assurance Processes ▪ How to improve ▪ Use code review to protect coding standards and teach new developers ▪ Automate build and deployment ▪ Write tests to make refactoring safe ▪ Split monolith into microservices ▪ Reduce deployment cycle • Ideally each microservice independant release cycle with each commit being deployed to production before next merge is done ▪ Measure quality using metrics tool Slide 26
  • 27. Cloud agnostic continuous quality assurance WTFs/Minute Slide 27
  • 28. Cloud agnostic continuous quality assurance Summary ▪ Any dependency to specific cloud provider should be carefully considered with exit cost in mind ▪ Every project must have ▪ Code repository ▪ Build automation and dependency management ▪ Every project should have ▪ Code review ▪ Delivery pipeline ▪ Code quality analysis Slide 28
  • 29. Cloud agnostic continuous quality assurance Thank you for your attention! Any questions…? Andreja Sambolec andreja.sambolec@gmail.com https://github.com/asambolec https://www.linkedin.com/in/andreja-sambolec-22aa6396/