Using Google App Engine to build a classic Java Spring MVC application
Andre Masson profile photo
April 18, 2017

Using Google App Engine to build a classic Java Spring MVC application

Score 7 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Google App Engine

Google App Engine (GAE) is the core engine for a specialized web application in-house product. The web application allows the sales department staff to produce reporting, follow up regarding multiple deposit amounts, do the link between Google Drive (as a hosting cloud) and electronic signatures of clients. The web app is also responsible for the "after sales" process and also allows us to maintain the customers' database.
  • Well suited for doing asynchronous long running process jobs through task queues
  • Supports for huge files upload process (fast and efficient)
  • Integrates pretty well with Java and Spring MVC technologies
  • Although GAE does support relational databases if you pay for it, developers wanting to try GAE for free are forced to use cloud datastore which is a NoSQL database.
  • Logging is recorded and accessible through a web console. However, there is no easy way (I mean through the console) to display a custom log line format like it's possible with slf4j or log4j logging patterns. This makes reading log inefficient.
  • The GAE plugins for Eclipse are buggy and inconsistent. Many times we are forced to reboot the local server after a full webapp recompile, and the command line SDK is not intuitive.
  • For a small enterprise with appropriate software engineer the ROI is excellent because the cost of GAE usage is very low compare to the quatity of information it can process in a day to day basis.
  • GAE allows custom powerful API usage but this can be a double-edged sword because you are binding your application with this particular product.
With GAE it's a matter of "code your app and deploy it". You don't care on what servers or on how many servers it runs. System administration is done for you. With AWS you still have to be a system administrator with good knowledge and undestanding of load balancers, database instances, etc.
Scenarios where Google App Engine is well suited:
  • Allows endpoints for automatic email retrieval process which acts as long running jobs processes
  • "Cron" like web process launchable through simple endpoint URL
  • Java Spring MVC web application or RESTful web services integrated with single page applications (SPA)
Scenarios where it is less appropriate:
  • If your web application requires a short starting time GAE does not perform fast startups. However once started the web app has constant and stable processing speed
  • If the development team is looking for very well integrated product suite (like IDE well integrated with the backend server) then GAE requires much more improvements

Google App Engine Feature Ratings

Ease of building user interfaces
Not Rated
Scalability
10
Platform management overhead
7
Workflow engine capability
Not Rated
Platform access control
7
Services-enabled integration
Not Rated
Development environment creation
5
Development environment replication
5
Issue monitoring and notification
7
Issue recovery
Not Rated
Upgrades and platform fixes
7