Blog & News

Wir halten Sie auf dem Laufenden! Hinter den Kulissen tut sich immer viel. Wenn's was wirklich interessantes zu berichten gibt, dann steht's hier.

Atom Feed
2023
29
Dez

Onlime Review 2023

Onlime-2023

Lange ist's her seit dem letzten Blogpost – aber wir sind nun mal keine Marketing-Leute, sondern Herzblut-Techies. Also, was geht ab hinter den Kulissen von Onlime? Als Kunde merkst du kaum etwas von unseren Weiterentwicklungen, bleiben sie dir doch grösstenteils verborgen. Ausser dass unsere Services jedes Jahr noch zuverlässiger funktionieren und alles noch reibungsloser läuft. Haben wir nicht schon vor 10 Jahren von «höchster Redundanz», «bester Performance» und «höchster Ausfallsicherheit» gepredigt? Mag sein. Wir geben uns aber nie zufrieden, sondern sind laufend bestrebt, unsere Services zu verbessern: Wir vergolden, polieren, finetunen und pimpen. Die Ideen gehen uns nie aus und es steht auch ganz viel auf der Pipeline für die Zukunft.

Beachtet man unsere Statusmeldungen oder diesen Blog, könnte man meinen, Onlime befinde sich im Winterschlaf. Es werden nicht mehr so viele Wartungsarbeiten angekündigt wie vor einigen Jahren. Auch die Störungsmeldungen haben stark abgenommen. Die Anzahl Wartungsarbeiten/Migrationen haben aber keinesfalls abgenommen. Dies ist damit zu erklären, dass wir unser Monitoring laufend ausbauen und allfällige Probleme schon frühzeitig erkennen. So können wir meist proaktiv reagieren und ein Engpass oder eine Störung abwenden, bevor du als Kunde etwas davon bemerkst. Auch können wir grössere Server-Migrationen mittlerweile so gut vorgängig testen, dass die effektive Migration für uns gar kein Risiko mehr darstellt.

Das Jahr geht dem Ende zu. Ich möchte euch hier einen kleinen Einblick geben, was sich im 2023 getan hat, auf was wir stolz sind. Und die Vorfreude auf das, was sich in den nächsten Monaten tun wird, mit euch teilen.

Erneuerte Infrastruktur Datacenter

Ende 2022 haben wir unsere Infrastruktur im Datacenter komplett neu durchdacht. Ziel war es, die Redundanz weiter zu erhöhen, insbesondere auf Netzwerk-Ebene.

Auf dem Plan stand (und mittlerweile komplett umgesetzt):

  • Doppelte Netzwerk-Anbindung aller Server via LAGG (Link Aggregation) / LACP
  • Stacking der Switches für doppelte Netzwerk-/Stromanbindung und Failover (Aruba VSF – Virtual Stacking Framework)
  • Failover-Lösung für Firmware-Upgrades der Switches ohne Unterbruch (Aruba ISSU – In Service Software Upgrade)
  • 10Gbps "readiness" auf WAN-Ebene (Upstream), Ablösung firewall appliances
  • Firewall appliances: Migration von pfSense auf OPNsense

Unsere bisherigen Switches (HPE/Aruba 2530 Series) waren in die Jahre geraten und mussten durch kostspielige neuere Modelle (HPE/Aruba 6300 Series) abgelöst werden, welche all diese geforderten Features unterstützen. Wir haben nun 2x Aruba 6300F 48G Switches im Einsatz als VSF-Stack, wobei jeder Server jeweils via beide Switches physisch getrennt angeschlossen ist. Auch die Switches sind redundant an unsere Firewall-Appliances angebunden, ebenfalls via LAGG auf 10Gbps-Ports. Sollte es je zu einem Komplett-Ausfall einer dieser Switches kommen, würden wir durch unser Monitoring sofort alarmiert und der Switch könnte zu Laufzeit ausgewechselt werden, ohne dass es zu einem Unterbruch kommt. Aruba VSF (Virtual Stacking Framework) bietet uns ein «hot-swapping» der Switches. Dieses Szenario wurde durch uns auch mehrfach durchgespielt und wir haben einen zusätzlichen identischen Switch als Backup bereit gestellt.

Und warum der Wechsel von pfSense auf OPNsense auf unseren Firewall-appliances? OPNsense ist schon seit vielen Jahren das fortschrittlichere und uns sympathischere System. Sowohl pfSense als auch OPNsense basieren beide auf FreeBSD und bieten ein ähnliches Feature Set. Die Weiterentwicklung von pfSense stagniert jedoch seit längerem und die dahinter stehende Firma (Netgate) ist uns ein Dorn im Auge, da diese scheinbar absichtlich die Community Edition von pfSense vernachlässigt und alle Kunden auf die kostenpflichtige pfSense Plus Lizenz drängt. OPNsense und die dahinter stehende Firma Deciso hat unsere volle Sympathie gewonnen und hat in den letzten Jahren enorm aufgeholt, pfSense in der Weiterentwicklung mittlerweile sogar mit Vollgas überholt. Wir fahren auf unseren neuen Appliances die OPNsense Business Lizenz und haben auch eine Support Subscription abgeschlossen. Damit wandert unser Geld in ein tolles Opensource-Projekt, das wir auch ohne solche Lizenzgebühren gerne durch Spenden unterstützen würden. In den letzten Jahren haben wir viele Erfahrung in OPNsense gesammelt, da wir bereits vor dieser Migration einige Firewall-Appliances unserer Kunden und die Firewall-Appliance unseres Backup-Datacenters auf OPNsense umgestellt haben. Mit grosser Erleichterung konnten wir uns also endgültig von pfSense verabschieden.

