Server/Product Requirements Document 2021 – Fedora Project Wiki

May 31, 2021


Warning.png

This document provides an overview of what Fedora Server Edition is, the goals and objectives, and what it is designed for. It is written from a user’s point of view to allow people to understand what the Server Edition should do, what it is useful for, and what to expect from it in the future.

Fedora Server Vision

Fedora Server is a real-world incarnation of the Fedora Project’s vision for organizations, individual users, and developers to develop, deploy, and maintain applications and services – freely, autonomously, and under their own control.

Fedora Server Mission

As a user, you gain the opportunity to use the server of the future right now.

Fedora Server provides a stable, flexible, and universally-adaptable base for the everyday provisioning of services and applications by organizations and individuals, based on the latest technology and is available quickly after the upstream releases.

As a developer or system integrator, you gain an eye on the server of the future.

Fedora Server is a platform for developers and system integrators, which provides an implementation of the latest server technology for exploring and practically evaluating.

Market Opportunity

The server operating system market is mature and yet, constantly evolving. The technologies that are in the midst of changing computing, such as e.g. cloud or containers, depend, at the end of the day, on servers running on bare metal and capable of handling the requirements of those technologies‘.

Fedora Server, being a leading-edge Linux distribution, is the ideal place for developers, system administrators and DevOps specialists to keep up-to-date with these low-level technologies. Fedora Server provides the opportunity to explore these features and provide a stable place to deploy applications, both new and legacy.

Fedora Server provides a stable foundation, with balanced resource utilization, yet delivering the latest technologies giving administrators every day exposure to the latest tooling as soon as it is usable.

Why use Fedora Server?

Fedora Server has so many genuine advantages that it is hard to list them all. The nine most important ones are:

  1. The twice-yearly, release cycle allows for the inclusion of the latest versions of system and application software almost immediately. Users and system administrators are empowered to swiftly respond to new market options and changing or expanding customer requirements.
  2. A sophisticated release and quality assurance process enables a high level of reliability and stability, despite the fast release cycle. This achieves an excellent balance between ‘bleeding edge’ and maturity for use in mainstream deployments.
  3. Fedora release engineering strongly focuses on enterprise-grade security, resulting in carefully pre-configured releases, offering uncompromising security without extensive configuration work by system administrators.
  4. A great variety of available software, all included in that release process, opens up a wide range of possibilities for very flexibly building a server according to the specific needs and wishes of a customer or end-user.
  5. The latest, stable, modern system administration tools (e.g. cockpit) noticeably reduces the burden of system administration.
  6. Strict alignment with other Fedora editions as well as the bi-annual releases are associated with less disruptive upgrades – several small updates are easier to manage than a few big ones.
  7. The update process itself is very simple and straightforward, without requiring re-installation. Skipping one release is also viable, in case new capabilities are not immediately needed. All in all, Fedora is decidedly system administrator friendly.
  8. Fedora Server ensures utmost freedom from restrictions imposed by commercial interests or corporate feature management and excellent backwards hardware compatibility.
  9. Developer find an excellent development environment for the next generation server as well as application software with the latest software versions available.

Server Edition Objectives

Fedora Server Edition offers a highly flexible and adoptable multi-purpose server platform, usable at every scale.

  • A platform for important infrastructure tasks and basic services (DNS, DHCP, FreeIPA, and others)
  • A platform for various important, dedicated server applications (file/storage server, database server, user-developed web applications, etc.)
  • A platform for deploying Infrastructure-as-a-Service systems for best deployment of Fedora Cloud images.
  • A platform for deploying containerised applications supporting multiple container technologies, among which the system administrator can choose according to custom requirements.
  • A platform for virtual machines, as host as well as guest system, supporting different technologies, among which the system administrator can choose according to custom requirements.
  • Infrastructure to allow efficiently managing many servers as a single unit. The product only commits to producing basic tools, but the infrastructure will allow more advanced tools to be created.
  • An operating platform capable to run any combination of forementioned services all according to very different needs of users rsp system administrators (multipurpose feature).

Fedora Server can be used as a standalone server that runs an application or service as well as a member of a cluster in a data center. As a result of strict adherence to open standards, it natively cooperates with different server technologies and implementations.

Additional Overall Objectives

Aside from the adoption and development of the Fedora Server platform, we have additional goals that are fundamental in any case:

  • Security-minded: secure by design – extending into TPM support, disk encryption enablement
  • Community-driven: Intense feedback about product direction and potential improvements. This is separate from “bug reports” in that we hope to engage the audience and receive detailed feedback about use cases, desired features, developing trends in cloud management, etc. We encourage more patches and contributions that will help improve the Server Edition, and Fedora in general.

Primary Use Cases, User Profiles, and most important Features

Use Cases

The Fedora Server will need to address the following use-cases:

  1. On premise server for small and medium-sized enterprises hosting mail service, calendar, and branch specific (probably containerized) software – either single node deployment or multi-node deployment with automatic failover
  2. Dedicated SOHO server, ‘bare metal’ rented from a remote provider and under its own full control, offering various services. Public access through VMs for security reasons.
  3. Single node or multi-node deployment in an enterprise data center providing up-to-date software versions according to domain specific requirements in a stable and secure OS, capable to provide different runtime environments – native, VM, different container systems – driven by domain specific demands.
  4. Personal home server, located ‘on premise’ in own flat / house and used as NAS, backup device, and for applications such as mail repository, contact database, calendar, ebook library, media server, etc.
  5. Development box, providing developers with the latest software version and excellent developing tools

