SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Grails at LinkedIn

   Alex Vauthey, Brian Guan
   Monday May 5th 2008




                       © 2008 LinkedIn All rights reserved.
Linkedin Overview
 Started in 2003
 22M+ members, over 1.2M new per month
 Average member 41 years old, over $100K in
 household income
 250+ employees, mostly in Silicon Valley HQ,
 Mountain View, CA
 Still private and more importantly - Profitable!




                   © 2008 LinkedIn All rights reserved.
Engineering & Technologies
   80+ Software Engineers
   Main site
       built on Java, Tomcat, Oracle/MySQL
       our own MVC framework, and customized Spring IoC
   Internal backend services
       Java based via Spring Remoting, JMS
   Corporate Solutions
       Grails + Java
   Mobile, Browser Plugins, Facebook apps
       Ruby on Rails
   Partner API
       Java based REST/HTTP services



                      © 2008 LinkedIn All rights reserved.
Grails Projects/Products
 Corporate Solutions
   Private Portals for Corporate Customers
      Recruiter
      Research
   Typical project requires short development
   cycle for premium customers with focused
   needs

 Engineering Services (Internal)
   Continuous Build/Test Automation add-on to
   Hudson

                 © 2008 LinkedIn All rights reserved.
Why Grails?

 Needed a more productive webapp framework
 Rapid prototyping to demonstrate feasibility and
 productivity gain
 Benefit vs. risk analysis
    Grails uses established open-source libraries
    Easy to cut-down on the amount of Groovy
    Integration with java
    Open source !
    LinkedIn Internal Spring expertise


                  © 2008 LinkedIn All rights reserved.
Linkedin System Architecture
Complex eco-system

Many Many components!
  Web Apps (JSP/Servlet, Spring MVC, RoR, Grails)
  RPC Servers (APIs, Network graph, Search, business
  rules,...)
  Async Queues (tracking, real time statistics servers,
  communication infrastructure...)
  Data Access Services and database replicas
  Scheduled batch jobs

About 170 physical servers (and growing), all load
balanced with an instant fail-over scheme

                        © 2008 LinkedIn All rights reserved.
Key Findings
 Grails is productive for New web-app development...
 But bringing Grails into complex existing eco-system
    First project spent significant effort on quot;Integrationquot;
    Subsequent projects saw productivity gain
 Productivity Gains from...
    Model, View, Controllers, Taglibs, Command objects easy to
    create/maintain
    Hot redeploy of MVC + Services works most of the time
    which helps rapid iteration
    Books, online references, tutorials, examples exists to help
    train team members
    Pure Business Logic as Grails Services/Domain Objects
        Easy to create/maintain
        ...but hard to extract for reuse by non Grails modules




                         © 2008 LinkedIn All rights reserved.
Key Findings, cont.

 Grails based project is able to reuse many existing Linkedin Java
 assets
    Java Business Logic Services, DAO, Value Objects…
    Handle LinkedIn custom session as a New Session Scope for
    services/controller
    Integrate LinkedIn custom Authentication and Single-Sign-On
    with Filters
 Having creator (Graeme Rocher) and key committer (Peter
 Ledbrook) in the early phase embedded helped tremendously
    Training team new to Grails
    Rapid bug fixes/enhancements incorporation into Grails 1.0




                        © 2008 LinkedIn All rights reserved.
Challenges + Solutions (1)
 Integration into LinkedIn Eco-System (solutions extracted into
 LinkedIn Grails Plugin)
     Code Integration - Grails Extension for...
        Linkedin custom Spring instead of basic Spring
        Linkedin custom Session instead of HTTP Session
        Linkedin custom Auth/SSO
    Build Integration -
        Final product is a standalone WAR file
        Grails build system assumes top level project within source tree
        and defaults to building within a project
        Our project is a module within Linkedin’s codebase and the
        centralized build convention expects a centralized build
        destination outside
        Grails inject dynamic methods into Classes at build time so
        building a production WAR file still requires Grails runtime
        Custom Ant scripts and Grails build-time event handlers to
        customize build and deployment


                          © 2008 LinkedIn All rights reserved.
