Microservices Stability: Design For Failure, Deploy With Confidence
Chapters selected by Paulo Pereira
  • April 2019
  • ISBN 9781617296994
  • 114 pages
Microservices Stability: Design For Failure, Deploy With Confidence
Chapters selected by Paulo Pereira
Microservices solve complex business problems by combining loosely coupled, single-responsibility applications into an integrated system. This type of architecture offers flexibility, adaptability, ease of testing and maintenance, rapid deployment to market, lean workflows, improved team communication, and more. The key to fully leveraging these benefits is understanding the new design, implementation, and deployment challenges that can crop up with microservices—and then meeting them head-on!

Microservices Stability is a collection of chapters from three Manning books, handpicked by microservices expert and co-author of Microservices in Action Paulo Pereira. Together, these chapters present an essential, laser-focused perspective on the world of stable, scalable microservices systems! You’ll begin by learning to build reliability into your system design by preparing for common problems like interservice communication issues, fault dependencies, and spotty availability of required services. You’ll also take a close look at deployment patterns, such as using frequent low-cost failure to avoid infrequent high-cost failure and managing risk with continuous delivery. To ensure your system is ready for prime-time, you’ll explore a variety of testing methods. When you’re finished with this short Free eBook, you’ll have a firm grasp on how to build reliable, stable, fault-tolerant microservices systems you can deploy with confidence.
Table of Contents detailed table of contents

Part 1: DESIGNING RELIABLE SERVICES

Designing reliable services

6.1 Defining reliability

6.2 What could go wrong?

6.2.1 Sources of failure

6.2.2 Cascading failures

6.3 Designing reliable communication

6.3.1 Retries

6.3.2 Fallbacks

6.3.3 Timeouts

6.3.4 Circuit breakers

6.3.5 Asynchronous communication

6.4 Maximizing service reliability

6.4.1 Load balancing and service health

6.4.2 Rate limits

6.4.3 Validating reliability and fault tolerance

6.5 Safety by default

6.5.1 Frameworks

6.5.2 Service mesh

6.6 Summary

Part 2: DEPLOYMENT

Deployment

5.1 Things fall apart

5.2 Learning from history

5.2.1 Three Mile Island

5.2.2 A model for failure in software systems

5.2.3 Redundancy doesn’t do what you think it does

5.2.4 Change is scary

5.3 The centre cannot hold

5.3.1 The cost of perfect software

5.4 Anarchy works

5.5 Microservices and redundancy

5.6 Continuous delivery

5.6.1 Pipeline

5.6.2 Process

5.6.3 Protection

5.7 Running a microservice system

5.7.1 Immutability

5.7.2 Automation

5.7.3 Resilience

5.7.4 Validation

5.7.5 Discovery

5.7.6 Configuration

5.7.7 Security

5.7.8 Staging

5.7.9 Development

5.8 Summary

Part 3: WRITING TESTS FOR MICROSERVICES

Writing tests for microservices

7.1 What and how to test

7.1.1 The test pyramid: what to test in a microservices system

7.1.2 System-level tests: testing a complete microservice system end-to-end

7.1.3 Service-level tests: testing a microservice from outside its process

7.1.4 Unit-level tests: testing endpoints from within the process

7.2 Testing libraries: Nancy.Testing and xUnit

7.2.1 Meet Nancy.Testing

7.2.2 Meet xUnit

7.2.3 xUnit and Nancy.Testing working together

7.3 Writing unit tests using Nancy.Testing

7.3.1 Setting up a unit-test project

7.3.2 Using the Browser object to unit-test endpoints

7.3.3 Using a configurable bootstrapper to inject mocks into endpoints

7.4 Writing service-level tests

7.4.1 Creating a service-level test project

7.4.2 Creating mocked endpoints

7.4.3 Starting all the processes of the microservice under test

7.4.4 Executing the test scenario against the microservice under test

7.5 Summary

What's inside

  • “Designing reliable services” from Microservices in Action by Morgan Bruce and Paulo A. Pereira
  • “Deployment” from The Tao of Microservices by Richard Rodger
  • “Writing tests for microservices” from Microservices in .NET Core by Christian Horsdal Gammelgaard

About the author

Paulo Pereira is a seasoned software engineer who revels in the challenges of finding the perfect tools for every job and combining different programming paradigms to create innovative solutions. He is the coauthor of Manning’s Microservices in Action and the author of Elixir Cookbook.

eBook $0.00 PDF only
Prices displayed in rupees will be charged in USD when you check out.

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks