1
How to implement continuous delivery and testing
Tamas Csako
November 2019
How to implement continuous delivery and testing Tamas Csako - - PowerPoint PPT Presentation
How to implement continuous delivery and testing Tamas Csako November 2019 1 TAMAS CSAKO, PH.D. Senior Software Testing Manager Head of Cloud & DevTestSecOps Practice EPAM Hungary 10+ years experience in IT 6+ years experience
1
Tamas Csako
November 2019
3
1
I N T R O D U C T I O N A N D O V E R V I E W
2 3 4
O U R B E S T P R A C T I C E S C O N T I N U O U S D E L I V E R Y A N D T E S T I N G S U M M A R Y
3
4
KEY FACTS PARTNERSHIPS SERVICES MOSTLY USED TOOLS AND TECHNOLOGIES
Active Projects
Global Delivery Centers Cloud, DevOps & Test engineers
Cloud enablement, migration and engineering DevOps Transformation, SDLC Automation Cyber Security AIOps - AI for IT operations Application & Infrastructure management services (AMS & IMS) Testing
5
CI / Build Server
Builds / Status Notifications
Artefact Repository
Dashboard QA Cloud
Version Control
PROD APPROVAL Production Deployment Mock / Unit Tests Сode Analysis Code Review
UAT, INT PERF PROD
Security check Performance Test Integration Test Functional & Regression Test
Feedback
Developer
6
Fully automated infra as code. Build everything. No manual change in important accounts. Do regular POCs of the services as there are numerous changes and new services coming out monthly. Watch the news!
SEPARATE DEV/QA/UAT/PROD ENVIRONMENTS
COMPONENTS MIGHT BE BUILT BY DIFFERENT TOOLS
IAM SSO INTEGRATION IS ESSENTIAL FOR BIG COMPANIES
possible.
7
HANDLE INFRASTRUCTURE CODE LIKE AN APPLICATION CODE
MAKE THE MODULES REUSABLE (WHETHER ACROSS MULTIPLE PROJECTS) AS MUCH AS POSSIBLE
PUSH YOUR INFRASTRUCTURE CODE THROUGH EACH OF YOUR ENVIRONMENTS
PREPARE ROLLBACK AND DISASTER RECOVERY PLAN
8
But keep it simple.
(= Idempotence.) Add state to tasks whether possible.
comments when your code needs explanation.
when clause.
try to keep them in role level. Avoid hard-coded values but use variables and templates.
playbooks.
References:
9
CONTAINERIZE YOUR OPERATIONS
THIRD-PARTY COMPONENTS (OR DEVELOPING YOUR OWN): DO NOT REINVENT THE WHEEL!
Go for shopping curated charts: github.com/helm/charts/tree/master/stable
When tasks like updating, scaling, reconfiguring, continuous supervising are not trivial or hard to cover their automation with built-in functionalities of Kubernetes. You can find a lot here: OperatorHub.io
Try extending functionalities with Sidecar containers instead of altering an upstream
You can validate them (Docker Bench, Claire, Anchore, etc.), then host them from own registry (Harbor, JFrog, Nexus) or even sign them (Notary)
10
CI/CD
SECURE YOUR IMAGES
OPERATIONS/DEBUGGING
an extended toolkit
CONTAINERIZED TESTING
11
HOW TO DO MONITORING IN A FAST-CHANGING ENVIRONMENT REQUIREMENTS:
DISCOVERY:
VISUALIZATION:
more dynamic
12
Gates
13
Clear vision of the target state and production-proven experience Automation of various test types within the iteration
TESTING PYRAMID CONTINUOUS TESTING SHIFT LEFT IN-SPRINT TEST AUTOMATION TOOLS & ACCELERATORS METRIC-BASED CONTROL
Holistic delivery transformation incl. infrastructure and architecture EPAM custom tools and accelerators covering the full test pyramid scope (Automated) quality gates to drive quality in earlier development phases Continuous automated measurment and improvement of QA metrics
14
CI / Build Server
Builds / Status Notifications
Artefact Repository
CI Dashboard QA Cloud
Version Control
PROD APPROVAL Production Deployment Mock / Unit Tests Сode Analysis Code Review
UAT, INT PERF PROD
Security check Performance Test Integration Test Functional & Regression Test
Feedback
Developer
15