• Latest
Pinpoint and Fix Problems Across Microservices

Pinpoint and Fix Problems Across Microservices

December 12, 2021
FCC filings reveal Apple’s ‘Network Adapter’ that runs iOS

FCC filings reveal Apple’s ‘Network Adapter’ that runs iOS

May 22, 2022
ETL, ELT, and Reverse ETL

ETL, ELT, and Reverse ETL

May 22, 2022
Poco Watch review – GSMArena.com news

Poco Watch review – GSMArena.com news

May 22, 2022
These Panasonic deals will save you up to $500 on cameras and lenses!

These Panasonic deals will save you up to $500 on cameras and lenses!

May 22, 2022
Weekly poll results: the Sony Xperia 1 IV and 10 IV are great, if you can afford them

Weekly poll results: the Sony Xperia 1 IV and 10 IV are great, if you can afford them

May 22, 2022
Applying Kappa Architecture to Make Data Available

Applying Kappa Architecture to Make Data Available

May 22, 2022
Nintendo Responds To Wii And DSi Shop Channel Outages

Nintendo Responds To Wii And DSi Shop Channel Outages

May 21, 2022
Poll: What’s The Best Warriors Game On Switch?

Poll: What’s The Best Warriors Game On Switch?

May 21, 2022
Question of the Week: Which woman photographer do you feel is/was most influential?

If you could spend one day with a famous photographer, who would it be?

May 21, 2022
Report: Apple tells suppliers it wants to expand manufacturing outside of China, India and Vietnam likely future production hubs

Report: Apple tells suppliers it wants to expand manufacturing outside of China, India and Vietnam likely future production hubs

May 21, 2022
The Centennial Case: A Shijima Story Review (Switch eShop)

The Centennial Case: A Shijima Story Review (Switch eShop)

May 21, 2022
Apple supplier BOE could lose millions of iPhone 14 OLED panel orders

Apple supplier BOE could lose millions of iPhone 14 OLED panel orders

May 21, 2022
Advertise with us
Sunday, May 22, 2022
Bookmarks
  • Login
  • Register
GetUpdated
  • Home
  • Game Updates
    • Mobile Gaming
    • Playstation News
    • Xbox News
    • Switch News
    • MMORPG
    • Game News
    • IGN
    • Retro Gaming
  • Tech News
    • Apple Updates
    • Jailbreak News
    • Mobile News
  • Software Development
  • Photography
  • Contact
    • Advertise With Us
    • About
No Result
View All Result
GetUpdated
No Result
View All Result
GetUpdated
No Result
View All Result
ADVERTISEMENT

Pinpoint and Fix Problems Across Microservices

December 12, 2021
in Software Development
Reading Time:5 mins read
0 0
0
Share on FacebookShare on WhatsAppShare on Twitter


Microservices are separated logically but are highly dependent on each other to deliver the expected functionality. This means performance problems become distributed across multiple services and can be difficult to trace. 

Gone are the days of a developer being able to just run a debugger to find problem code  — now multiple contributing factors affect the state of an application in microservices, as well as in Kubernetes environments. A testing harness that closely mirrors the production setup and incoming traffic has become a requirement for highly distributed microservices and containerized environments. 

The challenge is how to introduce and test realistic scenarios. These realistic scenarios must cover the variety of use cases that actual customers will experience with APIs and that generate the necessary load to stress test the systems properly. 

Lack of observability prevents developers and test engineers from observing real-life user workflow and its impact on the underlying microservices. To make things more challenging, the underlying microservices are often used by multiple internal applications while the infrastructure lives on public clouds or data centers. Each microservice could have its own technology stack with different performance characteristics.

Additionally, some extensions and tools used in production for scaling and observability are configured differently from the development environment. It’s common for cluster administrators to configure horizontal pod autoscaling (HPA) within the production cluster, for example. This automatically launches additional instances of the application. If the application is not designed to take advantage of HPA, it can fail miserably in production. To use auto-scaling techniques, services need to be completely stateless or employ a storage engine that supports mounting shared volumes. 

Things to consider when attempting to pinpoint distributed problems across microservices include:

  • The number of stacks.
  • Differences in configuration of each stack.
  • The characteristics of each stack hosted by different cloud providers. 
  • A lack of knowledge of the actual end-user workflows. 
  • The load that internal applications are having on the microservices.

Goodbye UI Tests

In microservices scenarios — including Kubernetes — test engineers need to understand API behavior, instead of observing the corresponding workflow through the GUI. Otherwise, when a microservice and its API are deployed, there is no guarantee that code deployed by another team for a completely different microservice will not negatively impact the application. Simply hammering an isolated API with traffic is not a resolution —  individual performance often depends on interactions with an invisible network of internal and external API calls that can vary by time of day and come from different applications. 

Mock Requirement

