DESIGNING SCALABLE AND MAINTAINABLE APPLICATION PROGRAMS

Abstract View PDF Download PDF

##plugins.themes.academic_pro.article.main##

Swamy Prasadarao Velaga

Abstract

This paper aims to discuss the following on how MSA has revolutionized the manner of developing application programs: This literature review shows how microservices have evolved from the monolithic applications and Service-Oriented Architecture (SOA) models with Microsoft decomposing monolithic architectures with the launch of MSA. The switch to applying microservices, on the same hand, holds a number of advantages, such as the possibility to scale and modularize, in addition to the series of problems to solve with a deeper strategic vision.Microservice architecture is a way of designing applications as a collection of loosely coupled services. It is an architectural style that structures the application as a set of autonomous services, which are modeled around a business domain. When building an application as a set of microservices, the primary goal is to keep each service as single-minded as possible[1]. Each service can be developed, tested, and deployed independently and has its own process and can use a different technology than the other services in the same application. The design of microservices requires a more mature approach to software development as the degree of complexity shifts from intra-service cooperation to the landscape of service cooperation. The complexity of the communication between services is at the core of this architectural style, and despite many benefits, microservices have a downside, as they introduce some level of complexity, especially in the area of deployment and figuring out the service inter-communication and data consistency when data is being held by different services.  Microservices development and maintenance presents different issues to the architecture such as growth in the number of services, tangled dependencies and versioning. As a result of these maintenance challenges some of the solutions that have been described in this review include automation and management tools. It is necessary to integrate it with the DevOps practices, most critically with Continuous Integration and Continuous Deployment (CI/CD) practices to help the general functioning of microservices [1]. This paper aims at analyzing the use of microservices together with DevOps, examination of the roles of their cooperation in development of efficient deployment processes. It may be able to notice that security in MSA is a very important factor, some of the problems may include, service authentication, data integrity and inter service communication security. The following is a review of these security threats and measures that can be taken to avoid them to achieve strong security protection in Microservices platforms [1,2]. Microservices need to be scalable and deceptively easy to deploy and containerization tools like Docker and container orchestration tools like kubernetes fit this need perfectly. The following paper focuses on their effectiveness within the operational environment as well as system stability. Although microservices architecture provides benefits, monitoring and observability have to be considered so that microservices’ issues will be detected and solved in due time. It studies measures for increasing understanding of the application’s characteristics, enabling timely further action in case of problems. Finally, the paper explores some of the design patterns that address service vulnerability, and the following are the common ones; circuit breaker design pattern, service discovery pattern, and the load balancer design pattern. In striving for achieving this objective, the review seeks to offer a vast amount of information regarding the various concepts that help to lay a solid foundation that can enable the creation of a well-scaled microservices-based application.

##plugins.themes.academic_pro.article.details##

How to Cite
[1]
Swamy Prasadarao Velaga, “DESIGNING SCALABLE AND MAINTAINABLE APPLICATION PROGRAMS”, IEJRD - International Multidisciplinary Journal, vol. 1, no. 2, p. 10, Aug. 2014.

References

  1. R. Daigneau, Service design patterns : fundamental design solutions for SOAP/WSDL and RESTful web services. Upper Saddle River, Nj: Addison-Wesley, 2012.
  2. A. B. Bondi, “Characteristics of scalability and their impact on performance,” Proceedings of the second international workshop on Software and performance - WOSP ’00, 2000, doi: https://doi.org/10.1145/350391.350432. Available: https://dl.acm.org/citation.cfm?doid=350391.350432.
  3. P. Smeys, P. B. Griffin, Z. U. Rek, I. D. Wolf, and K. C. Saraswat, “Influence of process-induced stress on device characteristics and its impact on scaled device performance,” IEEE Transactions on Electron Devices, vol. 46, no. 6, pp. 1245–1252, Jun. 1999, doi: https://doi.org/10.1109/16.766893
  4. A. Erramilli, O. Narayan, and W. Willinger, “Experimental queueing analysis with long-range dependent packet traffic,” IEEE/ACM Transactions on Networking, vol. 4, no. 2, pp. 209–223, Apr. 1996, doi: https://doi.org/10.1109/90.491008
  5. P. Kuchana, Software architecture design patterns in Java. Boca Raton, Fl: Auerbach Publications, 2004.
  6. M. Silver, Programming cultures : art and architecture in the age of software. London: Wiley-Academy, 2006.
  7. A. W. Scheer, Business process excellence : ARIS in practice. Berlin ; New York: Springer, 2002.
  8. D. Giannakopoulou and F. Orejas, Fundamental Approaches to Software Engineering. Springer, 2011.
  9. P. Jogalekar and M. Woodside, “Evaluating the scalability of distributed systems,” IEEE Transactions on Parallel and Distributed Systems, vol. 11, no. 6, pp. 589–603, Jun. 2000, doi: https://doi.org/10.1109/71.862209
  10. C. M. Woodside and C. Schramm, “Scalability and performance experiments using synthetic distributed server systems,” Distributed Systems Engineering, vol. 3, no. 1, pp. 2–8, Mar. 1996, doi: https://doi.org/10.1088/0967-1846/3/1/002
  11. X. D. Zhang, Y. Yan, and K. Q. He, “Latency Metric: An Experimental Method for Measuring and Evaluating Parallel Program and Architecture Scalability,” Journal of Parallel and Distributed Computing, vol. 22, no. 3, pp. 392–410, Sep. 1994, doi: https://doi.org/10.1006/jpdc.1994.1100
  12. X.-H. Sun, “Scalability versus Execution Time in Scalable Systems,” Journal of Parallel and Distributed Computing, vol. 62, no. 2, pp. 173–192, Feb. 2002, doi: https://doi.org/10.1006/jpdc.2001.1773
  13. X. Hu, L. Liu, and T. Yu, “A hierarchical architecture for improving scalability and consistency in CVE systems,” International Journal of Parallel, Emergent and Distributed Systems, vol. 26, no. 3, pp. 179–205, Jun. 2011, doi: https://doi.org/10.1080/17445760.2010.495722
  14. A. Almojel, “Evaluating Budget of Overhead and Scalability on High-Performance Computing Systems,” Journal of King Abdulaziz University-Science, vol. 17, no. 1, pp. 207–222, 2005, doi: https://doi.org/10.4197/sci.17-1.20
  15. J. L. Bosque, O. D. Robles, P. Toharia, and L. Pastor, “Evaluating scalability in heterogeneous systems,” The Journal of Supercomputing, vol. 58, no. 3, pp. 367–375, Mar. 2011, doi: https://doi.org/10.1007/s11227-011-0593-5.
  16. M. Petticrew and H. Roberts, Systematic Reviews in the Social Sciences. John Wiley & Sons, 2006.
  17. G. Barish, Building scalable and high-performance Java Web applications using J2EE technology. Boston: Addison-Wesley, 2002.
  18. R. Redler and J. Rossberg, Designing Scalable .NET Applications. Apress, 2008.
  19. P. Runeson, M. Host, A. Rainer, and B. Regnell, Case Study Research in Software Engineering. John Wiley & Sons, 2012.

Most read articles by the same author(s)

Obs.: This plugin requires at least one statistics/report plugin to be enabled. If your statistics plugins provide more than one metric then please also select a main metric on the admin's site settings page and/or on the journal manager's settings pages.