Challenges + Solutions (2)
 IDE - replace Eclipse with IntelliJ + JetGroovy Plugin
 Database - Linkedin convention does not match Grails defaults
    GORM DSL for Naming, custom data type like XMLType...
 Test - fit Grails testing mechanisms into Linkedin’s…
    Integration Test (Junit based) - Entry point is controller actions
    Unit Test (Junit based) - dependencies w. Groovy duck
    typing/EasyMock
    GUI Test (HtmlUnit)
 Deployment - use LinkedIn centralized config external to Grails
 Cross Team Re-factoring
    Groovy code invisible to other Java developers, system wide
    refactoring could lead to bugs during Tests, or worse, Runtime
    Introduce Java based centralized glue service for integration
 Dynamic Language is new to team of Java Engineers
    Groovy looks like Java, but dynamic nature makes errors hard to
    catch at compile time, and re-factoring hard to automate
    More test coverage is required to catch silly errors

                           © 2008 LinkedIn All rights reserved.
Conclusion
 For our usage, Grails is a lot more productive
 than current crop of mainstream Java Web-app
 Frameworks
 Grails can work in an Enterprise environment
 Grails can play as tightly integrated component
 in a Java ecosystem

 BTW...
   Enjoy building with Grails? Cutting edge technologies?
   Enjoy building features used by tens of millions of
   Professionals?
   … come join Linkedin!


                      © 2008 LinkedIn All rights reserved.

Contenu connexe

Tendances

Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsKen Tabor
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Stephen Chin
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
Moving To The Client - JavaFX and HTML5
Moving To The Client - JavaFX and HTML5Moving To The Client - JavaFX and HTML5
Moving To The Client - JavaFX and HTML5Stephen Chin
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Hendrik Ebbers
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash PlatformアップデートMariko Nishimura
 
Scribe online 03 scribe online cdk and api overview
Scribe online 03   scribe online cdk and api overviewScribe online 03   scribe online cdk and api overview
Scribe online 03 scribe online cdk and api overviewScribe Software Corp.
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Stephen Chin
 
Top 8 benefits of react js
Top 8 benefits of react jsTop 8 benefits of react js
Top 8 benefits of react jsRani Sinha
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Hendrik Ebbers
 
A new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonA new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonLuca Lusso
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our visionSebastian Schleicher
 
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019András Popovics
 
Micronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureMicronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureZachary Klein
 
Developing Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsDeveloping Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsGR8Conf
 

Tendances (20)

Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
 
Shraddha_Muchandi
Shraddha_MuchandiShraddha_Muchandi
Shraddha_Muchandi
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Moving To The Client - JavaFX and HTML5
Moving To The Client - JavaFX and HTML5Moving To The Client - JavaFX and HTML5
Moving To The Client - JavaFX and HTML5
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash Platformアップデート
 
Scribe online 03 scribe online cdk and api overview
Scribe online 03   scribe online cdk and api overviewScribe online 03   scribe online cdk and api overview
Scribe online 03 scribe online cdk and api overview
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
Top 8 benefits of react js
Top 8 benefits of react jsTop 8 benefits of react js
Top 8 benefits of react js
 
Sitecore MVC Advanced
Sitecore MVC AdvancedSitecore MVC Advanced
Sitecore MVC Advanced
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?
 
A new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonA new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp London
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our vision
 
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
 
Micronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureMicronaut: Changing the Micro Future
Micronaut: Changing the Micro Future
 
Developing Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsDeveloping Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with Grails
 
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1
 

En vedette

LinkedIn Q3 2012 Earnings
LinkedIn Q3 2012 Earnings LinkedIn Q3 2012 Earnings
LinkedIn Q3 2012 Earnings LinkedIn
 
Groovy and Grails
Groovy and GrailsGroovy and Grails
Groovy and GrailsGiltTech
 
A year in the life of a Grails startup
A year in the life of a Grails startupA year in the life of a Grails startup
A year in the life of a Grails startuptomaslin
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and GroovyKiyotaka Oku
 
Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyGuillaume Laforge
 
LinkedIn's Q3 Earnings Call
LinkedIn's Q3 Earnings CallLinkedIn's Q3 Earnings Call
LinkedIn's Q3 Earnings CallLinkedIn
 
