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)

To get the most out of this book

This book can be read without a computer or laptop to hand; you need nothing more than the book itself. However, to follow the examples in the book, you need Java 8, which you can download from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, and you will also need your favorite IDE for the examples. I have used the Spring Tool Suite (STS). Download the latest version of STS from https://spring.io/tools/sts/all according to your OS. Java 8 and STS work on a variety of platforms, including Windows, macOS, and Linux.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com
  2. Select the SUPPORT tab
  3. Click on Code Downloads & Errata
  4. Enter the name of the book in the Search box and follow the onscreen instructions

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Hands-On-Microservices-Monitoring-and-Testing. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Code in action

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "As you can see, the service name is account-service, and it will run on port 1111."

A block of code is set as follows:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

@Service
public class AccountServiceImpl implements AccountService {
@Autowired
@LoadBalanced
RestTemplate restTemplate;

@HystrixCommand(fallbackMethod = "defaultAccount")
public Account findAccount(Integer accountId) {
return restTemplate.getForObject("http://ACCOUNT-SERVICE/account/{accountId}", Account.class, accountId);
}

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "As you can see in the preceding screenshot, this is done by right-clicking on Test Plan and then selecting Add | Threads (Users) | Thread Group."

Warnings or important notes appear like this.
Tips and tricks appear like this.