Slide 1

Slide 1 text

By "DevOps in a box™ for your Web apps".

Slide 2

Slide 2 text

Summary Need and context The Nua vision The project The nua-config.toml file Example of an application

Slide 3

Slide 3 text

Need and context A need: • Rapidly deploy multiple application instances on bare metal or virtualised environments • Deploying internally developed and third-party applications • For internal needs • To provide Abilian customers with SaaS applications • By simplifying the deployment steps (database / storage / Nginx / HTTPS, ...)

Slide 4

Slide 4 text

Need and context The state of the art • PaaS, SaaS • Containers • Cloud, GAFAM The European context • Growing demand for "sovereign" solutions • Self-hosting of web applications remains complex (skills, reliability, security)

Slide 5

Slide 5 text

The Nua proposal The Nua project aims to build a "Self-hosted PaaS • Or "self-hosted platform as a service". • This is a technical oxymoron • But a disruptive response to market needs

Slide 6

Slide 6 text

Our Solution "Nua streamlines the development, selection, installation and resilient operations of Web applications in a self- sovereign cloud environment

Slide 7

Slide 7 text

The project 100% python • Poetry, pytest, type hints, black, flake8, ruff, ... • System administration commands • Resource allocation algorithms Structuring choices • Wherever possible, give priority to : ● declarative rather than imperative configuration ● conventions rather than explicit configuration, avoiding duplication of information • Rely on proven technologies (OCI/Docker containers in the first instance) • Be inspired by "best practices" such as the "12 factor apps", SBOM, ... • Provide for extensions through plugins

Slide 8

Slide 8 text

The project 2 fundamental steps • The build • The "run With some constraints • Simplicity (ergonomics) • Reproducible, safe, reliable • Scalable (plugins) • Resilience, security, maintainability

Slide 9

Slide 9 text

The project "nua-build • The low-level command that drives the creation of the deployable package • Today: a Docker image for Linux/amd64 The build sequence • Analysis of the "nua-config" file • Detection of the required basic images • "build or pull the required images • Recovery of files (sources, Dockerfile, configuration files) • "The actual build of the Docker image • Storage of the result (locally as a Docker image)

Slide 10

Slide 10 text

The project "nua-orchestrator • The low-level command to deploy an application(s) • The orchestrator must be installed on the host server The deployment sequence • Analysis of the applications requested • "Pulling the corresponding Nua images • Metadata retrieval from Nua images • "pull" of possible dependencies • Configuration of ports, volumes, etc. • Actual deployment (shutdown / installation / start-up)

Slide 11

Slide 11 text

The nua-config.toml file A single file • Metadata • Build configuration ● Recovery of sources and dependencies • Configuration of the "run ● Declaration of resource requirements Used by the build environment and the orchestrator • During the build, the configuration file is copied into the application's container • The orchestrator (the "run") retrieves information directly from the application container

Slide 12

Slide 12 text

Application example: Hedgedoc HedgeDoc • An application for collaborative editing of documents in Markdown format • A NodeJs application that uses the classic tools for this ecosystem: package.json and npm. • https://hedgedoc.org/

Slide 13

Slide 13 text

The metadata section

Slide 14

Slide 14 text

The build section

Slide 15

Slide 15 text

The build Build overview (1/2) • Start: search for basic Nua components

Slide 16

Slide 16 text

The build Build overview (2/2) • Creating the Docker image • In verbose mode, the entire Docker build log would be displayed.

Slide 17

Slide 17 text

The "run" sections

Slide 18

Slide 18 text

The "run" sections Automatic port assignment • Only the port information used by the application is required • The orchestrator will assign ports for redirects • Supports multi-instance

Slide 19

Slide 19 text

The "run" sections Declaration of a health check

Slide 20

Slide 20 text

The "run" sections Declaration of storage resources • The orchestrator will create unique spaces for each instance

Slide 21

Slide 21 text

The "run" sections Declaration of application resources • The orchestrator will create the database instances

Slide 22

Slide 22 text

The orchestrator Minimum statement to instantiate an application • The name of the application (app-id) • The target area

Slide 23

Slide 23 text

The orchestrator: deployment of 2 instances

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Project By → https://github.com/abilian/nua → https://nua.rocks/