LinkedIn Influencers Share the Best Advice They Ever Got
LinkedIn Influencers Share the Best Advice They Ever GotLinkedIn Influencers Share the Best Advice They Ever Got
LinkedIn Influencers Share the Best Advice They Ever GotLinkedIn
 
Q3 2014 LinkedIn Economic Confidence Outlook
Q3 2014 LinkedIn Economic Confidence OutlookQ3 2014 LinkedIn Economic Confidence Outlook
Q3 2014 LinkedIn Economic Confidence OutlookLinkedIn
 
LinkedIn Economic Confidence Outlook Q1 2014
LinkedIn Economic Confidence Outlook Q1 2014LinkedIn Economic Confidence Outlook Q1 2014
LinkedIn Economic Confidence Outlook Q1 2014LinkedIn
 
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredRuslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredLinkedIn
 

En vedette (11)

LinkedIn Q3 2012 Earnings
LinkedIn Q3 2012 Earnings LinkedIn Q3 2012 Earnings
LinkedIn Q3 2012 Earnings
 
Groovy and Grails
Groovy and GrailsGroovy and Grails
Groovy and Grails
 
A year in the life of a Grails startup
A year in the life of a Grails startupA year in the life of a Grails startup
A year in the life of a Grails startup
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and Groovy
 
Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in Groovy
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
 
LinkedIn's Q3 Earnings Call
LinkedIn's Q3 Earnings CallLinkedIn's Q3 Earnings Call
LinkedIn's Q3 Earnings Call
 
LinkedIn Influencers Share the Best Advice They Ever Got
LinkedIn Influencers Share the Best Advice They Ever GotLinkedIn Influencers Share the Best Advice They Ever Got
LinkedIn Influencers Share the Best Advice They Ever Got
 
Q3 2014 LinkedIn Economic Confidence Outlook
Q3 2014 LinkedIn Economic Confidence OutlookQ3 2014 LinkedIn Economic Confidence Outlook
Q3 2014 LinkedIn Economic Confidence Outlook
 
LinkedIn Economic Confidence Outlook Q1 2014
LinkedIn Economic Confidence Outlook Q1 2014LinkedIn Economic Confidence Outlook Q1 2014
LinkedIn Economic Confidence Outlook Q1 2014
 
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredRuslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
 

Similaire à Grails At Linked

Building a Modern Enterprise SOA at LinkedIn
Building a Modern Enterprise SOA at LinkedInBuilding a Modern Enterprise SOA at LinkedIn
Building a Modern Enterprise SOA at LinkedInJens Pillgram-Larsen
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle CloudMee Nam Lee
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedCloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedVMware Tanzu
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloudErnest Mueller
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudGenuitec, LLC
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...Sanjeev Sharma
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesKartik Kanakasabesan
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the CloudCloudBees
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAsir Selvasingh
 
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...VMware Tanzu
 
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and Vaadin
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and VaadinSimple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and Vaadin
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and VaadinJian Wu
 
Solving todays problems with oracle integration cloud
Solving todays problems with oracle integration cloudSolving todays problems with oracle integration cloud
Solving todays problems with oracle integration cloudHeba Fouad
 
JavaOne 2015: 14 Key Lessons, you should learn
JavaOne 2015: 14 Key Lessons, you should learnJavaOne 2015: 14 Key Lessons, you should learn
JavaOne 2015: 14 Key Lessons, you should learnACA IT-Solutions
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Lessons learnt in CI/CD with AWS serverless architecture
Lessons learnt in CI/CD with AWS serverless architectureLessons learnt in CI/CD with AWS serverless architecture
Lessons learnt in CI/CD with AWS serverless architectureAWS User Group Bengaluru
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdfMasahiko Umeno
 
Curious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks ComparisonCurious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks ComparisonHamed Hatami
 

Similaire à Grails At Linked (20)

