Book Image

Hands-On Microservices ??? Monitoring and Testing

By : Dinesh Rajput
5 (1)
Book Image

Hands-On Microservices ??? Monitoring and Testing

5 (1)
By: Dinesh Rajput

Overview of this book

Microservices are the latest "right" way of developing web applications. Microservices architecture has been gaining momentum over the past few years, but once you've started down the microservices path, you need to test and optimize the services. This book focuses on exploring various testing, monitoring, and optimization techniques for microservices. The book starts with the evolution of software architecture style, from monolithic to virtualized, to microservices architecture. Then you will explore methods to deploy microservices and various implementation patterns. With the help of a real-world example, you will understand how external APIs help product developers to focus on core competencies. After that, you will learn testing techniques, such as Unit Testing, Integration Testing, Functional Testing, and Load Testing. Next, you will explore performance testing tools, such as JMeter, and Gatling. Then, we deep dive into monitoring techniques and learn performance benchmarking of the various architectural components. For this, you will explore monitoring tools such as Appdynamics, Dynatrace, AWS CloudWatch, and Nagios. Finally, you will learn to identify, address, and report various performance issues related to microservices.
Table of Contents (11 chapters)

SOA versus microservice architecture

The following table lists some of the differences between SOA and microservice architecture:

Service-oriented Architecture (SOA)

Microservice architecture

Focuses on imperative programming

Focuses on a responsive actor programming style

Its models tend to have an outsized relational database

Microservices frequently use NoSQL or micro-SQL databases (which can be connected to conventional databases)

In SOA, ESB implements communication between mutually-interacting software

In microservices, independent processes communicate with each other using language-agnostic APIs

It is easier to deploy new versions of services frequently, or scale a service independently

Services can operate and be deployed independently of other services

SOA has ESB, which could be a single point of failure that impacts the entire application

Microservice architecture has a much better fault-tolerance system

Data storage is shared between services

Each service has its own data storage