How to tell whether it is a "development server"? - google-app-engine

Some of the Google App Engine documentation make reference to the term "development server". What is a development server? Besides development server, what are the other types of servers?
Is abc-def-123.appspot.com on a development server? If it is, how do I deploy to a non-developmental server? Is it just by Enable Billing in the Developers Console ?

The development server runs locally and allows you to run your AppEngine application entirely on your local machine during development. Other "servers" are the AppEngine production servers where you deploy your application when it's ready.
You use the gcloud tool for such tasks.
When the app runs on a development the application id gets a dev~ prefix.

Related

Flask-migrate staging on google app engine (GAE) / Cloud SQL

I have a flask app connected to a local postgres db with SQlAlchemy for dev purposes. I also have a live version of the app running on Google App Engine which is connected to a postgres db on CloudSQL
I am trying to use flask-migrate (which builds upon alembic) to manage database migrations. I can run the migrations fine locally but I am unsure how to manage the migrations for the deployed version?
this answer
has a couple of useful answers. One suggesting getting an IP address and being able to connect directly but I don't know where I would use that URI for migrations?
The other answer suggests running the code as an endpoint in the app itself.
Any pointers would be greatly appreciated

staging server shared databse with main production server

in my workplace we have setup a django web app on staging server running frontend and on production server running frontend , the frontend is a UI for deploying projects . however recently I was pointed out that staging server should not be using the production database. That makes complete sense. However the staging server beside just for testing the changes made also serves as a failsafe as runs on docker based apache server and docker runs on different machine. so if something is wrong we are able the developers are able to make use of staging server for publishing there softwares meanwhile my team fixes the production server. But the frontend of staging server as well is connected to same database as the production (as it is required for developers to be able to use staging server as failsafe)
So my question is does sharing database between web apps running on staging and production can cause an issue ? how it should be handled ?
With my personal experience, if your database host is powerful enough, you should be fine. I've had zero problems doing what you mentioned above. People quite possibly consider it a security concern since there will be more bugs/exploits in your staging web app where an attacker could access your database and affect your production web app. But that's only a worst case scenario.

Appengine to MySQL Database hosted in Compute Engine

Somebody knows if is it possible connect an application from Appengine to a mysql database hosted in compute engine?
I'm trying to do this with python and i have this error:
Can't create TCP/IP socket (-1)
I'm using SqlAlchemy ORM which use the next configuration:
create_engine('mysql+mysqldb://root#ip/database')
and locally works but when i deploy the application to appengine doesn't work.
Thanks
Google App Engine, by default, runs code in a sandboxed environment, meaning that certain aspects of the Python runtime environment are restricted, or respond differently than they would otherwise. One of these aspects is outbound network connectivity—while GAE supports sockets, there are certain restrictions, and sockets are only available for paid apps.
The recommended options for storing information in a GAE app include the App Engine Datastore, Google Cloud SQL, and Google Cloud Storage. Google Cloud SQL is MySQL, and works with SQLAlchemy, so that's probably your best option.
If you absolutely need to run your own MySQL server (rather than using Google Cloud SQL) and connect to it from a GAE app, the other option is to use the managed VM environment, which permits unrestricted network access (since it's essentially a Google Compute Engine VM with the App Engine runtime on top).

Database connection from Google App Engine

I'm developping an application on Google App Engine and Google CloudSQL, but I met a curious behaviour today.
I have two CloudSQL instances, one is for developpment use and another is for commercial use.
I set my persistence.xml and "App Engine Settings -> Google Cloud SQL" developpment instance, and set "App Engine Settings -> Deployment -> version" developpment version name, and deployed my application.
Then I changed those settings to the commercial instance and set version commercial version name, and deployed my application.
But curiously the commercial version is connected to developpment database instance.
Can anyone guess the reason?

Migrated XAMPP to GAE LAMP Users Cannot Log In

I have migrated my developement app from my local machine running XAMPP to the Google App Engine with Bitnami on LAMP. Everything has run smoothly and even accessing the database name in the server returns the same 0 to demonstrate that it is working:
However, in updating this information within my android mobile application and attempting to allow a user to log in, the background service is not able to make a connection to the server and refuses the user to authenticate and log in.
This is the first time I have attempted deploying a server to the Google App Engine.
Is there a way to debug this issue to see what the server is doing? Is there a configuration that would work?

Resources