I started working with the SolarWinds Orion® Platform and its modules over ten years ago. During this time, I’ve seen various phrases, such as “single pane of glass” or “integrated, modular platform,” used to describe the core of its functionality: a single solution designed to provide an exceptional user experience with distinct features, supported by a common set of functions.
This blog post will describe the current strategy behind how the Orion Platform and products are built, and how we’re evolving this strategy to create a new and improved SolarWinds Platform.
The strategy of the Orion Platform has always been to provide a modern, stable, secure, and scalable framework upon which individual product modules can build on top of to deliver valuable, real-world, problem-solving feature sets rapidly to market.
With many facets to the platform used across multiple products, such as a single installer, unified web console, alerting, reporting, maps, user access and permissions, licensing framework, and more, the Orion Platform is designed to be:
- Simple to install
- Support on-prem/cloud
- Provide multiple deployment options
- Easy to maintain
- Stable, scalable, and secure
The Orion Platform is also built to be easily deployed, reliable, and performant in a wide variety of different environments, including on-premises, hybrid, and public cloud, to meet the challenges of today's rapidly evolving and changing environments.
One question I often get from customers is, “What’s the difference between an Orion Product and an Orion Module?” Well, since the Core Platform is the foundation for all Orion-based products, the terms module and product can be used interchangeably. Within the Orion Platform, a module and product are the same. A product provides a distinct set of features, with a licensed entitlement for those features. The most significant difference is how end-users build and install these products, which is where we first realized an opportunity to streamline our user experience.
Traditionally, the Orion Platform and products have had their own build pipeline. However, users have downloaded and installed individual products with their own versions and code base along with the shared components provided by the platform.
The build process has also been time-consuming, requiring upgrade scenarios and complex integration tests across multiple installations. This has resulted in a complex dependency chain, which requires calculation during installation and upgrades, and causes duplicate files with differing versions for individual products. Additionally, adding functionality incurred downtime with the installation and configuration of each product.
With multiple release targets for major product versions, service packs, and hotfixes across products and the platform, keeping up to date was difficult and confusing due to the independent versioning.
Ultimately, the user experience hasn’t matched the goals and objectives we’ve set for the Orion Platform of providing users with a single, feature-rich platform. We knew a better solution was needed.
Accelerated by our Secure By Design initiatives, how we build and develop software has dramatically changed.
Over the last year, our teams have worked through the process of migrating and merging multiple code repositories across the platform and modules into a single “monorepo.” They’ve merged code, resolved conflicts, removed legacy code, updated dependencies, and applied their craft to create the new SolarWinds Platform.
This platform takes the form of a single MSI capable of installing the entire platform and module features. This is a significant change from how we have previously created multiple MSIs and packaged the Orion Platform and products.
Rather than recklessly abandoning years of hard work, tried-and-tested features we all love, and starting from zero (which sounds crazy as I write it), we’ve used the existing Orion Platform and products to bootstrap the new SolarWinds Platform. Does it look and feel familiar? Yes, and it should! There is no desire to learn how to create alerts and reports, manage users, and customize the interface all over again.
By combining the individual module feature functionality into a single, unified MSI we’ll include all the bits for all the modules every time with every install.
At first glance, this may seem trivial, but taking a deeper look quickly highlights how this could impact what the environment looks like. Workflows such as the installation procedure and determining which product or feature menus are visible are a couple of examples.
Other updates include items such as available settings and configuration pages or something as simple as how the footer is portrayed to solve for use cases when you may not have all the products, like Asset Inventory, which has traditionally been made available through an installation of Server & Application Monitor (SAM) and Server Configuration Monitor (SCM).
These are some of the challenges we needed to overcome to deliver a single platform and features from a monorepo. So, with us solving for these challenges, what are the benefits?
The "monorepo / one platform" concept brings significant improvements to the build process for the SolarWinds Platform and its modules.
First and foremost, consider the user experience. Users will no longer have to choose what products/features are installed from the initial installation. Rather than necessitating an individual product to be installed and configured, this will now be determined simply by the activated licenses. Did somebody say Instant Evaluation? Yes! Users will have far more control over the features and functionality available in the new SolarWinds Platform.
Other benefits include simplifying and radically reducing the time to create new builds from days to hours. This will ultimately increase the speed at which we can address issues and deliver the necessary changes.
A smaller, simpler code base is also more secure. Multiple instances of libraries such as jQuery and Extjs can be updated easily without maintaining separate versions and backport fixes.
The total installation footprint is reduced, and the install/upgrade experience is improved. In testing, I’ve seen upgrades from 2020.2.6 to the 2022.1 tech preview of Observability Advanced complete in under 20 minutes.
These and many other changes contribute to the highly desirable, long-term objectives we keep in mind with each release—such as zero-downtime upgrades, tertiary failover, and deployment on non-Windows OS.
This is the beginning of a new era for the on-prem SolarWinds Platform. Our continuing mission is to delight our users, rapidly bring problem-solving features to market and be there with our customers on their journey to the cloud by bringing AIOps, anomaly detection, and event correlation to where it wasn’t before. You can also read this blog post from SolarWinds® Head Geek™ Thomas LaRock (sqlrockstar) about our journey to providing observability.