Building a Modern Enterprise SOA at LinkedIn
Building a Modern Enterprise SOA at LinkedInBuilding a Modern Enterprise SOA at LinkedIn
Building a Modern Enterprise SOA at LinkedIn
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle Cloud
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedCloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google Cloud
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomes
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at Scale
 
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud C...
 
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and Vaadin
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and VaadinSimple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and Vaadin
Simple Open Source Java Cloud App Stack with Guice, Hibernate, Jersey and Vaadin
 
Solving todays problems with oracle integration cloud
Solving todays problems with oracle integration cloudSolving todays problems with oracle integration cloud
Solving todays problems with oracle integration cloud
 
JavaOne 2015: 14 Key Lessons, you should learn
JavaOne 2015: 14 Key Lessons, you should learnJavaOne 2015: 14 Key Lessons, you should learn
JavaOne 2015: 14 Key Lessons, you should learn
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Lessons learnt in CI/CD with AWS serverless architecture
Lessons learnt in CI/CD with AWS serverless architectureLessons learnt in CI/CD with AWS serverless architecture
Lessons learnt in CI/CD with AWS serverless architecture
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
Curious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks ComparisonCurious Coders Java Web Frameworks Comparison
Curious Coders Java Web Frameworks Comparison
 

Plus de LinkedIn

How LinkedIn is Transforming Businesses
How LinkedIn is Transforming BusinessesHow LinkedIn is Transforming Businesses
How LinkedIn is Transforming BusinessesLinkedIn
 
Networking on LinkedIn 101
Networking on LinkedIn 101Networking on LinkedIn 101
Networking on LinkedIn 101LinkedIn
 
5 تحديثات على ملفك في 5 دقائق
5 تحديثات على ملفك في 5 دقائق5 تحديثات على ملفك في 5 دقائق
5 تحديثات على ملفك في 5 دقائقLinkedIn
 
5 LinkedIn Profile Updates in 5 Minutes
5 LinkedIn Profile Updates in 5 Minutes5 LinkedIn Profile Updates in 5 Minutes
5 LinkedIn Profile Updates in 5 MinutesLinkedIn
 
The Student's Guide to LinkedIn
The Student's Guide to LinkedInThe Student's Guide to LinkedIn
The Student's Guide to LinkedInLinkedIn
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017LinkedIn
 
Accelerating LinkedIn’s Vision Through Innovation
Accelerating LinkedIn’s Vision Through InnovationAccelerating LinkedIn’s Vision Through Innovation
Accelerating LinkedIn’s Vision Through InnovationLinkedIn
 
How To Tell Your #workstory
How To Tell Your #workstoryHow To Tell Your #workstory
How To Tell Your #workstoryLinkedIn
 
LinkedIn Q1 2016 Earnings Call
LinkedIn Q1 2016 Earnings CallLinkedIn Q1 2016 Earnings Call
LinkedIn Q1 2016 Earnings CallLinkedIn
 
The 2016 LinkedIn Job Search Guide
The 2016 LinkedIn Job Search GuideThe 2016 LinkedIn Job Search Guide
The 2016 LinkedIn Job Search GuideLinkedIn
 
LinkedIn Q4 2015 Earnings Call
LinkedIn Q4 2015 Earnings CallLinkedIn Q4 2015 Earnings Call
LinkedIn Q4 2015 Earnings CallLinkedIn
 
Banish The Buzzwords
Banish The BuzzwordsBanish The Buzzwords
Banish The BuzzwordsLinkedIn
 
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career Advice
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career AdviceLinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career Advice
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career AdviceLinkedIn
 
LinkedIn Q3 2015 Earnings Call
LinkedIn Q3 2015 Earnings CallLinkedIn Q3 2015 Earnings Call
LinkedIn Q3 2015 Earnings CallLinkedIn
 
LinkedIn Economic Graph Research: Toronto
LinkedIn Economic Graph Research: TorontoLinkedIn Economic Graph Research: Toronto
LinkedIn Economic Graph Research: TorontoLinkedIn
 
Freelancers Are LinkedIn Power Users [Infographic]
Freelancers Are LinkedIn Power Users [Infographic]Freelancers Are LinkedIn Power Users [Infographic]
Freelancers Are LinkedIn Power Users [Infographic]LinkedIn
 
Top Industries for Freelancers on LinkedIn [Infographic]
Top Industries for Freelancers on LinkedIn [Infographic]Top Industries for Freelancers on LinkedIn [Infographic]
Top Industries for Freelancers on LinkedIn [Infographic]LinkedIn
 
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...LinkedIn
 
LinkedIn Connect to Opportunity™ -- Stories of Discovery
LinkedIn Connect to Opportunity™ -- Stories of DiscoveryLinkedIn Connect to Opportunity™ -- Stories of Discovery
LinkedIn Connect to Opportunity™ -- Stories of DiscoveryLinkedIn
 
LinkedIn Q2 2015 Earnings Call
LinkedIn Q2 2015 Earnings CallLinkedIn Q2 2015 Earnings Call
LinkedIn Q2 2015 Earnings CallLinkedIn
 

Plus de LinkedIn (20)

How LinkedIn is Transforming Businesses
How LinkedIn is Transforming BusinessesHow LinkedIn is Transforming Businesses
How LinkedIn is Transforming Businesses
 
Networking on LinkedIn 101
Networking on LinkedIn 101Networking on LinkedIn 101
Networking on LinkedIn 101
 
5 تحديثات على ملفك في 5 دقائق
5 تحديثات على ملفك في 5 دقائق5 تحديثات على ملفك في 5 دقائق
5 تحديثات على ملفك في 5 دقائق
 
5 LinkedIn Profile Updates in 5 Minutes
5 LinkedIn Profile Updates in 5 Minutes5 LinkedIn Profile Updates in 5 Minutes
5 LinkedIn Profile Updates in 5 Minutes
 
The Student's Guide to LinkedIn
The Student's Guide to LinkedInThe Student's Guide to LinkedIn
The Student's Guide to LinkedIn
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 
Accelerating LinkedIn’s Vision Through Innovation
Accelerating LinkedIn’s Vision Through InnovationAccelerating LinkedIn’s Vision Through Innovation
Accelerating LinkedIn’s Vision Through Innovation
 
How To Tell Your #workstory
How To Tell Your #workstoryHow To Tell Your #workstory
How To Tell Your #workstory
 
LinkedIn Q1 2016 Earnings Call
LinkedIn Q1 2016 Earnings CallLinkedIn Q1 2016 Earnings Call
LinkedIn Q1 2016 Earnings Call
 
The 2016 LinkedIn Job Search Guide
The 2016 LinkedIn Job Search GuideThe 2016 LinkedIn Job Search Guide
The 2016 LinkedIn Job Search Guide
 
LinkedIn Q4 2015 Earnings Call
LinkedIn Q4 2015 Earnings CallLinkedIn Q4 2015 Earnings Call
LinkedIn Q4 2015 Earnings Call
 
Banish The Buzzwords
Banish The BuzzwordsBanish The Buzzwords
Banish The Buzzwords
 
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career Advice
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career AdviceLinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career Advice
LinkedIn Bring In Your Parents Day 2015 - Your Parents' Best Career Advice
 
LinkedIn Q3 2015 Earnings Call
LinkedIn Q3 2015 Earnings CallLinkedIn Q3 2015 Earnings Call
LinkedIn Q3 2015 Earnings Call
 
LinkedIn Economic Graph Research: Toronto
LinkedIn Economic Graph Research: TorontoLinkedIn Economic Graph Research: Toronto
LinkedIn Economic Graph Research: Toronto
 
Freelancers Are LinkedIn Power Users [Infographic]
Freelancers Are LinkedIn Power Users [Infographic]Freelancers Are LinkedIn Power Users [Infographic]
Freelancers Are LinkedIn Power Users [Infographic]
 
Top Industries for Freelancers on LinkedIn [Infographic]
Top Industries for Freelancers on LinkedIn [Infographic]Top Industries for Freelancers on LinkedIn [Infographic]
Top Industries for Freelancers on LinkedIn [Infographic]
 
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...
LinkedIn Quiz: Which Parent Are You When It Comes to Helping Guide Your Child...
 
LinkedIn Connect to Opportunity™ -- Stories of Discovery
LinkedIn Connect to Opportunity™ -- Stories of DiscoveryLinkedIn Connect to Opportunity™ -- Stories of Discovery
LinkedIn Connect to Opportunity™ -- Stories of Discovery
 
LinkedIn Q2 2015 Earnings Call
LinkedIn Q2 2015 Earnings CallLinkedIn Q2 2015 Earnings Call
LinkedIn Q2 2015 Earnings Call
 

Dernier

How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityEric T. Tung
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentationuneakwhite
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon investment
 
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All TimeCall 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Timegargpaaro
 
BeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdfBeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdfDerekIwanaka1
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfAdmir Softic
 
Cracking the 'Career Pathing' Slideshare
Cracking the 'Career Pathing' SlideshareCracking the 'Career Pathing' Slideshare
Cracking the 'Career Pathing' SlideshareWorkforce Group
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting
 
Arti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdfArti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdfwill854175
 
Buy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From SeosmmearthBuy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From SeosmmearthBuy Verified Binance Account
 
Falcon Invoice Discounting: Tailored Financial Wings
Falcon Invoice Discounting: Tailored Financial WingsFalcon Invoice Discounting: Tailored Financial Wings
Falcon Invoice Discounting: Tailored Financial WingsFalcon Invoice Discounting
 
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...Falcon Invoice Discounting
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1kcpayne
 
Rice Manufacturers in India | Shree Krishna Exports
Rice Manufacturers in India | Shree Krishna ExportsRice Manufacturers in India | Shree Krishna Exports
Rice Manufacturers in India | Shree Krishna ExportsShree Krishna Exports
 
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 MonthsSEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 MonthsIndeedSEO
 
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan CytotecJual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan CytotecZurliaSoop
 
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Oman
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in OmanMifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Oman
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Omaninstagramfab782445
 

Dernier (20)

How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business Potential
 
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All TimeCall 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
Call 7737669865 Vadodara Call Girls Service at your Door Step Available All Time
 
BeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdfBeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdf
 
HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
Cracking the 'Career Pathing' Slideshare
Cracking the 'Career Pathing' SlideshareCracking the 'Career Pathing' Slideshare
Cracking the 'Career Pathing' Slideshare
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investors
 
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pillsMifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
 
Arti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdfArti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdf
 
Buy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From SeosmmearthBuy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From Seosmmearth
 
Falcon Invoice Discounting: Tailored Financial Wings
Falcon Invoice Discounting: Tailored Financial WingsFalcon Invoice Discounting: Tailored Financial Wings
Falcon Invoice Discounting: Tailored Financial Wings
 
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
Unveiling Falcon Invoice Discounting: Leading the Way as India's Premier Bill...
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1
 
Rice Manufacturers in India | Shree Krishna Exports
Rice Manufacturers in India | Shree Krishna ExportsRice Manufacturers in India | Shree Krishna Exports
Rice Manufacturers in India | Shree Krishna Exports
 
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 MonthsSEO Case Study: How I Increased SEO Traffic & Ranking by 50-60%  in 6 Months
SEO Case Study: How I Increased SEO Traffic & Ranking by 50-60% in 6 Months
 
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan CytotecJual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
 
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Oman
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in OmanMifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Oman
Mifepristone Available in Muscat +918761049707^^ €€ Buy Abortion Pills in Oman
 

Grails At Linked

  • 1. Grails at LinkedIn Alex Vauthey, Brian Guan Monday May 5th 2008 © 2008 LinkedIn All rights reserved.
  • 2. Linkedin Overview Started in 2003 22M+ members, over 1.2M new per month Average member 41 years old, over $100K in household income 250+ employees, mostly in Silicon Valley HQ, Mountain View, CA Still private and more importantly - Profitable! © 2008 LinkedIn All rights reserved.
  • 3. Engineering & Technologies 80+ Software Engineers Main site built on Java, Tomcat, Oracle/MySQL our own MVC framework, and customized Spring IoC Internal backend services Java based via Spring Remoting, JMS Corporate Solutions Grails + Java Mobile, Browser Plugins, Facebook apps Ruby on Rails Partner API Java based REST/HTTP services © 2008 LinkedIn All rights reserved.
  • 4. Grails Projects/Products Corporate Solutions Private Portals for Corporate Customers Recruiter Research Typical project requires short development cycle for premium customers with focused needs Engineering Services (Internal) Continuous Build/Test Automation add-on to Hudson © 2008 LinkedIn All rights reserved.
  • 5. Why Grails? Needed a more productive webapp framework Rapid prototyping to demonstrate feasibility and productivity gain Benefit vs. risk analysis Grails uses established open-source libraries Easy to cut-down on the amount of Groovy Integration with java Open source ! LinkedIn Internal Spring expertise © 2008 LinkedIn All rights reserved.
  • 6. Linkedin System Architecture Complex eco-system Many Many components! Web Apps (JSP/Servlet, Spring MVC, RoR, Grails) RPC Servers (APIs, Network graph, Search, business rules,...) Async Queues (tracking, real time statistics servers, communication infrastructure...) Data Access Services and database replicas Scheduled batch jobs About 170 physical servers (and growing), all load balanced with an instant fail-over scheme © 2008 LinkedIn All rights reserved.
  • 7. Key Findings Grails is productive for New web-app development... But bringing Grails into complex existing eco-system First project spent significant effort on quot;Integrationquot; Subsequent projects saw productivity gain Productivity Gains from... Model, View, Controllers, Taglibs, Command objects easy to create/maintain Hot redeploy of MVC + Services works most of the time which helps rapid iteration Books, online references, tutorials, examples exists to help train team members Pure Business Logic as Grails Services/Domain Objects Easy to create/maintain ...but hard to extract for reuse by non Grails modules © 2008 LinkedIn All rights reserved.
  • 8. Key Findings, cont. Grails based project is able to reuse many existing Linkedin Java assets Java Business Logic Services, DAO, Value Objects… Handle LinkedIn custom session as a New Session Scope for services/controller Integrate LinkedIn custom Authentication and Single-Sign-On with Filters Having creator (Graeme Rocher) and key committer (Peter Ledbrook) in the early phase embedded helped tremendously Training team new to Grails Rapid bug fixes/enhancements incorporation into Grails 1.0 © 2008 LinkedIn All rights reserved.
  • 9. Challenges + Solutions (1) Integration into LinkedIn Eco-System (solutions extracted into LinkedIn Grails Plugin) Code Integration - Grails Extension for... Linkedin custom Spring instead of basic Spring Linkedin custom Session instead of HTTP Session Linkedin custom Auth/SSO Build Integration - Final product is a standalone WAR file Grails build system assumes top level project within source tree and defaults to building within a project Our project is a module within Linkedin’s codebase and the centralized build convention expects a centralized build destination outside Grails inject dynamic methods into Classes at build time so building a production WAR file still requires Grails runtime Custom Ant scripts and Grails build-time event handlers to customize build and deployment © 2008 LinkedIn All rights reserved.
  • 10. Challenges + Solutions (2) IDE - replace Eclipse with IntelliJ + JetGroovy Plugin Database - Linkedin convention does not match Grails defaults GORM DSL for Naming, custom data type like XMLType... Test - fit Grails testing mechanisms into Linkedin’s… Integration Test (Junit based) - Entry point is controller actions Unit Test (Junit based) - dependencies w. Groovy duck typing/EasyMock GUI Test (HtmlUnit) Deployment - use LinkedIn centralized config external to Grails Cross Team Re-factoring Groovy code invisible to other Java developers, system wide refactoring could lead to bugs during Tests, or worse, Runtime Introduce Java based centralized glue service for integration Dynamic Language is new to team of Java Engineers Groovy looks like Java, but dynamic nature makes errors hard to catch at compile time, and re-factoring hard to automate More test coverage is required to catch silly errors © 2008 LinkedIn All rights reserved.
  • 11. Conclusion For our usage, Grails is a lot more productive than current crop of mainstream Java Web-app Frameworks Grails can work in an Enterprise environment Grails can play as tightly integrated component in a Java ecosystem BTW... Enjoy building with Grails? Cutting edge technologies? Enjoy building features used by tens of millions of Professionals? … come join Linkedin! © 2008 LinkedIn All rights reserved.