Our customer is a multinational company that supports healthcare processes and implements clinical trials. A large part of the company’s business is the collection of various data in the broadly understood field of healthcare. The collected information ranges from patient data integrated with electronic medical records to drug sales data in many national markets (so-called Real World Evidence). This activity provides invaluable support for clinical trials and is an essential basis for monitoring the market share of pharmaceutical companies. The complexity of integrating many data sources as well as the need for standardization encouraged the company to adopt innovative approaches to integration and the use of modern technologies of data processing.
The company’s data integration processes are based on advanced Big Data technologies. Integration and analytics chains use distributed processing patterns on the Hadoop platform. The vast majority of data processing took place in company-owned computing centers (so-called on-premise infrastructure). As the organization grew and more data was collected, the company considered an alternative processing architecture. Because of the increasing use of cloud computing in healthcare and a strong need for innovation, the company decided to increase its cloud infrastructure in data processing.
The use of the public cloud has several significant advantages – no need to maintain physical infrastructure, flexibility in the choice of processing tools, cost control, and virtually unlimited scaling. However, if a company already has many systems in operation and needs to ensure business continuity, migration to a new infrastructure is a much more complex and lengthy undertaking. What’s more, our partner constantly conducts many development projects, expanding its data sources, offerings, and markets. Migration projects of their existing solutions would involve the company’s resources that are already largely allocated to development work.
As it was not possible to stop or even reduce the development work, the company looked for a partner with expertise and available resources to support their migration to newer technologies and advanced cloud infrastructure. Craftware has highly qualified specialists in many IT disciplines, including data engineering, cloud computing, and Big Data. Our specialists had already supported the company in the development work. Migrating their key systems to the cloud was another level of tightening our cooperation and partnership.
- The starting point of the project was to select the first system for the migration process. It was important that the migrated solution would have a modular structure – then, migration can take place in stages. This is in line with Craftware’s agile operating model. This approach to project management enables us to constantly monitor the project’s objectives and present the results of the stages on an ongoing basis.
- Next, we carried out a detailed analysis of the system migration, taking into account the specific technologies, platforms, patterns, and programming languages. Based on the results, we proposed an approach to the migration and a target architecture of the system. The plan included a number of assumptions previously defined by our partner, for example, the choice of Microsoft Azure as a public cloud provider. Our partner previously decided to use Azure Databricks as a runtime platform for the processing chains implemented in Apache Spark. In addition, it was necessary to ensure integration with the internal system of processing chain orchestration and with CI/CD (continuous integration / continuous delivery) processes implemented in Jenkins and integrated with GitLab.
- The post-migration system would still be integrated with key IT components but would run on the latest versions of the technology stack – in a public cloud with its components selected, configured, and managed by a partner. As a result of this first implementation, we would create a plan that would serve as a model approach to the migration of subsequent systems.
After mutual acceptance of the migration approach and clarification of the scope, Craftware proceeded with the project. The assumption was that the team would be complete and able to operate with minimal involvement of the partner’s resources. Of course, this involved preparing access to computing environments owned by the partner. To simplify the onboarding process, we decided that the Craftware team would get access to the environments via Citrix workspaces on virtual machines located on the partner’s corporate network.
The first stage of the migration was to prepare the system framework, which was already integrated with the automatic code building and launching processes on the cloud infrastructure. Then, we gradually transferred further processing chains, expanding the basic framework.
As the migrated solution was used in production and some ongoing modifications were possible, we had to ensure that the migration and development of the current code base could be carried out in parallel. We used a Git repository for source code versioning and performed modifications for migration purposes on a branch coming off from the main branch of the repository. As changes occurred in the main branch, they were regularly reflected in the migration branch using the standard Git functionality (in this case git rebase).
Following the assumptions of agile software delivery methodologies, the team ensured that the migration was carried out in stages. We always had a working code base and regularly presented the interim results of the migration project to our partner.
The project enabled our partner to achieve important technological objectives while maintaining the pace of development of its other solutions. The company pays a lot of attention to keeping its systems innovative and up-to-date. New versions of the Big Data processing patterns allow users to benefit from improved performance and easy incorporation of new features and functionalities. The operational aspects of the project were important, too. Gaining support and access to specialists is not easy, especially in the case of older technologies and a large technological debt. Our partner understood that and wanted to make the transition to the new cloud platform as quickly as possible. Cloud computing allowed the partner to scale its processing chains more efficiently and dynamically while maintaining a reasonable cost.
The technological benefits are indisputable and for operational reasons, they would be difficult to achieve without Craftware’s support. Migration projects often have lower priority than development projects. Migrations are important but often seen as non-urgent. Transferring the migration project to Craftware allowed our partner to achieve their strategic goals without interrupting or reducing resources for development work. Moreover, knowledge transfer after the migration enabled our partner to use the new competencies in subsequent development projects.
Learn more about Craftware technology consulting
Body leasing, team leasing, and advanced team leasing from Craftware
Body leasing – how do we do it at Craftware?
The optimization of processes – what does it look like in practice?