Combining Two Legacy Platforms into One – Development Environment

By Frank Shaw, January 7, 2020
Combining Two Legacy Platforms into One - Development Environment

ZoomInfo recently created the combined DiscoverOrg and ZoomInfo platform to replace both the legacy DiscoverOrg and the legacy ZoomInfo platforms. In doing so, some features were retained from DiscoverOrg, some from ZoomInfo, and sometimes a new version of an existing feature was created (of course, there were lots of new features as well).

As part of this process, the ZoomInfo application team looked at the existing code base, technology, tooling, and processes used to develop each platform to see how compatible they were and whether code could be reused from both or if it would be easier and more efficient to start from the environment of one platform and port over features from the other one as needed.

In order to evaluate the development environments and their suitability for the combined platform, ZoomInfo looked at several things. The most important factors were:

  1. The programming languages and frameworks used to write code
  2. The search technologies used to return data to users
  3. The cloud platform used by each legacy platform
  4. How much of the planned functionality in the combined platform draws more closely from each legacy platform

The Evaluation Process

There were potentially three sequential stages to evaluating the legacy platforms and their viability for use in the new combined platform as shown in this flowchart:

In slightly more detail, the steps are:

  1. Are the two platform development environments similar enough to share code directly or with a minimum of updating? If so, then create a merged environment capable of using code and other elements of both legacy platforms.
  2. If not, do either of the existing platforms make sense for the combined platform either as is or with a minimum of adjustment? If so, then use that platform’s legacy environment as the starting point for the combined environment and port code or recreate features from the other legacy environment as needed.
  3. If not, what environment should ZoomInfo use instead? If neither legacy environment is suitable for the combined platform, determine the new environment to use instead.

Notice that the process is designed to stop once a viable environment is identified.

Comparing Legacy Platforms

In looking at the two legacy platforms, ZoomInfo determined the following:

  1. They mostly used the same code-related tooling: they used Java for the backend, Javascript for the front end, and even used the same frameworks for both.
  2. They used different search technology: DiscoverOrg used elasticsearch and ZoomInfo used Apache Solr. Both environments were highly customized and self-managed.
  3. They used different cloud environments: DiscoverOrg used AWS while ZoomInfo used GCP.
  4. There were more features planned for the combined platform that existed only in ZoomInfo than only in DiscoverOrg. The features that existed in both generally either needed to be completely reworked or involved manageable changes to the existing ZoomInfo code base.

Determining the Starting Point for DOZI

In evaluating the development environment to use for the combined DiscoverOrg and ZoomInfo platform, ZoomInfo determined the following:

  1. The DiscoverOrg and ZoomInfo legacy platforms were not compatible with each other. Although they both used the same programming languages and related frameworks, the different cloud environments meant the support tools and build, test, and release processes were very different and not compatible. The nail in the coffin, though, was the different and incompatible search technologies given how central search is to the combined platform. Although both elasticsearch and Solr are built on top of Lucene, they are very different, indexed data very differently, and were also highly customized. It was much easier to recreate necessary search features in one of them than to try to reuse existing code from both.
  2. The legacy ZoomInfo environment was a viable starting point for the combined platform environment. There were no planned features that could not be supported in this platform or this platform with minor tweaks, the legacy DiscoverOrg features that did not exist in the legacy ZoomInfo environment could be supported in this environment, and many of the existing features being moved to the combined platform without modification came from the legacy ZoomInfo platform and thus were already available in this environment.

Final Thoughts

Combining two existing, mature platforms can be difficult. One of the factors that can make the process easier is choosing the right development environment for the new combined platform. ZoomInfo evaluated both the legacy DiscoverOrg and legacy ZoomInfo development environments and determined that the legacy ZoomInfo platform would be a viable environment for the new combined platform.

As with any development project, there were issues to decide, difficult design elements to sort out, and problems to solve. However, ZoomInfo was able to quickly develop and release the combined platform with most of the functionality of both existing legacy platforms (with the rest coming soon) as well as develop new features. The choice of environment definitely expedited this process and helped make it successful.

Related Content