SlideShare a Scribd company logo
1 of 34
MICROSERVICES: BETTER FOR DEVS OR
QA'S?
Aliona Tudan, senior QA at N-iX
ABOUT MYSELF
 7-8 years in QA
 Leading teams
 BI testing
 WS testing
 Back-end auto-tests writing & maintaining
 Java, Groovy
Client
Server
WTF?
WTF?REST
Hello dear Mr.Blah,
sorry for disturbing,
could you please...
Kind regards,
...
Hello dear Mr.Blah,
sorry for disturbing,
could you please...
Kind regards,
...
SOAP
ARCHITECTURE OF COMMUNICATION
ONE LAYER
MORE
Microservice applications are composed of small, independently
versioned, and scalable customer-focused services that
communicate with each other over standard protocols with well-
defined interfaces.
MICROSERVICE
In short, the microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use different
data storage technologies.
-- James Lewis and Martin Fowler
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices
https://martinfowler.com/articles/microservice-trade-offs.html
DIFFERENCES
 A monolithic app contains domain-specific functionality and is normally
divided by functional layers, such as web, business, and data.
 You scale a monolithic app by cloning it on multiple servers/virtual
machines/containers.
 A microservice application separates functionality into separate smaller
services.
 The microservices approach scales out by deploying each service
independently, creating instances of these services across servers/virtual
machines/containers.
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices
REAL LIFE
REAL LIFE
REAL LIFE
private static class EventDetails {
private static final String eventHubName = "Hub";
private static final String sasKeyName = "KeyName";
private static final String sasKey = "Key";
public static EventDetailsDto getEventDetails() {
final URI endpoint;
try {
endpoint = new URI("http://url.com");
} catch (URISyntaxException e) {
throw new RuntimeException("URI is not correct. Cause: " + e.getLocalizedMessage(), e);
}
EventDetailsDto eventDetailsDto = new EventDetailsDto();
eventDetailsDto.setEndpoint(endpoint);
eventDetailsDto.setEventHubName(eventHubName);
eventDetailsDto.setSasKeyName(sasKeyName);
eventDetailsDto.setSasKey(sasKey);
return eventDetailsDto;
}
}
JAVA CODE
public class EventDetailsDto{
private URI endpoint;
private String eventHubName;
private String sasKeyName;
private String sasKey;
public EventDetailsDto() {}
public URI getEndpoint() {
return endpoint;
}
public void setEndpoint(URI endpoint) {
this.endpoint = endpoint;
}
public String getEventHubName() {
return eventHubName;
}
public void setEventHubName(String eventHubName) {
this.eventHubName = eventHubName;
}
JAVA CODE
JAVA CODE
public String getSasKeyName() {
return sasKeyName;
}
public void setSasKeyName(String sasKeyName) {
this.sasKeyName = sasKeyName;
}
public String getSasKey() {
return sasKey;
}
public void setSasKey(String sasKey) {
this.sasKey = sasKey;
}
@Override
public String toString() {
return "EventDetailsDto{" +
"endpoint=" + endpoint +
", eventHubName='" + eventHubName + ''' +
", sasKeyName='" + sasKeyName + ''' +
", sasKey='" + sasKey + ''' +
'}';
}
}
public static void sendEvent(final EventDetailsDto detailsDto, String partitionKey, byte[] payloadBytes,
String streamNamespace) {
EventHubClient ehClient = null;
EventDetailsDto eventDetailsDto = detailsDto;
try {
if (eventDetailsDto == null) {
eventDetailsDto = EventDetails.getEventDetails();
}
ConnectionStringBuilder connStr = new ConnectionStringBuilder(eventDetailsDto.getEndpoint(),
eventDetailsDto.getEventHubName(), eventDetailsDto.getSasKeyName(), eventDetailsDto.getSasKey());
EventData eventData = new EventData(payloadBytes);
eventData.getProperties().put("StreamNamespace", streamNamespace);
ehClient = EventHubClient.createFromConnectionStringSync(connStr.toString());
ehClient.sendSync(eventData, partitionKey);
} catch (Throwable throwable) {
throw new RuntimeException("There was a trouble building connection to Azure: " +
throwable.getLocalizedMessage(), throwable);
} finally {
try {
ehClient.closeSync();
} catch (ServiceBusException e) {
throw new RuntimeException("Event to Azure Event Hub was not sent. Cause: " +
e.getLocalizedMessage(), e);
}
}
}
JAVA CODE
HOW TO APPLY IN TESTS?
Simply add scripts step into SOAP UI
SOAP UI SCRIPT
import lib.PushEvent;
def eventHubName =
context.getTestCase().getTestSuite().project.getPropertyValue("eventHubName");
def sasKeyName = "Key";
def sasKey = "Blahblahblah";
endpoint = new URI("http://blah.net");
EventDetailsDto eventDetailsDto = new EventDetailsDto();
eventDetailsDto.setEndpoint(endpoint);
eventDetailsDto.setEventHubName(eventHubName);
eventDetailsDto.setSasKeyName(sasKeyName);
eventDetailsDto.setSasKey(sasKey);
String partitionKey = "uuid";
byte[] payloadBytes =
"[{"EmailAddress":"test@test.com","TemplateId":"WelcomeEmail","TimeStamp":"
2017-04-20T13:26:25","Parameters":{"SenderName":“John
Doe"},"Random":"Random"}]".getBytes("UTF-8");
String streamNamespace = "Email";
PushEvent.sendEvent(eventDetailsDto, partitionKey,payloadBytes, streamNamespace);
CONCLUSIONS
 Microservices are more expensive
 More difficult for development
 More time for settings
 Easier to test when having OOP knowledge or desire to know OOP
 More difficult to test manually because of configurations
 More progress
QUESTIONS
LINKS
 Microsoft docs
 Martin Fowler: microservices
 Microservices and Rules Engines – a blast from the past - Udi Dahan
CONTACTS
Skype: ymkocv
Facebook: ymkocv
Email: ymkocv@gmail.com

More Related Content

What's hot

Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost CustomizationEyal Vardi
 
Server-Sent Events in Action
Server-Sent Events in ActionServer-Sent Events in Action
Server-Sent Events in ActionAndrei Rusu
 
SCWCD 1. get post - url (cap1 - cap2 )
SCWCD 1. get   post - url (cap1 - cap2 )SCWCD 1. get   post - url (cap1 - cap2 )
SCWCD 1. get post - url (cap1 - cap2 )Francesco Ierna
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVCIndicThreads
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana MandziukFwdays
 
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEREST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEreneechemel
 

What's hot (7)

Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost Customization
 
Server-Sent Events in Action
Server-Sent Events in ActionServer-Sent Events in Action
Server-Sent Events in Action
 
SCWCD 1. get post - url (cap1 - cap2 )
SCWCD 1. get   post - url (cap1 - cap2 )SCWCD 1. get   post - url (cap1 - cap2 )
SCWCD 1. get post - url (cap1 - cap2 )
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVC
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
 
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLEREST Easy with AngularJS - ng-grid CRUD EXAMPLE
REST Easy with AngularJS - ng-grid CRUD EXAMPLE
 
Take REST
Take RESTTake REST
Take REST
 

Similar to Альона Тудан “Microservices: better for Devs or QA’s?”

Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Michel Schudel
 
Vertx - Reactive & Distributed
Vertx - Reactive & DistributedVertx - Reactive & Distributed
Vertx - Reactive & DistributedOrkhan Gasimov
 
The Windows Runtime and the Web
The Windows Runtime and the WebThe Windows Runtime and the Web
The Windows Runtime and the WebJeremy Likness
 
DeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsDeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsRevolution Analytics
 
SOA with C, C++, PHP and more
SOA with C, C++, PHP and moreSOA with C, C++, PHP and more
SOA with C, C++, PHP and moreWSO2
 
WinRT and the Web: Keeping Windows Store Apps Alive and Connected
WinRT and the Web: Keeping Windows Store Apps Alive and ConnectedWinRT and the Web: Keeping Windows Store Apps Alive and Connected
WinRT and the Web: Keeping Windows Store Apps Alive and ConnectedJeremy Likness
 
Quick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerQuick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerNic Raboy
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSam Brannen
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Mindfire Solutions
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscanyLuciano Resende
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001Fred Jabbari
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudZendCon
 

Similar to Альона Тудан “Microservices: better for Devs or QA’s?” (20)

Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
 
Vertx - Reactive & Distributed
Vertx - Reactive & DistributedVertx - Reactive & Distributed
Vertx - Reactive & Distributed
 
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
JavaCro'14 - Building interactive web applications with Vaadin – Peter LehtoJavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
 
The Windows Runtime and the Web
The Windows Runtime and the WebThe Windows Runtime and the Web
The Windows Runtime and the Web
 
DeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsDeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence Applications
 
SOA with C, C++, PHP and more
SOA with C, C++, PHP and moreSOA with C, C++, PHP and more
SOA with C, C++, PHP and more
 
WinRT and the Web: Keeping Windows Store Apps Alive and Connected
WinRT and the Web: Keeping Windows Store Apps Alive and ConnectedWinRT and the Web: Keeping Windows Store Apps Alive and Connected
WinRT and the Web: Keeping Windows Store Apps Alive and Connected
 
Quick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerQuick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase Server
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. REST
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Old WP REST API, New Tricks
Old WP REST API, New TricksOld WP REST API, New Tricks
Old WP REST API, New Tricks
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
 
NodeJS
NodeJSNodeJS
NodeJS
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscany
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 

More from Dakiry

НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯ
НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯНАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯ
НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯDakiry
 
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна Тіторенко
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна ТіторенкоМАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна Тіторенко
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна ТіторенкоDakiry
 
How to run a discovery workshop
How to run a discovery workshopHow to run a discovery workshop
How to run a discovery workshopDakiry
 
З понеділка йду на новий проект. The tester’s version - Олександра Зубаль
З понеділка йду на новий проект. The tester’s version - Олександра ЗубальЗ понеділка йду на новий проект. The tester’s version - Олександра Зубаль
З понеділка йду на новий проект. The tester’s version - Олександра ЗубальDakiry
 
Робота з текстом: від чернетки до опублікування
Робота з текстом: від чернетки до опублікуванняРобота з текстом: від чернетки до опублікування
Робота з текстом: від чернетки до опублікуванняDakiry
 
Контентна стратегія в ІТ: від статті до першого ліда
Контентна стратегія в ІТ: від статті до першого лідаКонтентна стратегія в ІТ: від статті до першого ліда
Контентна стратегія в ІТ: від статті до першого лідаDakiry
 
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Dakiry
 
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven. Story of gr...
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven.  Story of gr...Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven.  Story of gr...
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven. Story of gr...Dakiry
 
Микола Солопій "Selenium рулить, однак..."
Микола Солопій "Selenium рулить, однак..."Микола Солопій "Selenium рулить, однак..."
Микола Солопій "Selenium рулить, однак..."Dakiry
 
Oleksandra Zubal "Project starters: test automation view"
Oleksandra Zubal "Project starters: test automation view"Oleksandra Zubal "Project starters: test automation view"
Oleksandra Zubal "Project starters: test automation view"Dakiry
 
Vladyslav Romanchenko "How to keep high code quality without e2e tests"
Vladyslav Romanchenko "How to keep high code quality without e2e tests"Vladyslav Romanchenko "How to keep high code quality without e2e tests"
Vladyslav Romanchenko "How to keep high code quality without e2e tests"Dakiry
 
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...Dakiry
 
Yuriy Malyi "E2E testing organization in multi-system projects"
Yuriy Malyi "E2E testing organization in multi-system projects"Yuriy Malyi "E2E testing organization in multi-system projects"
Yuriy Malyi "E2E testing organization in multi-system projects"Dakiry
 
Petro Tarasenko "You've become a TL. What's next?"
 Petro Tarasenko "You've become a TL. What's next?" Petro Tarasenko "You've become a TL. What's next?"
Petro Tarasenko "You've become a TL. What's next?"Dakiry
 
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"Roman Yakymchuk "Дослідницьке тестування. Перезапуск"
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"Dakiry
 
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...Dakiry
 
Олексій Брошков "Мистецтво Дослідницького Тестування"
Олексій Брошков "Мистецтво Дослідницького Тестування"Олексій Брошков "Мистецтво Дослідницького Тестування"
Олексій Брошков "Мистецтво Дослідницького Тестування"Dakiry
 
Альона Тудан " Життя QA в ажурі"
Альона Тудан " Життя QA в ажурі"Альона Тудан " Життя QA в ажурі"
Альона Тудан " Життя QA в ажурі"Dakiry
 
Андрій Степура "Тренди в публічних виступах"
Андрій Степура "Тренди в публічних виступах"Андрій Степура "Тренди в публічних виступах"
Андрій Степура "Тренди в публічних виступах"Dakiry
 
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft: ННК і його...
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft:  ННК і його...Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft:  ННК і його...
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft: ННК і його...Dakiry
 

More from Dakiry (20)

НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯ
НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯНАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯ
НАРЦИСИЗМ ЯК ПАСИВНЕ КУРІННЯ
 
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна Тіторенко
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна ТіторенкоМАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна Тіторенко
МАНІПУЛЯЦІЇ: ХТО КОГО І ДЛЯ ЧОГО? - Інна Тіторенко
 
How to run a discovery workshop
How to run a discovery workshopHow to run a discovery workshop
How to run a discovery workshop
 
З понеділка йду на новий проект. The tester’s version - Олександра Зубаль
З понеділка йду на новий проект. The tester’s version - Олександра ЗубальЗ понеділка йду на новий проект. The tester’s version - Олександра Зубаль
З понеділка йду на новий проект. The tester’s version - Олександра Зубаль
 
Робота з текстом: від чернетки до опублікування
Робота з текстом: від чернетки до опублікуванняРобота з текстом: від чернетки до опублікування
Робота з текстом: від чернетки до опублікування
 
Контентна стратегія в ІТ: від статті до першого ліда
Контентна стратегія в ІТ: від статті до першого лідаКонтентна стратегія в ІТ: від статті до першого ліда
Контентна стратегія в ІТ: від статті до першого ліда
 
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
 
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven. Story of gr...
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven.  Story of gr...Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven.  Story of gr...
Stepan Shykerynets "Power of QA (A Journey: From Hell to Heaven. Story of gr...
 
Микола Солопій "Selenium рулить, однак..."
Микола Солопій "Selenium рулить, однак..."Микола Солопій "Selenium рулить, однак..."
Микола Солопій "Selenium рулить, однак..."
 
Oleksandra Zubal "Project starters: test automation view"
Oleksandra Zubal "Project starters: test automation view"Oleksandra Zubal "Project starters: test automation view"
Oleksandra Zubal "Project starters: test automation view"
 
Vladyslav Romanchenko "How to keep high code quality without e2e tests"
Vladyslav Romanchenko "How to keep high code quality without e2e tests"Vladyslav Romanchenko "How to keep high code quality without e2e tests"
Vladyslav Romanchenko "How to keep high code quality without e2e tests"
 
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...
Діана Пінчук "Як відрізнити авторизацію від аутентифікації та перестати бояти...
 
Yuriy Malyi "E2E testing organization in multi-system projects"
Yuriy Malyi "E2E testing organization in multi-system projects"Yuriy Malyi "E2E testing organization in multi-system projects"
Yuriy Malyi "E2E testing organization in multi-system projects"
 
Petro Tarasenko "You've become a TL. What's next?"
 Petro Tarasenko "You've become a TL. What's next?" Petro Tarasenko "You've become a TL. What's next?"
Petro Tarasenko "You've become a TL. What's next?"
 
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"Roman Yakymchuk "Дослідницьке тестування. Перезапуск"
Roman Yakymchuk "Дослідницьке тестування. Перезапуск"
 
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...
Maryna Shulga "Mission Impossible. Впровадити тест процеси, якщо ніхто цього ...
 
Олексій Брошков "Мистецтво Дослідницького Тестування"
Олексій Брошков "Мистецтво Дослідницького Тестування"Олексій Брошков "Мистецтво Дослідницького Тестування"
Олексій Брошков "Мистецтво Дослідницького Тестування"
 
Альона Тудан " Життя QA в ажурі"
Альона Тудан " Життя QA в ажурі"Альона Тудан " Життя QA в ажурі"
Альона Тудан " Життя QA в ажурі"
 
Андрій Степура "Тренди в публічних виступах"
Андрій Степура "Тренди в публічних виступах"Андрій Степура "Тренди в публічних виступах"
Андрій Степура "Тренди в публічних виступах"
 
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft: ННК і його...
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft:  ННК і його...Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft:  ННК і його...
Зоряна Борбулевич "Підхід, який трансформував компанію Microsoft: ННК і його...
 

Recently uploaded

BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfpollardmorgan
 
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...lizamodels9
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creationsnakalysalcedo61
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedKaiNexus
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncrdollysharma2066
 
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDF
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDFCATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDF
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDFOrient Homes
 
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCRsoniya singh
 
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts ServiceVip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Serviceankitnayak356677
 
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756dollysharma2066
 
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadIslamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadAyesha Khan
 
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Timedelhimodelshub1
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptx
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptxBanana Powder Manufacturing Plant Project Report 2024 Edition.pptx
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptxgeorgebrinton95
 
NewBase 22 April 2024 Energy News issue - 1718 by Khaled Al Awadi (AutoRe...
NewBase  22 April  2024  Energy News issue - 1718 by Khaled Al Awadi  (AutoRe...NewBase  22 April  2024  Energy News issue - 1718 by Khaled Al Awadi  (AutoRe...
NewBase 22 April 2024 Energy News issue - 1718 by Khaled Al Awadi (AutoRe...Khaled Al Awadi
 

Recently uploaded (20)

BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
 
Best Practices for Implementing an External Recruiting Partnership
Best Practices for Implementing an External Recruiting PartnershipBest Practices for Implementing an External Recruiting Partnership
Best Practices for Implementing an External Recruiting Partnership
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
 
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creations
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
 
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDF
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDFCATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDF
CATALOG cáp điện Goldcup (bảng giá) 1.4.2024.PDF
 
KestrelPro Flyer Japan IT Week 2024 (English)
KestrelPro Flyer Japan IT Week 2024 (English)KestrelPro Flyer Japan IT Week 2024 (English)
KestrelPro Flyer Japan IT Week 2024 (English)
 
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
 
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts ServiceVip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
 
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756
Call Girls In ⇛⇛Chhatarpur⇚⇚. Brings Offer Delhi Contact Us 8377877756
 
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadIslamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
 
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In BELLMONT HOTEL ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Time
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptx
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptxBanana Powder Manufacturing Plant Project Report 2024 Edition.pptx
Banana Powder Manufacturing Plant Project Report 2024 Edition.pptx
 
NewBase 22 April 2024 Energy News issue - 1718 by Khaled Al Awadi (AutoRe...
NewBase  22 April  2024  Energy News issue - 1718 by Khaled Al Awadi  (AutoRe...NewBase  22 April  2024  Energy News issue - 1718 by Khaled Al Awadi  (AutoRe...
NewBase 22 April 2024 Energy News issue - 1718 by Khaled Al Awadi (AutoRe...
 

Альона Тудан “Microservices: better for Devs or QA’s?”

  • 1. MICROSERVICES: BETTER FOR DEVS OR QA'S? Aliona Tudan, senior QA at N-iX
  • 2. ABOUT MYSELF  7-8 years in QA  Leading teams  BI testing  WS testing  Back-end auto-tests writing & maintaining  Java, Groovy
  • 3.
  • 4.
  • 8. Hello dear Mr.Blah, sorry for disturbing, could you please... Kind regards, ...
  • 9. Hello dear Mr.Blah, sorry for disturbing, could you please... Kind regards, ... SOAP
  • 12. MORE
  • 13.
  • 14.
  • 15.
  • 16. Microservice applications are composed of small, independently versioned, and scalable customer-focused services that communicate with each other over standard protocols with well- defined interfaces. MICROSERVICE
  • 17.
  • 18. In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. -- James Lewis and Martin Fowler
  • 21. DIFFERENCES  A monolithic app contains domain-specific functionality and is normally divided by functional layers, such as web, business, and data.  You scale a monolithic app by cloning it on multiple servers/virtual machines/containers.  A microservice application separates functionality into separate smaller services.  The microservices approach scales out by deploying each service independently, creating instances of these services across servers/virtual machines/containers. https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices
  • 25. private static class EventDetails { private static final String eventHubName = "Hub"; private static final String sasKeyName = "KeyName"; private static final String sasKey = "Key"; public static EventDetailsDto getEventDetails() { final URI endpoint; try { endpoint = new URI("http://url.com"); } catch (URISyntaxException e) { throw new RuntimeException("URI is not correct. Cause: " + e.getLocalizedMessage(), e); } EventDetailsDto eventDetailsDto = new EventDetailsDto(); eventDetailsDto.setEndpoint(endpoint); eventDetailsDto.setEventHubName(eventHubName); eventDetailsDto.setSasKeyName(sasKeyName); eventDetailsDto.setSasKey(sasKey); return eventDetailsDto; } } JAVA CODE
  • 26. public class EventDetailsDto{ private URI endpoint; private String eventHubName; private String sasKeyName; private String sasKey; public EventDetailsDto() {} public URI getEndpoint() { return endpoint; } public void setEndpoint(URI endpoint) { this.endpoint = endpoint; } public String getEventHubName() { return eventHubName; } public void setEventHubName(String eventHubName) { this.eventHubName = eventHubName; } JAVA CODE
  • 27. JAVA CODE public String getSasKeyName() { return sasKeyName; } public void setSasKeyName(String sasKeyName) { this.sasKeyName = sasKeyName; } public String getSasKey() { return sasKey; } public void setSasKey(String sasKey) { this.sasKey = sasKey; } @Override public String toString() { return "EventDetailsDto{" + "endpoint=" + endpoint + ", eventHubName='" + eventHubName + ''' + ", sasKeyName='" + sasKeyName + ''' + ", sasKey='" + sasKey + ''' + '}'; } }
  • 28. public static void sendEvent(final EventDetailsDto detailsDto, String partitionKey, byte[] payloadBytes, String streamNamespace) { EventHubClient ehClient = null; EventDetailsDto eventDetailsDto = detailsDto; try { if (eventDetailsDto == null) { eventDetailsDto = EventDetails.getEventDetails(); } ConnectionStringBuilder connStr = new ConnectionStringBuilder(eventDetailsDto.getEndpoint(), eventDetailsDto.getEventHubName(), eventDetailsDto.getSasKeyName(), eventDetailsDto.getSasKey()); EventData eventData = new EventData(payloadBytes); eventData.getProperties().put("StreamNamespace", streamNamespace); ehClient = EventHubClient.createFromConnectionStringSync(connStr.toString()); ehClient.sendSync(eventData, partitionKey); } catch (Throwable throwable) { throw new RuntimeException("There was a trouble building connection to Azure: " + throwable.getLocalizedMessage(), throwable); } finally { try { ehClient.closeSync(); } catch (ServiceBusException e) { throw new RuntimeException("Event to Azure Event Hub was not sent. Cause: " + e.getLocalizedMessage(), e); } } } JAVA CODE
  • 29. HOW TO APPLY IN TESTS? Simply add scripts step into SOAP UI
  • 30. SOAP UI SCRIPT import lib.PushEvent; def eventHubName = context.getTestCase().getTestSuite().project.getPropertyValue("eventHubName"); def sasKeyName = "Key"; def sasKey = "Blahblahblah"; endpoint = new URI("http://blah.net"); EventDetailsDto eventDetailsDto = new EventDetailsDto(); eventDetailsDto.setEndpoint(endpoint); eventDetailsDto.setEventHubName(eventHubName); eventDetailsDto.setSasKeyName(sasKeyName); eventDetailsDto.setSasKey(sasKey); String partitionKey = "uuid"; byte[] payloadBytes = "[{"EmailAddress":"test@test.com","TemplateId":"WelcomeEmail","TimeStamp":" 2017-04-20T13:26:25","Parameters":{"SenderName":“John Doe"},"Random":"Random"}]".getBytes("UTF-8"); String streamNamespace = "Email"; PushEvent.sendEvent(eventDetailsDto, partitionKey,payloadBytes, streamNamespace);
  • 31. CONCLUSIONS  Microservices are more expensive  More difficult for development  More time for settings  Easier to test when having OOP knowledge or desire to know OOP  More difficult to test manually because of configurations  More progress
  • 33. LINKS  Microsoft docs  Martin Fowler: microservices  Microservices and Rules Engines – a blast from the past - Udi Dahan