MICROSERVICES CASE STUDY
ASSESSMENT 1 PART A
Table of Contents
Microservice architecture is referred to as the architectural style that is used to develop software systems. The process used in these criteria emphasizes on framing single-function modules comprising well-defined operations and interfaces (Balalaie, Heydarnoori & Jamshidi, 2016). On a similar note, this discussion highlights the main criteria and context of microservices. It also includes key principles of this architectural pattern along with its disadvantages and advantages. Moreover, this discussion is framed to specify how microservices have changed the outlook of business operation.
Content of the report
Key concepts and principles of microservice architecture
The advent of cloud-computing services has brought in modern methods of developing software. This in hand allowed IT professionals to discover cloud-oriented software development techniques namely microservices architecture. Application building is done using varied data storage processes and discrete programming languages. While the process favors microservices for designing enterprise applications, it is important to consider key principles. They include failure isolation, decentralization, concealing details of implementation, domain drive structure, and persistent development through DevOps culture (O’Connor, Elger & Clarke, 2017). Traditional SOA (Service-oriented architecture) is different from that of microservice-architecture. SOA aims to cluster varied business applications whereas microservices consider one application at a time. The latter considers the single application of small services with lightweight processing. Building applications is facilitated for effective communication with HTTP resource API. Moreover, six factors of microservices include multiple components, failure resistant, simple routing, decentralized, evolutionary, and built for enterprises. Microservices favors data management criteria through decentralization. It is justified by the fact that its developers highly recommend the production of important tools for solving the same concerns. Compared to traditional SOA, microservices are failure-resistant, and independently deployable services are associated with this architectural pattern. As per the context, microservices are used to cope with modern business issues that cannot be settled through monolithic designs. Fully automated machinery is associated with these microservices (Alshuqayran, Ali & Evans, 2016). Microservices comprises independent databases, which are connected to different systems. Thus a seamless functioning is done through microservices architectural designs. The modular structure is an integral part of these services, which helps in tracking huge teams. The foremost principle is decentralization, which does not let data management conduct through single databases but unique databases.
Figure 1: Microservices architecture
(Source: Herrera-Quintero et al. 2018)
The key concept of microservices comprises the structuring of an individual application as fragmentation of small services. In contrast to monolithic applications, microservices allocate each element of databases into unique services. Thus, scalability is maintained in this processing. These characteristics help the architectural method to support different devices and platforms across the Internet Of things, web, mobile, and others. Uniqueness in data management criteria increases flexibility, which allows complexity in business operations to be solved coherently (Herrera-Quintero et al. 2018). However, monolithic applications are inflexible, unreliable, slow-developing applications hinder continuous decline and comprise complex applications. This is why modern business applications like handling e-commerce businesses hardly consider monolithic applications. Development and deployment are easily done through microservices since these services do not need to act in a proper collaboration and can act independently. Language usage is neutral in this context. Since it comprises different databases and services, different languages and can be used for different applications without any change of other services. Stacking with mixed technology helps microservices to solve the problem of diverse outlook. Moreover, applications structured for microservices tend to be cohesive and decoupled in nature. This community supports a modern outlook namely dumb pipes and smart endpoints. Microservices owns personal domain logic, which behaves as filters in the modern UNIX sense. They are mainly organized for resolving complex business capabilities. As far as language usage is concerned, Java is commonly used for microservices due to its annotation syntax. Further, languages are used as power convenience, and priorities. Different from that of other traditional applications, simplification and different languages are used while building applications through microservice architecture designs.
Disadvantages and advantages of microservice architecture
|This is useful for complicated systems Deployments are continuous and fluid for unique services Decoupling Service is done based on business responsibility Developer groups can interact through API channels rather considering same repository systems Testing of new services are done independently and conveniently Performances are improved up to manifold while handing complex business operations Better maintenance of fault isolation Easy to integrate and scale with third-party users||Since the distributed deployment is considered testing of application tends to be tedious and complicated Persistent efforts have to be put in for implementing communication channels and associated services The effort is easily duplicated once it comprises distributed systems These architectural designs bring in additional complexities since developers require mitigating network latency, fault tolerance handling of different messaging formats, and load balancing.|
Table 1: Pros and cons of microservice architecture
(Source: Created by author)
There are several cons and pros of a microservice architectural framework. Although it facilitates integration and deployment of service conveniently, still building up of communication channels at the initial stage is tedious and full of complexity. Compared to monolithic service, microservices are useful in handling vast across the channels. Fault isolation is an advantageous factor in these criteria since this architectural framework allows other microservices to work smoothly if one of them collapses (Venugopal, 2017). This justifies the usage of microservices in modern business scenarios. Contemporary outlooks of business operations require integrated solutions, which can be obtained through these architectural patterns. If modification is required in a particular section, redeployment and modification of the entire application are not needed. However, additional complexity is associated with these architectural designs, which are not present in monolithic designs. Microservices can be considered as a complex framework when local deployment is considered. Initially, it is important to consider priorities while selecting microservices or other architectural designs. Although microservice reduces fault isolation, still testing of services gets complex with these services.
A theoretical concept of microservice architectures is discussed in this section along with its advantages and disadvantages. However, modification needs to develop from within since it is only beneficial to handle large teams. In this context, the system should be developed as per business priorities. These services possess scalability and flexibility, which can be considered while handling complex business situations. Several business operations such as e-commerce, which require multiple tier communication channels, require microservices architecture. With a few modifications, microservices can be used in complex business circumstances.
List of references
Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2016). Microservices architecture enables devops: Migration to a cloud-native architecture. Ieee Software, 33(3), 42-52.
O’Connor, R., Elger, P., & Clarke, P. (2017). Continuous software engineering—A microservices architecture perspective. Journal Of Software: Evolution And Process, 29(11), e1866.
Alshuqayran, N., Ali, N., & Evans, R. (2016). A systematic mapping study in microservice architecture. In 2016 IEEE 9Th International Conference On Service-Oriented Computing And Applications (SOCA), 44-51.
Herrera-Quintero, L., Vega-Alfonso, J., Banse, K., & Zambrano, E. (2018). Smart its sensor for the transportation planning based on iot approaches using serverless and microservices architecture. IEEE Intelligent Transportation Systems Magazine, 10(2), 17-27.
Venugopal, M. (2017). Containerized Microservices architecture. International Journal Of Engineering And Computer Science, 6(11), 23199-23208.