Top 29 Microservices Interview Questions For 2019

Posted by Arnab Roy Chowdhury | January 11, 2019
Microservice Architecture •

9199 Views | 14 Min Read

Microservices

Ever since its inception in 2011, microservices is making huge waves, especially among organizations developing forward-thinking applications. A survey by Nginx shows that 36% of enterprises are currently using Microservices, while another 26% is doing research on how to implement it. There are several reasons that will make Microservices to be the perfect domain if you are thinking to switch your technology or trying to learn a new one. Let’s discuss the top 29 Microservices Interview Questions asked to both freshers as well as experienced developers in different interviews.

1. What Is Spring Cloud?

Probably, the first microservices interview question that you may encounter. Spring Cloud in Microservices, is a system that provides integration with external systems. It is a short-lived framework that builds an application in a fast manner. Being associated with the finite amount of data processing, it plays a very important role in Microservice architecture.

For typical use cases, Spring cloud provides some out of the box experience and a set of extensive features mentioned-below:

  • Versioned and distributed configuration
  • Discovery of service registration
  • Service to service calls
  • Routing
  • Circuit breakers and load balancing
  • Cluster state and leadership election
  • Global locks and distributed messaging

2. What Is Spring Boot?

Spring boot is a major topic under the umbrella of microservices interview questions.
With the new functionalities that have been added, Spring got more complex. Whenever you are starting a new project it is mandatory to add a new build path or Maven dependencies. In short, you will need to do everything from scratch. Spring Boot is the solution that will help you to avoid all the code configurations. Explaining by a real time example is better while answering this common microservices interview question. If you are cooking a dish, the ingredients can be considered to be Spring. While Spring Boot is the completely cooked recipe.

3. How Do You Override A Spring Boot Project’s Default Properties?

This can be done by specifying the properties in application.properties.
For example – In Spring MVC applications, you have to specify the suffix and prefix. This can be done by entering the properties mentioned below in application.properties.

For suffix – spring.mvc.view.suffix: .jsp
For prefix – spring.mvc.view.prefix: /WEB-INF/

4. Role Of Actuator In Spring Boot

It is one of the most important features, which helps you to access the current state of an application that is running in production environment. There are multiple metrics which can be used to check the current state. They also provide endpoints of restful web services which can be simply used to check the different metrics.

5. How Is Spring Security Implemented In A Spring Boot Application?

Minimal configuration is needed for implementation. All you need to do is, add spring-boot-starter-security starter in the file pom.xml. You will also need to create a Spring config class that will override the required method while extending the WebSecurityConfigurerAdapter to achieve security in the application. Here is an example code for the same:

6. Which Embedded Containers Are Supported By Spring Boot?

Whenever you are creating a Java Application, deployment can be done by 2 methods:

  • By using an application container that is external
  • You can also embed the container inside your jar file.

Spring Boot contains Jetty, Tomcat and undertow servers, all of which are embedded.

Jetty – Used in a wide number of projects, Eclipse Jetty can be embedded in frameworks and application servers, tools as well as clusters.

Tomcat – Apache Tomcat is an open source JavaServer pages implementation which works well with embedded systems.

Undertow – A flexible and prominent web server that uses small single handlers to develop a web server.

7. What Do You Mean By End-To-End Testing Of Microservices?

End to End testing validates all the processes in the workflow to check if everything is working properly as expected. It also ensures that the system works in a unified manner, thereby satisfying the business requirement.

8. What Is Semantic Monitoring?

It combines monitoring of the entire application along with automated tests. The primary benefit of Semantic Monitoring is to find out the factors which are more profitable to your business.
Semantic monitoring along with service layer monitoring approaches monitoring of microservices from a business point of view. Once an issue is detected, they allow faster isolation and bug triaging, thereby reducing the main time required to repair. It triages service layer and transaction to figure out the transactions affected by availability or poor performance.

9. How Can You Set Up Service Discovery?

There are multiple ways to set up service discovery. I’ll choose the one that I think to be most efficient, Eureka by Netflix. It is a hassle free procedure that does not weigh much on the application. Plus, it supports numerous types of web applications.

Eureka configuration involves 2 steps – Client configuration and server configuration.
Client configuration can be done easily by using the property files. In the classpath, Eureka searches for eureka-client.properties. It also searches for overrides caused by the environment in property files which are environment specific.

For server configuration, you have to configure the client first. Once that is done, the server fires up a client which is used to find other servers. The Eureka server, by default, uses the Client configuration to find the peer server.

10. Why Would You Opt For Microservices Architecture?

