Entwicklung einer skalierbaren Webanwendung mit Amazon Web Services

Fallstudie Heraeus Kulzer

Christine Koppelt, Martin Eigenbrodt, Oliver Tigges

Gemeinsam mit Heraeus Kulzer hat innoQ eine Cloud-basierte Plattform für die Abwicklung von Beauftragungsprozessen im Dentalbereich entwickelt. In dieser Fallstudie stellen wir die Rahmenbedingungen und Anforderungen des Projektes vor und zeigen, wie die technische Lösung mittels Amazon Web Services aussieht.

Projekthintergrund

Heraeus Kulzer, ein international führendes Dentalunternehmen, möchte den Beauftragungsprozess zur Erstellung von Zahnersatz digitalisieren. Ein dazu neuentwickelter 3D-Scanner erfasst direkt in den Zahnkliniken die Gebissabdrücke der Patienten und schickt die Auftragsdaten über eine zentrale Internetplattform unmittelbar an ein Dentallabor. Dieses kann die eingehenden Aufträge in der neuen Web-Oberfläche der Plattform entgegennehmen und sofort mit der Herstellung der Restaurationen auf Basis des 3D-Modells beginnen.

Dieses Vorgehen vereinfacht die Abwicklung der Bestellung und Herstellung von Kronen und Brücken und macht den Produktionsprozess effizienter. Durch den neuen Service werden sowohl Kosten als auch Zeit eingespart. Zusätzliche manuelle Schritte, wie z. B. die Auftragsanlage, werden ebenso vereinfacht. Zahnärzte können jetzt die Abformungen selbst einscannen und als Auftrag mitsamt 3D-Modell elektronisch über die neue Plattform an das Labor schicken. So kann das Labor schon nach wenigen Minuten – anstatt nach Tagen – mit der Fertigung beginnen. Außerdem fällt der Versand der Gipsabdrücke weg, bei dem diese leicht kaputt gehen können. Zu guter Letzt ist der gesamte Prozess besser nachvollziehbar. Zum Start sollen der Scanner und die zugehörige Webapplikation zunächst in Nordamerika angeboten werden, mit der Option alles auch in weiteren Regionen auf den Markt zu bringen.

Ziele und Anforderungen

  • Die neue Anwendung soll für die unterschiedlichen Benutzergruppen im täglichen Einsatz intuitiv und effizient zu bedienen sein.
  • Die Anwendung soll sich für ein weltweites Rollout eignen.
  • Die Infrastruktur soll zukünftig auch von der internen IT-Abteilung bei Heraeus Kulzer betreut werden können.
  • Die Anwendung soll fachlich einfach erweiterbar und änderbar sein, falls sich nach der Markteinführung aufgrund von Kundenrückmeldungen Änderungswünsche ergeben.
  • Die Anwendung soll auf große, stark schwankende Datenmengen ausgelegt sein, da sich sowohl das Nutzerverhalten, wie auch die erzeugten Datenmengen nicht genau abschätzen ließen.

Technische Umsetzung

Aufgabe von innoQ war es, in enger Absprache mit Heraeus Kulzer, die eigenständige Konzeption und Realisierung der Anwendung bis zum Produktionsstart auf der Basis von AWS durchzuführen.

Die Umsetzung mittels Cloud-Infrastruktur entlastet die interne IT. Zudem wird so die kostengünstige Skalierbarkeit der Anwendung gewährleistet, da mit AWS die Nutzung verschiedener Rechenzentren ermöglicht wird, die direkt auf dem richtigen Kontinent des Zielmarktes sind. Für AWS sprach auch die einfache Internationalisierbarkeit des Angebots.

Um eine einfache Erweiterbarkeit und Nachvollziehbarkeit der Anwendung zu gewährleisten, haben wir uns für eine Realisierung mit Microservices und Spring Boot entschieden. Spring Boot ermöglicht es innoQ, schnell eine leichtgewichtige Webanwendung zu erstellen, die darüber hinaus gut für die Produktion in einem Cloud-Kontext vorbereitet ist. Die Microservices-Architektur versetzt Heraeus Kulzer in die Lage, in Zukunft relativ einfach zusätzliche Produkte/Services daneben zu stellen, die dann einfach integriert werden können, da sie Login, Benutzerverwaltung und Design wiederverwenden können.

