O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Microservices for Java Developers, 2nd Edition

Book Description

Is microservice architecture right for your organization? Microservices have many benefits, but they also come with their own set of drawbacks. With this updated edition, Java developers and architects will learn how to navigate popular application frameworks such Spring Boot and MicroProfile to deploy and manage microservices at scale with Linux containers. This hands-on, example-driven guide provides step-by-step instructions to help you get started.

Adopting microservices requires much more than changes to your technology. Author Rafael Benevides, director of developer experience at Red Hat, also examines the organizational agility necessary to deliver these services. This concise ebook shows you how rapid feedback cycles, autonomous teams, and shared purpose are key to making microservices work.

  • Learn why microservices require you to think differently about building, deploying, and operating cloud-native applications
  • Design microservices using the popular Spring Boot and Eclipse MicroProfile frameworks
  • Build an API gateway with Apache Camel to help clients access microservices
  • Use Docker and Kubernetes to deploy microservices, regardless of language
  • Run microservices at scale using cluster management, failover, and load-balancing techniques
  • Use OpenTracing to monitor requests, response time, and the path of particular invocations

Table of Contents

  1. 1. Microservices for Java Developers
    1. What Can You Expect from This Report?
    2. You Work for a Software Company
      1. The Value of Service
      2. The Commoditization of Technology
      3. Disruption
      4. Embracing Organizational Agility
    3. What Is a Microservices Architecture?
    4. Challenges
      1. Design for Faults
      2. Design with Dependencies in Mind
      3. Design with the Domain in Mind
      4. Design with Promises in Mind
      5. Distributed Systems Management
    5. Technology Solutions
    6. Preparing Your Environment
  2. 2. Spring Boot for Microservices
    1. Advantages of Spring Boot
      1. Simplified Configuration
      2. Starter Dependencies
      3. Application Packaging
      4. Production-Ready Features
    2. Getting Started
    3. Hello World
      1. Add the HTTP Endpoints
      2. Externalize Configuration
      3. Expose Application Metrics and Information
      4. Running Outside of Maven
    4. Calling Another Service
    5. Where to Look Next
  3. 3. Eclipse MicroProfile for Microservices
    1. Thorntail
    2. Getting Started
    3. Hello World
      1. Add the HTTP Endpoints
      2. Externalize Configuration
      3. Expose Application Metrics and Information
      4. Running Outside of Maven
    4. Calling Another Service
    5. Where to Look Next
  4. 4. API Gateway with Apache Camel
    1. Apache Camel
    2. Getting Started
    3. Building the API Gateway
      1. Configuring the API Gateway
      2. Calling All Microservices
    4. Where to Look Next
  5. 5. Deploying Microservices at Scale with Docker and Kubernetes
    1. Immutable Delivery
    2. Docker and Linux Containers
    3. Kubernetes
      1. Pods
      2. Labels
      3. ReplicationControllers and Deployments
      4. Services
    4. Getting Started with Kubernetes
      1. Minishift
      2. OpenShift
      3. Getting Started with Minishift
    5. Where to Look Next
  6. 6. Hands-on Cluster Management, Failover, and Load Balancing
    1. Getting Started
      1. Packaging Our Microservices as Docker Images
      2. Deploying to Kubernetes
    2. Fault Tolerance
      1. Cluster Self-Healing
      2. Circuit Breaker
    3. Load Balancing
      1. Kubernetes Load Balancing
    4. Where to Look Next
  7. 7. Distributed Tracing with OpenTracing
    1. Installing Jaeger
    2. Modifying Microservices for Distributed Tracing
    3. Configuring Microservices Using ConfigMap
    4. Analyzing the Tracing in Jaeger
    5. Where to Look Next
  8. 8. Where Do We Go from Here?
    1. Configuration
    2. Logging and Metrics
    3. Continuous Delivery
    4. Summary