mercredi 11 janvier 2017

Using Google Cloud service more effectively {architecture related discussion}

We are a website builder startup using Google Cloud as our server solution, Laravel as our backend/api handler, EmberJS on the frontend, MySQL hosted with NGINX.

Our users can create different websites under a Ucraft subdomain, like mysite.ucraft.com and later connect their own domains. Each user created website has got 2 modes: Edit mode and Public mode.

Ucraft uses SaaS delivery model. In our case we have a single Laravel application, which checks the domain(mysite.ucraft.com) and loads the corresponding user website(Public mode) from its own database and user files(js, css, html). So if there are 10 different ucraft subdomains we have exactly 10 different Databases and user files folders.

The Accounts in the wireframe, is another Laravel application, which is responsible for users, subscriptions, permissions and user sites management).

When user is in Edit mode, our Laravel applications gets all the needed data from Accounts and its own site specific database and loads the Ember JS application.

In Edit mode user interacts with the layout which is saved in site specific database via API calls to backend.

Currently there are many API calls, but we plan to have just 1, which will send the whole layout tree and save in DB.

All this is hosted on a Compute Engine on Google Cloud. Here is our app's current architecture on Google Cloud.

App Structure

We decided to start using all the awesome services of Google Cloud - App Engine, Cloud SQL, Cloud Storage, Image API(for image crop/resize) and much more.

Do you guys have any recommendations for us on this? Is there someone with great experience who would love join this project and help us to migrate our current infrastructure to Google Cloud.

Thank you!




Aucun commentaire:

Enregistrer un commentaire