Cloud presents an excellent for platform for products that can reach greater users with little investment in infrastructure or manpower. How do we develop such applications, what tools do we use to develop and deploy. He is such a case study.
4. Development Strategies Spend time implementing features not configuration Establish developer productivity Support powerful practical tools Support Agile development Simpler database integration Strong Framework foundation Phanindra Mankale August 2011 4
14. Grails: Convention Over Configuration Very few config files in Grails Grails make most of its decisions based on sensible defaults drawn from source code. Add a controller called shop and action called order, Grails will expose it as a URL Place your view files in a directory called /views/shop/order grails will look after linking everything. Not even a single line of configuration Create a Domain class called Customer, Grails will automatically create a customer table in your database Add some fields to your Customer object, Grails will automatically create the necessary fields in your Cutsomer table on the fly with all the constraints. NO SQL required. The defaults are always there for you to tweak if you still like to do that. Phanindra Mankale August 2011 7
15. Grails: Agile Philosophy Makes use of Dynamic language “Groovy” Enables easy iterations You can add controllers, views etc., when the app is running- without restarting it. The Framework makes operations easier and more maintainable at the same time. Code & test ( Unit, Integration tests can be run right away ) Phanindra Mankale August 2011 8
16. Grails: Rock Solid foundations Core is built on proven technologies Spring Hibernate Scheduling plugin is built on Quartz Search plugin is built on Lucene Layout engine is built on SiteMesh Great Support system from Vmware. Phanindra Mankale August 2011 9
17. Grails: Scaffolding & Templating Building Grails app is easy as 1,2,3 Create-app Run-app Template driven approach Create-controller mycontroller Same for views, services, domain classes etc., Bootstraps for better productivity No Boiler plate code. Scaffolding Set of Views and controllers on the fly for Domain classes, for basic CRUD( Create Read Update Delete) Phanindra Mankale August 2011 10
18. Grails: Java integration Web form processing can be in Groovy The performance intensive code can be in Java All Java libraries are available for use in Grails Incredible wetware Grails.org Groovyblogs.org Grailscrowd.com Grails group on LinkedIn Grailspodcast.com Plugins Phanindra Mankale August 2011 11
19. Enter AWS Why AWS Scalable Reliable & Redundant Secure Cost Effective ( Pay as you go) Flexible ( Any application, any platform, any language) Developer friendly Incredible array of tools to go Live! Phanindra Mankale August 2011 12
21. AWS: EC2 A web service that provides resizable compute capacity in the cloud. You get to decide the EC2 environment OS Database Services Application platform stack You get a Management Console and API to monitor/manage compute resources Phanindra Mankale August 2011 14
22. AWS: S3 Simple Web service that is used to store and retrieve large amounts of data. Data from anywhere, anytime, large amounts Inexpensive Amazon runs on S3 Phanindra Mankale August 2011 15
23. AWS: RDS Web service that provides access to MySQL/ Oracle databases on the cloud. Manages backup, scaling, updates etc., Provides all database capabilities. Phanindra Mankale August 2011 16
24. Demo: Domain Driven design Use tests ( Unit & integration ) Demonstration of a simple grail app Deployment to AWS Phanindra Mankale August 2011 17
25. Summary Web Applications today are complex and need Rapid responses from Engineering teams Define strategies and match them to Requirements We looked at some of the tools and services that match these demanding requirement Grails, Groovy and AWS. How this becomes a potent combination. Eliminates unnecessary config time and complexity. Phanindra Mankale August 2011 18
26. My 2 cents Get your hands dirty Keep your hands dirty Enjoy this! Phanindra Mankale August 2011 19
Editor's Notes
Scaffolding & templating: bootstrapping a Spring MVC app by hand can be painful. You will need directory of JAR files, bunch of bean definition files, a set of web.xml customizations, annotated POJOs, a few hibernate config files, Java Integration: Integration is seamless, web form processing classes maybe in Groovy and high performance payroll calculations in Java.Incredible wetware: Grails ecosystem is fantastic with helpful user community. Groovyblogs.org, grails.org, third party plugins. Ajax widgets, reporting, instant messaging, integration with Twitter etc.,Productivity Ethos: grails isn’t just about building web apps, but its all about executing your vision quickly. Work in two weeks can now be done in one week.