Auch die gesamte Stromzufuhr haben wir rundum erneuert und im Frühling 2023 sämtliche APC PDUs durch Raritan PX3 Rack PDUs abgelöst. Die bisherigen APC PDUs erhielten keine Firmware-Upgrades mehr und eine individuelle Strommessung der einzelnen Server/Switches/Firewall-Appliances war damit nicht möglich. Ausserdem ist Raritan viel innovativer als die von Schneider Electric übernommene APC.

Sämtliche Strom-Anschlusskabel wurden durch neue Kabel mit IEC-Lock resp. SecureLock ersetzt. Damit ist das Risiko ausgeschlossen, dass sich ein Stromkabel während Wartungsarbeiten am Rack aus Versehen löst. Im Laufe dieser Migration konnten wir auch unsere redundante Stromanbindung ausführlich testen. Die ganze Neuverkabelung führte zu keinerlei Unterbrüchen.

Das komplette Netzwerk-/Power-Diagramm erspare ich euch hier. Es sieht sehr hübsch aus, sprengt aber den Rahmen dieses Blog-Artikels. Bist du daran interessiert, frag einfach danach via info@onlime.ch und wir präsentieren es dir gerne.

Energieeffizienz

Wir sind laufend bestrebt, die Energieeffizienz unserer Infrastruktur zu steigern. Dank den neuen Raritan PDUs mit outlet metering können wir nun den Stromverbrauch jedes einzelnen Servers und jeder Netzwerk-Komponente überwachen. Die Strommessung wird via unser Zabbix Monitoring überwacht und in unserem Grafana-Dashboard visualisiert.

Bereits im Winter 2022/23 haben wir uns dazu entschieden, einen Server abzuschalten, welcher nur als Backup für Testzwecke (GitLab CI/CD) verwendet wurde. Dies bereitet uns zwar einen Mehraufwand (regelmässiges Hochfahren des Servers für System-Upgrades und zur Replikation), den wir aber gerne in Kauf nehmen, da wir damit konstant Energie einsparen.

Im Dezember 2023 haben wir zwei weitere Server auf "standby" gesetzt, d.h. komplett ausgeschaltet. Diese Server stehen für allfällige zukünftige Projekte frei, weil sie vom bisherigen Kunden nicht mehr benötigt werden.

Bereits vor 2 Jahren sind wir bei Neuanschaffungen von Intel Dual-Core auf AMD Single-Core Server umgestiegen. Diese bieten eine bessere Performance bei geringerem Stromverbrauch. Die Einsparungen sind aber noch nicht sehr gross. Onlime plant seit längerem, auf ARM-Systeme umzusteigen. Diese bieten eine massiv bessere Energieeffizienz. Du kennst ARM bestimmt von Apple Silicon, die neueren M1/M2/M3 Prozessoren, welche einen gigantischen Performance-Sprung bieten bei einem viel geringeren Stromverbrauch. Die Hardware im Server-Bereich wäre längst da, sowohl HPE als auch Supermicro haben ARM-basierte Server mit Ampere Altra CPUs im Angebot. Wir müssen uns aber noch gedulden, bis folgende zwei Produkte ARM-ready sind: Proxmox VE, Percona Server for MySQL – Hoffen wir das Beste für's 2024, dass diese zwei Projekte auch endlich nachziehen und ARM builds liefern!

Im Januar sollte der nächste AMD Server mit NVMe SSDs geliefert werden, der für unser Shared Hosting eingesetzt wird. Dieser wird uns einen weiteren Performance-Boost bringen, bei ähnlichem Energieverbrauch. Wir bemühen uns, unsere Server stets gleichmässig auszulasten durch eine intelligente Verteilung der Virtuellen Server.

10-fache CO2-Kompensation

Abgesehen von diesen technischen Bemühungen, unseren Stromverbrauch zu reduzieren resp. optimieren, hat Onlime auch im 2023 wieder seinen CO2-Fussabdruck über's ganze Jahr berechnet und kompensiert diesen zu 1000% (10-fach) via myclimate. 10-fach, weil es andere nicht tun und dies einfach ins Budget passen muss (... selbst wenn dieses im 2023 übermässig strapaziert wurde).

Via myclimate's CO2-Rechner berechnen wir den jährlichen CO2-Fussabdruck unter Berücksichtigung folgender Faktoren: Arbeitsplatz (beheizte Fläche), Stromverbrauch (gesamte Server-Infrastruktur und Arbeitsplatz, Traffic, Nutzung Cloud-Dienste), Arbeitsweg der Mitarbeitenden, Geschäftsreisen, Verpflegung, Kaffee/Tee, Material und Abfall.

