Modularity is also an important paradigm in modern software programming. In contrast, monolithic programs - that is, made in one piece - are mostly outdated today. Meanwhile, software packages are not only modular structured, but each component also performs cloud-based tasks in different locations. Advantages: Larger software projects can be more easily optimized in their implementation and organization and in their interactions. And this is precisely the main argument for the increasing importance of micro services.
Micro Services - what exactly is that?
Microser services are comparable to human body cell systems: many trillions of cells are needed for several hundred tasks, which in turn ensures the functioning of all organisms.
A micro service contains independent functions and is developed and operated independently. Therefore individual small components (services) in the overall system of software. This component in turn provides subfunctions in distributed applications. The microservices-based application architecture is thus modulated and can therefore be added more quickly and easily with additional functions. It also simplifies maintenance work in the life cycle.
How do microser services work?
Microsoft service architecture is a further development of service-oriented architecture (SOA). In SOA, individual software modules also act as services. Significant differences: With SOA, modules are grouped together in one place in the whole system, which is not entirely independent of each other. In the SOA concept, software development does not work without the participation of all the involved people. Therefore, team development is regulated differently in monolithic programs than in micro service architecture; z. For example, one team handles database development, and another team handles user interface settings or develops individual functions. In addition, employees are needed for analysis and maintenance. In monolithic software, all participating teams are interdependent; In contrast, developer dependency is largely avoided by Microsoft's service architecture.
Pros and cons: Microsoft services on the test bench
The cloud-based microservices approach initially has a number of benefits:
• Enhanced scalability: As soon as the micro service in the complete application is overloaded than others, it can measure itself independently and request additional resources as needed, without negatively affecting overall system performance.
• More Agility: Increases and changes to software can be made to Microsoft services without affecting other services.
• Optimized availability: Sub-service failures in an application do not question the availability of the entire system - the error is limited to the fact that one functionality is not available for a short time. A user on the frontend may not pay attention at all if a microservice fails in the backend area.
• Continuity: For updates and extensions, there is no need to put the entire application into maintenance mode, let alone update the entire program package.
Another major advantage of microser services is that they can be used several times: after the completion of a micro-service, this can later map a function in many other applications. This module can do anything anywhere.
Where is the catch in Microsoft service architecture? Maybe first with speed. It can happen that latency increases significantly through communication of many individual services. Individual modules now act in a distributed system and no longer on a central server.
Another potential disadvantage is accidental redundancy: the independence of the development team means that the same code can enter different locations in different modules. The results are more expensive at the time of development, although initially the opposite must be achieved by allowing individual services to be used several times.
It should also not be forgotten that the independence and isolation of micro services in different locations increases maintenance efforts and makes testing scenarios more complex.
Where is the microser service used?
The microservice architecture has proven itself in many large companies. They optimize business processes there and eliminate internal problems. Examples of big players in online businesses such as eBay, Spotify and Netflix impressively demonstrate the benefits of micro services after breaking established monolithic system architecture. Other industry players such as Amazon and Google have long worked with Microsoft services that are distributed globally. More specifically, they have used a distributed modular structure when the term microservices did not even exist.
• eBay's online auction site was originally started as a monolithic system, but its scope soon reached a proportion that was difficult to maintain. At some point, more than three million lines are hidden in one code file! - Enough reasons for industry giants to divide the monoliths horribly into many individual micro-based services. It communicates with each other through REST, the programming paradigm for web applications. Example eBay shows progress: When there are only a few users, monolithic software projects are very adequate; With increasing demand, growth inhibiting software monsters emerged.
• Spotify's music streaming provider is also a leading user of microser services and an example of increasing efficiency through distributed software. With Apple, Google and Amazon Spotifiy already have big competitors in the music streaming business at first. To respond quickly to the growing number of users and to integrate new functions, Microservices for Spotify is the best solution. For example, the function gets suggestions when entering a search term. Separate teams are responsible for this. In addition, the microser service ensures the durability of the entire system. There are more than 800 microser services used here, mostly based on Java, Spotify claims. In principle, individual services can also be developed in various programming languages. But because individual employees often change teams,
• It was a bad accident on Netflix: when the DVD was sent by mail, this provider was also based on monolithic online services. In 2008 it happened. Netflix failed miserably for four days due to a database error. Bearable! It was decided to divide the existing system into micro services and realize quickly that functional improvements in the system can be activated more quickly, and improvements to individual services are easier to do.
Because of increased functionality in the whole system, "Conductor" software was then developed, with individual services being managed with each other. This allows the microser service to be scaled individually and centrally controlled. Another important switching point in the whole system is a service called Determinants. It automatically processes processes and responds to events in the workflow.
What arises after micro services?
Internet of Things (IoT) is one of the great futuristic numbers, and here too, micro services are increasingly important. Increasing efficiency while saving energy plays a special role in this environment. Microsoft services make it possible to implement virtualization and utilize the server optimally. Microsoft services can be grouped together to create technologies that are - still - provided for enterprise customers. The microservice container mainly serves the portability of applications in a multicloud environment. Server clusters can be utilized better, which in turn saves each server. This has produced a vision with a loud name "Serverless". Serverless is very slim as an architecture, even more than microser services, because the function does not require an operating system or code, CPU processing time or system tools. Run without a server without calling functions and machines!
The head of Oracle's development, Chad Arimura recently described serverless capabilities as "the next SOA thing": a block of code that is ideally small and directed and scheduled and coordinated through the function-as-service (FaaS) platform. For example, AWS Lambda Amazon, Microsoft Azure Functions, or frameworks such as the Oracle Fn-Flow project are ideal for this.
Conclusion: Smart architecture - if implemented correctly
Like any software architecture, a special form of modularization in microser services has advantages and disadvantages. On the one hand, the independent work of each team. On the other hand, the greater effort in operation and monitoring. Significant potential for simplification in the development and maintenance of microser services offers in any case. But if the challenges of this technology are not taken into account, implementation hardly leads to the desired success. Finally, planned infrastructure is important. Introducing micro services solely to a trendy architectural approach is an expensive IT grave ticket.