Τεχνικές για ανάπτυξη εφαρμογής με χρήση microservices
Application development techniques using microservices
View/ Open
Keywords
Microservices ; Αρχιτεκτονική ηλεκτρονικών υπολογιστών ; Προγραμματισμός ηλεκτρονικών υπολογιστών ; ΕφαρμογέςAbstract
In programming one can observe over time various trends in languages but also in various forms of architectures being used. Languages that dominate from time to time indicate the "how", that is, the means by which software is developed. On the other hand, architecture indicate "what", what is the purpose of software development. Through it, the goals and the limitations of software development in the respective period appear.
In recent years, one of the most prevalent architectures for developing sophisticated software and applications is microservices. In order to understand exactly this architecture and to be able to design your own software with this methodology, one must delve into the following:
• what exactly are microservices
• how and why they emerged and as a dominant architecture
• in which applications they fit
Once he understands these points he can move on to the practical part
• how to design an application with microservices
• what are their key points and how to implement
• how to integrate this way of programming in a broader context within a company / complex system
Microservices in short is the way a complex monolithic system can be developed as a set of more but simpler applications that communicate with each other.
It started appearing as a methodology in 2000 but in recent years it has established itself as a way to develop complex online applications as all online applications of wide (and not only) use have adopted it.
It provides a solution in systems where complexity is greater than usual. As an application grows in size and complexity, the development of new features and debugging of existing ones becomes more and more difficult and in some cases impossible. In such conditions, microservices often can give solutions.
In order to start designing an application with microservices, one must replace in one's mind the monolithic application that he knew with a set of simpler applications that communicate with each other. Thus the different separate subsystems are transformed into separate simpler applications. These in turn are easier to develop as they have no dependencies on other parts of the older monolithic application.
But as the number of applications grows, the developer has to deal with new programming problems. How will these applications be implemented? How will they recognize each other? How will they communicate with each other? And how to avoid importing dependencies between them so as not to end up a new monolithic application.
A developer rarely works alone. And even more rarely an application that needs to be structured with microservices is only developed by one programmer. This means that this new way of architecture as well as planning must be able to be productively integrated into a wider "production line" that starts from coding and reaches deployment.