Unsere gesamte Infrastruktur hat dieses Jahr 15'755 kWh verbraucht. Das sind 3'000 kWh weniger als im Vorjahr. Insgesamt hat sich aber unser CO2-Fussabdruck von 3.5t auf 4.5t erhöht. Der Verbrauch war nicht wesentlich höher als im Vorjahr, jedoch haben wir bei der Berechnung dieses Jahr noch mehr Faktoren berücksichtigt (insbesondere der Traffic zwischen unseren Datencentern, und die 2 Geschäfts-Reislis via Nachtzug nach Amsterdam – Flüge sind für uns definitiv ein Tabu!).

CO2-Kompensation: Sinnvoll oder nicht? Wir wollen dies nicht an die grosse Glocke hängen, da wir definitiv kein Greenwashing betreiben möchten! Für uns steht klar, dass es ohne Reduktion nicht geht, die Qualität unserer Dienstleistungen aber auch nicht darunter leiden darf.

Spenden

Auch dieses Jahr unterstützt Onlime wieder folgende NGOs/Organisationen durch eine jährliche Spende: ROKPA International, Afghanistanhilfe Schweiz, CARITAS, PublicEye, myclimate, Greenpeace, ewz.solarzüri, Solarspar.

Weitere Details und die Präsentation dieser Projekte findest du unter Nachhaltigkeit / Soziales & Unwelt.

Airpane-next

Die Weiterentwicklung unseres Controlpanels stand dieses Jahr im Mittelpunkt. Bereits seit über 4 Jahren sind wir mit dem Komplett-Rewrite unseres Controlpanel/CRM mit Codename «Airpane» beschäftigt. Das Projekt hat sich als viel grösser herausgestellt als ursprünglich angenommen.

Airpane besteht aus folgenden 3 Komponenten: Airpane-agent (Microservice zur Webserver-Konfiguration), Controlpanel/Kunden-Dashboard, CRM (Kundenverwaltung und Billing). Airpane-agent wurde bereits im 2019/20 als Microservice in Python/Flask umgesetzt und konfiguriert seither unsere Webserver. Seither ist Onlime in der Lage, Dedizierte Managed Webservers limeDEDICATED anzubieten, d.h. das gesamte Controlpanel ist losgekoppelt von der Konfiguration der Dienste auf den jeweiligen Webservern.

Mit der Neuentwicklung unseres Controlpanel und CRM haben wir uns ein hohes Ziel gesteckt und mussten während dieses Projektes auch bereits die Technologie wechseln. Gestartet haben wir mit Vuetify als Frontend-Komponenten und einer API-Architektur, um das frontend mit dem backend zu verknüpfen. Mittlerweile setzen wir auf folgende Technologien (VILT Stack):

Dies gibt uns die nötige Flexibilität und weniger Abhängigkeiten, insgesamt ein sehr zukunftsfähiger Tech-stack.

Seit Mai 2023 ist Pascal Baljet (Protone Media) aus Amsterdam mit im Boot und unterstützt uns bei der Weiterentwicklung während jeweils 2 Arbeitstagen/Woche. Pascal bringt ein riesiges Knowhow sowohl im Backend- (Laravel) als auch im Frontend-Bereich (VueJS) mit. Auch Jonas von unserer Partner-Webagentur RACERFISH unterstützt uns tatkräftig. Eine top Zusammenarbeit! Das Projekt ist so richtig in Fahrt und wir gehen von einen Launch Mitte 2024 aus. Airpane-next wird also endlich spruchreif!

Was kann das neue Controlpanel/Kunden-Dashboard?

  • Basierend auf einem modernen Tech-Stack (Laravel, Vue.js, Inertia.js, Tailwind), der uns die Weiterentwicklung vereinfacht.
  • Die Verwaltung mehrerer Hostings wird einfacher: Ein Login für alles!
  • Gezielte Berechtigungs-Vergabe: Ideal für Webagenturen, welche als Team den Zugriff auf unterschiedliche Hostings benötigen, der Endkunde aber weiterhin für Domains und seine Rechnungen zuständig bleiben möchte.
  • Entkoppelung der Domain-Verwaltung (Domain-Registrierung und DNS-Verwaltung) vom Hosting: Domains können neu unabhängig von einem Hosting-Abo verwaltet werden. Onlime wird somit zum Domain-Reseller inkl. übersichtlicher DNS-Verwaltungsoberfläche.
  • Sämtliche Controlpanel-Features (PHP-Manager, Subdomains, Datenbank-Verwaltung, FTP-Zusatzaccounts, SSH-Verwaltung, Zugriffs-Statistiken, Verzeichnisschutz, Cronjob-Manager, usw.) bleiben erhalten, kommen jedoch übersichtlicher daher. Die neue Oberfläche bietet auch mehr Konfigurations-Möglichkeiten, insbesondere beim PHP-Manager.

Open Source Commitment

Dieses Jahr haben wir uns vermehrt an der Weiterentwicklung von Open-Source-Projekten beteiligt. Wir haben einige PRs submitted, insbesondere für Laravel und Saloon. Zudem haben wir im August 2023 folgendes Projekt veröffentlich:

  • PolicydRateGuard – A slick sender rate limit policy daemon for Postfix, written in Python.

Finanziell unterstützen wir folgende Projekte: Proxmox VE (Community Subscription), OPNsense (Business licenses), DEB.SURY.ORG (PHP Debian packages by Ondřej Surý), div. Sponsoring von GitHub-Projekten.

