การย้ายแอปพลิเคชัน Grails ไปยัง Scala Play / Spray


12

เรามีเว็บแอปพลิเคชัน Grails ขนาดปานกลางโดยใช้ GORM / Hibernate บน PostgreSQL และ GSPs ที่ให้บริการ HTML และยังมี REST API สองสามตัว เรากำลังสร้างมาตรฐานให้กับ Scala และต้องการโยกย้ายแอปพลิเคชันนี้ไปยัง Play หรือ Spray ด้วย Slick เพื่อเข้าถึงฐานข้อมูลที่มีอยู่

ปัจจุบันว่องไวใช้สำหรับการรับรองความถูกต้อง / การอนุญาตและผู้ใช้ / บทบาท / ฯลฯ การจัดการ

อะไรคือแนวทางที่เราสามารถทำได้เพื่อทำขั้นตอนการย้ายถิ่นฐานอย่างเป็นขั้นเป็นตอนหลีกเลี่ยงการย้ายถิ่นฐานครั้งใหญ่?

ทั้งสองภาษาเป็น JVM มีวิธีใดที่จะหลีกเลี่ยงไม่ให้มันเหมือนแอปพลิเคชันเว็บแยกต่างหากที่ทำงานบนพอร์ตที่แยกกันที่ความยาวแขน


สนุกกับชื่อโปรเจ็กต์ แต่วิธีการที่สมเหตุสมผลอาจใช้พร็อกซีแอปพลิเคชันเพื่อระบุเนมสเปซเดียว อีกทางเลือกหนึ่งคือเรียกใช้เป็นไฟล์ WAR แยกต่างหากในเว็บคอนเทนเนอร์เช่น Tomcat ฉันไม่ได้ทำ Grails หรือ Scala แต่ถ้า web APIs เป็น wrapper รอบ ๆ Java Servlets คุณก็จะเป็นสีทอง ถ้าไม่คุณจะต้องใช้แอพพร็อกซี่เพื่อซ่อนพอร์ตแยก ฯลฯ
Berin Loritsch

คำตอบ:


1

โดยส่วนตัวการเขียนใหม่ฟังดูมีประสิทธิภาพมากขึ้นสำหรับฉัน แต่ถ้าคุณจำเป็นต้องทำมันเป็นชิ้น ๆ แบบขั้นตอนฉันขอแนะนำให้คุณใช้วิธีการต่อไปนี้:

  • ย้ายรหัสฐานข้อมูลที่มีอยู่ของคุณเพื่อใช้งาน Slick (คุณอาจต้องล้อมรอบเพื่อป้องกันโค้ดที่มีอยู่ของคุณจากการเปลี่ยนแปลงมากเกินไป)
  • จากนั้นรวม Play เข้ากับรันไทม์ของคุณและใช้ Silhouette สำหรับการพิสูจน์ตัวตนและการอนุญาตด้วย Play Actions
  • จากนั้นคุณควรสามารถย้าย GSP แต่ละรายการไปที่ Play / Twirl ทีละรายการ

น่าเสียดายที่ฉันไม่รู้วิธีที่จะทำให้พวกเขาฟังพอร์ตเดียวกันดังนั้นคุณต้องเปลี่ยนเส้นทางจาก Grails ไปยังพอร์ต Play เพื่อที่จะทำให้มันราบรื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.