Amplifying feedback through Microservices and Containers

Slides:



Advertisements
Similar presentations
Computer System Architectures Computer System Software
Advertisements

Windows Azure Conference 2014 Running Docker on Windows Azure.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Full and Para Virtualization
Online Software November 10, 2009 Infrastructure Overview Luciano Orsini, Roland Moser Invited Talk at SuperB ETD-Online Status Review.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Group Members Hamza Zahid (131391) Fahad Nadeem khan Abdual Hannan AIR UNIVERSITY MULTAN CAMPUS.
Computer System Structures
KRISHNACHANDER KALIYAPERUMAL PROJECT MANAGER
Introduction to threads
OPERATING SYSTEM CONCEPTS AND PRACTISE
Self-Contained Systems
Virtualization.
DevOps Cloud Native Microservices
Containers as a Service with Docker to Extend an Open Platform
Bentley Systems, Incorporated
Essentials of UrbanCode Deploy v6.1 QQ147
Virtualization Review and Discussion
Current Generation Hypervisor Type 1 Type 2.
A Case Study: Automated Continuous Software Engineering Cycle (ACSEC)
Integration Testing.
Docker Birthday #3.
Cisco Data Virtualization
Mobile Application Test Case Automation
Distribution and components
Grid Computing.
All-Inclusive Testing in API Management
WP1 activity, achievements and plans
Introduction to Operating System (OS)
Hierarchical Architecture
Advanced Integration and Deployment Techniques
Oracle Solaris Zones Study Purpose Only
AWS. Introduction AWS launched in 2006 from the internal infrastructure that Amazon.com built to handle its online retail operations. AWS was one of the.
Quick Introduction to OS
9/20/ :55 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Chapter 9: Class Tournament
Chapter 2: Operating-System Structures
Continuous Performance Engineering
Quantifying Quality in DevOps
Using docker containers
Amplifying feedback through Microservices and Containers
Continuous Automated Chatbot Testing
Winter 2016 (c) Ian Davis.
Software Defined Networking (SDN)
Virtualization Layer Virtual Hardware Virtual Networking
Enterprise Service Bus (ESB) (Chapter 9)
Introduction to Software Testing
Page Replacement.
Chapter 2: System Structures
Verification and Validation Unit Testing
Princess Nourah bint Abdulrahman University
Automated Testing and Integration with CI Tool
IBM Containers Docker in the Cloud
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
Cloud computing mechanisms
Openstack-alapú privát felhő üzemeltetés
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Outline Chapter 2 (cont) OS Design OS structure
Addressing Test coverage in Continuous Testing
Presented by Bogdan Stanca-Kaposta (Spirent)
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Hardware-less Testing for RAS Software
Outline Operating System Organization Operating System Examples
Harrison Howell CSCE 824 Dr. Farkas
ONAP Architecture Principle Review
SSDT, Docker, and (Azure) DevOps
Presentation transcript:

Amplifying feedback through Microservices and Containers Meghashyam Varanasi - Associate Director Cognizant Technology Solutions

01 04 02 05 03 06 Introduction to the Topic Functional / Non Functional Testing Micro services Vs Services 02 05 QA benefits with Containers Bottom up Testing Pyramid 03 06 Canary releases & role of container QA

Understanding the Topic 3 Principles of DevOps Microservices Containers Traditional Micro Services One Block 1 2 3 4 5 6 8 Systems Thinking Continual Experimentation Feedback Amplification Small Autonomous Choice of Technology Service Velocity Variation Visualization Independent deployment

Services Vs. Micro services Traditional Services Micro Services Autonomous Decentralized Independently Scalable Technology Diversity Loosely coupled Characteristics Shortcomings Services are independent, cater to be new projects and language agnostic Bits of code comprise services and are loosely packed Intercom via API, specifically by a REST service Service monitoring adds to overheads Tracking service failures is a painstaking job API calls are sometimes more of an overhead than the monolith intercommunication

Layers of Testing in Micro services GUI Layer E2E Integrated Systems Test Verify that a system meets external requirements and achieves its goals, testing the entire system, from end to end. Verify interactions at the boundary of an external service asserting that it meets the contract expected by a consuming service. Contract Test Limit the scope of the exercised software to a portion of the system under test, manipulating the system through internal code interfaces and using test doubles to isolate the code under test from other components. Component Test [Out Process & In Process] Exercise the smallest pieces of testable software in the application to determine whether they behave as expected. Unit Test