Debian Bookworm

Onlime's Server-Infrastruktur fährt beinahe zu 100% auf Debian Linux. Aktuell sind 10-12 physische Proxmox VE (Debian basierend) Server im Einsatz, auf denen wir insgesamt 50 virtuelle Server betreiben. Im Juni 2023 ist das neue major release Debian 12 «Bookworm» erschienen. Im Herbst haben wir praktisch alle Server auf den aktuellsten Stand gebracht. Bei einigen physischen Servern war auch eine komplette Neuinstallation notwendig, um die veraltete Partitionierung abzulösen (vgl. ZFS: Switch Legacy-Boot to Proxmox Boot Tool).

All diese Upgrades konnten wir ohne nennenswerte Unterbrüche durchführen. Bei den grösseren Servern und den limeDEDICATED gab's jeweils eine Vorankündigung und es kam zu einer Downtime von unter 15min.

Insgesamt verlief die Migration auf Debian «Bookworm» absolut schmerzlos und du hast als Kunde wohl kaum etwas davon bemerkt.

Pläne für's 2024?

Auch nächstes Jahr widmen wir voll und ganz der Weiterentwicklung unseres Controlpanels/Dashboards «Airpane-next», mit dem wir hoffentlich Mitte 2024 live gehen können.

Abgesehen davon soll das veraltete AWStats durch GoAccess abgelöst werden. Für die Domains planen wir die Einführung von DNSSEC. Weitere Pläne möchten wir euch heute noch nicht verraten.

Onlime wird 20!

Das wäre nun beinahe vergessen gegangen: Onlime feiert sein 20-jähriges Bestehen! Am 11. Dezember 2003 ging das damalige «Onlime Webhosting» mit dem ersten Server live und hat sein Hosting-Angebot am 1. Januar 2004 veröffentlicht. Alles lief auf einem einzigen Mietserver – das waren noch Zeiten!

Stosse mit uns an! Happy New Year und auf ein weiteres Jahrzehnt!

29. Dezember 2023 um 16:54
2023
01
Dez

PHP 8.3 Out Now!

PHP 8.3

Das neuste major release PHP 8.3 ist erschienen und wir konnten die finale Version inkl. sämtlicher Erweiterungen bereits letzten Dienstag 28. Dezember 2023 für alle Kunden freigeben – wenige Tage nach dem offiziellen Launch-day. Ein grosser Dank geht hier an Ondřej Surý, welcher unter DEB.SURY.ORG stets die aktuellsten PHP-Packages für Debian Linux zur Verfügung stellt.

Sämtliche Erweiterungen, welche bisher unter PHP 8.2 verfügbar waren, stehen euch auch bereit unter PHP 8.3.

Die neue Version ist in unserem Controlpanel unter «PHP-Manager» zu finden und lässt sich sowohl für die Hauptdomain als auch für sämtliche Subdomains individuell aktivieren.

Neuerungen in PHP 8.3

Diese PHP Version bringt zahlreiche neue Funktionen und Verbesserungen mit sich, die die Entwicklung von Webanwendungen mit PHP noch effizienter und leistungsfähiger machen. Deep-Cloning von schreibgeschützten Eigenschaften und eine neue Funktion zur Überprüfung von JSON-Strings. Die Randomizer-Klasse wurde ebenfalls erweitert, um die Generierung von Zufallszahlen und -strings zu erleichtern.

