Select Page

NETWAYS Blog

Here you can find out everything that moves us. Technology, Hardware, life at NETWAYS, Events, Training and much more.

OSMC 2023 | Will ChatGPT Take Over My Job?

One of the talks at OSMC 2023 was "Will ChatGPT take over my job?" by Philipp Krenn. It explored the changing role of artificial intelligence in our lives, raising important questions about its use in software development.   The Rise of AI in Software...

OSMC 2023 | Will ChatGPT Take Over My Job?

One of the talks at OSMC 2023 was "Will ChatGPT take over my job?" by Philipp Krenn. It explored the changing role of artificial intelligence in our lives, raising important questions about its use in software development.   The Rise of AI in Software...

OSMC 2023 | Will ChatGPT Take Over My Job?

OSMC 2023 | Will ChatGPT Take Over My Job?

One of the talks at OSMC 2023 was "Will ChatGPT take over my job?" by Philipp Krenn. It explored the changing role of artificial intelligence in our lives, raising important questions about its use in software development.   The Rise of AI in Software...

OSCamp 2024 | Das Programm ist online!

OSCamp 2024 | Das Programm ist online!

Tauche ein in die Welt unserer Referenten Wir freuen uns, mitteilen zu können, dass das Programm des Open Source Camps für Kubernetes feststeht! Wir haben eine vielfältige Auswahl an Vorträgen zusammengestellt, die Dir einen umfassenden Einblick in die neuesten...

Monthly Snap Februar 2024

Monthly Snap Februar 2024

Der Februar war ein ereignisreicher Monat bei NETWAYS! Neben dem normalen Alltag gab es auch unser Jahresmeeting, ein Spieleabend im Büro, und viele Kollegen waren auf Konferenzen und der Jobmesse in Nürnberg unterwegs. Und natürlich wurden viele Blogposts zu...

Solutions & Technology

Kritischer Fehler in Puppet Version 7.29.0 und 8.5.0

Eine Warnung an alle Nutzer von Puppet, aber auch Foreman oder dem Icinga-Installer, die Version 7.29.0 und 8.5.0 von Puppet enthält einen kritischen Fehler, der die Erstellung eines Katalogs und somit die Anwendung der Konfiguration verhindert. Daher stellt bitte...

Kritischer Fehler in Puppet Version 7.29.0 und 8.5.0

Kritischer Fehler in Puppet Version 7.29.0 und 8.5.0

Eine Warnung an alle Nutzer von Puppet, aber auch Foreman oder dem Icinga-Installer, die Version 7.29.0 und 8.5.0 von Puppet enthält einen kritischen Fehler, der die Erstellung eines Katalogs und somit die Anwendung der Konfiguration verhindert. Daher stellt bitte...

Mein PHP-Trainingsprojekt

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...

Events & Trainings

stackconf 2023 | It´s time to rebuild DevOps

stackconf 2023 | It´s time to rebuild DevOps

Let's dive into the memories of stackconf 2023 together, which provided us with numerous insights and first-class expert knowledge. As part of this blog series, we would like to introduce you to the featured speakers and their presentations. Today - Paul Stack and his...

stackconf 2024 | Join as a Speaker!

stackconf 2024 | Join as a Speaker!

Our Call for Papers runs out on March 31. That’s why we’re calling a last time for talk proposals. Do you have insights, innovations, or experiences to showcase in the realm of cloud native infrastructure solutions? If so, we invite you to submit your proposal and...

Web Services

Ceph Backfilling Crash: Datenintegrität manuell wiederherstellen

Ceph Backfilling Crash: Datenintegrität manuell wiederherstellen

Seit vielen Jahren haben wir Ceph im Einsatz. Unser erstes produktives Cluster begleitet uns seit 2015. Auch wenn die ersten Major-Updates des Clusters holprig verliefen ist die nötige Pflege des Clusters mit jedem Release von Ceph geringer geworden. Abgesehen vom...

Cloud Services and NWS-ID – It’s a match!

Cloud Services and NWS-ID – It’s a match!

We're starting the new year with a new integration for you! As announced last year, the integration of further products with NWS-ID will continue in 2023! From now on the NWS Cloud Services are integrated with NWS-ID. What are the advantages of integrating our Cloud...

Was NWS Docs ist und wozu es dient

Was NWS Docs ist und wozu es dient

