Microservices: Building Scalable Software

Discover how to easily build and implement scalable microservices from scratch
Preview in Mapt

Microservices: Building Scalable Software

Sourabh Sharma, Rajesh R V, David Gonzalez

2 customer reviews
Discover how to easily build and implement scalable microservices from scratch

Quick links: > What will you learn?> Table of content> Product reviews

eBook
$50.40
RRP $71.99
Save 29%
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$50.40
RRP $71.99
eBook

Frequently bought together


Microservices: Building Scalable Software Book Cover
Microservices: Building Scalable Software
$ 71.99
$ 50.40
DevOps: Puppet, Docker, and Kubernetes Book Cover
DevOps: Puppet, Docker, and Kubernetes
$ 79.99
$ 56.00
Buy 2 for $35.00
Save $116.98
Add to Cart

Book Details

ISBN 139781787285835
Paperback919 pages

Book Description

Microservices are the next big thing in designing scalable, easy-to-maintain applications, making app development easier and providing great flexibility in utilizing various resources optimally.

This course is what you need to help you discover the world of microservices and enhance your knowledge and skillset at the same time. Broken up into 3 modules, you’ll learn about every aspect of the microservice development that you need to know about.

Starting off with the first module, you will understand the core concepts and frameworks of microservice architecture. You will then learn how to set up the development environment and configure it before implementing continuous integration to deploy your microservice architecture. You will learn to secure microservices and test them effectively using REST Java clients and other tools. Finally, you will build smaller, lighter, and faster services that can be implemented easily.

The second module will help you implement the microservice architecture in Spring Framework, Spring Boot, and Spring Cloud. With the latest specifications of Spring, you'll be able to build modern, Internet-scale Java applications in no time. You’ll delve into Spring Boot, Spring Cloud, Docker, Mesos, and Marathon, and understand how to deploy autonomous services without using heavy-weight application servers. By the end, you'll have a good grasp of Spring Framework and how to implement microservices using it.

In the last module of this course, you will learn about how to build robust and scalable microservices using Seneca and Node.js. Also, you will learn how to simplify your tasks by dividing them into smaller and simple services. This module will show you how to identify the areas where the microservices oriented architectures can tackle the most common problems in the software used by the big organization.

This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products:

  • Mastering Microservices with Java, Sourabh Sharma
  • Spring Microservices, Rajesh RV
  • Developing Microservices with Node.js, David Gonzalez

Table of Contents

