Book Image

Software Architecture with Spring 5.0

By : René Enríquez, Alberto Salazar
Book Image

Software Architecture with Spring 5.0

By: René Enríquez, Alberto Salazar

Overview of this book

Spring 5 and its ecosystem can be used to build robust architectures effectively. Software architecture is the underlying piece that helps us accomplish our business goals whilst supporting the features that a product demands. This book explains in detail how to choose the right architecture and apply best practices during your software development cycle to avoid technical debt and support every business requirement. Choosing the right architecture model to support your business requirements is one of the key decisions you need to take when a new product is being created from scratch or is being refactored to support new business demands. This book gives you insights into the most common architectural models and guides you when and where they can be used. During this journey, you’ll see cutting-edge technologies surrounding the Spring products, and understand how to use agile techniques such as DevOps and continuous delivery to take your software to production effectively. By the end of this book, you’ll not only know the ins and outs of Spring, but also be able to make critical design decisions that surpass your clients’ expectations.
Table of Contents (21 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Provisioning multiple-container environments


One of the biggest problems that we have when we are working with distributed applications is the difficulty of provisioning all the dependencies that an application needs in order to work. For example, let's say that you're working on an application that is persisting information in a MySQL database and using RabbitMQ for sending messages, as shown in the following diagram:

Application with RabbitMQ and MySQL dependencies

In this case, all the developers on the team will need to install MySQL and RabbitMQ on their computers if they want to have the whole environment working locally.

Installing a couple of tools is not so difficult, but as soon as your application begins to have more and more dependencies, this task becomes a nightmare. This is the exact problem that Docker Compose addresses.

Docker Compose

Docker Compose is a tool which lets you define and execute multiple-container Docker environments. This means that every dependency in your application...