Dies sind die wichtigsten Neuerungen und Änderungen:

  • Typisierte Klassenkonstanten – In früheren Versionen von PHP waren Klassenkonstanten nicht typisiert, was zu Problemen führen konnte, wenn Schnittstellen oder implementierende Klassen unterschiedliche Typen für die gleiche Konstante verwendeten. Dies konnte zu unerwartetem Verhalten und potenziellen Fehlern führen.

    Mit PHP 8.3 wurde die Einführung von typisierten Klassenkonstanten vorgenommen. Dies bedeutet, dass nun explizit der Typ einer Klassenkonstante angeben werden kann, um sicherzustellen, dass der gleiche Typ in der gesamten Vererbungshierarchie beibehalten wird.

  • Dynamisches Abrufen von Klassenkonstanten – In der Vergangenheit war es in PHP nicht möglich, Klassenkonstanten dynamisch abzurufen. Man musste den Namen der Konstanten als Zeichenkette kennen und diese dann mit der constant()-Funktion abrufen.

    Durch die Verwendung der geschweiften Klammern {} kann nun den Wert einer Klassenkonstante basierend auf einer dynamisch generierten Zeichenkette abgerufen werden. Dies erhöht die Lesbarkeit und verhindert potenzielle Rechtschreibfehler bei der Verwendung von constant(). Beispiel: Foo::{$myConstant};

  • Neues #[Override]-Attribute – Bei der Überschreibung von Methoden in Klassen kann es zu Problemen kommen, insbesondere wenn es zu Tippfehlern oder Namensänderungen kommt. Dies kann dazu führen, dass unbeabsichtigte neue Methoden erstellt werden und die beabsichtigte Überschreibung nicht wie erwartet funktioniert.

    Um diese Problematik zu lösen, wurde in PHP 8.3 das neue #[Override]-Attribute eingeführt. Dieses Attribute kennzeichnet eine Methode in einer Klasse explizit als Absicht zur Überschreibung einer Methode in der übergeordneten Klasse oder in einem implementierten Interface. Dadurch wird vermieden, dass unbeabsichtigte neue Methoden erstellt werden und die Konsistenz des Codes verbessert sich.

  • Deep-Cloning von schreibgeschützten Eigenschaften – In PHP gibt es die Möglichkeit, Eigenschaften als schreibgeschützt zu markieren, indem das readonly-Attribut verwendet wird. Diese schreibgeschützten Eigenschaften können nur im Konstruktor festgelegt werden und sind anschließend nicht mehr veränderbar. Sie bieten eine sichere Möglichkeit, Daten zu speichern und vor ungewollter Modifikation zu schützen.

    In früheren Versionen von PHP gab es jedoch Einschränkungen. Wenn ein Objekt mit schreibgeschützten Eigenschaften geklont wurde, wurde lediglich eine flache Kopie der Eigenschaften erstellt. Dies bedeutete, dass die schreibgeschützten Eigenschaften weiterhin auf das Originalobjekt verwiesen und somit nicht wirklich geklont wurden.

    Mit PHP 8.3 gibt es nun eine neue Möglichkeit des Deep-Cloning von schreibgeschützten Eigenschaften. Beim Klonen eines Objekts mit schreibgeschützten Eigenschaften wird nicht nur eine flache Kopie der Eigenschaften erstellt, sondern es erfolgt ein vollständige Klonen der referenzierten Objekte. Dadurch werden die schreibgeschützten Eigenschaften vollständig geklont und können unabhängig vom Originalobjekt verwendet werden.

    Die Möglichkeit des Deep-Cloning von schreibgeschützten Eigenschaften in PHP 8.3 erleichtert die Handhabung und Manipulation von Objekten mit solchen Eigenschaften erheblich. Es kann nun sichergestellt werden, dass schreibgeschützte Daten vollständig geklont und unabhängig vom Originalobjekt verwendet werden können.

  • Neue Funktion json_validate() – Die Überprüfung der Syntax und Gültigkeit von JSON-Strings war in früheren Versionen von PHP mit einigen Herausforderungen verbunden. Die Verwendung der json_decode()-Funktion allein bietet keine explizite Möglichkeit, festzustellen, ob ein JSON-String syntaktisch korrekt ist oder nicht. Dies kann zu Fehlern und unerwartetem Verhalten führen, insbesondere wenn die Integrität von JSON-Daten wichtig ist. In PHP 8.3 wurde die Funktion json_validate() eingeführt, um dieses Problem zu lösen. Diese Funktion ermöglicht es, die Syntax und Gültigkeit eines JSON-Strings zu überprüfen, ohne die Daten vollständig zu decodieren.

  • Neue Methoden in der Randomizer-Klasse – Die Randomizer-Klasse in PHP bietet eine Vielzahl von Funktionen zur Generierung von Zufallszahlen und -strings. Diese Klasse wurde in PHP 8.3 um einige neue Methoden erweitert, die weitere Möglichkeiten zur Generierung von Zufallswerten bieten.

    Die Randomizer-Klasse ist Teil der Random-Erweiterung in PHP und ermöglicht die Generierung von Zufallswerten basierend auf verschiedenen Algorithmen. Sie bietet eine Reihe von Methoden wie getRandomBytes(), getInt(), getIntRange() und andere. Mit diesen Methoden können Zufallszahlen, Binärdaten und zufällige Zeichenketten generiert werden.

    In PHP 8.3 wurden der Randomizer-Klasse zwei neue Methoden hinzugefügt:

    1. getBytesFromString($allowedCharacters, $length) ermöglicht die Generierung einer zufälligen Zeichenkette mit benutzerdefinierten erlaubten Zeichen und einer bestimmten Länge.
    2. getFloat($min, $max, $boundary) ermöglicht die Generierung einer zufälligen Gleitkommazahl innerhalb eines bestimmten Bereichs.
  • Verbesserungen im Kommandozeilen-Linter – Der Kommandozeilen-Linter ist ein nützliches Tool in PHP, das entwickelt wurde, um den Code auf potenzielle Syntaxfehler und Probleme zu überprüfen, bevor er ausgeführt wird. Mit dem Kommandozeilen-Linter können Entwickler schnell und einfach Code-Fehler identifizieren und beheben, was dazu beiträgt, robustere und fehlerfreie Anwendungen zu erstellen.

    In PHP 8.3 gab es Verbesserungen im Kommandozeilen-Linter, die die Verarbeitung mehrerer Dateien unterstützen. Das bedeutet, dass nun mehrere Dateien gleichzeitig mit dem Kommandozeilen-Linter überprüft werden können, um potenzielle Fehler im Code zu finden.

  • und einiges mehr...

Unter PHP 8.3 Released! findet ihr sämtliche neuen Features mit den entsprechenden Links zur Doku resp. RFCs aufgelistet.

Für weitere Infos beachte bitte auch das offizielle Release Announcement und unser Support-Wiki:

Weitere sehr empfehlenswerte Artikel:

Breaking Changes

