Menu

How NetApp IT Uses Microservices to Access Data from Monolithic Systems

Amit Vij
569 views

Learn how NetApp IT uses microservices to access data from monolithic systems. The NetApp Support site, which provides our customers with self-help, interactive chat, and other forms of digital support, has been rebuilt on smaller, easier-to-manage services. The site has been transformed from an application with monolithic stacks to a modern microservices-based architecture, front ended by an Angular-based single-page application (SPA) UI. 

One key back-end system for the Support site is our Enterprise Content Management (eCM) application and its content repository. The team analyzed the functionality associated with the legacy monolith eCM and identified granular services that needed to be exposed. One identified service was the Software Download (SWDL) function in eCM.

An important piece of our transformation was the continued need to retrieve vital data from several back-end systems that would remain monolithic, at least until modernized in the future. Our challenge was to develop services that interface with the legacy back-end monolithic applications. We chose a solution that delivered RESTful APIs, exposing the desired functions, abstracting the legacy systems, and interfacing through an API Gateway platform. 

API Abstraction Layer

RESTful APIs were developed to provide the identified services. These RESTful APIs were registered in the API Gateway platform and accessed by the microservices from the service layer. The RESTful API completely abstracts the legacy systems and masks its complexity. The SWDL service can then be reused by other front-end applications that require software download functionality. Other applications that need SWDL function can also access the SWDL APIs directly. The back-end eCM system is completely abstracted from this function.

Before and after using microservices to access data from monolithic systems.

This new mechanism offers a way to break down our legacy monoliths and convert them into modern microservices-based applications. The legacy system can be transitioned to any modern application framework, providing that it preserves the API signatures, so that consumers can seamlessly access them. API signatures acts like a contract between provider and consumer.

The new NetApp Support site runs on CloudOne, our DevOps-based platform. This platform handles all infrastructure setup through automation as part of our deployment pipeline. It provides all the cloud and other technologies needed via quick initial setup through a self-service portal that triggers automated processes to set up everything, end to end. 

Lessons Learned

  • The first step in our journey was having a robust cloud CI/CD infrastructure; expect a steep learning curve to adapt these new mechanisms.
  • A deep understanding of business requirements and an implementation plan are necessary to define the boundaries of microservices; those boundaries are not always clear. In our case, we grouped subfunctions with the business process into a single microservice.
  • Compared to a monolithic infrastructure, there are many layers and parts in the new design. Troubleshooting issues could take more time than usual; however, once the teams is familiar with all aspects of the design, the time to market new features is greatly reduced. 
  • A DevOps approach brings change to people and processes as well as to technology. Successful DevOps adoption requires a consistent push and support from senior management. 

The NetApp on NetApp blogs feature advice from NetApp IT subject matter experts who share their real experiences in using industry-leading NetApp data management solutions to support business goals. To learn more, visit www.NetAppIT.com.

Amit Vij

Amit Vij, business systems SOA and integrator for NetApp IT, manages the infrastructure for Oracle WebCenter Content, a multitenant enterprise platform. He designs solutions based on automation, user experience, and content publishing.

View all Posts by Amit Vij

Next Steps

Drift chat loading