Spring Boot is app-centric. As @kryger said, Spring Cloud builds on boot. It solves higher level problems, such as:
- Distributed configuration: How to configure every instance of all of your services (standard boot config files checked into git or svn and distributed via config server).
- Service registration and discovery: how to locate a specific instance of a service (using Netflix Eureka)
- Client Side load balancing: intelligently choose an instance of a service to use (using Netflix Ribbon) via a smart algorithm such as: round robin or response time
- Plug into Ribbon via Spring Rest Template or Netflix Feign.
- Serve all assets and api’s via a proxy that is plugged into service discovery and load balancing (Netflix Zuul).
- Stop cascading api failures with the Circuit Breaker pattern via Netflix Hystrix and visualize the health of all circuits with the Hystrix Dashboard.
- Send commands to all or some services via a lightweight message bus.
- Use oauth2 to protect resources
- and other things I’ve probably forgotten.