Bei der Realisierung haben wir auf eine umfangreiche Testautomatisierung geachtet sowie eine Continuous-Delivery-Pipeline aufgebaut, um eine hohe Geschwindigkeit bei der Entwicklung und eine gleichbleibende Qualität der Software gewährleisten zu können. Jede Änderung an den Quelltexten bei GitHub startet bei Cloudbees einen Jenkins-Job, der die Software abruft, übersetzt, testet und in einer Staging-Umgebung bei AWS installiert.

Um die Skalierbarkeit der Anwendung nicht durch stateful Sessions zu gefährden, setzten wir auf Zustandslosigkeit und JSON Web Token (JWT). Die Microservices werden auf AWS-Beanstalk-Instanzen mit einem vorgeschalteten Load Balancer mit automatischer Skalierung installiert.

Für die Datenhaltung kommen AWS S3 und AWS RDS zum Einsatz. Um die Robustheit der Anwendung gegenüber den möglicherweise stark schwankenden Datenmengen zu erhöhen, werden die Daten der 3D-Scans in AWS S3 gespeichert und auch direkt von dort wieder heruntergeladen. Für den Versand von Systembenachrichtigungen via E-Mail kommt AWS SES, der E-Mail-Dienst von Amazon, zum Einsatz.

Um die AWS-Infrastruktur für das Betriebsteam nachvollziehbar und handhabbar zu machen, haben wir das Setup der Infrastruktur mittels AWS Cloudformation Templates automatisiert. Dies umfasst auch den Einsatz einer AWS VPC mit verschiedenen Subnetzen, um die Anwendung auf Netzwerkebene abzusichern.

Besonderheiten und Herausforderungen während des Projekts

  • Hohe und stark schwankende Last
  • Zu Spitzenzeiten müssen mehrere Gigabyte pro Stunde an Modelldaten entgegengenommen und sicher gespeichert werden
  • Die Anzahl der Server wird deswegen hochdynamisch an die jeweilige Last angepasst („autoscaling“)
  • Aufbau / Umstrukturierung der Betriebsorganisation
  • Konzepte und Methoden für Backup und Restore
  • Monitoring und Überwachung
  • Manuelle Eingriffe in das System sollen weitestgehend vermieden werden, alles wird automatisiert

Ergebnisse

Die Markteinführung neuer Produkte ist immer risikobehaftet und erfordert die Fähigkeit, flexibel auf aktuelle Marktanforderungen reagieren zu können. Bei Softwareanwendungen betrifft das sowohl den fachlichen Funktionsumfang einer Anwendung, als auch ihre technische Skalierbarkeit. Die Microservice-basierte, zustandslose Anwendungsarchitektur des neuen Produktes in Verbindung mit verschiedenen AWS-Diensten ermöglicht beides, ohne dass dafür langfristige finanzielle Verpflichtungen eingegangen werden müssen.

Testimonial von Heraeus Kulzer

innoQ im Projekt

  • innoQ stellte ein Projektteam bestehend aus Software-Entwicklern, Web-Designern und Cloud-Engineers
  • Übernahme von Konzeption, Architektur, Technologie-Auswahl und vollständige Umsetzung des Services
  • Unterstützung und Beratung des Kunden bei Konfiguration und Aufbau von Netzwerken und Betriebsumgebung
  • Expertise zu AWS: Auswahl und Einsatz sinnvoller Produkte, Automatisierung des Aufsetzens von Betriebsumgebungen
  • Konzeption einer ausbaufähigen und flexiblen Microservices-Architektur mit Testautomatisierung und Continuous-Delivery-Pipeline

Ein PDF der Fallstudie zu diesem Projekt können Sie hier herunterladen

Thumb staff member default

Christine Koppelt ist Senior Consultant bei der innoQ Deutschland GmbH. Ihre Schwerpunkte sind Architektur und Entwicklung von Webanwendungen mit Java und Scala.

More content

Thumb martin quadrat

Martin Eigenbrodt is a senior consultant for software architecture and engineering at innoQ. He has many years of experience in building software for the JVM. He focuses on design and implementation of RESTful architectures, Continuous Delivery and modern languages.

More content

Thumb dsc01893

Oliver Tigges is a Principal Consultant at innoQ. He has more than fifteen years experience in development and architecture of web applications and distributed enterprise applications. Currently, his particular fields of interest include DevOps, Continuous Delivery and Cloud architectures. You can follow him on Twitter via @otigges.

More content

Comments

Please accept our cookie agreement to see full comments functionality. Read more