Microservices and Containers, First edition

Book description

The Complete Guide to Succeeding with Microservices and Docker in Large Software Projects

Together, microservices and Docker containers can bring unprecedented agility and scalability to application development and deployment—especially in large, complex projects where speed is crucial but small errors can be disastrous. In Microservices and Containers, Parminder Singh Kocher demonstrates why and how these technologies can help you build, deploy, manage, and scale industrial-strength applications.

You’ll learn how to leverage microservices and Docker to drive exponential improvements in DevOps effectiveness, on-demand scalability, application performance, time-to-market, code reuse, and application reliability. Kocher also offers detailed guidance and a complete roadmap for transitioning from monolithic architectures, and an in-depth case study walking through the migration of an enterprise-class SOA system.

  • Understand how microservices enable you to organize applications into standalone components that are easier to manage, update, and scale
  • Decide whether microservices and containers are worth your investment, and manage the organizational learning curve associated with them
  • Apply best practices for interprocess communication among microservices
  • Migrate monolithic systems in an orderly fashion
  • Understand Docker containers, installation, and interfaces
  • Network, orchestrate, and manage Docker containers effectively
  • Use Docker to maximize scalability in microservices-based applications

This guide will be valuable to software/systems professionals moving from older approaches, architects and developers already working with microservices and containers, and executives and managers seeking to maximize the business value of these technologies.

Table of contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. Contents
  6. About This E-Book
  7. Preface
  8. Acknowledgments
  9. About the Author
  10. Part I: Microservices
    1. Chapter 1: An Introduction to Microservices
      1. What Are Microservices?
      2. Modular Architecture
      3. Other Advantages of Microservices
      4. Disadvantages of Microservices
    2. Chapter 2: Switching to Microservices
      1. Fatigues and Attributes
      2. Learning Curve for the Organization
      3. Business Case for Microservices
      4. Cost Components
    3. Chapter 3: Interprocess Communication
      1. Types of Interactions
      2. Preparing to Write Web Services
      3. Microservice Maintenance
      4. Discovery Service
        1. API Gateway
        2. Service Registry
      5. Putting It All Together
    4. Chapter 4: Migrating and Implementing Microservices
      1. The Need for Transition
      2. Creating a New Application with Microservices
        1. Organization Readiness
        2. Services-Based Approach
        3. Interprocess (Service-to-Service) Communication
        4. Technology Selection
        5. Implementation
        6. Deployment
        7. Operations
      3. Migrating a Monolithic Application to Microservices
        1. Microservices Criteria
        2. Rearchitecting the Services
      4. A Hybrid Approach
  11. Part II: Containers
    1. Chapter 5: Docker Containers
      1. Virtual Machines
      2. Containers
      3. Docker Architecture and Components
      4. The Power of Docker: A Simple Example
    2. Chapter 6: Docker Installation
      1. Installing Docker on Mac OS X
      2. Installing Docker on Windows
      3. Installing Docker on Ubuntu Linux
    3. Chapter 7: Docker Interface
      1. Key Docker Commands
        1. Docker Search
        2. Docker Pull
        3. Docker Images
        4. Docker RMI
        5. Docker Run
        6. Docker ps
        7. Docker Logs
        8. Docker Restart
        9. Docker Attach
        10. Docker Remove
        11. Docker Inspect
        12. Docker Exec
        13. Docker Rename
        14. Docker Copy
        15. Docker Pause/Unpause
        16. Docker Create
        17. Docker Commit
        18. Docker Diff
      2. Dockerfile
        1. MySQL Dockerfile
      3. Docker Compose
    4. Chapter 8: Containers Networking
      1. Key Linux Concepts
      2. Linking
      3. Default Options
        1. None
        2. Host
        3. Bridge
      4. Custom Networks
        1. Custom Bridge Network Driver
        2. Overlay Network Driver
        3. Underlay Network Driver or Macvlan
    5. Chapter 9: Container Orchestration
      1. Kubernetes
        1. Kubectl
        2. Master Node
        3. Worker Nodes
        4. Example: Kubernetes Cluster
      2. Apache Mesos and Marathon
        1. Mesos Master
        2. Agents
        3. Frameworks
        4. Example: Marathon Framework
      3. Docker Swarm
        1. Nodes
        2. Services
        3. Task
        4. Example: Swarm Cluster
      4. Service Discovery
      5. Service Registry
    6. Chapter 10: Containers Management
      1. Monitoring
      2. Logging
      3. Metrics Collection
        1. docker stats
        2. APIs
        3. cAdvisor
      4. Cluster-wide Monitoring Tools
        1. Heapster
        2. Prometheus
        3. Step 1: Running Prometheus
        4. Step 2: Adding Node Exporter and cAdvisor
        5. Step 3: Adding Targets
        6. Step 4: Bringing Up the User Interface: Grafana
        7. Step 5: Viewing the Stats
        8. Step 6: Integrating the Alertmanager
  12. Part III: Hands-On Project—Putting Learning into Practice
    1. Chapter 11: Case Study: Monolithic Helpdesk Application
      1. Helpdesk Application Overview
      2. Application Architecture
        1. Authentication, Interceptor, and Authorization
        2. Account Management
        3. Ticketing
        4. Product Catalog
        5. Appointments
        6. Message Board
        7. Search
      3. Building the Application
        1. Setting Up Eclipse
        2. Building the Application
        3. Deploying and Configuring
      4. New Requirements and Bug Fixes
    2. Chapter 12: Case Study: Migration to Microservices
      1. Planning for Migration
        1. Applying Microservices Criteria
        2. Conversion Summary
        3. Impact on Architecture
      2. Converting to Microservices
        1. Product Catalog
        2. Ticketing
        3. Search
      3. Application Build and Deployment
        1. Code Setup
        2. Building the Microservices
        3. Deploying and Configuring
      4. New Requirements and Bug Fixes
    3. Chapter 13: Case Study: Containerizing a Helpdesk Application
      1. Containerizing Microservices
        1. Listing Dependencies
        2. Build Binaries and WAR files
        3. Creating a Docker Image
        4. Building the Docker Image
        5. DC/OS Cluster Setup on AWS
      2. Deploying the Catalog Microservice
        1. Submitting a Task to Marathon
        2. Inspecting and Scaling the Service
        3. Accessing the Service
      3. Updating the Monolithic Application
  13. Conclusion
    1. What Is DevOps?
    2. Only the Beginning
  14. Appendix A: Helpdesk Application Flow
    1. Administrator Flows
      1. Login
      2. Administration and Supported Products
    2. Customer Flows
      1. My Products
      2. Create an Incident
      3. View Incident
      4. Message Board
      5. Make Appointment
      6. Search
      7. My Profile
    3. Support Desk Engineer Flows
      1. View All Tickets
      2. View Tickets
  15. Appendix B: Installing the Solr Search Engine
    1. Prerequisites
    2. Installation Steps
    3. Configuring Solr for Simple Data Import
  16. Index

Product information

  • Title: Microservices and Containers, First edition
  • Author(s): Parminder Singh Kocher
  • Release date: April 2018
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 9780134591728