Containerized Microservices: A Software Transformation

Asha Bhosale, Meenakshi Balasbramanian, Hemali Desai
Fostering a culture of technological innovation & learning at ITS
In an earlier blog, we shared that ITS had embarked on an effort to rearchitect and modernize some of our applications in order to elevate the booking experience for our clients. We’d like to unveil this successful initiative in greater detail and introduce you to the team behind it. At the onset, the project requirements were to reduce processing time and enable dynamic scaling to increase within search traffic patterns. It also called for functionality that validated customer-specific use cases, policies and routes, and negotiated fares.

As part of air shopping, the TripEasy product utilized APIs from external partners, which typically require 10-15 seconds on average, to retrieve flight options. The data size associated with this process ranges from 30-40 MB. Efficiently processing, storing data, minimizing the time taken to present flight options to users, and avoiding disruption to ongoing operations were key requirements for the team. As a software transformation, our goal was to optimize our internal processes after the completion of external vendor processing, enabling us to display options to end users within three seconds or less. The team also wanted to ensure the system would handle increasing workloads, deliver optimal performance, maintain responsiveness, and improve overall user experience.

 

This challenge was presented to the development team of Asha Bhosale – Solutions Architect, Meenakshi Balasubramanian, Lead Software Engineer, and Hemali Desai, Lead Software Engineer based on their technical and functional expertise and their eagerness to work on a critical initiative.  After almost a year’s efforts, this project is now complete and live in the production environment. Their account of the initiative follows.

 

How was this team of all women brought together?
The decision to involve both functional and technical experts was well thought out. By combining these two skill sets, we harnessed the power of technology while ensuring alignment with business objectives and requirements. It resulted in a high-performance team that significantly impacted project outcomes, efficiency, and overall success. An exciting bonus was that this team consisted entirely of three talented women.

What was your process for defining the best approach for the project?
Following thorough evaluation, prototyping, timing responses, and multiple brainstorming sessions, we determined that breaking down the air shopping algorithm into multiple microservices would be the optimal approach. Microservice architecture is a style that structures an application as a collection of loosely coupled and independently deployable services. This architecture would facilitate search functionality, data manipulation, and the application of business rules tailored to each corporate entity and user privileges.

How did you go about getting started?
As this was a transformation project, it was important to perform background work that would allow us to understand current state and pain points of the existing software, define project scope, conduct research and analysis, establish goals and success criteria, and develop a complete project plan. By investing time and effort into these significant pre-work tasks, we were able to lay a solid foundation. For project success, we decided to utilize incremental development where the project was broken down into smaller, manageable tasks. It helped us deliver high-quality software that met all functional requirements of the existing software. 

Were there challenges along the way?
There was a learning curve for the entire team, as we were exploring the latest technologies with tight deadlines. Everything had to be created, from tools and languages to deployment strategies.  This was the first project to utilize this elaborate AWS Cloud architecture which had a lot of complexity to it.  We used some of the technology already in place, but the existing code had to be updated and new aspects had to be incorporated to modernize the product. 

Ultimately, modernization of air shopping was implemented using Node.js-based microservices and supported by Redis cache and DynamoDB. To simplify containerization management and maintenance, we chose to utilize Fargate ECS. This decision was driven by our preference to explore a solution that was efficient with a lower learning curve and also expanded our own technology footprint.  Additionally, the team consulted with architects from our cloud partner AWS during various stages of the project.  We also utilized best practices for various AWS components we used within the architecture.

This architecture now serves as a cost-effective foundational framework for future initiatives. It provides a solid baseline that can be built upon and expanded to support upcoming projects so that we can ensure consistency, scalability, security, and flexibility.

Were you able to meet all goals for the initiative?
Yes, we accomplished the needed time reduction and did so without impacting daily business operations.  We implemented this project without interruption and now know how to reduce that risk going forward.

At the end of the day, we overcame the unknowns through prototyping and collaboration with a supportive leadership team.  It took the collective experience of all three team members.  Just as importantly, the team had a willingness to step out of our respective comfort zones and embrace new ways of thinking and working. We were committed to continuous learning and improvements.  Along the way, the entire team also mastered both the functional and technical areas that were needed.

We are thankful to our technology leaders for their trust and the invaluable opportunity they provided in this modernization journey. The guidance and support we received not only helped us stay on schedule and promptly address challenges but also propelled us to overcome barriers.

What stands out for each of you about the project?
“Each stage of this initiative, from start to analyzing, designing, and evaluating different technologies, brought a sense of achievement and pride in the work accomplished. It also enriched problem-solving abilities and fostered creativity through technical learning,” says Asha Bhosale. “Moreover, building strong relationships with teammates, working together towards a shared objective, and experiencing the power of effective collaboration were highlights of the project.  We’re in the lucky position now that we have become friends, more so than just colleagues.”

Meenakshi Balasubramanian, Lead Software Engineer, adds, “The project started with many how’s and why’s. However, as days moved on, the pieces of the puzzle fell into place, through the guidance and expertise of my innovative teammates. It’s an exhilarating journey to embrace the unknown and dive into unexplored areas of technology. Being part of this transformational project turned my aspirations into tangible achievements and uncovered my true potential.”

“My favorite part was the journey itself. It filled me with a sense of purpose, excitement, and fulfillment. From the initial planning and ideation to the execution and completion, every step was a learning experience. I enjoyed tackling challenges, problem-solving, and pushing the boundaries of my skills and knowledge. Seeing the project evolve and witnessing its impact has been incredibly rewarding. It’s a transformative experience that has left us with a sense of accomplishment,” shares Hemali Desai.

Share this article:

Facebook
Twitter
LinkedIn
WhatsApp