The Future of TrueNAS Plugins is Apps

}

April 25, 2023

o

Initially, “NAS” was coined to refer only to file-based “Network-Attached Storage” because…well…that’s all it could do at the time. However, as protocols and networking technologies evolved, more and more storage began to be accessed over networks. Suddenly, NAS provided block and object storage services, in addition to an expanding number of file protocols, stretching the original definition of “NAS” to include unified storage over an ethernet network.

Fast forward to 2023 and applications themselves are also commonly deployed on storage. Like apps on a smart phone, a “smart” NAS can also run Apps that extend the value beyond its unified storage into what’s known as a “Universal Data Platform”. TrueNAS storage has become a prime example of a Universal Data Platform that offers an abundant choice of Apps in addition to its powerful storage capabilities.

A Brief History of TrueNAS Plugins & Apps

TrueNAS CORE (originally known as FreeNAS) provided one of the first generations of integrated applications and storage when “Plugins” were introduced back in 2007.  They were then revamped in 2013 and again in 2017.

Plugins were then reimagined as “Apps” when TrueNAS SCALE launched in 2022. TrueNAS SCALE Apps with Kubernetes are a more modern approach that leverages the benefits of containerization and are suitable for deployments in enterprises.

TrueNAS CORE Plugins are Dynamically Created

TrueNAS Plugins use the FreeBSD native jails capability as well as some middleware (iocage) to integrate with FreeBSD’s package and Ports systems. The diagrams below show how plugins for Plex and Nextcloud are dynamically managed and deployed.

Believe it or not, Plex is the simpler case with only a single binary being fetched and installed. This process is reliable as the Plex image rarely changes and is tested before the image is changed.

Other plugins, like Nextcloud, are more complex. The Nextcloud plugin includes not only the Nextcloud package but also many auxiliary packages. Each package is, in turn, dependent on many libraries. When one or more libraries are updated to fix a bug or vulnerability, many packages may be impacted and recompiled. The plugin script will then fetch all new packages even if there has been no human testing of the combined changes to the software. This process is very dynamic and enables rapid updates.

Unfortunately, bugs introduced in frequently changing libraries and related packages with complex dependencies can cause issues for the resulting plugin. Without the necessary strict version control, the process is not as reliable as most users would like and is not enterprise-grade. Apart from specifically engineered plugins, iX has not sold or supported these to enterprises.

TrueNAS SCALE Apps have Version Control

TrueNAS SCALE was designed as a smart NAS with better support for Apps. Linux, Kubernetes, and containers provide the key technologies for enabling an abundance of Apps that leverage the Unified Data Platform. With the release of TrueNAS SCALE Bluefin, the support for TrueNAS Apps has become even better.

Deploying an App is much simpler due to the inherent advantages of Linux containers and their encapsulated software dependencies. This simplifies updates and upgrades and is a major improvement over TrueNAS CORE plugins. This has also resulted in many more Apps being available with support from iX.

The App configuration manifest (Helm Chart) can specify the container image version or just ask for “:latest” or other pre-defined tags. The software developer retains full control over the base, libraries, and packages used and can perform additional testing before the final image is tagged as an app. The end-user deployment system then can fetch and run this image as a container, which mirrors exactly the environment the developer intended the app to run within.

In the diagram below, Nextcloud is deployed using a small number of predefined images. Each image is pre-tested and version-controlled.

The addition of version control is already proving more reliable than plugins. For this reason, iX recommends new TrueNAS users use SCALE if applications are a significant part of their deployment plan.

TrueNAS Apps are managed as Catalogs. An Enterprise Catalog is maintained by iXsystems. A Community Catalog is cooperatively maintained on Github.

Ongoing Support for Plugins

Today, the majority of TrueNAS users are running TrueNAS CORE. Those users have a choice of staying with CORE or migrating to SCALE. Given the reliability issues of CORE plugins described above, iX intends to only support these plugins until early 2025. For TrueNAS Enterprise 13.0 customers, official plugins will be supported for appliances covered by a support contract.

In the next two years, we expect CORE users to either:

  1. Migrate their plugins to personally managed jails and remain on CORE
  2. Migrate from CORE to SCALE and rebuild their applications using the simpler Apps or VMs

We are sharing these recommendations so users have ample time to plan. We expect TrueNAS SCALE to significantly improve in both functionality and quality during that time. Notably, the migration process from CORE to SCALE is a major focus for polish and documentation, intending to drastically simplify migration before the end of plugin support in 2025.

Overall, Apps in TrueNAS SCALE Bluefin already represent a major step forward relative to both Angelfish and TrueNAS CORE 13.0. Further improvements are planned for TrueNAS SCALE Cobia (late 2023) and beyond.

Given the current rate of SCALE growth relative to CORE, and the positive community feedback surrounding the significantly improved experience with Apps, we expect that the TrueNAS SCALE user base will continue to grow. By 2025, we expect SCALE will have as many, if not more users than CORE, as users choose to expand their TrueNAS systems beyond storing data.

iX and Community Support of Plugins

For the support of Plugins until 2025, we would like more Community engagement in the Plugin management and troubleshooting process. iX will provide support for the general Github infrastructure for managing plugins as well as the following Official Plugins: Asigra, Iconik, MinIO, Nextcloud, Syncthing, Tarsnap, and both the paid and free editions of Plex Media Server. These plugins are marked as such above the version number and install button in the GUI.

The remaining plugins are Community plugins which will require community assistance to update and maintain. Plugins that are not maintained may need to be retired earlier. If you can volunteer to help maintain Community Plugins, please join the discussion on the Github Repository and indicate where you can help.

We would obviously prefer that all of our software can be supported forever, but we have to make these decisions to focus efforts on improving the overall user experience and the long term health of the general TrueNAS community. Resources freed from one project can be used to deliver improvements in others. The TrueNAS community has been very helpful in providing input on this decision and making sure it was communicated clearly.

Choose Your NAS Definition

TrueNAS provides a choice between the CORE and SCALE editions, each with its own benefits. In short, users can think of CORE as the traditional and modern definition of NAS, with file, block, and object support. Users can think of SCALE as a universal data platform — or “smart” NAS — with catalogs of Apps.

Users with traditional storage-specific NAS requirements (NFS, SMB, iSCSI, and S3) are still advised to choose TrueNAS CORE 13.0. These choices have five times more data under management and many more years of operation and stability. Currently, TrueNAS 13.0-U4 (CORE & Enterprise) is the most robust scale-up storage platform for general use. Jails are supported and if necessary, Plugins are available until 2025.

TrueNAS SCALE has inherited the storage functionality and automated testing from CORE. SCALE is maturing rapidly, and also offers a more robust Apps environment based on Linux, KVM, and Kubernetes. For that reason, SCALE is generally recommended for new users that need embedded applications. The latest TrueNAS SCALE 22.12.2 release has made significant strides in quality and reliability.

TrueNAS provides these choices and the ability to automatically migrate storage services and VMs from CORE to SCALE. Plugins and jails can be manually replaced with Apps. We encourage anyone seeking further advice or answers to questions to visit our Community Forums or Discord Channel.

Share On Social: