"I've just joined a company and the architects love microservices but the developers love Big Data solutions. Do they mix? Can you point me in the direction of where I can read more about marrying the two together?" - Big Data Engineer working for a UK financial startup.
Microservice architectures are a tool to solve a specific problems an organisation might have. If you have problems that can be solved by using microservice architectures, generate 2-3 options and if the microservice route looks most promising, go for it.
Our general recommendation would be to focus on the problems you have to solve and the constraints you are working with, generate a few options and possible solutions and choose the one that seems most promising.
There will be certain scenarios where BigData and microservices will work well together, and others where they will not make sense. We would have to know more details to be of further help, please email contact us to schedule a call to discuss your specific requirements.
We recommend reading Sequoia's Guide to Microservices and Martin Fowler's blog on microservices as a good starting point to problems microservice architectures help solving.
Monday, 27 January 2020
Wednesday, 22 January 2020
Friday, 17 January 2020
Traffic Parrot 5.10.0 released, whats new?
We have just released version 5.10.0. Here is a list of the changes that came with the release:
Features
- Added support for IBM®MQ message delays in replay mode
-
Added support for specifying multiple IBM®MQ queues, using queue manager names from ibm-mq-connections.json to record using syntax in script tab in the UI:
# # This is a sample comment # QueueManager:'Local Docker MQ 9' ProxyRequestQueue:'PROXY_PROCESS_PAYMENT' LiveRequestQueue:'PROCESS_PAYMENT' LiveResponseQueue:'PAYMENT_PROCESSESED' ProxyResponseQueue:'PROXY_PAYMENT_PROCESSESED' # # This is a sample comment # QueueManager:'Local Docker MQ 9' ProxyRequestQueue:'PROXY_CREATE_ORDER' LiveRequestQueue:'CREATE_ORDER' LiveResponseQueue:'ORDER_CREATED' ProxyResponseQueue:'PROXY_ORDER_CREATED'
Fixes
- Ensure IBM®MQ channel connections are always released after use
Monday, 13 January 2020
How can I distinguish mapping A (which belongs to service A) and mapping B (which belongs to service B)?
"How can I distinguish mapping A (which belongs to service A) and mapping B (which belongs to service B)?" - Intern at a global software development consultancy.
Good question!
You can use the URL or the service. For example, typically, the Users service will have a /users URL.Is this the case in your company as well? If you need more details please contact support@trafficparrot.com and we will be more than happy to help!
Good question!
You can use the URL or the service. For example, typically, the Users service will have a /users URL.Is this the case in your company as well? If you need more details please contact support@trafficparrot.com and we will be more than happy to help!
Sunday, 12 January 2020
How to use Mockito to mock grpc ServiceBlockingStub?
"How do I use Mockito to mock grpc ServiceBlockingStub to throw StatusRuntimeException with a specific status?" - Java developer
You have a few options:
You have a few options:
- NOT RECOMMENDED: Use Mockito v2 to mock final classes and methods.
- NOT RECOMMENDED: Use powermock to mocks final classes and methods.
- Recommended: Use the gRPC Java test framework like GrpcCleanupRule and InProcessServerBuilder. See HelloWorldClientTest for an example.
- Recommended: Do over-the-wire gRPC API mocking/simulation. Use a third-party tool that will create over-the-wire API mocks/simulators for your API. For example, Traffic Parrot.
Note why mocking final, in this case, might be a bad idea: Mocking final classes or methods might be a bad idea, depending on the case. The devil is in the details. In your situation, you are creating a mock of the generated code, so you are assuming how that generated code will behave in the future. gRPC and Protobuf are still rapidly evolving, so it might be risky to make those assumptions, as they might change and you won't notice because you do not check your mocks against the generated code. Hence, it's not a good idea to mock the generated code unless you really have to.
Friday, 3 January 2020
QAs testing microservices can use third party and backend mocks to speed up testing
While testing microservices you will often need to mock or stub the third-party and legacy backend systems.
Third-party and backend system mocks and stubs will help you resolve issues with:
* Setting up test data in third party and backend systems
* Simulating API and backend system error messages (for negative or sad path testing)
* Simulating protocol-specific errors (for negative or sad path testing)
* Simulating slow responses (for performance testing)
You can run Traffic Parrot in Docker and OpenShift and Kubernetes, which is what you need when working with microservice architectures.
For more details how to use mocks when testing microservices watch "How software testers can test microservices".
See the diagram below for example usage of Traffic Parrot when testing microservices:
Subscribe to:
Posts (Atom)