Microservice – Functional Testing at various layers Unit Testing Component Testing Core unit level functionality testing Test the lowest level of code Full functionality testing of service Similar to White box testing Contract Testing Integrated Systems Testing Test the contracts the are agreed with other components/services Interactions are verified at the boundary Data flows, communication paths, Interactions among microservices Integrations code, Protocol level issues End to End Testing Full-fledged testing by covering the overall application in test, infrastructure related items such as firewalls, proxies, load balancer

Microservice – Non Functional Testing Performance Testing Session Management & Cache Testing Individual microservices need to be tested as per the desired levels System wide performance testing Session handling across the Microservices Caching at the Microservice & system level Fail Over and Recovery Testing Load Balancing Testing Build a strategy for fail over and recovery of individual services & test the same Ensure that the containers are instantiated and load balanced as per the design (Prod)

Parallel Testing with Microservices Build Unit Test Quality Scan (Sonar) Component Test Contract Tests Deploy to Dev Contract Tests Deploy to Test Contract Tests Service 4 Build Unit Test Quality Scan (Sonar) Component Test Contract Tests Deploy to Dev Contract Tests Deploy to Test Contract Tests Integrated Systems Test Deploy to Prod E2E Tests Service 2 Build Unit Test Quality Scan (Sonar) Component Test Contract Tests Deploy to Dev Contract Tests Deploy to Test Contract Tests QG1: Unit Test, Code Coverage ,Static Analysis for critical and major violations – Warning Threshold QG2: Contract Test QG3: Contract Test , Static Analysis for critical and major violations – Error Threshold QG4: Contract Test QG5: Integration Execution status & Test cases in passed state Any open Critical or major defects QG6: E2E Execution status & Test cases in passed state – Any open Critical or major defects Service 3 Build Unit Test Quality Scan (Sonar) Component Test Contract Tests Deploy to Dev Contract Tests Deploy to Test Contract Tests

What is a Container A Technology Problem A Shipping Industry Problem A Shipping Industry Solution

Container/ Docker in Pictures – Virtual Machine Vs Container Virtual Machines Containers Vs Containers are an abstraction at the app layer that packages code and dependencies together.  Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers take up less space than VMs (container images are typically tens of MBs in size), and start almost instantly. Virtual machines (VMs) are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple VMs to run on a single machine. Each VM includes a full copy of an operating system, one or more apps, necessary binaries and libraries - taking up tens of GBs. VMs can also be slow to boot.

QA Benefits of Containers Ease of creating QA environments Run more tests and Test faster` Ability to create and terminate containers at will helps QA teams to bring up Test Environment with ease Parallel tests can be executed on multiple containers in the test environment Improved confidence in the production system Run testing in environment with slight variation Lesser environment/configuration mismatch issues Improved confidence in the production system Maintain & Test multiple environments with slight variation depending on the need

Canary Release – Container Advantages Canary release is a technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody. Canary Release Blue Green Deployments Canary Release - Fail Fast to Amplify Feedback When running multiple versions of an application, one needs a quickly way to create copies of the application and make configuration changes. This is possible with containers, as they can be spun up in seconds, and abstract away the application from the operating system. Container is ideal for powering canary releases and testing them with confidence.

References & Appendix https://en.wikipedia.org/wiki/Microservices https://en.wikipedia.org/wiki/Docker_(software) https://en.wikipedia.org/wiki/DevOps https://www.docker.com https://martinfowler.com/bliki/CanaryRelease.html https://martinfowler.com/articles/microservices.html https://www.slideshare.net/jpetazzo/introduction-docker-linux-containers-lxc http://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-releases/ https://spring.io/blog/2015/07/14/microservices-with-spring https://dzone.com/articles/microservices-basics

Author Biography Meghashyam Varanasi has about 15 years of experience in IT and ITes industry. He holds an MBA from IIM Ahmedabad & B.Tech Computer science degree. He is also AWS, PMP, ITIL certified besides few other technology and domain certifications. Over the years he has been working in solving various customer problems in the technology leadership space.

Q&A