PHP 8.3 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Viele der Änderungen sind jedoch bereits seit PHP 8.2 als veraltet markiert, weshalb du mit dem Wechsel auf PHP 8.3 generell keine Probleme haben solltest, wenn du mit den Anpassungen in den vergangenen Versionen vertraut bist. Eine Liste mit allen Breaking Changes findest Du wie gehabt auf der Upgrade-Seite der PHP Group.

Bereit für PHP 8.3?

Aus unserer Sicht spricht absolut nichts gegen den Wechsel auf PHP 8.3. Bisher sind uns keine negativen Effekte aufgefallen und sämtliche grossen CMS und Web-Frameworks sollten problemlos laufen unter PHP 8.3. Einzig die Projekte, welche den Schritt auf PHP 8.2 bis heute verschlafen haben, werden wohl auch nicht ganz so rasch nachziehen und es ist zumindest mit E_DEPRECATED Warnungen zu rechnen.

Du kannst ganz einfach testen, ob deine Website lauffähig ist unter dieser neuen Version. Im Controlpanel unter «PHP-Manager» kannst du die PHP-Version jederzeit up- resp. downgraden.

1. Dezember 2023 um 17:05
2022
12
Dez

PHP 8.2 Out Now!

PHP 8.2

Der neuste major release PHP 8.2 ist erschienen und wir konnten die finale Version inkl. sämtlicher Erweiterungen bereits letzten Samstag 10. Dezember 2022 für alle Kunden freigeben – 2 Tage nach dem offiziellen Launch-day. Ein grosser Dank geht hier an Ondřej Surý, welcher unter DEB.SURY.ORG stets die aktuellsten PHP-Packages für Debian zur Verfügung stellt.

Sämtliche Erweiterungen, welche bisher unter PHP 8.1 verfügbar waren, stehen euch auch bereit unter PHP 8.2.

Die neue Version ist in unserem Controlpanel unter «PHP-Manager» zu finden und lässt sich sowohl für die Hauptdomain als auch für sämtliche Subdomains individuell aktivieren.

Neuerungen in PHP 8.2

PHP 8.2 baut auf der erneuerten Basis von PHP 8.0 und PHP 8.1 auf. Die neuste PHP-Version bietet nicht ganz so viel Neues wie der grosse Sprung auf PHP 8, aber doch einige Funktionalität, die das Webentwickler-Leben vereinfacht. Dies sind die wichtigsten Neuerungen und Änderungen:

  • Neue readonly Klassen – Mit PHP 8.1 wurde die Funktionreadonly für Klasseneigenschaften eingeführt. Mit PHP 8.2 wird nun die Möglichkeit hinzugefügt, die gesamte Klasse als readonly zu deklarieren. Wenn du eine Klasse als readonly deklarierst, erben alle ihre Eigenschaften automatisch das readonly Merkmal. Wenn du also eine Klasse readonly deklarierst, ist es dasselbe, als wenn du jede Klasseneigenschaft als readonly deklarierst.
  • true, false, und null als eigenständige Typen – PHP enthält bereits skalare Typen wie int, string und bool. Diese wurden in PHP 8.0 um Union-Typen erweitert, die es ermöglichen, dass Werte von verschiedenen Typen sein können. Der gleiche RFC erlaubte auch die Verwendung von false und null als Teil eines Union-Typs – als eigenständige Typen waren sie jedoch nicht erlaubt.
  • Disjunctive Normal Form (DNF) Typen – Die disjunktive Normalform (DNF) ist eine standardisierte Methode, um boolesche Ausdrücke zu organisieren. Sie besteht aus einer Disjunktion von Konjunktionen – in booleschen Begriffen ist das ein ODER von UNDs. Got it? Kurz, dies ist nun möglich: function bar((A&B)|null $entity) { ... } Die Anwendung von DNF auf Typendeklarationen ermöglicht eine standardisierte Art und Weise, kombinierte Union- und Intersection-Typen zu schreiben, die der Parser verarbeiten kann. Die neue DNF-Typenfunktion von PHP 8.2 ist einfach, aber mächtig, wenn sie richtig eingesetzt wird.
  • Sensible Parameter in Backtraces redacten – Wie fast jede Programmiersprache erlaubt auch PHP die Nachverfolgung des Aufrufstapels an jedem Punkt der Codeausführung. Das Stack-Tracing erleichtert das Debuggen von Code, um Fehler und Leistungsengpässe zu beheben. Normalerweise laufen die meisten Stack Traces im Hintergrund und werden stillschweigend protokolliert – für eine spätere Überprüfung, falls nötig. Einige dieser detaillierten PHP-Stacktraces können jedoch von Nachteil sein, wenn du sie an Drittanbieterdienste weitergibst – in der Regel für die Analyse von Fehlerprotokollen, die Fehlerverfolgung usw. Diese Stack Traces können sensible Informationen wie Benutzernamen, Passwörter und Umgebungsvariablen enthalten. Mit PHP 8.2 kannst du solche sensiblen Parameter mit dem neuen Attribut \SensitiveParameter kennzeichnen. Jeder Parameter, der als sensibel gekennzeichnet ist, wird in deinen Backtraces nicht aufgeführt.
  • Konstanten in Traits zulassen – PHP bietet eine Möglichkeit zur Wiederverwendung von Code, die Traits. Neu können auch Konstanten in Traits definiert werden, genauso wie Klassen-Konstanten.
  • Neue Random Erweiterung – Im Laufe der Geschichte von PHP wurden verschiedene Zufallszahlengeneratoren (Random Number Generators, RNG) mit unterschiedlichem Grad an Leistung, Anwendungsfällen und Eignung für sichere Anwendungen unterstützt. PHP 8.2 geht einen Schritt weiter, indem es die gesamte RNG-bezogene Funktionalität in eine neue Erweiterung namens Random überführt.
  • und einiges mehr...

