The software architecture is responsible for organizing the software structures (components, interactions of the components with each other, environment, principles used to design the software product).
A software architect is a person who is responsible for design architecture for a particular application.
The software architect’s functions are,
1. Identify the system’s structure.
2. Identify the use-cases relevant to different scenarios.
3. Organize the user requirements (functional and non-functional)
There are many software architectures. When developing an application, the most suitable architecture has to be selected. Fault selection of architecture leads to the failure of an application where the time and allocated budget will become useless.
Micro-services
Micro-services is an architecture, which has Service Oriented Architecture (SOA). SOA has an application scope. It is suitable for a large-scale application. The micro-service architecture uses to develop an application and structure it as a group of services.
This architecture has five core components are,
1. Micro-service
2. Container
3. Service mesh
4. Service discovery
5. API gateway.
When to use Micro-services?
- To build web applications that have to develop within a short period.
- To structure independent and individual services.
- To construct reusable services to use in many channels.
- To build common applications for enterprises.
Applications using micro-service architecture are,
- Netflix
- Uber
Advantages
1. Platform independent.
The micro-services can implement by different developing teams using any technology and deployed in the cloud individually.
2.Usages of lightweight protocols.
3. Supports containerization and cloud computing.
4. Presents of closely coupled services.
5. Scalable
It helps to scale each service individually when required.
6. Consume less time to market.
7. Speeds the CI/CD pipeline.
8. Easy to debug.
Disadvantages
1. Poor performance
Advanced tools are required to communicate. Therefore micro-service architecture will be problematic to handle by small companies.
2.Message overhead
It leads to poor communication between services.
3. Complex
This architecture is complex because testing and monitoring are difficult.
4. Difficult to maintain
It has poor load balancing
5. Poor security
Conclusion
When developing and deploying an application, it is required to select a suitable architecture. Select a proper architecture before the coding process. If not, the entire team has to face issues at the end.
Comments
Post a Comment