pythongoogle-app-enginegclouddev-appserverdev-appserver-2

What is the relationship between Google's App Engine SDK and Cloud SDK?


I'm developing a Google App Engine application and I am encountering references to both an App Engine SDK and a Cloud SDK.

How do these two SDKs relate to each other?

There is definitely some overlap between the two. There is a dev_appserver.py and appcfg.py is both of them. I can run a development server using dev_appserver.py, and also with gcloud preview app run.

Why are there two tools that do the same thing? Is one being deprecated in favor of the other? Is there a roadmap for merging the toolsets, or are they going to be maintained in parallel? Do I need both, or just one?

It seems like the Cloud SDK is the more general of the two. But is it a superset? I.e. can I do anything I can in the App Engine SDK with the Cloud SDK?

I'm very confused by this messy and undocumented setup.


Solution

  • The App Engine SDK is older and was designed specifically for App Engine.

    The Cloud SDK is newer and its goal is to cover other (all?) Google Cloud products, not only App Engine. So they definitely overlap in functionality from the App Engine's perspective. Specifically from this perspective the Cloud SDK appears not yet as mature and stable as the App Engine SDK. For example the gcloud preview portion is still at a BETA version:

    NAME

    gcloud preview app - (BETA) manage your App Engine app
    

    As long as your work would be contained in the App Engine environment you can pick either of them, as you prefer.

    If you throw in the mix third party tools or IDEs integration support the balance tips towards the App Engine SDK for now (PyCharm, for example).

    I guess Google will eventually deprecate the App Engine SDK in favour of the Could SDK, but so far I didn't hear any such announcement. A similar deprecation trend already started in the (old) GAE Console - stuff being gradually migrated to the Developer Console.