Finding and fixing distributed problems across microservices must involve automatically simulating an environment and its traffic connections and then rebuilding “mock” suites. Each microservice comes with its own characteristics in terms of input and output and performance. Some microservices are very robust when it comes to weathering latency on the input side, while others will respond either by adding lots of additional latency or by spitting out faulty responses to incoming API requests. This is especially problematic for dependencies on external API calls where performance could change by time of day based on customer demand or in a much more erratic manner. 

Another issue with distributed applications arises from abruptly changing usage patterns. Maybe one developer changed their mind about limiting the data input to only the few required fields. They may now see tremendous upside in ingesting all fields and time to serve a request. 

An ideal test environment needs to simulate the myriad of interdependencies between microservices in a manner that reflects real-life usage patterns. The goal is not to break the application by loading it up with brute-force request patterns but to figure out its boundaries during real-life everyday use. Therefore, a proper testing environment needs the following: 

1) Real-life usage patterns that do not rely on the assumed happy path but replays sets of actual workflows that can be triggered by other software or via human interaction through a GUI. 

2) In addition to recording these workflows, the test framework needs to replicate the involved microservices, internal and external, and factor in their received load, average, and peak, based on use by other applications. 

3) The test environment needs to simulate the production environments using tools plugged in with their Kubernetes stack, mirroring specific configurations for the organization’s cloud setup, handling of application state and data connections, integrations points with external services, and so on. 

4) DevOps pipeline integration is critical to catch issues early in the development process. This can prevent architectural decisions that would make the boundaries between microservices brittle and therefore prone to failure. This is especially important in situations where developers create quick workarounds for problems that can be detected right before release time, but can become significant bottlenecks once in production. 

A proper testing harness that meets all of the above criteria should allow the DevOps team to continuously stress-test their APIs using real-world traffic without the need for complicated scripting. This can be achieved with Jenkins — and the proper testing-harness platform — such that a simple kubectl command can apply a specific YAML file from a repository into a quality-assurance (QA) namespace. This quick operation allows the application to be deployed into a simulation environment, where it will encounter the same data and dependencies as if it were in production. 

In addition to taking all of the complexities into account of the working microservices environment, the test harness must be highly assertive. It should thus “stop or even delete” the application or system with extreme loads to see how it will hold up once deployed.  

Following the completion of such a test during any stage of the CI/CD process, the following metrics should be provided: 

  • Response Time (latency or duration): how long a transaction takes to complete.
  • Throughput (traffic or utilization or rate): how many transactions are happening over a unit of time (such as transactions per second or minute). 
  • Error Rate: a calculation of the rate of contractual/data response errors. 
  • Infrastructure-saturation metrics during stress-test replay of production-like traffic.

Let’s take an ecommerce environment as an example. In a proper test harness for microservices, the application might be tested with a mock Stripe service or another payment system, along with other backend dependencies. A traffic generator container is then used to serve responses that the system under test will typically encounter.  

A proper mock environment for microservices should also provide chaos testing. This might involve shutting down six out of a dozen customer APIs or boosting latency among certain microservices connections to payment systems Stripe and PayPal. For the responder container, it is possible to set the test harness so that external APIs from Stripe are unresponsive 20% of the time. When the connection times out, a chaos test should determine whether the appropriate error message is communicated, as opposed to the user interface displaying a generic 404 error page.  



Source link

ShareSendTweet
Previous Post

OnePlus 9RT confirm 🔥🔥 Launch Date in ⚡India ⚡ | SD 888, 600HZ TSR, Sony IMX 766 | Tech hyper

Next Post

Photography inspiration: Make every pixel count

Related Posts

ETL, ELT, and Reverse ETL

May 22, 2022
0
0
ETL, ELT, and Reverse ETL
Software Development

This is an article from DZone's 2022 Data Pipelines Trend Report.For more: Read the Report ETL (extract, transform, load) has...

Read more

Applying Kappa Architecture to Make Data Available

May 22, 2022
0
0
Applying Kappa Architecture to Make Data Available
Software Development

Introduction  Banks are accelerating their modernization effort to rapidly develop and deliver top-notch digital experiences for their customers. To achieve...

Read more
Next Post
Photography inspiration: Make every pixel count

Photography inspiration: Make every pixel count

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

© 2021 GetUpdated – MW.

  • About
  • Advertise
  • Privacy & Policy
  • Terms & Conditions
  • Contact

No Result
View All Result
  • Home
  • Game Updates
    • Mobile Gaming
    • Playstation News
    • Xbox News
    • Switch News
    • MMORPG
    • Game News
    • IGN
    • Retro Gaming
  • Tech News
    • Apple Updates
    • Jailbreak News
    • Mobile News
  • Software Development
  • Photography
  • Contact
    • Advertise With Us
    • About

Welcome Back!

Login to your account below

Forgotten Password? Sign Up

Create New Account!

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?