Developing Open Cloud Native Microservices
by Graham Charters, Sebastian Daschner, Pratik Patel, Steve Poole
Chapter 4. Cloud Native Development
In the previous chapter we saw how to develop REST services that are backed by a database. We discussed how Enterprise Java makes this simple, allowing the developer to focus largely on the business logics and use a small set of annotations to define database persistence and to provide and call REST services with JSON payloads.
This ability to use annotations to reduce the amount of coding required is great for small numbers of simple services, but you’ll soon encounter limitations if you’re scaling to tens or hundreds of services for which individual teams are responsible. Your business logic is now split across processes with remote APIs. These APIs will need to be appropriately secured. A client request potentially passes through tens of services, all managed independently and with networks in between, which adds the potential for latency and reliability problems. Your independent teams now need to be able to collaborate and communicate their service APIs. These are just some of the costs associated with cloud native development, but thankfully there are APIs and technologies available to help.
Securing REST Services
Background
It’s important to start by recalling that by default the HTTP protocol
is stateless. The protocol supports various “verbs” for requests (GET,
POST, PUT, DELETE, etc.). These are the building blocks for the RESTful approach underpinning microservices. All calls are stateless, as they are simply requests to retrieve ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access