Micro service architecture is a set of processes that communicate over a network using different types of protocols such as HTTP to fulfill its goals. These services are independently deployable and organized around business capabilities. Microservice is a self-contained business functionality having a clear interface.
Micro services are most popular architecture patterns. Now business houses are interested in independent smaller systems like micro services architectures instead of large applications. Micro servicesarchitecture is a technique that arranges applications in a set of loosely coupled services. Microservices communicate with each other using lightweight protocols as HTTP and REST.
Software applications are developed to fulfill business need. Software applications contain numerous business capabilities in single monolithic applications. ERP AND CRM are noteworthy here. SOA was introduced to overcome the problems created by monolithic applications by service. SOA implementation of web services promotes a software application to be implemented as monolith. It consists of coarse grained web services like monolithic software. These services can grow overtime gathering different capabilities this development converts those applications into monolithic globes similar to conventional monolithic applications. (Jamshidi, 2018)
Microservice architecture is development of single application in which small and independent services run in their own process. According to functions of monolith for a business capability business needs are useful applications. All those business capabilities are utilized as fully independent. In microservices either we have to build software application from start or can convert application into micro services. It is important to decide proper size scope and capabilities. In designing phase boundaries should be found and aligned with business capabilities. Its design must ensure age development and deployment of service. (Pautaso, 2018)
In SOA the function of calls or language level method is shifted to loosely coupled web service level messaging. It is based on SOAP ontop of protocols like HTTP and JMS.
Single responsibility principle is a part of solid design pattern. It says that microservice should have a single responsibility.One microservice should never have two or more than two responsibilities.
Infrastructure automation is an important principle. Building infrastructure is need of microservices. A service is independently deployable in microservices. It contains all dependencies. Microservices are different from SOA in level of autonomy. SOA implementations provide service level abstraction but microservices abstract the realization and execution environment. Each microservice is developed as a far jar holdingall dependencies. (Yousif, 2016)
Built around business capabilities needs more attention here. Micro services focus specific business functions and ensure them to be done. A micro service sets itself free to adopt proper technology stake which is suitable for business purposes.
You built it you own it is the principle of micro services. It is related with pre and post development responsibilities. In larger application a team develops the app and transfers it to maintenance team. In micro services the team which builds it is owner and responsible ofmaintenance even in future.
Design for failure is kept in view during development of micro services. If service fails or stops working how it willaffect the user’s experience are the questions solved before start of coding. Fail fast is the concept that detects the failure and automatically resolves the issue. (aibi, Lenarduzzi, & Janes, 2017)
There are numerous advantages of micro services as:
It has flexibility. A user is not bound to use a single language and framework. It gives choice of frameworks and tools.
Micro services are better than monolithic services because individual microservices are interchangeable, loosely coupled and can be swapped out easily.
Micro services are meant to do one thing that is why its code is also small. It can be understood easily by developer.
The work in a unified development environment is faster and more fruitful. Its scope is limited which avoids human errors.
Micro services are agile in nature. Therefore, micro service architecture permits to share the project into autonomous units.
Micro services have advantage of implementation of selective scalability. Each service can be scaled up and down independently. (Pautaso, 2018)
Micro services have advantage of enabling one micro service substitute for another micro service when the latter is not performing according to need.
Micro services are manageable services in which more and more can be added according to need it has minimal impact on existing services.
With micro services technology each service can individually be changed or upgraded rather than upgrading complete application. (Jamshidi, 2018)
Here is the list of some cons that are attributed to micro services:
Complexity is disadvantage of this service. Although everything is independent service yet you have to handle the requests running between your modules very carefully. Such complications arise during inactivity of remote calls. Extra code is needed to avoid this complexity.
Testing of an application which is based on micro servicecan prove troublesome. In other approaches a developer just need to launch WAR on a server and connects it with underline database. In micro services it is necessary to confirm each dependent server before testing.
It has various services. Large number of services requires more and more resources. It has multiple database and transaction management which is painful.
Debugging problems in micro services are very difficult to comprehend. There are different sets of logs for different services to work. The discrimination between log, logs and more logs is difficult. (aibi, Lenarduzzi, & Janes, 2017)
It is expensive also. Communication between services is necessary which is possible by numerous remote calls. It increases processing costs.
Security threats are there in this system. It has a system of data exchange between modules. Working with various small systems exposes more and more system to network. IT means that more and more order is exposed to attackers.
To conclude the above discussion it can be claimed that microservices architecture is developed to meet modern requirements of this age. It is an advanced form of micro services toovercome the difficulties of traditional designs. Its smallness and distributed systems are making it popular day by day. The capabilities of micro services and use of light weight protocols is really working. It is innovative in synchronous messaging. Decentralized data management and its governance are concepts that are making it successfully. (Yousif, 2016) It has innovations like infrastructure automation. It is designed keeping in view the future and the demands. In spite of all these amazing aspects it has to face some problems. Complexity in microservices, difficulty in global testing, debugging problems and more expenses are the areas of micro services that need to be checked and improved.
Aibi, D., Lenarduzzi, P. C., & Janes, A. (2017). . "Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages. Proceedings of the XP2017 Scientific Workshops, (pp. 115-125). Valentina.
Jamshidi, P. P. (2018). Microservices: The Journey So Far and Challenges Ahead. IEEE Software , 24-35.
Pautaso, C. (2018). Consistent Disaster Recovery for Microservices: the BAC Theorem. IEEE Cloud Computing , 49-59.
Pautasso, C. (2017). Microservices in Practice, Part 1: Reality Check and Service Design. IEEE Software , 91-98.
Pautasso, C. (2017). Microservices in Practice, Part 2: Service Integration and Sustainability. IEEE Software , 97-104.
Yousif, M. (2016). Microservices. IEEE Cloud Computing. , 4,5.
Remember, at the center of any academic work, lies clarity and evidence. Should you need further assistance, do look up to our Architecture Assignment Help
Proofreading and Editing$9.00Per Page
Consultation with Expert$35.00Per Hour
Live Session 1-on-1$40.00Per 30 min.
Doing your Assignment with our resources is simple, take Expert assistance to ensure HD Grades. Here you Go....