Vor zwei Wochen haben wir unser neues NWS ID realeasd und vorgestellt - heute möchten wir Dir noch etwas neues vorstellen: das NWS Docs. Es soll Dir dabei helfen, bei Fragen rund um Dein Costumer Interface oder sämtlichen Anwendungen, den richtigen Lösungsweg und...

Company

Monitoring-Plugin check_system_basics: Erstes Release!

Monitoring-Plugin check_system_basics: Erstes Release!

Für das Basis-Monitoring von Linux-Maschinen existieren viele Plugins im Monitoring-Universum. Grundlegende Änderungen an den zugrunde liegenden Schnittstellen sind eher selten, da viele Programme sehr langfristig darauf aufbauen. Deshalb erfüllen aktuelle Lösungen...

Monthly Snap Dezember 2023

Monthly Snap Dezember 2023

Ein glückliches und gesundes neues Jahr zusammen! Kaum näherte sich der Dezember fing es in Nürnberg an zu schneien und es wurde für einige Tage richtig gemütlich.  Aber auch wenn viele vielleicht denken wir hatten nur Glühwein und Weihnachtsmarkt im Kopf, belehrt...

Blogroll

You have a lot to read there…

Kritischer Fehler in Puppet Version 7.29.0 und 8.5.0

Eine Warnung an alle Nutzer von Puppet, aber auch Foreman oder dem Icinga-Installer, die Version 7.29.0 und 8.5.0 von Puppet enthält einen kritischen Fehler, der die Erstellung eines Katalogs und somit die Anwendung der Konfiguration verhindert. Daher stellt bitte sicher diese Version nicht bei euch einzuspielen!

Was genau ist das Problem?

Durch eine Änderung in den Versionen werden Klassenparameter mit einem Integer mit negativem Minimum nicht mehr als solche erkannt und stattdessen kommt es zu dem Fehler “The parameter ‘$parameter_name’ must be a literal type, not a Puppet::Pops::Model::AccessExpression”. Da viele Module diesen Default verwenden, um den Wert “-1” nutzen zu können wenn etwas unlimitiert sein soll, ist es sehr wahrscheinlich, dass eine Umgebung davon betroffen ist.

Ein Beispiel hierfür ist das Puppet-Modul zum Management von Redis, welches auch zu dem öffentlich einsehbaren Issue “puppet 7.29.0 sinks my arithmetic battleship!” geführt hat. Tatsächlich ist auch bereits ein möglicher Fix dafür als Pull-Request “Accept UnaryMinusExpression as class parameter type” in Arbeit, so dass hoffentlich bald eine Bugfix-Version releast werden kann.

Bis zu dem Bugfix-Release sind aber nicht nur direkte Puppet-Nutzer betroffen! Auch wenn ein Installer darauf aufbaut wie dies bei Foreman oder dem Icinga-Installer der Fall ist und ein entsprechendes Modul hierbei benötigt wird, ist es wichtig diese Versionen nicht einzuspielen!

Wie verhindere ich nun am sinnvollsten, dass diese Version eingespielt wird?

In einem geeigneten Softwaremanagement wie Katello lässt sich die fehlerhafte Version herausfiltern und somit gar nicht erst den Systemen zur Verfügung zu stellen. Ohne diese Möglichkeit muss mit den Mitteln des Paketmanagers unter Linux gearbeitet werden.

Bei DNF in der Betriebssystemfamilie “Red Hat” lässt sich bei manuellen Updates --excludepkgs puppet-agent* angeben, um das Paket temporär auszuschließen. Wenn dies längerfristig benötigt wird oder gar ein automatische Update das Paket mitbringen könnte, lässt sich in der Haupt-Konfiguration oder im Puppet-Repository eine Zeile excludepkgs=puppet-agent-7.29.0*,puppet-agent-8.5.0* hinzufügen. Hierbei ist die genauere Versionsangabe wichtig, denn so kann die Konfiguration auch langfristig so verbleiben, ohne dass man daran denken muss die Zeile wieder zu entfernen. Wer noch ältere Versionen mit YUM nutzt kann dies genauso nutzen.

Auf der Betriebssystemfamilie “Debian” kann mittels apt-mark hold puppet-agent kurzfristig das Update des Paktes blockiert werden. Dieses muss dann mit apt-mark unhold puppet-agent wieder aufgehoben werden, was mittels apt-mark showhold sichtbar wird. Auch hier empfiehlt sich bei Bedarf eine Lösung über die Konfiguration. Dafür muss innerhalb der Präferenzen von APT eine Konfiguration im folgenden Format angelegt werden.

