Services

Client server applications worked very well, but the coupling of components caused slow and risky deployments for mission-critical applications. System designers continued to find ways to separate components from each other to reduce the blast radius of failure, increase the speed of deployments, and reduce risk during the process. A services design pattern is where business functions are broken down into specific objectives to complete in a self-contained manner that doesn't require knowledge of or dependencies on the state of another service. This self-contained independent state of the service is in itself the definition of decoupling and marks a major evolutionary change from monolithic architectures. The change to services design is directly related to the reduction in the price of compute and storage and the increase in network sophistication and security practices for intercommunication. Lowering costs allows for many computing instances of services to be created across wider geographical regions and with a more diverse set of business functional requirements.

Services are not just custom code designed to solve a business problem. In fact, as cloud vendors mature their services, often a managed offering is created to help remove the undifferentiated heavy lifting of some piece of a system. These individual services fit into the services category and often make up specific functions in a large distributed and decoupled solution, for example, using a queueing service or storage service as a function of the design. In a monolithic system architecture, all of these components would need to be developed and would exist in a single application stack with tightly coupled interconnectivity and significant risk of failures, slowdowns, or faulty code. Mature cloud native architectures are specifically designed to take advantage of these vendor services in addition to custom functions, all working as one to react to different events, and ultimately driving business outcomes with as little complexity as possible.

While services-based architectures are very popular with cloud native architectures, the evolution of services design has taken time. From the first iteration of SOAs, to microservices, to functions, each pattern breaks up the functionality even more to decouple their interactions as much as possible.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset