Scalable Microservices Using Java and RESTful APIs on the Cloud

Authors

  • Rajesh Nadipalli Xtramile Soft LLC

DOI:

https://doi.org/10.47941/ijce.3240

Keywords:

Microservices Architecture, Java, RESTful APIs, Cloud Computing, Kubernetes, Docker, Scalability, API Gateway, Containerization, DevOps

Abstract

The adoption of microservices has revolutionized how scalable and resilient software systems are designed and deployed in cloud environments. This article examines the development of scalable microservices using Java and RESTful APIs, focusing on their implementation within cloud-native architectures. Java, with its robust ecosystem and mature frameworks like Spring Boot and Quarkus, remains a leading choice for building distributed services. RESTful APIs facilitate seamless communication between loosely coupled components, promoting flexibility and maintainability. The study explores containerization with Docker, orchestration with Kubernetes, and integration of CI/CD pipelines for efficient deployment. It also addresses critical aspects of scalability, including load balancing, caching, and performance optimization techniques specific to Java-based services. Observability practices such as distributed tracing, centralized logging, and health monitoring are discussed to enhance service reliability and fault tolerance. The practical benefits and challenges of transitioning from monolithic systems to microservices in cloud platforms like AWS and Azure. The article concludes by highlighting emerging trends, including serverless computing and AI-driven auto-scaling, offering insights for researchers and practitioners aiming to build robust, cloud-ready microservices architectures.

Downloads

Download data is not yet available.

References

[1] J. Lewis and M. Fowler, “Microservices: a definition of this new architectural term,” [Online]. Available: [https://martinfowler.com/articles/microservices.html]

[2] P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis, and S. Tilkov, “Microservices: The journey so far and challenges ahead,” IEEE Software, vol. 35, no. 3, pp. 24–35, May/Jun. 2018.

[3] C. Richardson, Microservices Patterns: With Examples in Java. Greenwich, CT: Manning, 2018.

[4] B. Burns, B. Grant, D. Oppenheimer, E. Brewer, and J. Wilkes, “Borg, Omega, and Kubernetes: Lessons learned from three container-management systems over a decade,” ACM Queue, vol. 14, no. 1, pp. 70–93, Jan./Feb. 2016.

[5] B. Sigelman et al., “Dapper, a large-scale distributed systems tracing infrastructure,” Google Research, Technical Report dapper-2010-1, Apr. 2010.

[6] E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston, MA: Addison-Wesley, 2003.

[7] S. Newman, Building Microservices: Designing Fine-Grained Systems. Sebastopol, CA: O’Reilly Media, 2015.

[8] B. Burns, Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services. Sebastopol, CA: O’Reilly Media, 2018.

[9] T. J. Wolf and A. Zuegel, “RESTful API modeling language and API-first design,” IEEE Software, vol. 34, no. 3, pp. 86–90, May/Jun. 2017.

[10] M. Fowler, “Microservices and the database,” [Online]. Available: [https://martinfowler.com/articles/microservice-database.html]

[11] C. Walls, Spring in Action, 5th ed. Shelter Island, NY: Manning Publications, 2018.

[12] G. Brown and S. Williams, “Micronaut: Building modular and performant microservices,” in Proceedings of the Oracle Code One Conference, San Francisco, CA, Oct. 2019.

[13] R. Fielding, “Architectural styles and the design of network-based software architectures,” Ph.D. dissertation, Univ. of California, Irvine, 2000.

[14] R. Hohpe and B. Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Boston, MA: Addison-Wesley, 2003.

[15] J. Turnbull, The Spring Security Reference Manual, 2019. [Online]. Available: [https://docs.spring.io/spring-security/site/docs/]

[16] T. R. Preston-Werner, “Swagger: API documentation and testing,” GitHub, 2015. [Online]. Available: [https://swagger.io]

[17] H. Langer and B. Salazar, Gradle Beyond the Basics. Sebastopol, CA: O’Reilly Media, 2016.

[18] D. Merkel, “Docker: Lightweight Linux containers for consistent development and deployment,” Linux Journal, vol. 2014, no. 239, pp. 2, Mar. 2014.

[19] B. Burns, J. Beda, K. Hightower, and J. Brewer, Kubernetes: Up and Running, 1st ed. Sebastopol, CA: O’Reilly Media, 2017.

[20] P. M. Duvall, S. Matyas, and A. Glover, Continuous Integration: Improving Software Quality and Reducing Risk. Boston, MA: Addison-Wesley, 2007.

[21] Y. L. Trach, “Infrastructure as code with Terraform and AWS,” IEEE Cloud Computing, vol. 5, no. 3, pp. 30–36, May/Jun. 2018.

[22] T. Wuerthinger et al., “GraalVM: Run Programs Faster Anywhere,” Oracle Labs White Paper, 2019. [Online]. Available: [https://www.graalvm.org/docs/]

[23] H. Chen, “Dynamic resource scaling in Kubernetes,” IEEE International Conference on Cloud Computing, pp. 206–213, Jul. 2019.

[24] R. L. Grossman, “The case for cloud computing,” IT Professional, vol. 11, no. 2, pp. 23–27, Mar./Apr. 2009.

[25] B. Burke, Caching Strategies for Web Applications, Red Hat, 2018. [Online]. Available: [https://access.redhat.com/articles/3029231]

[26] C. Terpstra, Java Performance: The Definitive Guide, 1st ed. Sebastopol, CA: O’Reilly Media, 2014.

[27] A. Toshniwal et al., “Storm@Twitter,” in Proc. ACM SIGMOD Int. Conf. Management of Data, New York, NY, 2014, pp. 147–156.

[28] D. Lindquist and J. Thomas, “Continuous profiling: Past, present, and future,” ACM Queue, vol. 16, no. 4, pp. 10–23, 2018.

[29] J. Turnbull, The Prometheus Monitoring System and Time Series Database, 2018. [Online]. Available: [https://prometheus.io/]

[30] A. Rodriguez and A. Sokolova, “Distributed tracing for microservices,” in Proc. IEEE Intl. Conf. on Cloud Eng. (IC2E), Apr. 2016, pp. 203–209.

[31] R. Kreps, N. Narkhede, and J. Rao, “Kafka: A distributed messaging system for log processing,” in Proc. NetDB, 2011.

[32] M. Fowler and R. Parsons, Building Microservices: Monitoring and Logging, ThoughtWorks, 2017. [Online]. Available: [https://martinfowler.com/articles/]

Downloads

Published

2020-03-21

How to Cite

Nadipalli, R. (2020). Scalable Microservices Using Java and RESTful APIs on the Cloud. International Journal of Computing and Engineering, 1(2), 20–31. https://doi.org/10.47941/ijce.3240

Issue

Section

Articles