Chapter 1: A Solution Approach
Evolution of µServices
Monolithic architecture overview
Limitation of monolithic architecture versus its solution with µServices
Summary
Chapter 2: Setting Up the Development Environment
Spring Boot configuration
Sample REST program
Setting up the application build
REST API testing using the Postman Chrome extension
NetBeans IDE installation and setup
References
Summary
Chapter 3: Domain-Driven Design
Domain-driven design fundamentals
Building blocks
Strategic design and principles
Sample domain service
Summary
Chapter 4: Implementing a Microservice
OTRS overview
Developing and implementing µServices
Testing
References
Summary
Chapter 5: Deployment and Testing
An overview of microservice architecture using Netflix OSS
Load balancing
Circuit breaker and monitoring
Microservice deployment using containers
References
Summary
Chapter 6: Securing Microservices
Enabling Secure Socket Layer
Authentication and authorization
OAuth implementation using Spring Security
References
Summary
Chapter 7: Consuming Services Using a Microservice Web App
AngularJS framework overview
Development of OTRS features
Setting up the web app
Summary
Chapter 8: Best Practices and Common Principles
Overview and mindset
Best practices and principals
Microservices frameworks and tools
References
Summary
Chapter 9: Troubleshooting Guide
Logging and ELK stack
Use of correlation ID for service calls
Dependencies and versions
References
Summary
Chapter 10: Demystifying Microservices
The evolution of microservices
What are microservices?
Microservices – the honeycomb analogy
Principles of microservices
Characteristics of microservices
Microservices examples
Microservices benefits
Relationship with other architecture styles
Microservice use cases
Summary
Chapter 11: Building Microservices with Spring Boot
Setting up a development environment
Developing a RESTful service – the legacy approach
Moving from traditional web applications to microservices
Using Spring Boot to build RESTful microservices
Getting started with Spring Boot
Developing the Spring Boot microservice using the CLI
Developing the Spring Boot Java microservice using STS
Developing the Spring Boot microservice using Spring Initializr – the HATEOAS example
What's next?
The Spring Boot configuration
Changing the default embedded web server
Implementing Spring Boot security
Enabling cross-origin access for microservices
Implementing Spring Boot messaging
Developing a comprehensive microservice example
Spring Boot actuators
Configuring application information
Adding a custom health module
Documenting microservices
Summary
Chapter 12: Applying Microservices Concepts
Patterns and common design decisions
Microservices challenges
The microservices capability model
Summary
Chapter 13: Microservices Evolution – A Case Study
Reviewing the microservices capability model
Understanding the PSS application
Death of the monolith
Microservices to the rescue
The business case
Plan the evolution
Migrate modules only if required
Target architecture
Target implementation view
Summary
Chapter 14: Scaling Microservices with Spring Cloud
Reviewing microservices capabilities
Reviewing BrownField's PSS implementation
What is Spring Cloud?
Setting up the environment for BrownField PSS
Spring Cloud Config
Feign as a declarative REST client
Ribbon for load balancing
Eureka for registration and discovery
Zuul proxy as the API gateway
Streams for reactive microservices
Summarizing the BrownField PSS architecture
Summary
Chapter 15: Autoscaling Microservices
Reviewing the microservice capability model
Scaling microservices with Spring Cloud
Understanding the concept of autoscaling
Autoscaling approaches
Autoscaling BrownField PSS microservices
Summary
Chapter 16: Logging and Monitoring Microservices
Reviewing the microservice capability model
Understanding log management challenges
A centralized logging solution
The selection of logging solutions
Monitoring microservices
Data analysis using data lakes
Summary
Chapter 17: Containerizing Microservices with Docker
Reviewing the microservice capability model
Understanding the gaps in BrownField PSS microservices
What are containers?
The difference between VMs and containers
The benefits of containers
Microservices and containers
Introduction to Docker
Deploying microservices in Docker
Running RabbitMQ on Docker
Using the Docker registry
Microservices on the cloud
Running BrownField services on EC2
Updating the life cycle manager
The future of containerization – unikernels and hardened security
Summary
Chapter 18: Managing Dockerized Microservices with Mesos and Marathon
Reviewing the microservice capability model
The missing pieces
Why cluster management is important
What does cluster management do?
Relationship with microservices
Relationship with virtualization
Cluster management solutions
Cluster management with Mesos and Marathon
Implementing Mesos and Marathon for BrownField microservices
A place for the life cycle manager
The technology metamodel
Summary
Chapter 19: The Microservices Development Life Cycle
Reviewing the microservice capability model
The new mantra of lean IT – DevOps
Meeting the trio – microservices, DevOps, and cloud
Practice points for microservices development
Microservices development governance, reference architectures, and libraries
Summary
Chapter 20: Microservices Architecture
Need for microservices
Key design principles
Key benefits
SOA versus microservices
Why Node.js?
Summary
Chapter 21: Microservices in Node.js – Seneca and PM2 Alternatives
Need for Node.js
Seneca – a microservices framework
PM2 – a task runner for Node.js
Summary
Chapter 22: From the Monolith to Microservices
First, there was the monolith
Then the microservices appeared
Organizational alignment
Summary
Chapter 23: Writing Your First Microservice in Node.js
Micromerce – the big picture
Product Manager – the two-faced core
The e-mailer – a common problem
The order manager
The UI – API aggregation
Debugging
Summary
Chapter 24: Security and Traceability
Infrastructure logical security
Application security
Traceability
Summary
Chapter 25: Testing and Documenting Node.js Microservices
Functional testing
Documenting microservices
Summary
Chapter 26: Monitoring Microservices
Monitoring services
Simian Army – the active monitoring from Spotify
Summary
Chapter 27: Deploying Microservices
Concepts in software deployment
Deployments with PM2
Docker – a container for software delivery
Node.js event loop – easy to learn and hard to master
Clustering Node.js applications
Load balancing our application
Summary