Package: puppet-agent
Pin: version 1:7.29.0*
Pin-Priority: -1

Package: puppet-agent
Pin: version 1:8.5.0*
Pin-Priority: -1

Für Zypper auf SUSE-Systemen ist mir leider keine so elegante Lösung bekannt. Hier hilft temporär auch der Parameter --exclude puppet-agent oder zypper addlock puppet-agent.

Für den oder die zentralen Puppetserver bitte auch das Paket “puppetserver” so behandeln.

Was wenn die Version schon installiert ist?

Der Agent aber auch der Puppetserver sollten sich problemlos über das Paketmanagement downgraden lassen. Zumindest hatte ich damit in der Vergangenheit keine Probleme. Also hilft hier dnf downgrade puppet-agent, apt install puppet-agent=VERSION oder zypper install --oldpackage puppet-agent=VERSION wobei man die letzte getestete Version angeben sollte.

Ich hoffe wie in solchen Fällen immer die Warnung wurde rechtzeitig gelesen und wir konnten euch damit ein paar Probleme ersparen!

Das Beitragsbild besteht aus dem Bild “Insects Collection 11” von Openclipart-User GDJ sowie dem offiziellen Puppet-Logo.

Dirk Götz
Dirk Götz
Principal Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

stackconf 2023 | It´s time to rebuild DevOps

Let’s dive into the memories of stackconf 2023 together, which provided us with numerous insights and first-class expert knowledge. As part of this blog series, we would like to introduce you to the featured speakers and their presentations. Today – Paul Stack and his talk “It’s time to rebuild DevOps” on how to inspire new tool development.

 

A short Summary

Paul’s approach emphasizes the need to redefine DevOps tools to meet the original goals of the movement by breaking down existing silos and improving communication. The featured systems initiative presents a modern, simulation-based workflow that enables real-time, multiplayer and multimodal collaboration to increase productivity in infrastructure management.

 

 

 

Watch Paul’s Talk

Take a deep dive into Paul’s reflection from his long journey through DevOps-lessons. Explore his presentation video and his slides.

YouTube player

Stay tuned

Save the date for stackconf 2024, the first speakers are already online. Mark June 18 and 19 in your calendar. Secure your ticket and stay up to date by signing up for our newsletter!

Sebastian Zwing
Sebastian Zwing
Marketing Specialist

Sebastian verstärkt seit November 2023 unser Marketingteam. Als Marketing Specialist wird er die Kommunikation der NETWAYS GmbH weiter mit ausbauen und neue Ideen einbringen. Seine Freizeit verbringt Sebastian gerne auf Reisen, als Hobbykoch in der Küche oder am Grill, an der frischen Luft, an und auf dem Wasser, oder auf dem Zweirad.

NETWAYS stellt sich vor – Irene Hahn

This entry is part 64 of 62 in the series NETWAYS stellt sich vor

Name: Irene Hahn

Alter: 28

Position bei NETWAYS: Junior Account Manager

Ausbildung: Kauffrau E-Commerce

Bei NETWAYS seit: September 2023

 

 

Wie bist Du zu NETWAYS gekommen und was genau gehört zu Deinem Aufgabenbereich?

Anfangs studierte ich Design, jedoch brach ich es ab, da mir mein Studium aufgrund fehlender praktischer Theorie und anderer Gründe nicht mehr gefiel. Dank eines Praktikums im Bereich E-Commerce wollte ich mich beruflich neu umorientieren, da ich dort entdeckte, wie viel Freude mir dieser Beruf bereitet.
Glücklicherweise habe ich mich bei NETWAYS beworben und wurde angenommen. In der IT-Firma NETWAYS schätze ich besonders die technisch anspruchsvollen Schulungen, die Kollegen und die familiäre Atmosphäre. Ich durfte in der Marketingabteilung mitwirken und bin nun in Sales tätig.
Meine Aufgaben in Marketing beinhalteten das Verfassen von Blogposts über das Event OSMC sowie andere Beiträge, des Weiteren gehörte das Posten von Social Media Beiträgen dazu, und ich durfte auch beim Marketing für NWS mithelfen.
In der Abteilung Sales konnte ich dank der Unterstützung meiner Kollegen Angebote, Auftragsbestätigungen und Rechnungen erstellen. Ich kümmere mich um Kundenanfragen bzw. -abwicklungen sowie um die Logistik.

 