Unter PHP 8.2 Released! findet ihr sämtliche neuen Features mit den entsprechenden Links zur Doku resp. RFCs aufgelistet.

Für weitere Infos beachte bitte auch das offizielle Release Announcement und unser Support-Wiki:

Weitere sehr empfehlenswerte Artikel:

Breaking Changes

PHP 8.2 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Viele der Änderungen sind jedoch bereits seit PHP 8.1 als veraltet markiert, weshalb du mit dem Wechsel auf PHP 8.2 generell keine Probleme haben solltest, wenn du mit den Anpassungen in den vergangenen Versionen vertraut bist. Eine Liste mit allen Breaking Changes findest Du wie gehabt auf der Upgrade-Seite der PHP Group.

Bereit für PHP 8.2?

Aus unserer Sicht spricht absolut nichts gegen den Wechsel auf PHP 8.2. Bisher sind uns keine negativen Effekte aufgefallen und sämtliche grossen CMS und Web-Frameworks sollten problemlos laufen unter PHP 8.2. Einzig die Projekte, welche den grossen Schritt auf PHP 8.1 bis heute verschlafen haben, werden wohl auch nicht ganz so rasch nachziehen und es ist zumindest mit E_DEPRECATED Warnungen zu rechnen.

Du kannst ganz einfach testen, ob deine Website lauffähig ist unter dieser neuen Version. Im Controlpanel unter «PHP-Manager» kannst du die PHP-Version jederzeit up- resp. downgraden.

12. Dezember 2022 um 15:21
2021
04
Dez

PHP 8.1 Out Now!

PHP 8.1

Der neuste major release PHP 8.1 ist erschienen und wir konnten die finale Version bereits am 26. November 2021 für alle Kunden freigeben. Mit der offiziellen Ankündigung liessen wir etwas auf uns warten, sofern du unseren Tweet verpasst hast. Aber wenn es um's Technische geht, dann geben wir Vollgas!

Sämtliche Erweiterungen, welche unter PHP 8.0 verfügbar waren, stehen euch auch bereit unter PHP 8.1.

Die neue Version ist in unserem Controlpanel unter «PHP-Manager» zu finden und lässt sich sowohl für Ihre Hauptdomain als auch für sämtliche Subdomains individuell aktivieren.

Neuerungen in PHP 8.1

Die neueste PHP-Version bietet nicht ganz so viel Neues wie der grosse Sprung auf PHP 8 letztes Jahr, aber doch einige Funktionalität, die das Webentwickler-Leben vereinfacht. Dies sind die wichtigsten Neuerungen und Änderungen:

  • Enumerations – Du kannst nun Enums statt Konstanten für mehr Typensicherheit und direkter Validierung nutzen. Aus unserer Sicht klar das nützlichste neue Feature!
    enum Status {
    case Pending;
    case Active;
    case Archived;
    }
  • Readonly-Properties – Readonly-Properties können nach einer Initialisierung nicht mehr verändert werden. Sie sind ein ideales Werkzeug um Value-Objekte und Data-Transfer-Objekte zu erstellen. public readonly string $title
  • First-Class Callable Syntax – Durch die sogenannte First-Class Callable Syntax kannst du eine Referenz zu jeder beliebigen Funktion erhalten.
    function foo(int $a, int $b) { /* … */ }
    $foo = foo(...);
    $foo(a: 1, b: 2);
  • new in Initialisierungen – Objekte können nun als Default-Wert für Parameter, statische Variablen, Konstanten, so wie als Argument für Attribute genutzt werden. Dies ermöglicht nun auch die Nutzung von verschachtelten Attributen.
    public function __construct(
        private Logger $logger = new NullLogger(),
    ) {}
  • Pure-Intersection-Types – Nutze die Intersection-Types, wenn du sicherstellen möchtest, dass das übergebene Objekt mehrere Typen implementieren.
    function generateSlug(HasTitle&HasId $post) {
    return strtolower($post->getTitle()) . $post->getId();
    }
  • Der Rückgabetyp never – Eine Funktion mit dem Rückgabetyp never gibt an, dass sie keinen Rückgabewert besitzt und die Funktion entweder eine Exception wirft oder das Script durch die(), exit(), trigger_error(), oder einer ähnlichen Funktion terminiert wird.
  • final Klassen Konstanten – Es ist nun möglich Klassen Konstanten als final zu definieren, sodass diese in einer Vererbung nicht überschrieben werden können.
  • Fibers – Fibers sind eine grundlegende Funktionalität zur Implementierung von verzahnten Abläufen. Sie sind dazu gedacht Code-Blöcke zu erstellen, die pausiert und wiederaufgenommen werden ähnlich wie die Generator-Implementierung, jedoch von überall aus.
  • Entpacken von Arrays mit string-basierten Keys – PHP unterstützte bereits das Entpacken von Arrays mit int-basiertem Key in andere Arrays. Jetzt ist es auch möglich Arrays mit einem string-basiertem Key oder auch einer Kombination aus beiden Varianten zu entpacken.
    $array1 = ["a" => 1];
    $array2 = ["b" => 2];
    $array = ["a" => 0, ...$array1, ...$array2];
    var_dump($array); // ["a" => 1, "b" => 2]

