Einführung
Die digitale Transformation deckt jedes Jahr immer mehr verschiedene Lebens- und Geschäftsbereiche ab. Wenn ein Unternehmen wettbewerbsfähig sein möchte, reichen regelmäßige Informationsseiten nicht mehr aus. Es werden mobile und Webanwendungen benötigt, die nicht nur Informationen für Benutzer bereitstellen, sondern Ihnen auch die Ausführung einer Funktion ermöglichen: Empfangen oder Bestellen von Waren und Dienstleistungen, Bereitstellen von Tools.

So reicht es beispielsweise für moderne Banken nicht aus, eine Website mit Informationen zu haben. Sie benötigen Online-Tools für Ihre Kunden, ein persönliches Konto, über das der Benutzer Konten, Investitionen und Kredite verwalten kann. Selbst kleine Unternehmen benötigen praktische Tools wie einen Termin mit einem Arzt oder Friseur, die Buchung eines Tisches in einem Restaurant oder einem Kinderspielzimmer zum Geburtstag, um die Conversion zu steigern.
Und die Eigentümer selbst müssen zeitnahe Informationen in einer bequemen Form erhalten, die dem Zustand ihres Unternehmens entspricht, beispielsweise die Erfassung statistischer Daten und Analysen für verschiedene Produktionsabteilungen oder die Produktivität der Abteilungen. Oft sammelt jede Abteilung diese Daten auf ihre eigene Weise und kann sogar verschiedene Tools verwenden. Der Eigentümer muss viel persönliche Zeit aufwenden, um alles herauszufinden, indirekt oder direkt. Dies kann die Effizienz des Unternehmens und letztendlich seinen Gewinn beeinträchtigen. Hier helfen auch die digitale Transformation und die Entwicklung von Web- oder mobilen Anwendungen.
Technologien stehen nicht still und entwickeln sich ständig weiter. Was sie vor einigen Jahren verwendet haben, ist heute möglicherweise nicht relevant, oder was sie vor einigen Jahren nicht konnten, ist Realität geworden. Es gibt modernere Tools, mit denen Web- und mobile Anwendungen schneller und besser erstellt werden können. Basierend auf persönlichen Beobachtungen und Erfahrungen möchte ich meine Vision darüber teilen, welche der Technologien und Tools in naher Zukunft gefragt sein werden und warum Sie sie bei der Erstellung einer modernen Webanwendung berücksichtigen sollten.
Einzelseitenanwendung
Definieren wir eine kleine Terminologie. Single Page Application (SPA) ist eine Webanwendung, deren Komponenten einmal auf einer Seite geladen werden und deren Inhalt nach Bedarf hochgeladen wird. Beim Wechseln zwischen Abschnitten der Anwendung wird die Seite nicht vollständig neu geladen, sondern nur die Daten werden geladen und die erforderlichen Daten werden angezeigt.
Einseitige Anwendungen übertreffen klassische Webanwendungen in Bezug auf Geschwindigkeit und Benutzerfreundlichkeit. Mit SPA können Sie den Effekt der Website als Desktop-Anwendung ohne Neustart und erhebliche Verzögerungen erzielen.
Wenn vor einigen Jahren einseitige Anwendungen die Suchmaschinenoptimierung praktisch nicht unterstützten und hauptsächlich zum Erstellen persönlicher Dashboards und eines Admin-Panels verwendet wurden, ist es heute viel einfacher, eine einseitige Anwendung mit vollständiger Unterstützung für die Suchmaschinenoptimierung (SEO) zu erstellen. Bei Verwendung von einseitigen Anwendungen mit Server-Rendering ist dieses Problem heute vollständig verschwunden. Mit anderen Worten, dies ist dieselbe einseitige Anwendung, aber bei der ersten Anforderung generiert der Server nicht nur Daten, sondern erstellt eine Seite, auf der HTML angezeigt werden kann, und Suchmaschinen erhalten fertige Seiten mit allen Metainformationen und semantischen Markups.
Mit der Entwicklung von Tools zum Erstellen clientseitiger Webanwendungen wird die Entwicklung und der Übergang zu einseitigen Anwendungen in diesem und den folgenden Jahren nur noch zunehmen. Wenn Sie eine alte Anwendung haben, die veraltet ist und langsam ausgeführt wird, und selbst beim vollständigen Wechseln der Seiten beim Wechseln zwischen Abschnitten, können Sie dieses Jahr sicher auf eine schnelle einseitige Anwendung aktualisieren - jetzt ist ein guter Zeitpunkt. Dank der Technologien können Sie dies bereits recht schnell und effizient tun.
Eine moderne und schnelle Website ist sehr gut, aber ich möchte Ihnen ehrlich sagen: Nicht alle Anwendungen können einfach in einseitige konvertiert werden, und der Übergang kann teuer sein! Daher müssen Sie verstehen, wer diesen Übergang benötigt und warum.
Zum besseren Verständnis werde ich in der folgenden Tabelle einige Beispiele nennen, wann die Entwicklung oder der Übergang zu SPA angemessen und gerechtfertigt ist und wann nicht.
Progressive Webanwendungen
Progressive Webanwendungen sind ein Produkt der gemeinsamen Entwicklung einer nativen Anwendung und einer Website. Tatsächlich handelt es sich um eine Webanwendung, die wie eine echte native Anwendung aussieht und sich verhält, Push-Benachrichtigungen empfangen, offline arbeiten usw. kann. In diesem Fall muss der Benutzer die Anwendung nicht aus dem AppStore oder Google Play herunterladen, sondern einfach auf dem Desktop speichern.
Als Technologie- oder Entwicklungsansatz entwickelt sich PWA seit 2015 und erfreut sich in jüngster Zeit auch im E-Commerce-Bereich enormer Beliebtheit.
Einige Beispiele aus dem wirklichen Leben:
- Im vergangenen Jahr konnte das Best Western River North Hotel nach dem Start einer neuen PWA-fähigen Website den Umsatz um 300% steigern.
- Arabisch Avito OpenSooq.com konnte nach dem Erstellen von Support für PWA auf seiner Website die Zeit für den Besuch der Website um 25% und die Anzahl der Leads um 260% erhöhen.
- Der bekannte Dating-Dienst Tinder konnte die Download-Geschwindigkeit durch die Entwicklung von PWA von 11,91 auf 4,69 Sekunden reduzieren. Darüber hinaus wiegt die Anwendung 90% weniger als das native Android-Gegenstück.
Die Tatsache, dass eine der größten Engines für die Erstellung von E-Commerce-Projekten, Magento, 2018 eine frühe Entwicklungsversion von PWA Studio herausgebracht hat, zeigt auch, dass es sich lohnt, auf diese Technologie zu achten. Die Plattform ermöglicht es "out of the box", ein auf React basierendes Frontend für seine E-Commerce-Lösungen mit PWA-Unterstützung zu erstellen.
Ratschläge für diejenigen, die bereits ein Internetprojekt oder nur die Idee eines neuen Dienstes mit Unterstützung für mobile Geräte haben: Beeilen Sie sich nicht, eine vollwertige native Anwendung zu schreiben, sondern schauen Sie sich zunächst die PWA-Technologie an. Vielleicht ist dies die beste Preis-Leistungs-Verhältnis-Lösung für Ihr Produkt.
Ein bisschen Übung. Um eine einfache native mobile Nachrichtenanwendung zu erstellen, werden für jede Plattform ungefähr 200 bis 300 Mannstunden benötigt, sofern bereits ein vorgefertigter REST-Server vorhanden ist. Bei einem durchschnittlichen Marktpreis pro Entwicklungsstunde von 1.500 bis 2.000 Rubel pro Stunde kann eine Anwendung etwa 1 Million Rubel kosten. Wenn Sie eine Webanwendung mit vollständiger Unterstützung für PWA entwickeln: Push-Benachrichtigungen, Offline-Modus und andere Extras, dauert die Entwicklung 200 bis 300 Mannstunden, aber das Produkt ist sofort auf allen Plattformen verfügbar. Das heißt, Sie sparen ungefähr zweimal, ganz zu schweigen von der Tatsache, dass Sie keine Gebühren zahlen müssen, um in Anwendungsspeichern platziert zu werden.
Serverlos
Dies ist ein weiterer moderner Entwicklungsansatz. Aufgrund des Namens denken viele Leute, dass dies eine wirklich serverlose Entwicklung ist, Sie müssen keinen Back-End-Code schreiben, und jeder Front-End-Entwickler kann eine vollwertige Webanwendung erstellen. Aber das ist nicht so!
Beim Erstellen einer serverlosen Anwendung wird der Server weiterhin benötigt, ebenso wie die Datenbanken. Der Hauptunterschied zwischen diesem Ansatz besteht darin, dass der Back-End-Code in Form von Cloud-Funktionen dargestellt wird (ein anderer Name für serverlos ist FaaS, fungiert als Dienst oder Functions-as-a-Service) und eine schnelle und einfache Skalierung der Anwendung ermöglicht. Beim Erstellen einer solchen Anwendung konzentriert sich der Entwickler möglicherweise auf Geschäftsaufgaben und denkt nicht an die Skalierung und Konfiguration der Infrastruktur, wodurch die Anwendungsentwicklung beschleunigt und die Kosten gesenkt werden. Darüber hinaus hilft der Ansatz ohne Server, Serververmietung einzusparen, da genau so viele Ressourcen benötigt werden, wie zum Ausführen der Aufgabe erforderlich sind. Wenn keine Last vorhanden ist, wird die Serverzeit überhaupt nicht verwendet und nicht bezahlt.
Beispielsweise konnte das große amerikanische Medienunternehmen Bustle beim Wechsel zu Serverless die Hosting-Kosten um mehr als 60% senken. Während Coca-Cola ein automatisiertes System für den Verkauf von Getränken über Verkaufsautomaten entwickelte, konnte es die Hosting-Kosten durch den Wechsel zu Serverless von 13.000 USD auf 4.500 USD pro Jahr senken.
In den letzten Jahren wurde Serverless aufgrund seiner Neuheit und Einschränkungen hauptsächlich für kleine Projekte, Startups und MVPs verwendet. Dank der Weiterentwicklung der Software, der Vielseitigkeit und Leistungsfähigkeit der Servercontainerisierung werden heute Tools angezeigt, mit denen Sie Einschränkungen beseitigen, die Entwicklung von Cloud-Anwendungen vereinfachen und beschleunigen können .
Dies bedeutet, dass Unternehmensgeschäftsszenarien, in denen ein Cloud-Upgrade bisher als unmöglich galt (z. B. für Peripheriegeräte, übertragene Daten oder zustandsbehaftete Anwendungen), nun Realität sind. Gute vielversprechende Tools sind kNative und Serverless Enterprise.
Bei alledem ist Serverless kein Patentrezept für die Entwicklung von Webanwendungen. Wie jede andere Technologie hat sie ihre eigenen Vor- und Nachteile, und Sie müssen dieses Werkzeug mit Verständnis auswählen und „Nägel nicht mit einem Mikroskop einschlagen“, nur weil es technologisch weiter fortgeschritten ist.
Im Folgenden finden Sie einige Beispiele, bei denen Sie bei der Entwicklung eines neuen oder der Verbesserung eines vorhandenen Webdienstes an Serverless denken sollten:
- Wenn der Server regelmäßig belastet wird und Sie für die Leerlaufkapazität bezahlen. Zum Beispiel hatten wir einen Kunden mit einem Netzwerk von Kaffeemaschinen, und es war notwendig, Anfragen zu verarbeiten und Statistiken nur einige hundert oder tausend Mal am Tag zu sammeln, und nachts sank die Anzahl der Anfragen auf mehrere zehn. In diesem Fall ist es viel effizienter, nur für den tatsächlichen Ressourcenverbrauch zu bezahlen. Daher haben wir die Lösung für Serverless vorgeschlagen und implementiert.
- Wenn Sie nicht vorhaben, in die technischen Details der Infrastruktur einzutauchen und die Konfiguration und den Support von Servern und Balancer zu überbezahlen. Wenn Sie beispielsweise einen Marktplatz entwickeln, wissen Sie nicht genau, wie hoch der Datenverkehr sein wird, oder umgekehrt. Sie planen viel Datenverkehr, damit Ihre Anwendung der Last standhält. Serverless ist eine ausgezeichnete Wahl.
- Wenn im Betrieb der Hauptanwendung einige Streaming-Ereignisse ausgeführt werden müssen, schreiben Sie Seitendaten in Tabellen und führen Sie einige Berechnungen durch. Um beispielsweise Analysedaten von Benutzeraktionen zu erfassen, verarbeiten Sie diese auf eine bestimmte Weise und speichern Sie sie in einer Datenbank.
- Wenn Sie die aktuelle Anwendung vereinfachen, vereinheitlichen oder beschleunigen müssen. Zum Beispiel, um leistungsverbessernde Dienste für die Arbeit mit Bildern oder Videos zu erstellen, wenn ein Benutzer Videos in die Cloud hochlädt und eine separate Funktion an der Transcodierung beteiligt ist, während der Hauptserver wie gewohnt weiterarbeitet.
Wenn Sie Ereignisse von Diensten von Drittanbietern verarbeiten müssen. Verarbeiten Sie beispielsweise Antworten von Zahlungssystemen oder leiten Sie Benutzerdaten an CRM um, um die Verarbeitung von Anfragen potenzieller Kunden zu beschleunigen
Wenn Sie eine große Anwendung haben und einige Teile der Anwendung optimaler implementiert werden können, verwenden Sie eine andere Sprache als die Hauptsprache. Sie haben beispielsweise ein Java-Projekt und müssen neue Funktionen hinzufügen, aber es gibt keine freien Hände. In dieser Sprache kann die Implementierung länger dauern und es gibt bereits eine Lösung in einer anderen Sprache. Dann kann Serverless dabei helfen.
Dies ist nicht die gesamte Liste der Tools und Technologien, die Aufmerksamkeit verdienen. Ich habe nur mitgeteilt, was wir selbst jeden Tag in unserer Arbeit verwenden und genau wissen, wie sie dem Geschäft helfen können.