SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
The Future of Grails
Dan Woods
!
@danveloper
Where Did Grails Really Shine?
Agile Development
!
• Development-first experience
!
• Brought hot-reloading to enterprise development
!
• Seamless transition from "old guard"
!
• Rapid prototyping of concepts
!
• Groovy!
Sensible Autowirings
!
• Bringing all the platform components together, with
no effort
!
• Driving autowirings through configuration
!
• GORM -- Easy to employ DDD while maintaining an
anemic model
!
• BootStrap.groovy ... Such an undervalued premise
"Smart" Convention over
Configuration
!
• Encourages a common (and good!) architecture
for all Grails apps
!
• Taking MVC to the next level
!
• "Right place at the right time with the right name"
artifact generation
A Build System for the Web
!
• Trail blazed the programmatic build system, even
before Gradle
!
• Completely deterministic build lifecycle
!
• The basis for all Grails scripts and lifecycle events,
supporting core extensions
Makes the Fun Things Easy
!
• Grails put Spring, Hibernate, and Groovy into a
warp conduit!
!
• Bringing together desperate tech communities
under a common umbrella (and way of doing
things)
!
• Built infrastructure around other frameworks,
making them sensible and easy-to-use
"Convention over configuration, taken too
far, doesn't let you wire things together"
!
- Luke Daley
Where has Grails Suffered the Most?
Black Magic
!
• Mysterious code generation
!
• Runtime MetaClass extensions that cause non-
deterministic dispatching
!
• A "Stringly" typed framework...
!
• Goldilocks Groovy -- Grails porridge is a bit too hot
Too Far From The Source
!
• Debugging issues within an incorporated
framework can be really hard
!
• Stacktraces rarely would reveal the root of the
problem (this has gotten much better)
!
• Impossible to ascertain the various sources
influencing behavior
Bulky & Fat
!
• Wiring everything together means that everything
must be present
!
• Produces mega artifacts -- WAR by design, JAR by
option (thanks, Burt)
!
• Not a good candidate for running in PaaS/cloud
infrastructure
Let's build a plugin framework...
!
• ... and let's let any unknown number of sources impact
my: app lifecycle; request; development experience;
!
• Introduces high levels of complexity to every execution
cycle
!
• Binary plugins: and now we're going to let plugins hide
their source
!
• Really messes up an otherwise sound architecture
"Who the f*%k chose Spring?"
!
- Rob Fletcher, recent HipChat conversation
Grails 3
A Paradigm Shift in Grails...
!
• Grails 3 will take on a library approach as a
framework
!
• No more (or limited) code generation
!
• Builds will happen through Gradle, using Gradle
plugins ... Limited magic
The Good Parts Will Stay...
!
• The core concept of convention over configuration
!
• The sensible incorporation, and wiring together, of
best-in-breed frameworks
!
• Agile development experience will remain a
paramount goal
The Best is Yet To Come...
!
• Grails 3 will make the framework composable --
pick and choose functionality you need
!
• Introducing "Application Profiles" -- a strategy for
grouping goal-oriented features of the framework
!
• Improved performance -- Performance Legend, Lari
Hotari now a core team member
!
• Probably see greater adoption of Groovy in the core
Spring Boot
!
• Grails 3 will be built on top of Spring Boot
!
• Brings the continental Spring ecosystem, and
integration points
!
• Will add common structure and reduce verbosity of
Spring Boot applications, while garnering all the
benefits
Migrating from Grails 2.x to 3.x
!
• There's no migration path here... This is a whole
new way of doing things
!
• That includes plugins... It's unclear what the plugin
story is for Grails 3 -- likely libraries with lifecycle
hooks
How are we doing things...?
Spring Boot
!
• Early adopters of Spring Boot
!
• Getting a jump start on figuring out the pain points
of Boot integration
!
• Communicating openly and frequently with the
core team at Pivotal
!
• Building our own infrastructure around Spring Boot
technologies
Asgard
!
!
The next evolution of Asgard will be a
microservice PaaS built on top of Spring Boot
Don't get too wrapped up...
!
• Designed our PaaS without framework lock-in
!
• Very much designing for ways that we can evolve
as new technologies (like Grails 3) emerge
!
• Hoping our experiences with Boot will benefit the
Grails community
Come work with
us... We need your
help!
jobs.netflix.com

Contenu connexe

Tendances

Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
dcjuengst
 

Tendances (20)

What’s new in grails framework 5?
What’s new in grails framework 5?What’s new in grails framework 5?
What’s new in grails framework 5?
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Maven beyond hello_world
Maven beyond hello_worldMaven beyond hello_world
Maven beyond hello_world
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
React native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in RomeReact native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in Rome
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
 
Grails 3.0 Preview
Grails 3.0 PreviewGrails 3.0 Preview
Grails 3.0 Preview
 
Building our Component Library
Building our Component LibraryBuilding our Component Library
Building our Component Library
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
 
JHipster, modern web application development made easy
JHipster, modern web application development made easyJHipster, modern web application development made easy
JHipster, modern web application development made easy
 
Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
 
Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario Gray
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Delivery Free of Charge
Delivery Free of ChargeDelivery Free of Charge
Delivery Free of Charge
 