A very common microservices interview question which you should be ready for! There are plenty of pros that are offered by Microservices architecture. Here are a few of them:

  • Microservices can adapt easily to other frameworks or technologies.
  • Failure of a single process does not affect the entire system.
  • Provides support to big enterprises as well as small teams.
  • Can be deployed independently and in relatively less time.

11. Why Would You Need Reports & Dashboards In Microservices?

Reports and dashboards are mainly used to monitor and upkeep microservices. There are multiple tools that help to serve this purpose. Reports and dashboards can be used to:

  • find out which microservices expose what resources.
  • find out the services which are impacted whenever changes in a component occur.
  • provide an easy point which can be accessed whenever documentation is required.
  • Versions of the components which are deployed.
  • To obtain a sense of maturity and compliance from the components.

12. Why Do People Hesitate In Using Microservices?

I have seen many of us fumble over this question. After all, we are appearing for microservices interview question to be hired as a Microservices architect, so acknowledging cons could always be a little tricky. Here is the answer:

  • Requires heavy investment – Microservices demand a great deal of collaboration. Since your teams are working independently, they should be able to synchronize well at all times.
  • Heavy architecture set up – The system is distributed, the architecture is heavily involved.
  • Excessive planning for handling operations overhead – You need to be ready for operations overhead if you are planning to use Microservices architecture.
  • Autonomous staff selection – Skilled professionals are needed who can support microservices that are distributed heterogeneously.

13. How Does PACT Work?

PACT is an open source tool. It helps in testing the interactions between consumers and service providers. However, it is not included in the contract, increasing the reliability of the application.
The consumer service developer starts by writing a test which defines a mode of interaction with the service provider. The test includes the provider’s state, the request body and the response that is expected. Based on it, PACT creates a stub against which the test is executed. The output is stored in a JSON file.

14. Define Domain Driven Design

The main focus is on the core domain logic. Complex designs are detected based on the domain’s model. Involves collaboration with domain experts constantly to resolve issues related to the domain and improve the model of the application. While answering this microservices interview question, you will also need to mention the core fundamentals of DDD. They are

  • DDD focuses mostly on domain logic and the domain itself.
  • Complex designs are completely based on the domain’s model.
  • To improve the design of the model and fix any emerging issues, DDD constantly works in collaboration with domain experts.

15. What is Coupling and Cohesion?

The coupling can be considered to be the measurement of strength between the dependencies of a component. A good Microservices application design always consists of low coupling and high cohesion.

Following the previous question, often the interviewer will ask about cohesion. It is also another measurement unit. More like a degree to which the elements inside a module remain bonded together.

If you are appearing for microservices interview questions then it is imperative to keep in mind that an important key to design microservices is a composition of low coupling along with high cohesion. When loosely coupled, a service knows very little about other. This keeps the services intact. In high cohesion, it becomes possible to keep all the related logic in a service. Otherwise, the services will try to communicate with each other, impacting the overall performance.

16. What Is OAuth?

Open Authorization Protocol, otherwise known as OAuth, helps to access client applications using third-party protocols like Facebook, GitHub etc via HTTP. You can also share resources between different sites without the requirement of credentials.

OAuth allows the account information of the end user to be used by a third party like Facebook while keeping it secure (without using or exposing the user’s password). It acts more like an intermediary on the user’s behalf while providing a token to the server for accessing the required information.

17. Why Do We Need Containers For Microservices?

To manage a microservice based application, containers are the easiest alternative. It helps the user to individually deploy and develop. You can also use Docker to encapsulate the microservice in the image of a container. Without any additional dependencies or effort, microservices can use these elements.

18. What Are The Ways To Access RESTful Microservices?

This is another one of the frequently asked microservices interview questions is how to access RESTful Microservices? You can do that by 2 methods –

  • Using a rest template that is load balanced.
  • Using multiple microservices.

19. What Are Some Major Roadblocks For Microservices Testing?

Talking about the cons, here is another one of the microservices interview questions you may be ready for, will be around the challenges faced while testing microservices.

  • Tester should have a thorough understanding of all the inbound and outbound processes before he starts writing the test cases for integration testing.
  • When independent teams are working on different functionalities, collaboration can prove to be quite a struggling task. It can be tough to find an idle time-window to perform a complete round of regression testing.
  • With an increasing number of microservices, the complexity of the system also increases.
  • During the transition from monolithic architecture, testers must ensure that there is no disruption between the internal communication among the components.

20. Common Mistakes Made While Transitioning To Microservices

