Microservices: Up and Running by Irakli Nadareishvili & Ronnie Mitra
Author:Irakli Nadareishvili & Ronnie Mitra [Irakli Nadareishvili]
Language: eng
Format: epub
Publisher: O'Reilly Media, Inc.
Published: 2020-11-24T16:00:00+00:00
7. “Export services via port binding”
Web-based applications use the HTTP protocol to listen for message based requests that they can service. To do that, they need to bind to a TCP/IP address and port. This is the network address that consumers of the application will send requests into. Most application developers understand that this is how their web-based applications need to work - but, very few of those developers have the experience and knowledge to implement a production-grade web server for their application.
Write code to handle HTTP based communication at scale is a non-trivial exercise. So, it makes sense for application developers to use tools, frameworks, libraries and servers that will do this work for them. In the early days of web application development, it was common practice to write application code that would be deployed into an HTTP based application server. In this way, the server would handle the complexities of communication and invoke instances of the application as part of the server process.
The seventh factor forbids this type of server container architecture. Instead, a twelve factor application must implement it’s own HTTP server and bind to a TCP/IP port itself. When the application process is started, it binds to a network address and listens for messages that it can service. This doesn’t mean that the application developer has to write this code themselves. Instead it means that the application bundle must contain its own server libraries and dependencies that are instantiated and managed by the application itself. Instead of the application being deployed in the server, the server is embedded into the application.
Another way of saying this is that the application becomes self-contained. It means that we can deploy the application as a single executable bundle and run it by starting a single state-less process. The benefit of this approach is that we do not have to maintain and tune shared server containers that may differ from environment to environment. Instead, we can maintain and deploy application bundles individually. But keep in mind, we’ll still need to scale, co-ordinate and secure these network bound application processes.
This seventh factor is a key part of what defines an application as a microservices. The birth of the microservices style of architecture has its roots in this shift towards self-contained, independently deployable applications that bind to a port. The principle of self-containment and encapsulation lead architects down a road towards smaller bounded applications that could be easier to develop and maintain. So, this will be an easy factor for us to incorporate into our design.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Management Strategies for the Cloud Revolution: How Cloud Computing Is Transforming Business and Why You Can't Afford to Be Left Behind by Charles Babcock(4156)
Ego Is the Enemy by Ryan Holiday(4039)
Offensive Shellcode from Scratch by Rishalin Pillay(3929)
Exploring Deepfakes by Bryan Lyon and Matt Tora(3659)
Robo-Advisor with Python by Aki Ranin(3499)
Learning C# by Developing Games with Unity 2021 by Harrison Ferrone(2959)
Speed Up Your Python with Rust by Maxwell Flitton(2914)
OPNsense Beginner to Professional by Julio Cesar Bueno de Camargo(2870)
Linux Command Line and Shell Scripting Techniques by Vedran Dakic and Jasmin Redzepagic(2867)
Extreme DAX by Michiel Rozema & Henk Vlootman(2864)
Agile Security Operations by Hinne Hettema(2864)
Liar's Poker by Michael Lewis(2841)
Essential Cryptography for JavaScript Developers by Alessandro Segala(2810)
Elevating React Web Development with Gatsby by Samuel Larsen-Disney(2791)
AI-Powered Commerce by Andy Pandharikar & Frederik Bussler(2715)
Python for ArcGIS Pro by Silas Toms Bill Parker(2710)
Cryptography Algorithms by Massimo Bertaccini(2701)
Incident Response Techniques for Ransomware Attacks by Oleg Skulkin(2690)
Distributed .NET with Microsoft Orleans by Bhupesh Guptha Muthiyalu Suneel Kumar Kunani(2690)