Microservices for Java Developers

Book description

Is microservice architecture right for your organization? These services have many benefits, but they also come with their own set of drawbacks. In this hands-on, example-driven guide, Java developers and architects will learn how to navigate popular application frameworks, such as Dropwizard and Spring Boot, and how to deploy and manage microservices at scale with Linux containers.

Adopting microservices requires much more than changes to your technology. Author Christian Posta—a Principal Middleware Specialist/Architect at Red Hat—also examines the organizational agility necessary to deliver these services. This concise book shows you how rapid feedback cycles, autonomous teams, and shared purpose are key to making microservices work.

  • Understand why microservices require you to think differently about building, deploying, and operating cloud-native applications
  • Dive into the popular Spring Boot, Dropwizard, and WildFly Swarm frameworks for designing microservices
  • Use Docker and Kubernetes to deploy microservices, regardless of language
  • Learn cluster management, failover, and load-balancing techniques for running microservices at scale

Table of contents

  1. 1. Microservices for Java Developers
    1. What Can You Expect from This Book?
    2. You Work for a Software Company
      1. The Value of Service
      2. Commoditization of Technology
      3. Disruption
      4. Embrace Organization Agility
    3. What Is a Microservice 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. Simplified Configuration
    2. Starter Dependencies
    3. Application Packaging
    4. Production Ready
    5. Getting Started
    6. Hello World
      1. Add the HTTP Endpoints
      2. Externalize Configuration
      3. Expose Application Metrics and Information
      4. How to Run This Outside of Maven?
    7. Calling Another Service
    8. Where to Look Next
  3. 3. Dropwizard for Microservices
    1. The Dropwizard Stack
    2. Getting Started
    3. Hello World
      1. Add the HTTP Endpoints
      2. Externalize Configuration
      3. Expose Application Metrics and Information
      4. How to Run This Outside of Maven?
    4. Calling Another Service
    5. Where to Look Next
  4. 4. WildFly Swarm for Microservices
    1. Getting Started
      1. Vanilla Java Project
      2. Using JBoss Forge
    2. Hello World
      1. Add the HTTP Endpoints
      2. Externalize Configuration
      3. Expose Application Metrics and Information
      4. How to Run This Outside of Maven
    3. Calling Another Service
    4. Where to Look Next
  5. 5. Deploy Microservices at Scale with Docker and Kubernetes
    1. Immutable Delivery
    2. Docker, Docker, Docker
    3. Kubernetes
      1. Pods
      2. Labels
      3. Replication Controllers
      4. Services
    4. Getting Started with Kubernetes
    5. Microservices and Linux Containers
      1. OpenShift?
      2. Getting Started with the CDK
    6. Where to Look Next
  6. 6. Hands-on Cluster Management, Failover, and Load Balancing
    1. Getting Started
    2. Packaging Our Microservice as a Docker Image
    3. Deploying to Kubernetes
    4. Fault Tolerance
      1. Cluster Self-Healing
      2. Circuit Breaker
      3. Bulkhead
    5. Load Balancing
      1. Kubernetes Load Balancing
      2. Do We Need Client-Side Load Balancing?
    6. Where to Look Next
  7. 7. Where Do We Go from Here?
    1. Configuration
    2. Logging, Metrics, and Tracing
    3. Continuous Delivery
    4. Summary

Product information

  • Title: Microservices for Java Developers
  • Author(s): Christian Posta
  • Release date: September 2016
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781491962077