Was macht Dir an Deiner Arbeit am meisten Spaß?

Generell macht es mir Spaß, mich mit den Produkten und Dienstleistungen von NETWAYS zu befassen. In Sales fühle ich mich wie ein Detektiv. Welches Anliegen liegt hier vor? Braucht der Kunde ein Angebot, fehlt etwas bei seiner Bestellung oder kann ich ihn auf andere Weise unterstützen? Besonders mag ich den Kontakt mit unseren Kunden und stehe ihnen gerne bei Fragen zur Verfügung. Mit der Unterstützung meiner Kollegen kann ich diese Fragen ruckzuck beantworten.

Ein weiterer Teil, der mir viel Freude bereitet, ist der logistische Bereich. Das Einräumen und sorgfältige Versenden der Ware ermöglicht es mir, die Produkte aus erster Hand zu sehen. Ein großer Teil meines Spaßes entsteht durch die tollen Kollegen, mit denen ich zusammenarbeite. Die Möglichkeit, sie um Rat zu fragen und ihre Hilfe zu erhalten, trägt dazu bei, dass ich sowohl fachlich als auch persönlich als Mensch wachse. Und nicht zu vergessen: Der Kaffee ist wirklich gut!

 

Was machst Du, wenn Du mal nicht bei NETWAYS bist?

In der Regel pendle ich an den Wochenenden nach Bayreuth, um meinen Freund zu besuchen. Ansonsten verbringe ich meine Zeit mit Malen oder Videospielen. Hmm… die restliche Zeit verstreiche ich, um für die Berufsschule zu lernen.

 

Wie geht es in Zukunft bei Dir weiter?

Mich weiterentwickeln, sehr viel Wissen aufbauen, neue Fähigkeiten erlernen und sehr viel an Wachstum gewinnen 🌱. Die Ausbildung erfolgreich abschließen und dann hoffentlich ein bestehender Teil von NETWAYS zu werden.

 

Irene Hahn
Irene Hahn
Junior Account Manager

Irene startete ihre Ausbildung bei NETWAYS im September 2023. Sie ist gespannt, wie abwechslungsreich und außergewöhnlich ihre kommenden Aufgaben werden. In ihrer Freizeit malt sie entweder an Bilder rum oder zockt an ihrer Switch.

Kubernetes 101: Die nächsten Schritte

This entry is part 7 of 7 in the series Alles rund um Kubernetes

Im Laufe des letzten Jahres haben wir uns in dieser Blogserie ausführlich mit Kubernetes beschäftigt. Von leicht verständlichen Erklärungen zu Design und Funktionsweise über den Aufbau eines ersten (lokalen) Clusters bis hin zur Inbetriebnahme und Absicherung haben wir viele Aspekte behandelt.
Im besten Fall konntest du erste Erfahrungen zu sammeln und vielleicht schon die eine oder andere Anwendung eigenständig bereitstellen. Die naheliegende Frage ist nun, “wohin” geht die Reise von hier aus?

In diesem letzten Artikel unserer Serie werde ich daher einige Ausblicke geben. Was ist im täglichen Betrieb zu beachten? Wie wird das System heute noch genutzt? Und welche neuen Einsatzmöglichkeiten zeichnen sich gerade ab? Vielleicht ist ja der eine oder andere Anwendungsfall auch für dich interessant!

Kubernetes im Alltagsbetrieb

Nachdem du dein(e) Cluster eingerichtet hast, beginnt der Alltagsbetrieb in der schicken, neuen Cloud-nativen Umgebung. Und hier kann es (ungewollt) spannend werden! Die verteilte Architektur und das generelles Design erfordern eine andere Herangehensweise als in traditionellen IT-Umgebungen. Insbesondere beim Monitoring bzw. Observability oder beim Backup-Management.

Werden Anwendungen auf Kubernetes betrieben, reicht es nicht aus, nur die laufenden Anwendungen zu sichern und in das Monitoring einzubinden. Man muss sich auch um die zugrundeliegende Infrastruktur kümmern! Die Gründe hierfür sollten klar sein: Verliert man die Zustandsinformationen der Kubernetes-API in etcd, ist ein Betrieb nicht mehr möglich. Ist der Cluster selbst kompromittiert, sind auch die darauf laufenden Applikationen in Gefahr. Es gilt also, aufzupassen und vorzusorgen.