When Web meet Native App
When Web meet Native AppWhen Web meet Native App
When Web meet Native App
 

En vedette

基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
交點
 
Grafico diario del dax perfomance index para el 11 02-2013
Grafico diario del dax perfomance index para el 11 02-2013Grafico diario del dax perfomance index para el 11 02-2013
Grafico diario del dax perfomance index para el 11 02-2013
Experiencia Trading
 
Wingss power point
Wingss power pointWingss power point
Wingss power point
wingss
 

En vedette (20)

基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
基隆交點Vol.5 - 王珈琳 - 陪伴,一段服務的時間
 
Collaboration friday
Collaboration fridayCollaboration friday
Collaboration friday
 
leonardo monsalve
leonardo monsalveleonardo monsalve
leonardo monsalve
 
Planificacion de eliana caballero
Planificacion de eliana caballeroPlanificacion de eliana caballero
Planificacion de eliana caballero
 
부용
부용부용
부용
 
Impacto de las tics en la educaciòn
Impacto de las tics en la educaciònImpacto de las tics en la educaciòn
Impacto de las tics en la educaciòn
 
Getting Open Data Used
Getting Open Data UsedGetting Open Data Used
Getting Open Data Used
 
rhythm workshop
rhythm workshoprhythm workshop
rhythm workshop
 
1 4 vamos a jugar
1 4 vamos a jugar1 4 vamos a jugar
1 4 vamos a jugar
 
Women On Top: Celebrating Women in Business
Women On Top: Celebrating Women in BusinessWomen On Top: Celebrating Women in Business
Women On Top: Celebrating Women in Business
 
Brexit Webinar Series 3
Brexit Webinar Series 3Brexit Webinar Series 3
Brexit Webinar Series 3
 
Grafico diario del dax perfomance index para el 11 02-2013
Grafico diario del dax perfomance index para el 11 02-2013Grafico diario del dax perfomance index para el 11 02-2013
Grafico diario del dax perfomance index para el 11 02-2013
 
Historia insp manuel antonio leal chacon
Historia insp   manuel antonio leal chaconHistoria insp   manuel antonio leal chacon
Historia insp manuel antonio leal chacon
 
5 Reasons Why Your Headlines Are On Life Support
5 Reasons Why Your Headlines Are On Life Support5 Reasons Why Your Headlines Are On Life Support
5 Reasons Why Your Headlines Are On Life Support
 
Collaboration friday
Collaboration fridayCollaboration friday
Collaboration friday
 
8th biosimilars congregation 2016
8th biosimilars congregation 20168th biosimilars congregation 2016
8th biosimilars congregation 2016
 
Auktuálne otázky zodpovednosti za porušovanie práv duševného vlastníctva online
Auktuálne otázky zodpovednosti za porušovanie práv duševného vlastníctva onlineAuktuálne otázky zodpovednosti za porušovanie práv duševného vlastníctva online
Auktuálne otázky zodpovednosti za porušovanie práv duševného vlastníctva online
 
Kerry Karl | Debunking Myths: GLUTEN
Kerry Karl | Debunking Myths: GLUTENKerry Karl | Debunking Myths: GLUTEN
Kerry Karl | Debunking Myths: GLUTEN
 
Wingss power point
Wingss power pointWingss power point
Wingss power point
 
Content marketing that converts - Istanbul
Content marketing that converts - IstanbulContent marketing that converts - Istanbul
Content marketing that converts - Istanbul
 

Similaire à Future of Grails

Introduction to Grails 2013
Introduction to Grails 2013Introduction to Grails 2013
Introduction to Grails 2013
Gavin Hogan
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
Ruslan Meshenberg
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your Repos
Weaveworks
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
jward5519
 

Similaire à Future of Grails (20)

cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang
 
Introduction to Grails 2013
Introduction to Grails 2013Introduction to Grails 2013
Introduction to Grails 2013
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Continuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSSContinuous Delivery with NetflixOSS
Continuous Delivery with NetflixOSS
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
The Silver Bullet Syndrome by Alexey Vasiliev
The Silver Bullet Syndrome by Alexey VasilievThe Silver Bullet Syndrome by Alexey Vasiliev
The Silver Bullet Syndrome by Alexey Vasiliev
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your Repos
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Why real integration developers ride Camels
Why real integration developers ride CamelsWhy real integration developers ride Camels
Why real integration developers ride Camels
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 
Dutchcontainerdays
DutchcontainerdaysDutchcontainerdays
Dutchcontainerdays
 

Plus de Daniel Woods (8)

Continuous Delivery with Spinnaker and OpenStack
Continuous Delivery with Spinnaker and OpenStackContinuous Delivery with Spinnaker and OpenStack
Continuous Delivery with Spinnaker and OpenStack
 
High Performance Microservices with Ratpack and Spring Boot
High Performance Microservices with Ratpack and Spring BootHigh Performance Microservices with Ratpack and Spring Boot
High Performance Microservices with Ratpack and Spring Boot
 
Microservices: The Right Way
Microservices: The Right WayMicroservices: The Right Way
Microservices: The Right Way
 
Facilitating Continuous Delivery at Scale
Facilitating Continuous Delivery at ScaleFacilitating Continuous Delivery at Scale
Facilitating Continuous Delivery at Scale
 
Server-Side JavaScript with Nashorn
Server-Side JavaScript with NashornServer-Side JavaScript with Nashorn
Server-Side JavaScript with Nashorn
 
Groovy for System Administrators
Groovy for System AdministratorsGroovy for System Administrators
Groovy for System Administrators
 
Message Driven Architecture in Grails
Message Driven Architecture in GrailsMessage Driven Architecture in Grails
Message Driven Architecture in Grails
 
Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012
 

Dernier

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Future of Grails

  • 1. The Future of Grails Dan Woods ! @danveloper
  • 2. Where Did Grails Really Shine?
  • 3. Agile Development ! • Development-first experience ! • Brought hot-reloading to enterprise development ! • Seamless transition from "old guard" ! • Rapid prototyping of concepts ! • Groovy!
  • 4. Sensible Autowirings ! • Bringing all the platform components together, with no effort ! • Driving autowirings through configuration ! • GORM -- Easy to employ DDD while maintaining an anemic model ! • BootStrap.groovy ... Such an undervalued premise
  • 5. "Smart" Convention over Configuration ! • Encourages a common (and good!) architecture for all Grails apps ! • Taking MVC to the next level ! • "Right place at the right time with the right name" artifact generation
  • 6. A Build System for the Web ! • Trail blazed the programmatic build system, even before Gradle ! • Completely deterministic build lifecycle ! • The basis for all Grails scripts and lifecycle events, supporting core extensions
  • 7. Makes the Fun Things Easy ! • Grails put Spring, Hibernate, and Groovy into a warp conduit! ! • Bringing together desperate tech communities under a common umbrella (and way of doing things) ! • Built infrastructure around other frameworks, making them sensible and easy-to-use
  • 8. "Convention over configuration, taken too far, doesn't let you wire things together" ! - Luke Daley
  • 9. Where has Grails Suffered the Most?
  • 10. Black Magic ! • Mysterious code generation ! • Runtime MetaClass extensions that cause non- deterministic dispatching ! • A "Stringly" typed framework... ! • Goldilocks Groovy -- Grails porridge is a bit too hot
  • 11. Too Far From The Source ! • Debugging issues within an incorporated framework can be really hard ! • Stacktraces rarely would reveal the root of the problem (this has gotten much better) ! • Impossible to ascertain the various sources influencing behavior
  • 12. Bulky & Fat ! • Wiring everything together means that everything must be present ! • Produces mega artifacts -- WAR by design, JAR by option (thanks, Burt) ! • Not a good candidate for running in PaaS/cloud infrastructure
  • 13. Let's build a plugin framework... ! • ... and let's let any unknown number of sources impact my: app lifecycle; request; development experience; ! • Introduces high levels of complexity to every execution cycle ! • Binary plugins: and now we're going to let plugins hide their source ! • Really messes up an otherwise sound architecture
  • 14. "Who the f*%k chose Spring?" ! - Rob Fletcher, recent HipChat conversation
  • 16. A Paradigm Shift in Grails... ! • Grails 3 will take on a library approach as a framework ! • No more (or limited) code generation ! • Builds will happen through Gradle, using Gradle plugins ... Limited magic
  • 17. The Good Parts Will Stay... ! • The core concept of convention over configuration ! • The sensible incorporation, and wiring together, of best-in-breed frameworks ! • Agile development experience will remain a paramount goal
  • 18. The Best is Yet To Come... ! • Grails 3 will make the framework composable -- pick and choose functionality you need ! • Introducing "Application Profiles" -- a strategy for grouping goal-oriented features of the framework ! • Improved performance -- Performance Legend, Lari Hotari now a core team member ! • Probably see greater adoption of Groovy in the core
  • 19. Spring Boot ! • Grails 3 will be built on top of Spring Boot ! • Brings the continental Spring ecosystem, and integration points ! • Will add common structure and reduce verbosity of Spring Boot applications, while garnering all the benefits
  • 20. Migrating from Grails 2.x to 3.x ! • There's no migration path here... This is a whole new way of doing things ! • That includes plugins... It's unclear what the plugin story is for Grails 3 -- likely libraries with lifecycle hooks
  • 21. How are we doing things...?
  • 22. Spring Boot ! • Early adopters of Spring Boot ! • Getting a jump start on figuring out the pain points of Boot integration ! • Communicating openly and frequently with the core team at Pivotal ! • Building our own infrastructure around Spring Boot technologies
  • 23. Asgard ! ! The next evolution of Asgard will be a microservice PaaS built on top of Spring Boot
  • 24. Don't get too wrapped up... ! • Designed our PaaS without framework lock-in ! • Very much designing for ways that we can evolve as new technologies (like Grails 3) emerge ! • Hoping our experiences with Boot will benefit the Grails community
  • 25. Come work with us... We need your help! jobs.netflix.com