In the dynamic realm of cruise line marketing, implementing efficient automation processes is paramount. This case study explores the journey of Norwegian Cruise Line Holdings Ltd. Cruise Line's (NCL) adoption of CI/CD practices for SAS Viya platform to streamline administrative tasks. NCL achieved significant reductions in deployment time, improved durability, and enhanced campaign management efficiency. Delve into this study to uncover how NCL navigated challenges, realized key benefits, and paved the way for future enhancements in their CI/CD journey.
Principal and its features in regards to CI/CD processes.
Norwegian Cruise Line (NCL) is one of the world’s largest cruise lines headquartered in Miami.
NCL extensively utilizes technology to deliver flexible and customized cruising options for an enhanced passenger experience, e.g.:
By leveraging these customer-facing and operational IT systems ranging from IoT to mobile devices, NCL vessels empower guests with more customizable cruises to provide a best-in-class user experience.
What sets the cruise line industry apart is its fleet, presenting distinct technological challenges. From a tech perspective, these challenges include:
These challenges make it difficult to meet modern requirements for maintenance, fast change implementation, and overall durability. NCL, in alignment with industry standards, encounters and addresses these challenges, showcasing a commitment to technological resilience and adaptability in the face of the unique operational constraints inherent to the cruise line sector.
Problem and Solution
Initial State and Encountered Issues
In the pursuit of delivering an exceptional customer experience, Norwegian Cruise Line (NCL) strategically opted for the SAS Viya platform. This versatile solution plays a crucial role in analytics, marketing campaign execution, and retrieving customer insights. Notably, the aspect of marketing campaign execution holds paramount significance being a front-facing system. Thus it directly impacts customer experiences during cruises.
In adherence to standard practice, the commencement of new systems and processes involved the execution of Proof of Concept (PoC) and/or Minimum Viable Product (MVP) phases to ensure feasibility from a business standpoint. Only upon project justification did we embark on planning the IT landscape, which naturally included considerations for implementing CI/CD. The expected increase in processes and features, along with the large number of marketing campaigns and vessels, made CI/CD implementation inevitable.
The initial releases, while marking a significant milestone, were not without their challenges:
Those issues are exacerbated by cruise lines features mentioned earlier, i.e.:
In summary, we identified initial complexities that underscored the critical need for a robust CI/CD framework.
What CI/CD is and why it is important?
A quick recap of the CI/CD concept.
Continuous integration and continuous delivery (CI/CD) are vital for any modern company utilizing IT systems, for several key reasons:
CI/CD principles empower technology and product teams to work at maximum efficiency, enabling businesses to swiftly achieve strategic goals in response to the market's demand for rapid innovation. Ignoring the benefits of CI/CD is not an option for modern organizations heavily reliant on IT. It represents a crucial advancement towards organizational maturity in the IT domain.
Objectives of CI/CD implementation
The objectives of CI/CD implementation fall into several categories aimed at enhancing various facets of the software development lifecycle:
Release velocity
Durability
The overarching strategic objective is to provide the system with scalability while preserving maintainability and durability.
Implementation
We identified several key areas that should provide a robust CI/CD process:
The best-in-class tools were employed at each area. All the tools selected were carefully harmonized to operate seamlessly within a unified process, accessible through a single interface. This integration ensures a convenient and reliable toolset for administrators, facilitating efficient management of the CI/CD pipeline.
Results and Impact
Outcomes
Release velocity:
Durability:
Deployment time impact
From the second vessel deployment onwards, all functionalities were executed through CI/CD pipelines, enabling rapid onboarding of new vessels within minutes.
A significant workflow enhancement was the streamlined DB schema migration process, ensuring no loss of DB views, indexes, or primary keys due to human error in the automated deployment process.
Moreover, the ability to deploy code swiftly became essential for integration testing, allowing automatic installation of test branch code and execution of tests without impacting the main deployment.
Over an 8-month period of utilizing automated deployment, the code was deployed approximately 750 times. Manual deployment time varies based on the object type, with an average vessel deployment estimated at around 1 hour due to the use of a Terminal Server on the vessel, resulting in significant input lag for each user action.
Based on average time difference we can conclude that approximately 680 hours of team work were saved through automated deployment within those 8 months.
On average, there were around 0.4 deployments per day. However, deployments were not evenly distributed over time. During active deployment and testing phases, more than 10 deployments could be completed in a single day.
Manual execution of this volume of deployments would be challenging and lead to a slower testing cycle. Thus, the automated deployment process resulted in even greater time savings.
Key benefits
The key benefits from adopting CI/CD:
Hands-on experience
The key campaign management specialist on the project, Malika Kakhirmanova Kakhirmanova, sharing her thoughts:
“We had CI/CD process ready right after the deployment on the second ship, and we were able to evaluate its efficiency when we piloted next ships. Even easy operations take a lot of time when you need to switch between a large number of environments with intermittent connectivity. Now the process goes smooth and fast, and what is more important - there are no human errors, such as forgotten steps from the Deployment Guide or incorrectly substituted variables. As a result - we can shortly extend our constantly growing process to more environments, without any pain expected.
The process of development of new marketing campaigns didn't change, however, their testing did. We don't test every step on each ship, because we know that technically everything is the same, we just evaluate the result and monitor the process.
For my role, I have more time for more technical/business and not-so routine tasks, which encourages me”.
Business leader and owner of the project, Ethan R. Rasti, expressing his perspective:
Using a central CI/CD platform is one of the main components of our DevOps efforts. We currently have more than 30 ships, and having such robust CI/CD process has enabled us to easily manage changes fleet wide and also monitor the status of each job on every ship in a central command center. Before this solution, we had to login to every ship in order to push a change. This effort has been saving us time and resource”.
In essence, the implementation of CI/CD processes has resulted in a transformative impact, enabling to operate at peak efficiency, leveraging SAS Viya platform to enhance customer experience and make it outstanding by providing means to scale fast, navigate the dynamic requirements, and address the distinctive challenges posed by the cruise line industry.
Recommendations for others implementing CI/CD processes
After the journey of CI/CD implementation, we have distilled key recommendations built upon gained experience and insights:
Start Small and Incrementally Scale
Keep the big picture in mind and address challenges systematically
Treat CI/CD Implementation as a Project
Choose tech stack wisely
CI/CD Requires Cross-Functional Collaboration
Future enhancements and next steps
CI/CD represents just one facet of the comprehensive infrastructure that a mature system should encompass. Among others, it includes monitoring, alerting, auto testing, log collection, and high-availability setups.
Currently, we are actively engaged in the implementation of monitoring and alerting processes. Please stay tuned, as we will certainly keep you posted on our progress.