Welcher Cloud-Service-Anbieter eignet sich besser zur Entwicklung beziehungsweise zum Betrieb von Anwendungen in der Cloud? Wie sind die Erfahrungen unserer Entwickler-Teams? Im Rahmen der Entwicklung unserer Anwendung „LEA“ zur Verwaltung von Mitarbeitern sowie der Portierung unserer bestehenden Anwendung „elVira“ haben wir uns mit der Entwicklung und dem Betrieb von Anwendungen in der Cloud beschäftigt.

Was ist LEA?

Die Anwendung „LEA“ (Live Employee Administration) soll das Erstellen und Exportieren von Mitarbeiterprofilen vereinfachen und vereinheitlichen. Über eine Oberfläche werden die Profildaten, wie Skills, Zertifizierungen und durchgeführte Projekte, erfasst und können anschließend in verschiedene Formate wie Word oder PDF im einheitlichen Look and Feel exportiert werden. Innerhalb der Entwicklung wurden mehrere Produkte aus den Amazon Web Services (AWS) eingesetzt. LEA sollte als eine AWS cloudnative Anwendung umgesetzt werden.

AWS Cloud Services (Anwendung LEA)

Für eine cloudnative Datenhaltung wurde als AWS-Produkt DynamoDB gewählt. Die Einrichtung über die AWS-Oberflächen hat sich für uns einfach und unkompliziert gestaltet. Von Vorteil war, dass innerhalb der LEA-Anwendung vom Frontend keine umfangreichen Einstellungen zur Integration nötig waren. Ein Nachteil war, dass die Performance als "Live-Datenbank" aus unbekannten Gründen nicht zufriedenstellend war. Dieses hat sich negativ auf den Kosten/Leistung-Faktor ausgewirkt.

Bewertung der in LEA eingesetzten AWS Cloud-Produkte

  • Lambda: Ein AWS-Lambda bildet die Schnittstelle zwischen der DynamoDB-Datenbank und dem AWS-API-Gateway.
    • Vorteile:
      • Schnittstelle und Logik können selbst bestimmt werden
    • Nachteile:
      • JavaScript-Kenntnisse notwendig, welche einigen Entwicklern fehlten
      • Debugging des JavaScript-Codes schwierig, da der Code in AWS liegt
      • Staging nur mit hohem Aufwand in der Konfiguration möglich
      • Großteil der Schnittstellen-Logik (Geschäftslogik) liegt direkt in Lambda
      • je nach Nutzverhalten stiegen die Kosten stark an
         
  • API-Gateway: Ein AWS-API-Gateway-Service wurde für LEA als Schnittstelle zwischen der DynamoDB-Datenbank und AWS-Lambda eingesetzt.
    • Vorteile:
      • Serverloser Zugriff
      • Schnelle und einfache Einrichtung dank der übersichtlich gestalteten Oberfläche von AWS
      • API konnte weitgehend mithilfe der AWS-Oberfläche konfiguriert werden
    • Nachteile:
      • Einige Fehlermeldungen waren nicht selbsterklärend
      • Staging der API nur mit hohem Konfigurationsaufwand möglich
         
  • Cognito: Der Einsatz von Cognito bildet eine Schnittstelle zur Authentifizierung von ITGAIN-Mitarbeitern. Da bereits ein Active Directory (AD) der Mitarbeiter innerhalb der Azure Cloud existiert, wurde der Cognito-Dienst mit diesem verbunden.
    • Vorteile:
      • Unkomplizierte Einrichtung der Azure AD als „Custom-Auth-Provider“ 
      • Einfache Nutzung der Cognito-API
    • Nachteile:
      • umständlich, einen weiteren Service in AWS betreiben zu müssen
      • direkte Anbindung mit dem ITGAIN AD ohne Cognito leider nicht möglich
         
  • EC2: Amazon Elastic Compute Cloud (Amazon EC2) stellt sichere, skalierbare Rechenkapazitäten in der Cloud bereit und wurde in LEA für die Bereitstellung und Verwaltung einer eigenen skalierbaren Serverinstanz verwendet.
    • Vorteile:
      • eigene VM kann eingerichtet werden, in die wahlfrei notwendige Programme und Skripte installiert werden können (jedoch sind hierfür entsprechende Linux-Kenntnisse notwendig)
      • viele Konfigurationsmöglichkeiten (insbesondere auch im Bereich der Security)
      • Serverinstanz liefert eine sehr gute Performance zu einem akzeptablen Preis
         
  • CodeCommit: CodeCommit wird als privates, sicheres und skalierbares Git-Repository verwendet.
    • Vorteile:
      • Schneller und einfacher Umstieg vom ITGAIN-internen Github-Repository, da im CodeCommit alle erwarteten Funktionen ebenso verfügbar sind