Zum Thema Sicherheit auf gibt es in dieser Blogserie bereits einen eigenen Beitrag, die wichtigsten Punkte möchte ich aber noch einmal zusammenfassen:
Anwendungen auf Kubernetes werden in der Regel als containerisierte Microservices betrieben, die über das clusterinterne Netzwerk miteinander kommunizieren. Eine entsprechende Absicherung der verwendeten Netzwerke, sowohl an den Clustergrenzen als innerhalb des Clusters, ist daher zwingend erforderlich. Hierzu gibt es die Möglichkeit der nativen Fähigkeiten von Kubernetes selbst (Stichwort NetworkPolicies) oder man greift auf externe Tools zurück, die in ihrem Funktionsumfang weniger eingeschränkt sind (z.B. CNIs wie Cilium oder Calico).

Darüber hinaus sollten auch die betriebenen Container selbst unter die Lupe genommen werden: Nutzen sie vulnerable Abhängigkeitenbenötigen sie alle zugewiesenen Privilegien, und wie sieht es mit der Aktualität der Images selbst aus? Für all diese Fragen gibt es Tools, die die Umsetzung erleichtern – von Imagescannern wie Trivyoder Docker Scoutbis zur Echtzeiterkennung von Sicherheitsproblemen mit NeuVector von unserem Partner SUSE.

Das Ökosystem bietet auch Lösungen für das Backup-Management: Angefangen bei Kasten, einer Enterprise-Backuplösung von Veeam, über Velero, einer FOSS-Lösung für Backups von Clusterzustand und PersistentVolumes, bis hin zu Kanister (ebenfalls von Veeam), das Backup-Management auf Anwendungsebene ermöglichen soll.
Je nach Anwendungsfall und Clusterspezifikationen (Anzahl an Nodes, onPrem vs. Cloud, etc.) wirst du dich wahrscheinlich für eine bestimmte Backup-Lösung und einen speziellen Ansatz für das Backup-Management wählen.
Mit den genannten Lösungen kannst du aber definitiv deine ersten Schritte gehen.

Kubernetes als Infrastruktur-Plattform

Ein stetig wachsender Anwendungsfall ist der Einsatz als zentrale Infrastruktur-Management-Plattform. Dank zahlreicher (Open-Source-) Projekte im Cloud-nativen Ökosystem ist Crossplane heute in der Lage, Ressourcen wie S3-Buckets, Cloud-VMs oder gemanagte Datenbanken in verschiedenen Public Clouds zu provisionieren und zu verwalten.

Du kannst das System auch als Hypervisor für deine VM-Flotte verwenden Möglich macht dies das Projekt kubeVirt, das KVM-VIrtualisierung auf Kubernetes bringt – alles unter einem Dach, quasi! kubeVirt selbst ist ein Projekt innerhalb der CNCF, das unter Anderem von namhaften Firmen wie SUSE, RedHat oder ARM unterstützt wird.

Kubernetes als Management-Plattform

Doch nicht nur für Infrastruktur kann Kubernetes als Plattform herhalten. Es bietet auch die Möglichkeit, dass andere Benutzer in der Organisation die zentrale Schnittstelle für Ihre tägliche Interaktion mit eurer IT-Landschaft werden. Das Schlagwort für diese Art der Nutzung lautet Internal Development Platform (IDP) und ist eines der Themen, die derzeit stark im Kommen sind:
Vorgelebt von Spotify und seiner modularen Plattform Backstage gibt es mittlerweile eine ganze Reihe von kommerziellen und nicht-kommerziellen Lösungen, die Entwicklern in Zeiten von SaaS-Lösungen und immer komplexeren Entwicklungsumgebungen helfen können, den Überblick zu behalten.

Ziel von IDPs ist es, verschiedene Informationen rund um den Entwicklungszyklus zusammenzuführen, Prozesse zu vereinheitlichen und “Golden Paths” zu etablieren. Mit seiner mächtigen API und seinen Orchestrierungsmöglichkeiten bietet sich Kubernetes für so ein Vorhaben an. Schließlich sollen verschiedenste Drittanwendungen mit der Plattform interagieren, Informationen bereitstellen und im Gegenzug Anweisungen von der Plattform erhalten. Nicht umsonst ist das Thema “Kubernetes als IDP” also eines der derzeit “heißesten” Themen auf Konferenzen wie z.B. der KubeCon.

