{"id":21405,"date":"2023-01-05T09:20:34","date_gmt":"2023-01-05T08:20:34","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=21405"},"modified":"2023-06-19T16:40:27","modified_gmt":"2023-06-19T14:40:27","slug":"the-adaptable-linux-platform-alp","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/","title":{"rendered":"The adaptable Linux Platform (ALP)"},"content":{"rendered":"\n<p>This is about something you maybe didn&#8217;t hear much yet: The <a href=\"https:\/\/www.opensuse.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">openSUSE<\/a> project and <a href=\"https:\/\/www.suse.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">SUSE<\/a> are working on a new enterprise operating system:  <a href=\"https:\/\/news.opensuse.org\/2022\/12\/22\/second-prototype-advances-alp\/\" target=\"_blank\" rel=\"noreferrer noopener\">ALP, the adaptive Linux Platform<\/a>. As of today there is the second prototype, called <a href=\"https:\/\/www.suse.com\/c\/alp-punta-baretti\/\" target=\"_blank\" rel=\"noreferrer noopener\">Punta Baretti<\/a>. The idea is: provide a minimal, immutable, operating system, which runs containers or virtual machines and does _not_ update any packages related to applications. This also means, that the base operating systems is not updated by the traditional package manager (<a href=\"https:\/\/github.com\/openSUSE\/zypper\" target=\"_blank\" rel=\"noreferrer noopener\">zypper<\/a>), but a command line utility which is called <a href=\"https:\/\/kubic.opensuse.org\/documentation\/man-pages\/transactional-update.8.html\" target=\"_blank\" rel=\"noreferrer noopener\">transactional-update<\/a>. This is very much the same idea as in the relational database world when it comes to the &#8220;A&#8221; in &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/ACID\" target=\"_blank\" rel=\"noreferrer noopener\">ACID<\/a>&#8220;: Either all is done successfully, or the system is exactly in the same state it was before the update, if something failed.<\/p>\n\n\n\n<p>Let&#8217;s directly dive into the installation: If you want to try it using a virtual machine, head over <a href=\"https:\/\/documentation.suse.com\/alp\/all\/single-html\/alp\/index.html#task-prepare-alp-vm\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>. If you want to try it using an installer based on an ISO, have a look <a href=\"https:\/\/documentation.suse.com\/alp\/all\/single-html\/alp\/index.html#task-deploy-alp-dinstaller\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>. Finally, you can use a raw disk image, check <a href=\"https:\/\/documentation.suse.com\/alp\/all\/single-html\/alp\/index.html#task-deploy-alp-raw-image\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>. For the scope of this post, we&#8217;ll use the &#8220;<a href=\"https:\/\/en.opensuse.org\/openSUSE:ALP\/Workgroups\/Installation\/DInstaller\" target=\"_blank\" rel=\"noreferrer noopener\">d-installer<\/a>&#8221; approach, based on an ISO, which is an installer based on a web browser. The installation process is pretty much self explaining, so just a series of screenshots:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"475\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png\" alt=\"\" class=\"wp-image-21416\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png 641w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1-300x222.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"476\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-2.png\" alt=\"\" class=\"wp-image-21417\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-2.png 673w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-2-300x212.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-3-1024x725.png\" alt=\"\" class=\"wp-image-21418\" width=\"840\" height=\"594\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-3-1024x725.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-3-300x213.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-3-768x544.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-3.png 1132w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"725\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-5-1024x725.png\" alt=\"\" class=\"wp-image-21420\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-5-1024x725.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-5-300x213.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-5-768x544.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-5.png 1132w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"723\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-6-1024x723.png\" alt=\"\" class=\"wp-image-21421\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-6-1024x723.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-6-300x212.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-6-768x542.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-6.png 1133w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"725\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-7-1024x725.png\" alt=\"\" class=\"wp-image-21422\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-7-1024x725.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-7-300x212.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-7-768x544.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-7.png 1136w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"725\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-8-1024x725.png\" alt=\"\" class=\"wp-image-21423\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-8-1024x725.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-8-300x212.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-8-768x544.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-8.png 1129w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Please note that root access via ssh is disabled by default. Instead of enabling that, better create a new user and give sudo access, e.g. like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"541\" height=\"91\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-9.png\" alt=\"\" class=\"wp-image-21424\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-9.png 541w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-9-300x50.png 300w\" sizes=\"auto, (max-width: 541px) 100vw, 541px\" \/><\/figure>\n\n\n\n<p>Having that in place, we can remotely login and check the system. Indeed the root file system is read only:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2,14,15]; title: ; notranslate\" title=\"\">\npostgres@localhost:~&gt; cat \/etc\/fstab \nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/                       btrfs  ro                            0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c \/var btrfs subvol=\/@\/var,x-initrd.mount 0 0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/usr\/local              btrfs  subvol=\/@\/usr\/local           0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/srv                    btrfs  subvol=\/@\/srv                 0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c \/root btrfs subvol=\/@\/root,x-initrd.mount 0 0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/opt                    btrfs  subvol=\/@\/opt                 0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/home                   btrfs  subvol=\/@\/home                0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/boot\/writable          btrfs  subvol=\/@\/boot\/writable       0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/boot\/grub2\/x86_64-efi  btrfs  subvol=\/@\/boot\/grub2\/x86_64-efi  0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/boot\/grub2\/i386-pc     btrfs  subvol=\/@\/boot\/grub2\/i386-pc  0  0\nUUID=e59bfc99-d700-45f1-8b0f-4b250062ed7c  \/.snapshots             btrfs  subvol=\/@\/.snapshots          0  0\noverlay \/etc overlay defaults,lowerdir=\/sysroot\/etc,upperdir=\/sysroot\/var\/lib\/overlay\/1\/etc,workdir=\/sysroot\/var\/lib\/overlay\/work-etc,x-systemd.requires-mounts-for=\/var,x-systemd.requires-mounts-for=\/sysroot\/var,x-initrd.mount 0 0\npostgres@localhost:~&gt; sudo touch \/aa\ntouch: cannot touch &#039;\/aa&#039;: Read-only file system\n<\/pre><\/div>\n\n\n<p>Even if zypper is there, it cannot be used to install any packages:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n\/usr\/bin\/zypper\npostgres@localhost:~&gt; sudo zypper in nano\nThis is a transactional-server, please use transactional-update to update or modify the system.\npostgres@localhost:~&gt; \n<\/pre><\/div>\n\n\n<p>The error message is clear, if we want to update the system we need to use &#8220;transactional-update&#8221;:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres@localhost:~&gt; sudo transactional-update\nChecking for newer version.\ntransactional-update 4.1.0 started\nOptions: \nSeparate \/var detected.\n2023-01-05 06:32:27 tukit 4.1.0 started\n2023-01-05 06:32:27 Options: -c1 open \n2023-01-05 06:32:27 Using snapshot 1 as base for new snapshot 2.\n2023-01-05 06:32:27 No previous snapshot to sync with - skipping\nID: 2\n2023-01-05 06:32:27 Transaction completed.\nCalling zypper up\nzypper: nothing to update\nRemoving snapshot #2...\n2023-01-05 06:32:27 tukit 4.1.0 started\n2023-01-05 06:32:27 Options: abort 2 \n2023-01-05 06:32:27 Discarding snapshot 2.\n2023-01-05 06:32:27 Transaction completed.\ntransactional-update finished\npostgres@localhost:~&gt; \n<\/pre><\/div>\n\n\n<p>As ALP is designed to run containers, <a href=\"https:\/\/podman.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">podman<\/a> should be enabled. It is installed by default:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres@localhost:~&gt; sudo zypper se -i podman\nLoading repository data...\nReading installed packages...\n\nS | Name              | Summary                                                               | Type\n--+-------------------+-----------------------------------------------------------------------+--------\ni | cockpit-podman    | Cockpit component for Podman containers                               | package\ni | podman            | Daemon-less container engine for managing containers, pods and images | package\ni | podman-cni-config | Basic CNI configuration for podman                                    | package\n<\/pre><\/div>\n\n\n<p>Enabling podman to run by default is just a matter of enabling the systemd service:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; first-line: 1; highlight: [1,3]; title: ; notranslate\" title=\"\">\npostgres@localhost:~&gt; sudo systemctl enable --now podman.service\nCreated symlink \/etc\/systemd\/system\/default.target.wants\/podman.service \u2192 \/usr\/lib\/systemd\/system\/podman.service.\npostgres@localhost:~&gt; sudo systemctl status podman.service\n\u25cb podman.service - Podman API Service\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/podman.service; enabled; preset: disabled)\n     Active: inactive (dead) since Thu 2023-01-05 06:37:24 UTC; 1s ago\n   Duration: 5.200s\nTriggeredBy: \u25cf podman.socket\n       Docs: man:podman-system-service(1)\n    Process: 1655 ExecStart=\/usr\/bin\/podman $LOGGING system service (code=exited, status=0\/SUCCESS)\n   Main PID: 1655 (code=exited, status=0\/SUCCESS)\n        CPU: 130ms\n\nJan 05 06:37:19 localhost.localdomain systemd&#x5B;1]: Starting Podman API Service...\nJan 05 06:37:19 localhost.localdomain systemd&#x5B;1]: Started Podman API Service.\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: time=&quot;2023-01-05T06:37:19Z&quot; level=info msg=&quot;\/usr\/bin\/podman filtering at log level info&quot;\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: 2023-01-05 06:37:19.839690815 +0000 UTC m=+0.147024259 system refresh\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: time=&quot;2023-01-05T06:37:19Z&quot; level=info msg=&quot;Setting parallel job count to 7&quot;\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: time=&quot;2023-01-05T06:37:19Z&quot; level=info msg=&quot;Using systemd socket activation to determine API endpoint&quot;\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: time=&quot;2023-01-05T06:37:19Z&quot; level=info msg=&quot;API service listening on \\&quot;\/run\/podman\/podman.sock\\&quot;. URI: \\&quot;\/run\/podman\/podman.sock\\&quot;&quot;\nJan 05 06:37:19 localhost.localdomain podman&#x5B;1655]: time=&quot;2023-01-05T06:37:19Z&quot; level=info msg=&quot;API service listening on \\&quot;\/run\/podman\/podman.sock\\&quot;&quot;\nJan 05 06:37:24 localhost.localdomain systemd&#x5B;1]: podman.service: Deactivated successfully.\n<\/pre><\/div>\n\n\n<p>One of the containers that come by default is the <a href=\"https:\/\/cockpit-project.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cockpit<\/a> container. To bring it up:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,20,46]; title: ; notranslate\" title=\"\">\npostgres@localhost:~&gt; sudo podman search cockpit-ws\nERRO&#x5B;0000] error getting search results from v2 endpoint &quot;registry.suse.com&quot;: unable to retrieve auth token: invalid username\/password: errors:\ndenied: requested access to the resource is denied\nunauthorized: authentication required \nNAME                                                                                                             DESCRIPTION\nregistry.opensuse.org\/home\/eisest\/container\/container\/opensuse\/cockpit-ws                                        \nregistry.opensuse.org\/home\/jreidinger\/suse_alp_workloads_sle_15sp4_containerfiles\/suse\/alp\/workloads\/cockpit-ws  \nregistry.opensuse.org\/home\/luc14n0\/containers\/container\/opensuse\/cockpit-ws                                      \nregistry.opensuse.org\/opensuse\/cockpit-ws                                                                        \nregistry.opensuse.org\/opensuse\/factory\/arm\/totest\/containers\/opensuse\/cockpit-ws                                 \nregistry.opensuse.org\/opensuse\/factory\/powerpc\/totest\/containers\/opensuse\/cockpit-ws                             \nregistry.opensuse.org\/opensuse\/factory\/zsystems\/totest\/containers\/opensuse\/cockpit-ws                            \nregistry.opensuse.org\/suse\/alp\/workloads\/publish\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws         \nregistry.opensuse.org\/suse\/alp\/workloads\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws                 \ndocker.io\/stefwalter\/cockpit-ws                                                                                  Cockpit Webservice in a Privileged Container\ndocker.io\/port\/cockpit-ws                                                                                        \ndocker.io\/sujitfulse\/cockpit-ws-ppc64le                                                                          \ndocker.io\/alastair87\/cockpit-ws                                                                                  \ndocker.io\/dvdbrander\/cockpit-ws   \npostgres@localhost:~&gt; sudo podman container runlabel install registry.opensuse.org\/suse\/alp\/workloads\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws:latest\nTrying to pull registry.opensuse.org\/suse\/alp\/workloads\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws:latest...\nGetting image source signatures\nCopying blob 0dad567d9346 done  \nCopying blob c7faa4ba95bf done  \nCopying config 9f0fe3fccd done  \nWriting manifest to image destination\nStoring signatures\n+ sed -e \/pam_selinux\/d -e \/pam_sepermit\/d \/etc\/pam.d\/cockpit\n+ mkdir -p \/host\/etc\/cockpit\/ws-certs.d \/host\/etc\/cockpit\/machines.d\n+ chmod 755 \/host\/etc\/cockpit\/ws-certs.d \/host\/etc\/cockpit\/machines.d\n+ chown root:root \/host\/etc\/cockpit\/ws-certs.d \/host\/etc\/cockpit\/machines.d\n+ mkdir -p \/etc\/ssh\n+ &#039;&#x5B;&#039; podman = oci -o podman = podman &#039;]&#039;\n+ &#039;&#x5B;&#039; -n registry.opensuse.org\/suse\/alp\/workloads\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws:latest &#039;]&#039;\n+ &#039;&#x5B;&#039; &#039;!&#039; -e \/host\/etc\/systemd\/system\/cockpit.service &#039;]&#039;\n+ mkdir -p \/host\/etc\/systemd\/system\/\n+ cat\n+ \/bin\/mount --bind \/host\/etc\/cockpit \/etc\/cockpit\n+ \/usr\/libexec\/cockpit-certificate-ensure\n\/usr\/libexec\/cockpit-certificate-helper: line 25: sscg: command not found\nGenerating a RSA private key\n..............................+++++\n..............................................................................+++++\nwriting new private key to &#039;0-self-signed.key&#039;\n-----\npostgres@localhost:~&gt; sudo podman container runlabel --name cockpit-ws run registry.opensuse.org\/suse\/alp\/workloads\/tumbleweed_containerfiles\/suse\/alp\/workloads\/cockpit-ws:latest\nfb0ddfd99c7a7afac462e4f74bb11762036d67699fc3fa108d7978ed24a84245\n              \n<\/pre><\/div>\n\n\n<p>Once it is running the Cockpit web interface can be accessed at https:\/\/[hostname]:9090:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"525\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-10.png\" alt=\"\" class=\"wp-image-21437\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-10.png 683w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-10-300x231.png 300w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"356\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11-1024x356.png\" alt=\"\" class=\"wp-image-21438\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11-1024x356.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11-300x104.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11-768x267.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11-1536x534.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-11.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Several other containers \/ workloads are available <a href=\"https:\/\/build.opensuse.org\/project\/show\/SUSE:ALP:Workloads\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>. Have fun exploring.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is about something you maybe didn&#8217;t hear much yet: The openSUSE project and SUSE are working on a new enterprise operating system: ALP, the adaptive Linux Platform. As of today there is the second prototype, called Punta Baretti. The idea is: provide a minimal, immutable, operating system, which runs containers or virtual machines and [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[2801,2802,2247,1646,309],"type_dbi":[],"class_list":["post-21405","post","type-post","status-publish","format-standard","hentry","category-operating-systems","tag-alp","tag-cockpit","tag-opensuse","tag-podman","tag-suse"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The adaptable Linux Platform (ALP) - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The adaptable Linux Platform (ALP)\" \/>\n<meta property=\"og:description\" content=\"This is about something you maybe didn&#8217;t hear much yet: The openSUSE project and SUSE are working on a new enterprise operating system: ALP, the adaptive Linux Platform. As of today there is the second prototype, called Punta Baretti. The idea is: provide a minimal, immutable, operating system, which runs containers or virtual machines and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-05T08:20:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T14:40:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"The adaptable Linux Platform (ALP)\",\"datePublished\":\"2023-01-05T08:20:34+00:00\",\"dateModified\":\"2023-06-19T14:40:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/\"},\"wordCount\":373,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/01\\\/alp-1.png\",\"keywords\":[\"ALP\",\"Cockpit\",\"OpenSUSE\",\"podman\",\"SuSE\"],\"articleSection\":[\"Operating systems\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/\",\"name\":\"The adaptable Linux Platform (ALP) - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/01\\\/alp-1.png\",\"datePublished\":\"2023-01-05T08:20:34+00:00\",\"dateModified\":\"2023-06-19T14:40:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/01\\\/alp-1.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/01\\\/alp-1.png\",\"width\":641,\"height\":475},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-adaptable-linux-platform-alp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The adaptable Linux Platform (ALP)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The adaptable Linux Platform (ALP) - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/","og_locale":"en_US","og_type":"article","og_title":"The adaptable Linux Platform (ALP)","og_description":"This is about something you maybe didn&#8217;t hear much yet: The openSUSE project and SUSE are working on a new enterprise operating system: ALP, the adaptive Linux Platform. As of today there is the second prototype, called Punta Baretti. The idea is: provide a minimal, immutable, operating system, which runs containers or virtual machines and [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/","og_site_name":"dbi Blog","article_published_time":"2023-01-05T08:20:34+00:00","article_modified_time":"2023-06-19T14:40:27+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png","type":"","width":"","height":""}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"The adaptable Linux Platform (ALP)","datePublished":"2023-01-05T08:20:34+00:00","dateModified":"2023-06-19T14:40:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/"},"wordCount":373,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png","keywords":["ALP","Cockpit","OpenSUSE","podman","SuSE"],"articleSection":["Operating systems"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/","url":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/","name":"The adaptable Linux Platform (ALP) - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png","datePublished":"2023-01-05T08:20:34+00:00","dateModified":"2023-06-19T14:40:27+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/01\/alp-1.png","width":641,"height":475},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/the-adaptable-linux-platform-alp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The adaptable Linux Platform (ALP)"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/21405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=21405"}],"version-history":[{"count":19,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/21405\/revisions"}],"predecessor-version":[{"id":26069,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/21405\/revisions\/26069"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=21405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=21405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=21405"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=21405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}