Der Einsatz der oben genannten Produkte wie DynamoDB, Lambda, API-Gateway und Cognito wurde später aufgrund der hier genannten Nachteile verworfen. Aktuell werden als alternative AppWrite (ein selbstgehosteter Backend-Server mit MariaDB, vorbereiteter/integrierter REST-API und Cloud Functions, sowie Berechtigungssystem) im Backend eingesetzt. Die AWS Produkte EC2 und CodeCommit werden aufgrund der überwiegend positiven Erfahrung weiterhin eingesetzt.

Die Architektur von LEA in der AWS Cloud

Anbei die Übersicht der verwendeten Architektur:

Im zweiten Teil unseres Vergleichs der Cloud-Service-Anbieter werden wir den Einsatz von elVira in Microsoft Azure bewerten. Welche Vor- und Nachteile bietet die Azure Cloud und welcher der beiden Anbieter konnte uns letztlich überzeugen? Bleibe dran, um unser Fazit zu erfahren.

Bei Fragen melde dich gerne über unser Kontaktformular oder unter more.about@itgain.de

Hier findest du den zweiten Teil dieser Blogserie

Neuen Kommentar schreiben

Ihre E-Mail Adresse wird nicht veröffentlicht.

NEUESTE BEITRÄGE

Lasst uns in die Snowflake abtauchen | Umzug eines DWH auf eine Snowflake - Teil 5
09.09.2022

Lasst uns in die Snowflake abtauchen | Umzug eines DWH auf eine Snowflake - Teil 5

Christian Hagen

In den ersten Teilen der Blogreihe haben wir beschrieben, wie du DataStage Jobs von (beispielweise) Oracle auf Snowflake umstellen kannst. In diesem Teil wollen wir uns auf Besonderheiten und Probleme stürzen, die bei einem Schwenk von Oracle zu Snowflake auftreten können und die sich als „Schätzchen“ in den Jobs und manuellem SQL verstecken können.

Data Engineering
ITGAIN UX UI
08.09.2022

Wie wir deinen Benutzer glücklich machen können

Lea Brauner

„UI is the sadle, the stirrups and the reins. UX is the feeling you get being able to ride the horse“, hat Dain Miller, ein Web Developer, einmal gesagt. In anderen Worten heißt das, dass man zwar ein User Interface braucht, um ein Programm oder eine Software zu bedienen, das aber noch nicht heißt, dass es mit diesem User Interface auch Spaß macht, die Software zu bedienen. Denn beim User Interface, der Benutzeroberfläche, handelt es sich lediglich um die Schnittstelle zwischen dem Benutzer und der Maschine, die ihn zum Ziel navigiert. Über die Optik oder Benutzbarkeit sagt das jedoch noch nichts aus.

Applications
Lasttests mit Shift-Left-Verschiebung
31.08.2022

Lasttests mit Shift-Left-Verschiebung

Sören Schmock

Lasttests gehören gemäß ISTQB® zu den nicht funktionalen Tests, mit denen Zeitverhalten, Ressourcenverbrauch, Stabilität und Skalierbarkeit einer Software oder Webseite (im folgenden „Anwendung“ genannt) überprüft werden. Der Lasttest wird durch Testspezialisten durchgeführt, um unter anderem zu bestimmen, ob die Anwendung einer erwarteten oder für die Zukunft geplanten Anzahl von Benutzern in der Performance (z. B. Anzeigegeschwindigkeit) noch Rechnung trägt. Schließlich möchte niemand auf die lange Rückmeldung einer Anwendung warten müssen.

Expertise