What You Will Learn

  • Use a domain-driven approach to design and implement microservices
  • Secure microservices using Spring Security
  • Deploy and test microservices
  • Use Spring Boot to develop microservices
  • Find out how to avoid common pitfalls when developing microservices
  • Familiarize yourself with end-to-end microservices written in Spring Framework and Spring Boot
  • Understand the Mesos architecture
  • Deploy a multi-node Mesos cluster using your favorite DevOps

Authors

Table of Contents

Chapter 1: A Solution Approach
Evolution of µServices
Monolithic architecture overview
Limitation of monolithic architecture versus its solution with µServices
Summary
Chapter 2: Setting Up the Development Environment
Spring Boot configuration
Sample REST program
Setting up the application build
REST API testing using the Postman Chrome extension
NetBeans IDE installation and setup
References
Summary
Chapter 3: Domain-Driven Design
Domain-driven design fundamentals
Building blocks
Strategic design and principles
Sample domain service
Summary
Chapter 4: Implementing a Microservice
OTRS overview
Developing and implementing µServices
Testing
References
Summary
Chapter 5: Deployment and Testing
An overview of microservice architecture using Netflix OSS
Load balancing
Circuit breaker and monitoring
Microservice deployment using containers
References
Summary
Chapter 6: Securing Microservices
Enabling Secure Socket Layer
Authentication and authorization
OAuth implementation using Spring Security
References
Summary
Chapter 7: Consuming Services Using a Microservice Web App
AngularJS framework overview
Development of OTRS features
Setting up the web app
Summary
Chapter 8: Best Practices and Common Principles
Overview and mindset
Best practices and principals
Microservices frameworks and tools
References
Summary
Chapter 9: Troubleshooting Guide
Logging and ELK stack
Use of correlation ID for service calls
Dependencies and versions
References
Summary
Chapter 10: Demystifying Microservices
The evolution of microservices
What are microservices?
Microservices – the honeycomb analogy
Principles of microservices
Characteristics of microservices
Microservices examples
Microservices benefits
Relationship with other architecture styles
Microservice use cases
Summary
Chapter 11: Building Microservices with Spring Boot
Setting up a development environment
Developing a RESTful service – the legacy approach
Moving from traditional web applications to microservices
Using Spring Boot to build RESTful microservices
Getting started with Spring Boot
Developing the Spring Boot microservice using the CLI
Developing the Spring Boot Java microservice using STS
Developing the Spring Boot microservice using Spring Initializr – the HATEOAS example
What's next?
The Spring Boot configuration
Changing the default embedded web server
Implementing Spring Boot security
Enabling cross-origin access for microservices
Implementing Spring Boot messaging
Developing a comprehensive microservice example
Spring Boot actuators
Configuring application information
Adding a custom health module
Documenting microservices
Summary
Chapter 12: Applying Microservices Concepts
Patterns and common design decisions
Microservices challenges
The microservices capability model
Summary
Chapter 13: Microservices Evolution – A Case Study
Reviewing the microservices capability model
Understanding the PSS application
Death of the monolith
Microservices to the rescue
The business case
Plan the evolution
Migrate modules only if required
Target architecture
Target implementation view
Summary
Chapter 14: Scaling Microservices with Spring Cloud
Reviewing microservices capabilities
Reviewing BrownField's PSS implementation
What is Spring Cloud?
Setting up the environment for BrownField PSS
Spring Cloud Config
Feign as a declarative REST client
Ribbon for load balancing
Eureka for registration and discovery
Zuul proxy as the API gateway
Streams for reactive microservices
Summarizing the BrownField PSS architecture
Summary
Chapter 15: Autoscaling Microservices
Reviewing the microservice capability model
Scaling microservices with Spring Cloud
Understanding the concept of autoscaling
Autoscaling approaches
Autoscaling BrownField PSS microservices
Summary
Chapter 16: Logging and Monitoring Microservices
Reviewing the microservice capability model
Understanding log management challenges
A centralized logging solution
The selection of logging solutions
Monitoring microservices
Data analysis using data lakes
Summary
Chapter 17: Containerizing Microservices with Docker
Reviewing the microservice capability model
Understanding the gaps in BrownField PSS microservices
What are containers?
The difference between VMs and containers
The benefits of containers
Microservices and containers
Introduction to Docker
Deploying microservices in Docker
Running RabbitMQ on Docker
Using the Docker registry
Microservices on the cloud
Running BrownField services on EC2
Updating the life cycle manager
The future of containerization – unikernels and hardened security
Summary
Chapter 18: Managing Dockerized Microservices with Mesos and Marathon
Reviewing the microservice capability model
The missing pieces
Why cluster management is important
What does cluster management do?
Relationship with microservices
Relationship with virtualization
Cluster management solutions
Cluster management with Mesos and Marathon
Implementing Mesos and Marathon for BrownField microservices
A place for the life cycle manager
The technology metamodel
Summary
Chapter 19: The Microservices Development Life Cycle
Reviewing the microservice capability model
The new mantra of lean IT – DevOps
Meeting the trio – microservices, DevOps, and cloud
Practice points for microservices development
Microservices development governance, reference architectures, and libraries
Summary
Chapter 20: Microservices Architecture
Need for microservices
Key design principles
Key benefits
SOA versus microservices
Why Node.js?
Summary
Chapter 21: Microservices in Node.js – Seneca and PM2 Alternatives
Need for Node.js
Seneca – a microservices framework
PM2 – a task runner for Node.js
Summary
Chapter 22: From the Monolith to Microservices
First, there was the monolith
Then the microservices appeared
Organizational alignment
Summary
Chapter 23: Writing Your First Microservice in Node.js
Micromerce – the big picture
Product Manager – the two-faced core
The e-mailer – a common problem
The order manager
The UI – API aggregation
Debugging
Summary
Chapter 24: Security and Traceability
Infrastructure logical security
Application security
Traceability
Summary
Chapter 25: Testing and Documenting Node.js Microservices
Functional testing
Documenting microservices
Summary
Chapter 26: Monitoring Microservices
Monitoring services
Simian Army – the active monitoring from Spotify
Summary
Chapter 27: Deploying Microservices
Concepts in software deployment
Deployments with PM2
Docker – a container for software delivery
Node.js event loop – easy to learn and hard to master
Clustering Node.js applications
Load balancing our application
Summary

Book Details

ISBN 139781787285835
Paperback919 pages
Read More
From 2 reviews

Read More Reviews

Recommended for You

DevOps: Puppet, Docker, and Kubernetes Book Cover
DevOps: Puppet, Docker, and Kubernetes
$ 79.99
$ 56.00
Flask: Building Python Web Services Book Cover
Flask: Building Python Web Services
$ 79.99
$ 56.00
Mastering Object-oriented Python Book Cover
Mastering Object-oriented Python
$ 26.99
$ 18.90
DevOps Bootcamp Book Cover
DevOps Bootcamp
$ 31.99
$ 22.40
Git: Version Control for Everyone Book Cover
Git: Version Control for Everyone
$ 23.99
$ 16.80
The DevOps 2.1 Toolkit: Docker Swarm Book Cover
The DevOps 2.1 Toolkit: Docker Swarm
$ 39.99
$ 28.00