Unter PHP 8 Released! findet ihr sämtliche neuen Features mit den entsprechenden Links zur Doku resp. RFCs aufgelistet.

Für weitere Infos beachte bitte auch das offizielle Release Announcement und unser Support-Wiki:

Weitere sehr empfehlenswerte Artikel:

Breaking Changes

PHP 8.1 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Viele der Änderungen sind jedoch bereits seit PHP 8.0 als veraltet markiert, weshalb du mit dem Wechsel auf PHP 8.1 generell keine Probleme haben solltest, wenn du mit den Anpassungen in den vergangenen Versionen vertraut bist. Eine Liste mit allen Breaking Changes findest Du wie gehabt auf der Upgrade-Seite der PHP Group.

Bereit für PHP 8.1?

Aus unserer Sicht spricht nichts gegen den Wechsel auf PHP 8.1. Bisher sind uns keine negativen Effekte aufgefallen und sämtliche grossen CMS und Web-Frameworks sollten problemlos laufen unter PHP 8.1. Einzig die Projekte, welche den grossen Schritt auf PHP 8.0 bis heute verschlafen haben, werden wohl auch nicht ganz so rasch nachziehen und es ist zumindest mit E_DEPRECATED Warnungen zu rechnen.

Du kannst ganz einfach testen, ob deine Website lauffähig ist unter dieser neuen Version. Im Controlpanel unter «PHP-Manager» kannst du die PHP-Version jederzeit up- resp. downgraden.

4. Dezember 2021 um 00:14
2021
08
Mai

Wo steckt der Cookie-Banner?

Cookie-Banner

Ist dir je aufgefallen, dass dir unsere Website keinen nervigen Cookie-Banner präsentiert? Oder klickst du die eh immer gleich weg, ohne sie überhaupt noch halbwegs wahrzunehmen? Hält sich Onlime womöglich nicht an die GDPR / DSVGO (Datenschutz-Grundverordnung)?

Nein, die DSVGO mit all ihren Regelungen zur Verarbeitung von personenbezogenen Daten war uns schon immer ein Herzensanliegen, schon längst, bevor sie von irgendwelchen Juristen ins Leben gerufen wurde. Uns persönlich stören all die Cookie-Banner, die teils recht penetrant über dem eigentlichen Content der Websites platziert sind und uns die Annahme der Cookies aufdrängen. Insbesondere dann, wenn die Tracking-Daten noch x-beliebigen externen Firmen weitergereicht werden. Das alles muss nicht sein. Wir haben uns entschlossen, dieses Spiel nicht mitzumachen.

Die Frage war ganz einfach: Muss Onlime wissen, wer unsere Website aufruft und wie hoch das Besucher-Aufkommen ist? Benötigen wir diese Statistiken wirklich? Haben sie irgendwelche Relevanz für unser Geschäftsmodell?

Bis Anfang 2020 hatten wir Google Analytics im Einsatz. Die Website-Statistiken blieben aber bei Google liegen, ohne dass wir diesen je Beachtung geschenkt hätten. Auch betreibt Onlime GmbH so gut wie keine Werbung. Wir sind schlicht nicht drauf angewiesen, einerseits weil die persönliche Weiterempfehlung von bestehenden Kunden viel wichtiger ist und auch ganz gut funktioniert, andererseits, weil wir grundsätzlich nichts halten von Werbung. Werbung war uns schon immer ein Dorn im Auge und das wird sich auch in Zukunft nicht ändern. Keine Sorge, Onlime wird definitiv nie in ein Geschäftsmodell à la Facebook/Amazon/Google abdriften!

Die Antwort war also sonnenklar: Nein, wir benötigen kein Tracking unserer Kunden resp. Website-Besucher. Seit dem 27. Februar 2020 haben wir der Sache ein Ende gesetzt und Google Analytics komplett entfernt. Eine andere Form von Tracking gab es nie auf onlime.ch, folglich benötigen wir auch keinen Cookie-Banner.

Folgender wunderbare Artikel hat uns damals zum Handeln bewogen:

Thanks Mattias!

8. Mai 2021 um 16:30
2021
02
Apr

Mehr RAM (+50%) für limeDEDICATED

Als kleines Ostergeschenk erhöhen wir den Arbeitsspeicher für alle limeDEDICATED managed Virtual Dedicated Webserver. Wir bieten neu +50% RAM zum selben Preis. Davon profitieren sowohl unsere bestehenden Kunden als auch alle zukünftigen.

NEU:

  • limeDEDICATED-1: 4 vCPU / 12GB RAM / 50GB SSD, CHF 180/Mt
  • limeDEDICATED-2: 8 vCPU / 24GB RAM / 100GB SSD, CHF 280/Mt
  • limeDEDICATED-3: 16 vCPU / 48GB RAM / 200GB SSD, CHF 450/Mt

Frohe Ostern wünscht Onlime!

2. April 2021 um 16:30