A quick look back at how things have changed at ActiveState.
ActiveCD/ActiveDVD and ActiveState Connect
Problems with Traditional Downloads
Enter the ActiveState Platform
What is the ActiveState Platform?
Benefits of the ActiveState Platform
Before the introduction of the Platform, ActiveState would distribute languages and language versions with a select group of pre-composed dependencies on physical media like DVDs and CDs, and through an online portal called “ActiveState Connect”. These products (known as “ActivePerl”, “ActivePython”, etc.) would be available quarterly, and in the event of a severe security or vulnerability threat, a new version would become available for delivery or download.
This involved distributing installation packages and documentation for each programming language, on various platforms and operating systems (including Windows, Linux, and macOS), to each individual customer, who would then distribute it to their developers as needed.
The old system was time-consuming, resource-intensive, and not particularly responsive when it came to evolving vulnerabilities or threats. Everything was configured manually by ActiveState, including building language versions, creating new users, creating and disseminating passwords, updating installations, etc. This also meant users were limited to what ActiveState provided instead of what requirements supported their specific application.
This method was not unique to ActiveState, similar problems were evident in other “traditional” software vendors (i.e. those that distribute their software through physical media, such as CDs or DVDs, or via digital downloads).
An enhancement to the traditional approach involved the implementation of the Perl Package Manager (PPM). The PPM was a command line interface for managing Perl modules and extensions. With PPM you could access package repositories, install and remove packages from your system, and update packages you previously installed with more recent versions. This innovation provided a dependable and user-friendly method for installing supplementary modules across multiple operating systems. It was no longer necessary to have a development environment configured on your machine to compile and build modules for your Perl runtime environment.
However, as technology advanced, PPM encountered certain limitations. Significant time lapses occurred between the creation of a module and its integration into the Perl environment. This compelled the Perl and PPM build systems to adhere to the earliest common binaries, effectively rendering the code a decade older than its build date. Consequently, critical vulnerabilities like those found in libraries such as zlib
and bzip
remained unaddressed and unpatchable. Even the compilers employed by the PPM module builder and the Perl builder could differ.
This new method, while flawed, was so easy and popular that it was expanded and eventually replaced by ActiveState’s command line interface (CLI) the State Tool. The State Tool has the same workflow as the PPM but is available for multiple languages (Python, Tcl, Ruby).
The Platform represents a move from traditional software vendoring to a “Platform as a service” (PaaS) model. This allows users to build and deploy open source application dependencies quickly without waiting for manual updates or requiring users to maintain their own tooling.
It remains a cost-effective option for businesses that do not have the time or resources to manage their own open source IT infrastructure.
The ActiveState Platform is a cloud-based platform that supports a range of open source languages and provides a suite of tools and features to help developers create, manage, secure, and deploy software applications.
It takes all the previous functionalities ActiveState used to provide as separate services and allows users to create dynamic builds based on their own requirements, rather than depend on ones pre-made by ActiveState.
The key services provided by the Platform are:
Source Built Package Catalog - Open source packages built from source, covering different frameworks and uses (machine learning, data science, developer utilities, security, etc.).
Package Management Dashboard- Users can manage requirements in collaborative organizations and projects, adding, sharing, updating, and deleting build variables as needed.
Dependency Solver- Automatically resolves dependencies for required packages and displays common vulnerability errors (CVEs) directly from the UI. Package versions can be automatically selected or chosen by users.
Secure Build System- Creates runtimes from package requirements that are reproducible and trusted. Each project’s components can be traced using a Software Bill of Materials (SBOM) and can be attested to existing SLSA levels.
Artifact Store- Distributions are stored securely with commit history and can be deployed via several different functions including installers, State Tool commands and artifact repositories.
State Tool- a CLI that works in conjunction with the Platform UI to update and change runtimes and manage packages as well as create new virtual environments and projects.
While the old ActiveState system focused on static deliveries of ActivePerl/Python/Tcl versions (and dependencies), the Platform provides a dynamic range of language distributions, package management tools, secure packages and dependencies, and other resources for software development teams. Working together with the State Tool allows developers to easily manage and update their language environments and dependencies as well as collaborate on projects together.
The ActiveState Platform provides a range of benefits for enterprises looking to streamline their software development and deployment processes. Some of the key benefits of the Platform include: