Developing Open Cloud Native Microservices

Book description

What are the challenges to creating, running, and supporting cloud native microservices? In this report, developer advocates from IBM explain what you need to know when building new cloud-based applications. Software developers will learn how to work with Java and several modern techniques to develop, deploy, and secure microservices in a cloud native environment.

You’ll examine the key principles for microservices—such as data consistency and continuous delivery—that not only are important for a cloud application but also support the operational and deployment needs of today’s applications in general. Learn exactly what cloud native means and why open source, open communities, and open standards are critical to the future of these highly available applications.

  • Understand why open source technologies are ideal for cloud development
  • Work with the author’s example coffee-shop application
  • Learn the Java runtimes and frameworks that offer the best foundation for cloud native applications
  • Start by implementing service components that have a direct relation to your business use case
  • Secure REST services, handle service faults, and communicate what your services do
  • Consider the observability of your cloud-native application before writing its functionality

Table of contents

  1. Foreword
  2. Preface
    1. Prerequisites for Reading This Book
    2. Why This Book Exists
    3. What You Will Learn
    4. How This Book Is Organized
    5. Conventions Used in This Book
    6. Using Code Examples
    7. O’Reilly Online Learning
    8. How to Contact Us
    9. Acknowledgments
  3. 1. Introduction
    1. What It Means to Be Cloud Native
      1. Microservice Oriented
      2. Loosely Coupled
      3. Twelve-Factor Methodology
      4. Rapid Evolution
    2. Why Java and the Java Virtual Machine for Cloud Native Applications?
      1. Innovation and Insight
      2. Performance and Economics
      3. Software Design and Cloud Solutions
    3. Summary
  4. 2. Open Technology Choices
    1. Open Source
      1. Open Community
    2. Open Standards
    3. Open Governance
    4. Choosing Application Technologies
      1. Java EE and Jakarta EE
      2. Eclipse MicroProfile
      3. JVM Choices for Cloud Native Applications
      4. Why Would You Want to Use a Different JVM?
      5. Where Do You Get a Java Runtime?
    5. Cloud Native Environments
    6. Continuous Delivery and Engineering Practices
    7. Summary
  5. 3. Foundation
    1. Rapidly Developing Service Implementations
      1. Implementing Domain Classes Using CDI
    2. Persisting Service Data
      1. Java Persistence API
    3. Implementing REST Services
      1. Boundary Classes
      2. Mapping Entities to JSON
      3. Validating Resources
      4. REST and Hypermedia
    4. Summary
  6. 4. Cloud Native Development
    1. Securing REST Services
      1. Background
      2. The Common Approach
      3. Introducing JSON Web Tokens
      4. JWT with MicroProfile
      5. Final Thoughts on JWT
    2. Handling Service Faults
    3. Publishing and Consuming APIs
    4. Summary
  7. 5. Running in Production
    1. Reporting Health
      1. Kubernetes Integration
    2. Monitoring JVM, Runtime, and Application Metrics
      1. Dashboards and Alerts
    3. Tracing Microservice Requests
    4. Summary
  8. 6. Wrap-up and Conclusions
    1. Asynchronous Execution and Reactive Extensions
    2. Threading
      1. Transactions and Sagas
      2. Command Query Responsibility Separation
    3. Conclusions

Product information

  • Title: Developing Open Cloud Native Microservices
  • Author(s): Graham Charters, Sebastian Daschner, Pratik Patel, Steve Poole
  • Release date: October 2019
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781492052746