Not only on development, but mistakes also lies on the process side often. And any experienced interviewer will have this under the queue for microservices interview questions. Some of the common mistakes are

  • Often the developer fails to outline the current challenges.
  • Rewriting the programs that are already existing.
  • Responsibilities, timeline, and boundaries not clearly defined.
  • Failing to implement and figure out the scope of automation from the very beginning.

21. What Are The Fundamentals Of Microservices Design?

This is probably one of the most frequently asked microservices interview questions. Here is what you need to keep in mind while answering to it:

  • Define a scope
  • Combine loose coupling with high cohesion
  • Create a unique service which will act as an identifying source, much like a unique key in a database table
  • Creating the correct API and take special care during integration.
  • Restrict access to data and limit it to the required level
  • Maintain a smooth flow between requests and response
  • Automate most processes to reduce time complexity
  • Keep the number of tables to a minimum level to reduce space complexity
  • Monitor the architecture constantly and fix any flaw when detected.
  • Data stores should be separated for each microservices.
  • For each microservices, there should be an isolated build.
  • Deploy microservices into containers.
  • Servers should be treated as stateless.

You can also follow this article explaining 9 fundamentals to a successful microservice design.

22. Where Do We Use WebMVC Test Annotation?

WebMvcTest is used for unit testing Spring MVC applications. As the name suggests, it focuses entirely on Spring MVC components. For example,
@WebMvcTest(value = ToTestController.class, secure = false):
Here, the objective is to launch only ToTestController. Until the unit test has been executed, other mappings and controllers will not be launched.

23. What Do You Mean By Bounded Context?

A central pattern usually seen in domain driven design, Bounded Context is the main focus of the strategic design section of DDD. It is all about a deal with large teams and models.. DDD works with large models by disintegrating them into multiple bounded context. While it does that, it also explains the relationship between them explicitly.

24. What Are The Different Types Of Two-Factor Authentication?

There are 3 types of credentials required for performing a two-factor authentication.

  1. A thing that you know – like password or pin or screen lock pattern.
  2. A physical credential that you have – like OTP or phone or an ATM card, in other words, any kind of credential that you have in an external or third-party device.
  3. Your physical identity – like voice authentication or biometric security like a fingerprint or eye scanner.


Download Whitepaper

25. What Is A Client Certificate?

This is a type of digital certificate usually used by client systems for making a request that is authenticated by a remote server. It plays an important role in authentication designs that are mutual and provides strong assurance of the identity of a requester. However, you should have a fully configured back-end service for authenticating your client certificate.

26. What Did The Law Stated By Melvin Conway Implied?

You may have this one under the interviewer’s checklist for microservices interview questions. Conway’s law stated “organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.”

The interviewer may ask a counter microservices interview question like how is the Melvin Conway Law related to microservices. Well, some loosely coupled APIs form the architecture of microservices. The structure is well suited to how a small team is implementing components which are autonomous. This architecture makes an organization much more flexible in restructuring its work process.

27. How to Configure Spring Boot Application Logging?

Spring Boot comes with added support for Log4J2, Java Util Logging, and Logback. It is usually pre-configured as console output. They can be configured by only specifying logging.level in the application.properties file.

logging.level.spring.framework=Debug

28. How Would You Perform Security Testing of Microservices?

Before answering this microservices interview question, explain to the interviewer that microservices cannot be tested as a whole. You will need to test the pieces independently.There are 3 common procedures

Code scanning – To ensure that any line of code is bug-free and can be replicated.

Flexibility – The security solution should be flexible so that it can be adjusted as per the requirements of the system.

Adaptability – The security protocols should be flexible and updated to cope up with the new threats by hackers or security breaches.

You can also follow this blog explaining the influence of Microservices architecture on security.

29. What is Idempotence and How is it Used?

Idempotence refers to a scenario where you perform a task repetitively but the end result remains constant or similar.

Idempotence is mostly used as a data source or a remote service in a way that when it receives more than one instructions, it processes only one instruction.

That’s all from our side. However, if you are seriously thinking about a technology switch, don’t depend on these microservices interview questions alone. Since experienced interviewers will also ask cross questions to check how much in-depth knowledge you have. Go for courses or online tutorials and study about Microservices in details so that you can answer the questions stated above along with connected questions as well.

Written by Arnab Roy Chowdhury

Arnab Roy Chowdhury is a UI developer by profession and a blogging enthusiast. He has been writing content for about 5 years and has strong expertise in technical blogs, travelogues, and content in the latest programming languages.

Related Articles

Microservice Design

Design Patterns For Micro Service Architecture

23889 Views | 16 Min Min Read

Leave a Reply