Personas

We will use a set of personas to describe our target users and their respective needs. We list the typical personas by brief title and a short list of key characteristics.

System Administrator “Macgyver”

  • Administrator with limited hardware and personnel resources to work with
  • Requires simple automation to cope with repetitive tasks
  • Needs to be able to do “a lot with a little”

DevOps Engineer/Administrator

  • Focus is on time-to-deploy and time-to-recover as opposed to uptime
  • Value is achieved by delivering the latest capabilities fastest
  • Needs to be able to deliver quickly to PaaS, SaaS and bare-metal servers

Application Developer

  • Needs a platform with API and ABI stability guarantees
  • Focus will be on minimizing risk when making changes
  • Needs latest technology in virtualization and containerization
  • Likes a platform similar to the workstation

Decision Maker

  • Makes purchasing decisions and directs technology choices
  • Interacts with upstream FOSS communities to identify potential value

The Home Admin

  • I need a somewhat stable machine, with a graphical interface (cockpit) and just want to start a couple of containers and/or Vms to have nextcloud running on it.
  • I need some gitea here, some gitlab there, some jenkins, some photoprism, minecraft, etc. Can I build a NAS easily?
  • I am ok with updates and reboots over night, but it should work. It would be awesome to have mDNS and a Web UI.

The Hyperscaler

  • I treat my servers as “cattle, not pets”. Overall uptime is more important than individual server uptime
  • I want to have a reliable plattform for virtualization, core services and container. It should be out of my way, so I can focus on scaling, monitoring, implementation
  • I want to automate server installation, and configurations for hostname, timeserver, hardening, etc. In addition I want to deploy typical services like mariadb, httpd, nginx, redis, nodejs, java, etc. in a reproducible way. To see what the machines are doing, I need a well documented way to manage, monitor and backup them.
  • My Security Team also wants me to disable unneeded services, disable legacy protocols, enable hardening on several levels.

The Remixer / “Let’s build upon it”

  • I love how Fedora works and I want to create something upon it.
  • I need a very well documented build process and maybe tools to produce new install images
  • Removing the branding should be possible with some compiler flags or variables, so I don’t need to mess with the code itself.
  • I have a raspberry/intel nuc/etc. and playing a bit with new stuff.

Most Important Features

  • The user can easily deploy and configure any supported Fedora Server application as well as rapidly re-deploy services in accordance with their DevOps practices. (Examples range from BIND DNS, DHCP, Database server, iSCSI target, File/Storage server, up to OpenStack Hypervisor Node, and the like)
  • The user can query, monitor, configure and manage a Fedora Server and the resources consumed by services remotely using stable and consistent public interfaces.
  • The user can deploy and configure Fedora Server to provide domain infrastructure with FreeIPA and Samba Active Directory solutions. Fedora Server can become Domain Controller in a newly established domain or join existing domain as a Domain Controller or a Domain Member.
  • Users can create, manipulate and terminate large numbers of virtual machines and containers using a stable and consistent interface.
  • The user is enabled to install and manage Fedora Server in a headless mode, either directly on the command line or supported by Cockpit, a lightweight Web GUI.

Specific Upcoming Goals

Fedora Server Edition working group is determined to be an active advocate and reviewer of technical evolution and proposed system changes to continuously see what progress and opportunities they enable or how they will affect the Server variant.

For the coming term, special attention should be paid to

  1. Improved support for off-premise Kickstart and pxe installation
  2. Facilitated and improved support for virtual machines in Fedora Server Edition; preferably based on Cloud Base Image
  3. Facilitated deployment of key services by combining rpm and Ansible
  4. Easy integration into multi-node environments with tools like Ansible
  5. Buildup of a renewed documentation on Fedora Server specific topics, procedures and features

Logistical Concerns

Delivery Mechanisms

Fedora Server Edition produces two main installation resources, a netinstall image and an offline install iso image.

Supported installation methods:

  • Automated (“mass”) install within a larger Linux infrastructure (e.g. PXE is an option, may have LDAP/IPA).
  • Manual install without a supporting infrastructure (e.g. the very first Linux server).
  • Existing servers should be upgradable to new releases with minimal involvement by the admin.

Users will be able to obtain these images from the Fedora Project website and mirror networks.

Documentation

Fedora Server Edition documentation will be made available in a dedicated section of the Fedora documentation project. For selected topics, we strive for integration into the generic Fedora documentation.

About this Document

This document resulted from a broad discussion of the Fedora Server Edition working group. Contributors include:

  • Alexander Bokovoy
  • Peter Boy (editor)
  • Kevin Fenzi
  • Stephen Gallagher
  • John Himpel
  • David Kaufmann
  • Jan Kuparinen
  • Eduard Lucena
  • Michel Salim
  • Stephen Smoogen
  • Langdon White



Source