182 lines
13 KiB
TeX
182 lines
13 KiB
TeX
\documentclass[paper=a4,fontsize=12pt,ngerman]{scrartcl}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{graphicx}
|
|
\usepackage[ngerman]{babel}
|
|
\usepackage[autostyle=true]{csquotes} %biblatex german quoting
|
|
\usepackage{amsmath}
|
|
\usepackage{pifont} % ding55
|
|
\usepackage[a4paper,left=25mm,right=35mm,top=25mm,bottom=30mm]{geometry}
|
|
\usepackage{parskip}
|
|
\usepackage{comment} %dies ist ein kommentar
|
|
% tableau
|
|
\usepackage{booktabs}
|
|
\usepackage{multirow} % table stuff
|
|
\usepackage{tablefootnote} % table
|
|
\usepackage{diagbox}
|
|
\usepackage{caption}
|
|
\usepackage{url} %damit urls richtig formatted werden dürfen, müss \url{URL} usen
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{shapes.geometric, arrows, positioning}
|
|
%\usepackage[colorlinks=false, hidelinks]{hyperref} % keine hyperrefs
|
|
|
|
\usepackage{listings} % code blocks
|
|
\usepackage{xcolor}
|
|
|
|
%\usepackage[backend=biber, style=numeric, url=true]{biblatex} %URL in biblatex
|
|
%\addbibresource{literatur.bib}
|
|
%\bibliography{literatur} %bibtex
|
|
|
|
\graphicspath{{graphics/}}
|
|
|
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|
|
|
\lstdefinestyle{mystyle}{
|
|
backgroundcolor=\color{backcolour},
|
|
commentstyle=\color{codegreen},
|
|
keywordstyle=\color{magenta},
|
|
numberstyle=\tiny\color{codegray},
|
|
stringstyle=\color{codepurple},
|
|
basicstyle=\ttfamily\footnotesize,
|
|
breakatwhitespace=false,
|
|
breaklines=true,
|
|
captionpos=b,
|
|
keepspaces=true,
|
|
numbers=left,
|
|
numbersep=5pt,
|
|
showspaces=false,
|
|
showstringspaces=false,
|
|
showtabs=false,
|
|
tabsize=2
|
|
}
|
|
\lstset{style=mystyle}
|
|
|
|
\newcommand{\cmark}{\ding{51}}
|
|
\newcommand{\xmark}{\ding{55}}
|
|
|
|
\begin{document}
|
|
|
|
\pagenumbering{roman}
|
|
\pagestyle{plain}
|
|
|
|
% Einbinden der Titelseite
|
|
\begin{titlepage}
|
|
|
|
\linespread{1.5}
|
|
|
|
\includegraphics[width=\linewidth]{htw_logo}
|
|
|
|
\begin{center}
|
|
\large
|
|
\hfill
|
|
\vfill
|
|
\Large{\bfseries{Praxisphase: Bericht}}
|
|
|
|
von \\
|
|
Tim Wall\\
|
|
Mat. Nr. 5014365
|
|
|
|
\vfill
|
|
|
|
TODO: wechseln?
|
|
Ein wissenschaftlicher Bericht im Rahmen der Vorlesung\\
|
|
\glqq Wissenschaftliches Arbeiten\grqq\\
|
|
an der htw saar im Studiengang Praktische Informatik\\
|
|
|
|
\vfill
|
|
\vfill
|
|
|
|
Pirmasens, den \today
|
|
\end{center}
|
|
|
|
\end{titlepage}
|
|
|
|
\clearpage
|
|
\tableofcontents
|
|
|
|
\clearpage
|
|
\pagenumbering{arabic}
|
|
|
|
\section{Vorwort}
|
|
|
|
Die Praxisphase ist ein Zeitraum innerhalb des Studiums, um eine Brücke zwischen dem theoretischen Unterricht und der praktischen Umsetzung in der Realität zu bilden. Planmäßig findet diese im sechsten Semester in den ersten 12 Wochen statt. Meine Praxisphase begann am 01.04 bei der psb intralogistics GmbH in Pirmasens, und dauert bis zum 24.06.
|
|
|
|
Innerhalb diesem Zeitraum wird mir Einblick in die Unternehmensstrutkur, deren Softwareschöpfungsprozess und eine eigene Projektarbeit gewährt. Auch werden außercurriculäre Inhalte und Soft Skills vermittelt. Somit wird fachliche, sowie persönliche Entwicklung gefördert.
|
|
|
|
Der Praxisbericht ist eines der resultierenden Elemente, in welchem das Unternehmen, der Arbeitsplatz, dessen Stellung, durchgeführte Aufgaben, gewonnene Erkenntnise und die unterliegende theoretische Basis dokumentiert, evaluiert und bewertet wird.
|
|
|
|
\vfill
|
|
\begin{minipage}[c]{0.5\textwidth}
|
|
\begin{center}
|
|
\noindent\rule{6cm}{0.3pt}\\
|
|
Unterschrift Student
|
|
\end{center}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[c]{0.5\textwidth}
|
|
\begin{center}
|
|
\noindent\rule{6cm}{0.3pt}\\
|
|
Unterschrift Unternehmen
|
|
\end{center}
|
|
\end{minipage}
|
|
\vspace{1cm}
|
|
|
|
\newpage
|
|
|
|
\section{Betrieb}
|
|
|
|
Die psb intralogistics GmbH mit Sitz in Pirmasens ist ein traditionsreiches, mittelständisches Familienunternehmen, das 1887 als Schlosserei gegründet wurde. Heute zählt es zu den führenden europäischen Anbietern von automatisierten Intralogistik-Gesamtsystemen.
|
|
|
|
Das Unternehmen zeichnet sich durch eine sehr hohe vertikale Integration aus: Von der ersten Planung über die mechanische Produktion und Softwareentwicklung bis hin zur Montage und Wartung erfolgt alles \glqq{}aus ei(ge)ner Hand\grqq{}. Das Unternehmen beschäftigt knapp unter 550 Mitarbeiter, darunter Ingenieure, Softwareentwickler, SPS-Programmierer, Fertigung, Montage, Materialbeschaffung, Logistik, Vertrieb, IP-Verwaltung (geistiges Eigentum) sowie Managementebene.
|
|
|
|
psb ist ein familiengeführtes Unternehmen, aktuell in der 4. Generation durch Werner Klein. Als mittelständisches Unternehmen wird auf kurze Entscheidungswege und ein Patensystem für neue Mitarbeiter gesetzt, um Know-how schnell zu vermitteln und Wissenssilos zu durchbrechen.
|
|
|
|
Lösungen sind auf jeden Kunden maßgeschneidert und verbinden Lagerung, Transport, Kommissionierung, Sortierung und Software zu einem einheitlichen Komplettsystem.
|
|
|
|
Je nach Größe der zu lagernden Elemente und des gewünschten Systems bietet psb vorgefertige Baukastensysteme, die individuell zugeschnitten werden. Als klassische Regalbediengeräte existieren der sprinter, gedacht für leichte Kartons, Kleinbehälter und Tablare, der runloader, gedacht für Kassetten oder Hängeware bis 300 kg Zuladung und der maxloader, gedacht für Paletten bis 1250 kg. Aber auch Shuttlesysteme wie der vario.sprinter, Paletten-Shuttles oder Mischsysteme wie Hängewaren-Shuttles werden zum Lagern angeboten.\\
|
|
Der Transport wird durch Rollbahnen, Mehrstrangförderern und einer breiten Auswahl an Verbindungsstücken realisiert.\\
|
|
Automatische Kommisionerung wird von autopick, einem KI-geführten, mit Vakuumsaugern ausgestatteten Roboterarm übernommen. Manuelle Kommisionerung erfolgt auftragsgerecht sequenziert durch rotapick-Systeme, im Gleichteilüberfluss durch Multi-Order-Stationen, Auftragsbasiert in 1-zu-1-Kommissionierung oder Flächendeckend mit Durchlaufregalen.\\
|
|
Die Orchestration der zuvor genannten Systeme und Module erfolgt durch eine in-house entwickelte Software-Suite mit dem Namen \textbf{selektron}, bestehend aus Warehouse Management System (WMS), Materialflusssteuerung (MFC), Anlagensteuerung (FLC), Visualisierung (SCADA), Produktionssteuerung und Anbindung an bestehende Kundensysteme, z.B. Enterprise Resource Planning (ERP), Produktionsplanung (PPS), Inventurverwaltung (WWS). Diese Suite wird mit einem 24/365 Service abgerundet, welcher durch Fernwartung schnelle Störungsbeseitung ermöglicht.
|
|
|
|
Im globalen Intralogistik-Markt hebt sich psb gegenüber den Big Player mit dem hohen Manufakturgrad, vertikaler Intergration und persöhnlicher Kundebetreuung ab.
|
|
|
|
\section{Arbeitsplatz}
|
|
|
|
Der Firmenbereich besteht aus einem Verwaltungsgebäude und zwei Fabrikhallen. Das dreistöckige Verwaltungsgebäude besitzt im Erdgeschoss Kundenempfang, Human Resources, SPS-Entwicklung, UCM-Entwurf und Gesprächsräume für Kundentermine. Der erste Stock besteht aus dem IT-Bereich und der Projektabwicklung. Innerhalb der Projektabwicklung wird zwischen Steuerung, SCADA, Fördertechnik, Hängefördertechnik, Lagertechnik, Mechanischer Konstruktion, Elektrischer Konstruktion, Produktdesign, Service, Projektmanager, Dokumentation und den Software-Ingenieuren bestehend aus Warehouse Management, Material Flow, Nutzeroberfläche, Softwarewartung, unterschieden. Das oberste Stockwerk ist für den Vertrieb, Betriebsrat und Management vorgesehen.
|
|
|
|
Die Plätze sind nach Teams innerhalb Trennwänden gruppiert, um Kommunikationswege kurz zu halten, den Austausch zu fördern, jedoch bei Gesprächen andere Gruppen nicht zu belästigen, und bestehen aus jeweils vier bis fünf Leuten. Die Leute innerhalb eines Teams behandeln die gleichen Kundenprojekte. Diese \glqq{}Sitzverteilung\grqq{} ist trotzdessen nicht bindend und jeglich eine Empfehlung, um Kommunikation zwischen den Gruppen nicht zu blockieren. Die Gruppenbezeichnung PA INF GUI, kurz für Projektabwicklung Software-Engineering Graphical User Interface, welcher ich untergewiesen bin, ist auf 4 Teams verteilt.
|
|
|
|
Das Software-Engineering Department befindet sich im ersten Stock auf der Südseite, und wird mit einer Feuerschutztür von den anderen Projektabwicklung logisch getrennt. Bei Eintritt in die Abteilung wird man von den Meetingsräumen sowie darauffolgende Kücheneinheit und Sanitäranlagen begrüßt. Die Küchentheke besteht aus zwei Kaffeemaschinen, einem Wasserkocher, Kühlschrank sowie Spülmaschine und -becken. Direkt gegenüber befindet sich mein zugewiesener Arbeitsplatz, welcher mit einer Docking-Station meinen Arbeitslaptop mit Bildschirmen und Peripherie verbindet. Meine direkten Nachbarn befassen sich mit dem gleichen Themengebiet meiner Praxisphase und ermöglichen durch physische Nähe schnnelle, effiziente, E-Mail unabhängige Kollaboration und Problemlösung, besonders bei Trivialitäten.
|
|
|
|
\section{Aufgabenbereich}
|
|
|
|
Mein Arbeitsplatz befindet sich im Herz der PA INF GUI. Während der Name auf alleiniges Ausarbeiten von grafischen Nutzeroberflächen (Graphical User Interface, kurz GUI) vermuten lässt, ist diese Abteilung auch für die Integration der verschiedenen Backends selektron WMS, selektron MFCS, selektron RPS zuständig. Dies wird mithilfe des in der Abteilung entwickelten Kernmodul der selektron-Suite, selektron core, bewältigt. selektron core besteht dabei aus den Komponenten Administration, API Gateway, Authentification, Authorisation und Discovery. Jedes der Backends besteht ebenfalls aus mehreren Komponenten. Diese werden jeweils für Kundensysteme vom Basis-Entwicklungsstand einzeln angepasst und zugeschnitten, damit es perfekt auf deren Anforderungen ausgelegt ist. Oft haben Kunden jedoch gleiche oder ähnliche Bedürfnisse, welche im aktuellen System bei jedem Kunden extra und damit mehrfach Implementiert werden. Diese Implementationen betreiben oft die gleiche Aufgabe, sind jedoch anders Entwickelt. Durch diese resultierenden Redundanzen steigt der Wartungsaufwand. Ebenfalls steigt der Aufwand, die zugeschnittenen Systeme bei dem Kunden zu konfigurieren und einzusetzen, da jeder Kunde eine einzigartige IT-Infrastruktur hat, wodurch das Deployment händisch mit einer Ansammlung von über die Jahre entwickelten und gewachsenen Skripten und viel Filigranarbeit durchzuführen ist. Dieses Händische Deployment senkt die Wartbarkeit, da über die Jahre immer wieder Updates, Migrationen und sonstige kurzfristige Änderungen auftreten, welche nur zum Teil dokumentiert, und damit schwer Nachvollziehbar sowie absolut nicht Auditierbar sind. Ebenfalls ist die Einarbeitung von Servicemitarbeitern aufwändig, da alles über das Terminal mit Skripten und Befehlen verwaltet werden muss, und nicht alle Fälle von diesen existierenden Skripten übernommen werden können. Diese Servicefälle müssen dann im Schlimmsten Fall bis zum nächsten Arbeitstag warten, was für den Kunden verlorene Zeit und damit verlorenes Geld bedeutet. Ebenfalls existiert im aktuellen System keine automatische Ausfallsicherheit, welche den Service bei trivialen Fällen entlasten könnte.
|
|
|
|
Jedes der zuvor genannten Module wurde innerhalb der letzten Jahre in Container-Images gebündelt und mit Containerverwaltungstools wie Docker oder Podman, als auch durchgeführt, um das Deployment weitestgehend zu vereinfachen und Kunden-infrastruktur-unabhängiger zu gestalten. Trotzdessen bleiben ziemlich alle gennanten Probleme bestehen, da sie über die Containerisierung hinaus gehen.
|
|
|
|
Mein Aufgabenbereich, das Evaluieren von Kubernetes als Containerorchestrierung für den Software-Stack der psb, ist keine klassische Aufgabe im Bezug auf die Nutzeroberfläche, ist in der Firmenstruktur trotzdem dieser Abteilung untergliedert. Kubernetes führt im Kern, ähnlich wie Docker und Podman, Container aus, geht jedoch weit über das Ausführen sowie Verwalten von diesen hinaus und wird daher aus als Orchestration bezeichnet. Lastverteilung, Selbstheilung, Ausfallsicherheit, Koordination, Skalierungsmöglichkeiten beschreiben die Möglichkeiten, die Kubernetes im Kern bietet. Kubernetes ist jedoch leicht erweiterbar, wodurch auch Versionierung und Rollbacking über Helm, automatisches Deployment durch FluxCD und HTTP Routing über GatewayAPI abgedeckt sind. \textbf{TODO: POTENTIELLE SECRET-INJECTION MIT ESO} Da die Firma aktuell noch keine Forschung über Kubernetes außer dem Fakt, dass es existiert und die aktuelle Problemlage Lösen könnte, betrieben hat sollte dies meine Aufgabe werden. Das Ziel ist es, einen möglichst automatisch deploybares "Walking Skeleton" aus dem aktuellen Basisprojekt zu gestalten, und dabei die verschiedenen Funktionieren und Erweiterungen die Kubernetes liefert, zu analysieren und zu überprüfen, ob diese konkret für das Projekt Sinn machen. Darüber hinaus soll geprüft werden, inwieweit Kubernetes eine Integration von Windows-basierten Systemen ermöglicht und welche technischen Einschränkungen dabei bestehen.
|
|
|
|
Die gewonnenen Erkenntnisse dienen als Entscheidungsgrundlage für eine mögliche Migraton der bestehenden Systemarchitektur hin zu einer Kubernetes-basierten Lösung.
|
|
|
|
|
|
\section{Methodik}
|
|
|
|
|
|
|
|
\section{Erkenntnisse}
|
|
|
|
|
|
|
|
\section{Evaluation}
|
|
|
|
|
|
\section{Fazit}
|
|
|
|
|
|
|
|
\end{document}
|