Memigrasi aplikasi Grails ke Scala Play / Spray


12

Kami memiliki aplikasi web Grails berukuran sedang menggunakan GORM / Hibernate di atas PostgreSQL dan GSP yang menyajikan HTML, dan juga beberapa API REST. Kami sedang melakukan standarisasi pada Scala, dan ingin memigrasi aplikasi ini ke Play atau Spray, dengan Slick untuk mengakses database yang ada.

Nimble saat ini digunakan untuk otentikasi / otorisasi dan pengguna / peran / dll. pengelolaan.

Apa saja pendekatan yang bisa kita ambil untuk melakukan langkah demi langkah migrasi, menghindari migrasi yang hebat?

Keduanya adalah bahasa JVM, apakah ada cara untuk menghindari memperlakukan mereka sebagai aplikasi web terpisah yang berjalan pada port terpisah dengan jarak yang jauh?


Bersenang-senang dengan nama proyek, tetapi pendekatan yang masuk akal bisa menggunakan proksi aplikasi untuk menyediakan ruang nama tunggal. Pilihan lain adalah menjalankannya sebagai file WAR terpisah di wadah web seperti Tomcat. Saya belum melakukan Grails atau Scala, tetapi jika API web adalah pembungkus di sekitar Java Servlets maka Anda berwarna emas. Jika tidak, Anda harus menggunakan proxy aplikasi untuk menyembunyikan port terpisah, dll.
Berin Loritsch

Jawaban:


1

Secara pribadi, penulisan ulang terdengar lebih efisien bagi saya, tetapi jika Anda perlu melakukannya secara bertahap, saya sarankan Anda mengambil pendekatan berikut:

  • Pindahkan kode basis data yang ada untuk menggunakan Slick (Anda mungkin perlu pembungkus di sekitarnya untuk melindungi kode yang ada dari terlalu banyak perubahan).
  • Selanjutnya, mengintegrasikan Play ke runtime Anda dan gunakan Silhouette untuk otentikasi dan otorisasi dengan Play Action.
  • Anda kemudian dapat memindahkan masing-masing GSP ke Play / Twirl satu per satu.

Sayangnya, saya tidak tahu cara untuk membuat mereka mendengarkan port yang sama sehingga Anda harus mengalihkan dari Grails ke port Play untuk membuatnya lancar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.