Fazit

Kubernetes wird nicht langweilig und bietet viele Möglichkeiten zur Erweiterung und zum Ausbau. Das ist ein bisschen Fluch und Segen zugleich. Denn mit den Vorteilen entstehen auch neue Risiken. Es kann sinnvoll sein klein anzufangen, sein(e) Cluster nach und nach zu erweitern und an neue Anwendungsfälle anzupassen.
Eine der wichtigsten Regeln ist, von der ersten Minute an Sicherheit und Observability zu bedenken. Das Risiko einer unentdeckten Schwachstelle ist ansonsten aufgrund der verteilten Architektur und den darauf laufenden Anwendungen schwer zu überblicken.

Wenn du nach der Lektüre dieser Serie Lust bekommen hast loszulegen, du dich aber noch nicht zu 100% bereit fühlst direkt loszulegen, ist vielleicht unser Kubernetes Training etwas für dich!
Ansonsten kannst du jederzeit unser Sales Team kontaktieren, und mit einem unsere Kubernetes-Spezialisten über deine Fragen sprechen.

Daniel Bodky
Daniel Bodky
Platform Advocate

Daniel kam nach Abschluss seines Studiums im Oktober 2021 zu NETWAYS und beriet zwei Jahre lang Kunden zu den Themen Icinga2 und Kubernetes, bevor es ihn weiter zu Managed Services zog. Seitdem redet und schreibt er viel über cloud-native Technologien und ihre spannenden Anwendungsfälle und gibt sein Bestes, um Neues und Interessantes rund um Kubernetes zu vermitteln. Nebenher schreibt er in seiner Freizeit kleinere Tools für verschiedenste Einsatzgebiete, nimmt öfters mal ein Buch in die Hand oder widmet sich seinem viel zu großen Berg Lego. In der wärmeren Jahreszeit findet man ihn außerdem oft auf dem Fahrrad oder beim Wandern.

Die erste Anwendung mit Laravel entwickeln – Ein Erfahrungsbericht

Als Auszubildende im 1. Lehrjahr bei NETWAYS hatte ich im Rahmen eines Übungsprojekts die Gelegenheit, meine ersten Erfahrungen in der Webentwicklung zu sammeln. In diesem Beitrag möchte ich beispielhaft die Arbeit mit dem PHP-Framework Laravel teilen.

 

Warum Laravel?

  • Open Source und Full-Stack: Laravel ist ein leistungsstarkes Open-Source-Framework für die Entwicklung von Webanwendungen. Es bietet viele Tools für die Frontend- und Backend-Entwicklung.
  • Umfangreiches Lernmaterial: Laravel stellt umfangreiche Lernressourcen bereit, darunter Videos und eine gut strukturierte Dokumentation direkt auf der Website.
  • Einfache Installation: Die Installation von Laravel ist gut dokumentiert und einfach durchzuführen. Mit Composer (einem Packetmanager) kann schnell ein neues Projekt erstellt werden.

 

Ein einfaches Projekt nach dem MVC-Prinzip

Da ich in meiner Ausbildung bei NETWAYS sehr viele neue und spannende IT-Begriffe lerne, hatte ich die Idee, eine App für ein Glossar von IT-Begriffen zu entwickeln. Ein Übungsprojekt für die Arbeit mit Git bot eine passende Möglichkeit dazu. Im Team entschieden wir uns für das Framework Laravel aufgrund seiner vordefinierten Struktur nach dem MVC-Prinzip (Model, View, Controller). Die wichtigsten Dateien für ein einfaches MVC-Muster in Laravel befinden sich bereits in vordefinierten Ordnern:

View: resources/views/dashboard.blade.php

Controller: app/Http/Controllers/Controller.php, routes/web.php

Model: app/Models/Item.php

 

Implementierung eines Delete-Buttons

Die Implementierung eines Delete-Buttons in unserer Anwendung ermöglicht es Benutzer:innen, Einträge aus dem Glossar zu löschen. Anhand dieses Buttons soll der Workflow mit Laravel exemplarisch dargestellt werden. Die benötigte Datenbank für die Einträge wurde, für die Entwicklung, zunächst als SQLite-Datenbank im Ordner ‚database‘ erstellt und die Migration vorgenommen. Da SQLite ohne Serverinstallation direkt in einer Anwendung verwendet werden und in einer einzigen Datei gespeichert und bearbeitet wird, eignet es sich besonders gut für eine lokal Entwicklungsumgebung.

 

