Migrieren einer Grails-Anwendung zu Scala Play / Spray

12

Wir haben eine mittelgroße Grails-Webanwendung mit GORM / Hibernate über PostgreSQL und GSPs, die HTML liefern, sowie einige REST-APIs. Wir standardisieren uns für Scala und möchten diese Anwendung mit Slick auf Play oder Spray migrieren, um auf die vorhandene Datenbank zuzugreifen.

Nimble wird derzeit für Authentifizierung / Autorisierung und Benutzer / Rolle / etc. Verwendet. Verwaltung.

Welche Ansätze können wir verfolgen, um die Migration Schritt für Schritt durchzuführen und eine Big-Bang-Migration zu vermeiden?

Sie sind beide JVM-Sprachen. Gibt es eine Möglichkeit, zu vermeiden, dass sie als separate Webanwendungen behandelt werden, die auf getrennten Ports zu marktüblichen Bedingungen ausgeführt werden?

John M
quelle
Spaß mit Projektnamen, aber ein vernünftiger Ansatz könnte darin bestehen, einen Anwendungs-Proxy zu verwenden, um einen einzelnen Namespace bereitzustellen. Eine andere Möglichkeit besteht darin, sie als separate WAR-Dateien in einem Webcontainer wie Tomcat auszuführen. Ich habe Grails oder Scala nicht gemacht, aber wenn die Web-APIs ein Wrapper um Java-Servlets sind, dann sind Sie goldrichtig. Wenn nicht, müssen Sie den App-Proxy verwenden, um die separaten Ports usw. zu verbergen.
Berin Loritsch

Antworten:

1

Persönlich klingt ein Umschreiben für mich effizienter, aber wenn Sie es schrittweise tun müssen, würde ich vorschlagen, dass Sie den folgenden Ansatz wählen:

  • Verschieben Sie Ihren vorhandenen Datenbankcode, um Slick zu verwenden (wahrscheinlich benötigen Sie Wrapper, um Ihren vorhandenen Code vor zu vielen Änderungen zu schützen).
  • Integrieren Sie anschließend Play in Ihre Laufzeitumgebung und verwenden Sie Silhouette für die Authentifizierung und Autorisierung mit Play Actions.
  • Sie sollten dann in der Lage sein, einzelne GSPs nacheinander zu Play / Twirl zu verschieben.

Leider kenne ich keine Möglichkeit, sie dazu zu bringen, denselben Port abzuhören, sodass Sie von Grails zum Play-Port umleiten müssten, um eine nahtlose Wiedergabe zu gewährleisten.

rspencer
quelle