Real projects on google app engine - google-app-engine

I have just started to work with google app engine, and I would like to see real projects, which use this service. These projects should be written in Java (desirable)
If anyone has a link (GitHub or other link with information) I will be very grateful
UPD:
i find only link with companies who are using Google Cloud Platform to build robust and scalable apps

Check out the guestbook sample: https://github.com/GoogleCloudPlatform/appengine-guestbook-java
I don't think you will find the actual source code of any real/live site.

I'm the maintainer of thundr, a lightweight java webmvc specifically designed for cloud and PaaS deployments.
I've built a lot of apps on top of thundr, the majority being appengine apps. I know of at least 40 or so apps built and deployed on appengine using the framework, of varying scale.
One of them is listed on the cloud.google.com/customers/ list.
There are many real projects running in this environment, however I agree you're not going to have much luck finding source for people's services.

Related

Can Google App Engine's python webapp2 framework scale to a billion (or several millions for that matter) of users?

I searched for answer to this question, but didn't come across a topic that seems to have directly addressed it. Hence I am posting it as a new question.
From this Google App Engine page, it says that webapp2 is a lightweight framework that allows you build simple web applications for the Python 2.7 runtime.
The emphasis above seems to be on simple web applications. Given this I wonder if it hints at webapp2 python framework not being suitable for large scale complex applications that need to scale to several million users. What is the reason that it wouldn't scale (because I thought Google App Engine is a platform designed to scale regardless of what language or framework one uses).
I am trying to make a decision of whether to use the webapp2 python framework (easier to learn and get going) for my website that might potentially have to scale to the millions of users or if I should consider other frameworks.
webapp2 is unfortunately not actively developed and maintained. I have been using it for simple web apps that have around 100 users a day - and I have not witnessed any performance drops.
Scalability is not only about the framework, but the quality of your code, database design, queries, servers etc. Google App Engine provides the resources (bandwidth, space, processing power) but it does not write the code for you. GAE helps you scale when you need it and on the go.
https://code.google.com/p/webapp-improved/ - check the issues page, you will see a lot of unsolved issues and the project seems abandoned. As a developer why would you choose a project that is abandoned and does not have an active community?
If you want to stick to python I'd refer you to this question:
Does Django scale?
Hopefully that will provide you with enough information to answer your question.

Would anyone recommend using the web2py framework instead of the Google App Engine?

My project amounts to a vertical Q and A site not unlike Quora. Just as on Quora, I want users to be able to follow other users and follow topics. All questions will be tagged in one of 15 topics.
If Google App Engine is not a good framework for this sort of project, what would you suggest? I have also considered Django and Amazon Web Services.
It is important to note that I have minimal programming experience (primarily in Java and MySQL). However, I am willing to learn whatever language would be most useful.
I guess I am really just asking what is the benefit of using the web2py framework instead of just working directly with the Google App Engine.
If your target platform is exclusively GAE probably the only real advantage of web2py is its form generation/validation/processing capability and the pure python template language.
The real advantage of using web2py in your case would be the portability of code because of the DAL. If you find out that GAE is not for you and want to run with MySQL on a VPS, you would not need to rewrite more than one line of code (the one that connects to db), except for GAE specific (or mysql specific) optimizations.
web2py has some useful developer tools like the wizard which can reduce your development time in some cases.
You wouldn't want to work directly with the Google App Engine; that would require writing CGI code which would be an awful lot of unnecessary work. You'd want to use some sort of WSGI-compliant framework, eg, Django, web2py (as you mentioned), or webapp (the simple framework provided by Google for use with GAE).
I have no experience with webapp, but I have some limited experience with Django and web2py. I have not used either on GAE. As I understand it, web2py supports GAE better out of the box than Django.
Personally, I prefer web2py because I found myself fighting against the framework more when I used Django (eg, can't write python code in Django templates). I won't get into all the differences (there are plenty of questions on SO that address them).
Bottom line: I prefer web2py.

Is there any ORM tools on google app engine (Java)?

everyone. I used Ruby and Rails before, and I enjoy Rails's ORM, which make me develop application very fast... ...(also make me reduce lots of SQL statement.) But now, I need to move from ROR to Google App Engine. Is there any ORM tools on that? Also, I heart that Google have some amazing tools called "Google Web Toolkit", can I take advance of this tools within any setup? Thank u.
GWT is not a ORM tool by any stretch of imagination. You can check JDO or JPA for GAE applications built using GWT. My personal favorite is Objectify, a perfect balance between native API and JDO. YMMV
If you are not particular of language, have you considered Python + Django?
I've been lead developer for mardao, https://github.com/sosandstrom/mardao/wiki/Quick for three years now, and it is a combined ORM and Dao generator. You run it as a maven plugin at build-time, it scans your JPA-annotated domain objects and generates DAOs for you, using the Low-level API of the Datastore. No classpath scanning or reflection is used run-time!
It is in stable production maturity (version 2.3.0) and available in Maven Central.

What's the simplest, most concise web technology to build an app with on Google App Engine?

Now that Java has allowed multiple additional languages to run on top of Google App Engine, which of the newly available languages would allow an app to be developed the most simply and concisely? Let's assume most people are aware of Ruby on Rails, PHP, Coldfusion and Python/Django and we can take for granted that these are pretty simple and concise. Excluding these, which technology that is now available because of Java would surprise people to know how simple and concise it is to develop a web app in?
I think JAX-RS is probably the simplest and most concise for Java. Both Jersey and Restlet are available for google appe engine.
Take a look here for the supported Java frameworks in Google App Engine.
Google has made it very easy with their Eclipse plugin for App Engine to develop in GWT which can give web apps a very AJAXy web 2.0 feel without much effort.
It's not exactly clear what concrete attributes you're looking for. Conciseness is all very well, until it interferes with readability. As far as simplicity goes, Java or Python are going to be the simplest options for a while, simply because they're officially supported and have fully developed APIs.

Do you have any comments on using GWT with Appengine?

I'm looking for tips, suggestions, advice or examples of applications build using Google's Web Toolkit with Google AppEngine.
Since Google AppEngine now supports Java using GWT just became a whole lot easier (ie. you can use GWT RPC).
Take a look this screencast.
Here's a screencast on the subject: Using Java (GWT) with Google App Engine
Functionality seems very limited though since GAE uses Python + JavaScript and not Java.
Can you elaborate more on why using GWT with the Java version of GAE would necessarily be a good idea?
I'm not arguing against it, and it seems obvious Java would be the way to go, but just wanted to hear the concrete reasons.
To answer my own question: GWT provides an interface called "GWT RPC" that allows you to talk directly to Java Servlets, therefore offering an amazing level of integration between client and server.
The crux of the problem with GWT and GAE is that you want to use JDO to persist your objects when using GAE, and the bytecode manipulation done by the nucleus (JDO implementation) makes your domain objects no longer work with "GWT-RPC".
Today, the best solution is probably the Gilead GWT adapter for Google App Engine which is currently under early stage.

Resources