View (Blade-Template):

In Blade, dem standardmäßigen Template Engine, wurde ein HTML-Formular erstellt, das den Delete-Button enthielt. Das Formular ist so konfiguriert, dass es die del_item-Route aufruft, wobei die ID des Glossar-Eintrags als Parameter übergeben wird. Der CSRF-Token (Cross-Site-Request-Forgery) wird für Sicherheitszwecke hinzugefügt. Die geschweiften Klammern sind eine eingebaute Funktion in Blade für die Übergabe von PHP-Variablen.

<form action="{{ route('del_item', $item->id) }}" method="post" style="display: inline;">
    @csrf
    @method('DELETE')
    <button type="submit" class="cta-button">Delete</button>
</form>

 

Route:

In der ‚web.php’-Datei wurde eine Route definiert. Die Route ist ein Bindeglied, das für die Handhabung von HTTP-Anforderungen angelegt wird, um die URL mit der entsprechenden Controller-Methode zu verknüpfen. Im Beispiel des Löschvorgangs wurde der HTTP Request Methode DELETE angewendet und mit der Controller-Methode verknüpft. Der Name der Route ist hier ‚del_item‘. Die Funktionalität ‚middleware‘ sorgt dafür, dass diese Route nur mit entsprechender Authentifizierung ausgeführt werden kann.

Route::delete('/dashboard/item/{id}', [ItemController::class, 'del_item'])
    ->name('del_item')
    ->middleware('auth');

 

Controller:

Der Controller sorgt für die Organisation der Anwendungslogik und ist für die Verarbeitung von Anfragen und die Steuerung des Datenflusses zwischen View und Model zuständig. Im ItemController.php,
der die Items in der Datenbank verwaltet, wird die Methode ‚del_item‘ implementiert. Diese Methode nimmt die ID des zu löschenden Glossar-Eintrags als Parameter an. Der Eintrag wird identifiziert und gelöscht. Daraufhin wird der Benutzer zur Dashboard-Ansicht weitergeleitet.

class ItemController extends Controller
{
    public function del_item($id)
    {
        $item = Item::find($id);
        if ($item) {
            $item->delete();
        }
        return redirect()->route('dashboard');
    }
}

 

Model:

In der Eloquent Models-Datei ‚Item.php‘ wurde bereits die Klasse für die Datenverwaltung angelegt. Auf dieses Model wird auch bei der Löschung zugegriffen. Laravel bietet die $fillable-Eigenschafft, um anzugeben welche Attribute (in diesem Fall Spaltenname der Tabelle) an die Datenbank übergeben werden sollen.

class Item extends Model
{
use HasFactory;
protected $fillable = ['title', 'description'];
}

 

Dank des Entwicklungswebservers konnte die Funktionalität schnell geprüft werden. Durch das Klicken des Buttons wird der Eintrag aus der Datenbank gelöscht.

 

Meine Lernerfahrung

Die ersten Schritte mit Laravel waren aufgrund der Verschachtelung von Ordnern und Inhalten etwas wackelig. Mit einiger Recherche und Hilfe konnte ich jedoch die Abläufe eines MVC-Prinzips verstehen und anwenden. Laravel bietet eine umfangreiche Struktur, die sowohl einfachen als auch komplexen Funktionalitäten Raum gibt. Nach diesem erfolgreichen Versuch bin ich motiviert, weiter mit Laravel zu arbeiten und meine Fähigkeiten in der Anwendungsentwicklung auszubauen. Besonders die kompetente Unterstützung durch erfahrene Kollegen wie Markus Opolka und Feu Mourek verhalf mir zu meinem Lernerfolg.

 

Jolien Trog
Jolien Trog
Junior Developer

Jolien ist seit September 2023 Teil des Icinga Team und macht dort ihre Ausbildung zur Fachinformatikerin für Anwendungsentwicklung. Ihre Aufgabe ist zunächst viel zu lernen, um später an Projekten mitarbeiten zu können. Nach einem Tag am Computer schwingt sie sich begeistert aufs Rennrad und genießt die vorbeifliegende Natur.