Einführung
Die digitale Transformation erfasst mit jedem Jahr zunehmend verschiedene Bereiche des Lebens und der Geschäftswelt. Um wettbewerbsfähig zu bleiben, ist es für Unternehmen nicht mehr ausreichend, nur einfache Informationswebsites anzubieten. Es sind mobile und Webanwendungen erforderlich, die den Nutzern nicht nur Informationen bereitstellen, sondern ihnen auch ermöglichen, verschiedene Funktionen auszuführen: Waren und Dienstleistungen zu erhalten oder zu bestellen sowie Werkzeuge bereitzustellen.

Moderne Banken beispielsweise sind nicht mehr damit zufrieden, nur eine Informationswebsite zu haben; sie benötigen Online-Tools für ihre Kunden, ein Online-Portal, in dem Nutzer ihre Konten, Investitionen und Kredite verwalten können. Selbst kleine Unternehmen benötigen, um die Konversion zu steigern, benutzerfreundliche Werkzeuge, wie die Möglichkeit, einen Arzt- oder Friseurtermin zu vereinbaren, oder eine Tischreservierung in einem Restaurant oder einen Spielraum für Geburtstagsfeiern.
Auch die Eigentümer müssen rechtzeitig Informationen in einer praktischen Form über den Zustand ihres Unternehmens erhalten, zum Beispiel die Sammlung von Statistiken und Analysen zu verschiedenen Produktionsabteilungen oder deren Leistungsfähigkeit. Häufig sammelt jede Abteilung diese Daten auf ihre eigene Weise und kann sogar unterschiedliche Tools verwenden. Dadurch muss der Eigentümer viel persönliche Zeit aufwenden, um sich in diesem Bereich zurechtzufinden, was sich indirekt oder direkt auf die Effizienz des Unternehmens und letztlich auf den Gewinn auswirken kann. Hier kann auch die digitale Transformation helfen, etwa durch die Entwicklung von Web- oder mobilen Anwendungen.
Die Technologien entwickeln sich ständig weiter, und das, was vor einigen Jahren verwendet wurde, kann heute bereits veraltet sein. Es gibt mittlerweile viele moderne Werkzeuge, die helfen, Web- und mobile Anwendungen schneller und qualitativ hochwertiger zu erstellen. Basierend auf meinen persönlichen Beobachtungen und Erfahrungen möchte ich meine Sichtweise darüber teilen, welche Technologien und Werkzeuge in naher Zukunft gefragt sein werden und warum es sich lohnt, bei der Entwicklung einer modernen Webanwendung darauf zu achten.
Single Page Application (Einseitige Anwendungen)
Lassen Sie uns ein wenig über die Terminologie sprechen. Eine Single Page Application (SPA) ist eine Webanwendung, deren Komponenten einmalig auf einer Seite geladen werden, während der Inhalt bei Bedarf nachgeladen wird. Beim Wechsel zwischen den Abschnitten der Anwendung wird die Seite nicht vollständig neu geladen, sondern es werden lediglich die notwendigen Daten nachgeladen und angezeigt.
Einseitige Anwendungen überzeugen durch ihre Geschwindigkeit und Benutzerfreundlichkeit im Vergleich zu klassischen Webanwendungen. Mit SPA erreichen Sie den Effekt einer Website, die wie eine Desktop-Anwendung funktioniert, ohne Reloads und wesentliche Verzögerungen.
Während vor einigen Jahren einseitige Anwendungen kaum für die Suchmaschinenoptimierung (SEO) geeignet waren und hauptsächlich für persönliche Dashboards und Administrationspanels verwendet wurden, ist es heute viel einfacher, eine einseitige Anwendung zu erstellen, die vollständig suchmaschinenoptimiert ist. Mit einseitigen Anwendungen, die serverseitig gerendert werden, hat sich dieses Problem vollständig gelöst. Anders ausgedrückt: Es ist dasselbe einseitige Anwendung, aber bei der ersten Anfrage generiert der Server nicht nur Daten, sondern erstellt eine für die Anzeige bereitstehende HTML-Seite, sodass Suchmaschinen vollständige Seiten mit allen Meta-Informationen und semantischen Markierungen erhalten.
Mit der Entwicklung von Tools zur Erstellung von Kundenwebanwendungen wird die Entwicklung und der Übergang zu Single Page Applications (SPA) in diesem und den kommenden Jahren weiter zunehmen. Wenn Sie eine ältere Anwendung haben, die technisch veraltet ist und langsam läuft, dazu noch eine vollständige Seitenneu ladung bei Wechseln zwischen den Bereichen benötigt, ist jetzt der ideale Zeitpunkt für ein Upgrade auf eine schnelle Single Page Application – die Technologien ermöglichen es, dies schnell und qualitativ hochwertig umzusetzen.
Es ist großartig, eine moderne und schnelle Website zu haben, aber ich muss Ihnen ehrlich mitteilen: Nicht alle Anwendungen lassen sich leicht auf eine Single Page Application umstellen, und der Übergang kann kostspielig sein! Daher ist es wichtig zu verstehen, wem und warum dieser Übergang nützt.
Um Ihnen zu helfen, die Übersicht zu behalten, habe ich in der folgenden Tabelle einige Beispiele zusammengestellt, wann die Entwicklung oder der Übergang zu einer SPA sinnvoll und gerechtfertigt ist und wann nicht.
ZA
Wenn Sie eine moderne, schnelle Anwendung erstellen möchten, die nicht nur über die Web-Version, sondern auch über mobile oder sogar Desktop-Varianten verfügt und alle Prozesse sowie Berechnungen auf einem Remote- oder Cloud-Server stattfinden, sodass alle Kunden über eine einheitliche Benutzeroberfläche interagieren können, ohne jedes Mal den Servercode anpassen zu müssen, wenn ein neuer Kunde hinzugefügt wird.
Beispielsweise: soziale Netzwerke, Aggregatoren, SaaS-Plattformen (Software als Cloud-Dienst), Marktplätze.
Wenn Sie einen Online-Shop oder Webservice haben, wissen Sie, dass dieser langsam ist und Kunden abspringen. Sie möchten ihn schneller machen, erkennen den Wert Ihrer Kunden und sind bereit, für ein Upgrade ab einer Million Rubel zu zahlen.
Sie haben eine mobile Anwendung, die die API der Website nutzt, während die Website langsam ist und bei jedem Seitenwechsel den kompletten Inhalt neu lädt.
GEGEN
Wenn Ihre Zielgruppe keine modernen Browser und Geräte verwendet.
Beispielsweise spezifische Unternehmensbereiche, wie die Entwicklung interner Systeme für Banken, medizinische Einrichtungen und Bildungswesen.
Sie führen Ihr Hauptgeschäft offline und sind nicht bereit, irgendwelche Online-Dienste anzubieten, und müssen einfach Kunden anziehen.
Wenn Sie einen Online-Shop oder einen Webdienst haben, der bereits gut verkauft, sehen Sie weder Abwanderung von Kunden noch Beschwerden.
Wenn Sie eine funktionierende Anwendung haben, die sich nicht für SPA anpassen lässt und die einfach von Grund auf neu geschrieben werden muss, und Sie nicht bereit sind, dafür mehrere Millionen auszugeben.
Beispielsweise: Sie haben eine fertige Website oder einen selbstgeschriebenen, alten, monolithischen Code.
Progressive Web-Apps
Progressive Webanwendungen (PWA) sind das Produkt einer gemeinsamen Evolution von nativen Anwendungen und Websites. Im Grunde handelt es sich um eine Webanwendung, die aussieht und sich verhält wie eine echte native Anwendung, Push-Benachrichtigungen empfangen kann, offline funktioniert usw. Dabei muss der Benutzer die Anwendung nicht aus dem App Store oder Google Play herunterladen, sondern kann sie einfach auf dem Desktop speichern.
Da sich die Technologie oder der Ansatz zur Entwicklung von PWAs seit 2015 entwickelt und in letzter Zeit in der E-Commerce-Branche enorm an Beliebtheit gewonnen hat.
Einige echte Beispiele aus der Praxis:
- Im letzten Jahr konnte das Hotel Best Western River North, nachdem es eine neue PWA-fähige Website gestartet hatte, seinen Umsatz um 300 % steigern.
- Die arabische Plattform OpenSooq.com hat nach der Einführung der PWA-Unterstützung auf ihrer Website die Verweildauer um 25 % und die Anzahl der Leads um 260 % erhöht.
- Der bekannte Dating-Dienst Tinder konnte die Ladezeit von 11,91 s auf 4,69 s reduzieren, indem er eine PWA entwickelt hat; zudem wiegt die App 90 % weniger als ihr nativ entwickelter Android-Vorgänger.
Ein weiterer Hinweis auf die Bedeutung dieser Technologie ist die Tatsache, dass einer der größten E-Commerce-Engines, Magento, im Jahr 2018 eine frühe Entwicklerversion von PWA Studio veröffentlicht hat. Die Plattform ermöglicht es, Frontends auf Basis von React für E-Commerce-Lösungen mit PWA-Unterstützung "Out-of-the-Box" zu erstellen.
Ein Ratschlag für diejenigen, die bereits ein Internetprojekt haben oder nur eine Idee für einen neuen service mit mobiler Unterstützung: Haben Sie Geduld mit der Entwicklung einer vollwertigen nativen Anwendung und werfen Sie zuerst einen Blick auf die PWA-Technologie. Möglicherweise ist dies die beste Lösung im Hinblick auf Preis und Qualität für Ihr Produkt.
Einige praxisnahe Einblicke. Um eine einfache native mobile Nachrichten-App zu erstellen, vorausgesetzt es gibt bereits einen funktionierenden REST-Server, sind etwa 200-300 Person-Stunden für jede Plattform erforderlich. Bei einem durchschnittlichen Stundensatz von 1500-2000 Rubel pro Stunde, könnte die App etwa 1 Million Rubel kosten. Wenn Sie eine Webanwendung mit vollständiger PWA-Unterstützung entwickeln: mit Push-Benachrichtigungen, Offline-Modus und weiteren Funktionen, benötigt die Entwicklung ebenfalls 200-300 Person-Stunden, aber das Produkt ist sofort auf allen Plattformen verfügbar. Das bedeutet eine Ersparnis von etwa 50%, ganz zu schweigen davon, dass keine Gebühren für die Veröffentlichung in den App-Stores anfallen.
Serverless
Dies ist ein weiterer moderner Ansatz in der Entwicklung. Viele denken aufgrund des Namens, dass es sich tatsächlich um eine serverlose Entwicklung handelt, dass kein Back-End-Code geschrieben werden muss und jeder Front-End-Entwickler eine vollwertige Webanwendung erstellen kann. Aber das ist nicht der Fall!
Bei der Erstellung einer Serverless-Anwendung wird weiterhin ein Server benötigt, ebenso wie eine Datenbank. Der wesentliche Unterschied bei diesem Ansatz besteht darin, dass der Backend-Code in Form von Cloud-Funktionen vorliegt (ein weiterer Begriff für serverless ist FaaS, also Funktionen als Dienst). Dies ermöglicht eine schnelle und unkomplizierte Skalierung der Anwendung. Entwickler können sich beim Erstellen einer solchen Anwendung voll und ganz auf geschäftliche Anforderungen konzentrieren, ohne sich Gedanken über Skalierung und Infrastrukturmanagement machen zu müssen, was die Anwendungsentwicklung beschleunigt und die Kosten senkt. Darüber hinaus hilft der Serverless-Ansatz, Mietkosten zu sparen Server, da er genau die Ressourcen nutzt, die zur Ausführung der Aufgabe erforderlich sind. Bei fehlender Auslastung wird keine Serverzeit verbraucht und auch nicht in Rechnung gestellt.
Beispielsweise konnte das große amerikanische Medienunternehmen Bustle seine Ausgaben um und sogar mehr als 60 % reduzieren, als es auf Serverless umgestiegen ist. Auch das Unternehmen Coca-Cola konnte bei der Entwicklung eines automatisierten Getränkeverkaufsystems seine Hosting-Kosten von 13.000 $ auf 4.500 $ pro Jahr senken, indem es auf Serverless umgestiegen ist.
In den letzten Jahren wurde Serverless hauptsächlich aufgrund seiner Neuheit und Einschränkungen für kleinere Projekte, Startups und MVPs genutzt. Doch heute, dank der Weiterentwicklung der Software, der Vielseitigkeit und der Leistungsfähigkeit der Servercontainerisierung, entstehen Werkzeuge, die diese Einschränkungen beseitigen und die Entwicklung von Cloud-Anwendungen vereinfachen und beschleunigen.
Das bedeutet, dass Unternehmensgeschäftsszenarien, in denen Cloud-Modernisierung zuvor als unmöglich galt (zum Beispiel für IoT-Geräte, Datenübertragungen oder zustandsbehaftete Anwendungen), nun Realität sind. Zu den vielversprechendsten Werkzeugen gehören kNative und Serverless Enterprise.
Dennoch ist Serverless keine universelle Lösung für die Entwicklung von Webanwendungen. Wie jede andere Technologie hat sie ihre Vor- und Nachteile, und es ist wichtig, dieses Werkzeug mit Bedacht auszuwählen und nicht "mit dem Mikroskop Nägel zu schlagen", nur weil es technologisch überlegener erscheint.
Um Ihnen zu helfen, hier einige Beispiele, wann Sie über Serverless nachdenken sollten, wenn Sie einen neuen Webservice entwickeln oder einen bestehenden verbessern:
- Wenn die Serverlast sporadisch ist und Sie für die ungenutzten Kapazitäten bezahlen. Ein Beispiel: Ein Kunde hatte ein Netzwerk von Kaffeeautomaten, das nur wenige hundert oder tausend Anfragen pro Tag verarbeiten musste, während die Anzahl der Anfragen nachts auf einige Dutzend fiel. In diesem Fall ist es viel effizienter, nur für die tatsächliche Nutzung der Ressourcen zu zahlen. Daher haben wir eine Serverless-Lösung vorgeschlagen und implementiert;
- Wenn Sie nicht in die technischen Details der Infrastruktur eintauchen und nicht für die Einrichtung und Wartung von Servern und Lastverteilern überbezahlen möchten. Wenn Sie beispielsweise einen Marktplatz entwickeln und sich nicht sicher sind, wie hoch die Besucherzahlen sein werden oder wenn Sie eine hohe Besucherzahl planen und sicherstellen möchten, dass Ihre Anwendung die Last problemlos bewältigen kann, ist Serverless eine ausgezeichnete Wahl.
- Wenn wichtige Streaming-Ereignisse im Hauptanwendungsbetrieb erforderlich sind, um Nebeninformationen in Tabellen zu speichern oder Berechnungen durchzuführen. Zum Beispiel, um analytische Daten zum Nutzerverhalten zu sammeln, diese auf bestimmte Weise zu verarbeiten und in einer Datenbank zu speichern;
- Wenn es notwendig ist, die aktuelle Anwendungsarbeit zu vereinfachen, zu vereinheitlichen oder zu beschleunigen. Zum Beispiel, Leistungsverbesserungsdienste für die Verarbeitung von Bildern oder Videos zu schaffen, wenn ein Benutzer ein Video in die Cloud hochlädt und die Transkodierung von einer separaten Funktion übernommen wird, während der Hauptserver weiterhin im Normalbetrieb arbeitet.
Wenn es notwendig ist, Ereignisse von externen Diensten zu verarbeiten. Zum Beispiel, Antworten von Zahlungssystemen zu bearbeiten oder Benutzerdaten zur schnelleren Bearbeitung von Anfragen potenzieller Kunden an ein CRM weiterzuleiten.
Wenn Sie eine große Anwendung haben und einige Teile der Anwendung effektiver in einer anderen Sprache umgesetzt werden können, kann das sehr vorteilhaft sein. Zum Beispiel, wenn Ihr Projekt in Java ist und Sie neue Funktionen hinzufügen möchten, aber keine Ressourcen verfügbar sind, oder die Umsetzung in der aktuellen Sprache viel Zeit in Anspruch nehmen würde, während eine Lösung in einer anderen Sprache bereits existiert, kann Serverless hier eine Lösung bieten.
Dies ist bei weitem nicht die vollständige Liste von Tools und Technologien, die es wert sind, beachtet zu werden. Ich teile nur das, was wir täglich in unserer Arbeit verwenden und genau wissen, wie es Unternehmen helfen kann.
Quelle: habr.com
