How to manage different branches of google cloud functions and bigQuery [closed] - google-app-engine

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I am new to google cloud and I am going to start a project on it based on cloud functions and bigQuery
I googled to find answer to my questions to be prepared for it, I couldn't find articles about it.
In classic way of software development usually we have different environment for Dev,QA,Staging,UAT and production and for databases such as SQL Server, we keep the scripts in source control and we have different copy of database for each environment, for example on dev environment v1.6 we add a field to a table, and on QA environment v1.5 table doesn't have the field yet until we promote v1.6, and so on
Now my question is, in google cloud environment how we should have different environment and versioning, should it be 5 different projects? What about google cloud functions, how should I manage different code for different branches for same function (for example fixing a bug in a cloud function) ?

The environment strategy depends on the particular GCP product being used.
With Google App Engine apps, as you observed, multiple strategies can be used, each with their own pros and cons. See related post: Advantages of implementing CI/CD environments at GAE project/app level vs service/module level?
But Cloud Functions do not have a versioning info associated with them (at least not yet), so deploying a different version of a function using the same name will overwrite the previous deployed version. So using different projects is your only option in this case.
Another theoretically possible approach would be to encode the environment/versioning info into the function name, which would also allow functions deployed from different environments to co-exist, but IMHO that would be an unnecessary complication.

Related

Architecture for application that searches metadata [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I need to create an application to search for image, video and text files stored in Google Cloud Storage based on their metadata. For example, when the user performs a car search in the application, it should query all files stored in Google Cloud Storage, read its metadata, and return only the files that match the search.
I am thinking of using the following architecture:
Cloud Storage to store files and metadata
App Engine to host the Java application
But I'm still not sure if this architecture is the most appropriate. I'm also not sure about the process to fetch the files in Cloud Storage and then read their metadata. This seems to me that it will greatly impact the performance of the application.
Has anyone had experience on a similar project and could share some tips?
Thank you.
I agree with your choice, you can choose between App Engine Standard o Flexible, I would like to add that the App Engine Standard manages Java 8, if you want a different runtime, you can choose App Engine Flexible, and Cloud Storage is the correct choice if some images are managed in the App.

Google App Engine Vs. Google Apps Script (Within Business Apps) [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I've been thinking of creating an online service that heavily depends on HTTP GET/POST requests and some backend processing. But I'm a little confused on which is the best choice of these: Google App Engine or Google Apps Script?
I know Google App Script deals mainly with the other Google products, but that I don't mind; I can write scripts to handle my requests, do the processing, and make databases out of spreadsheets. Yes it's somewhat tiresome, but Google Business Apps is quite attractive to me since I already use it.
I haven't used a PaaS before to be honest. How would App Engine be any better? technically, pricing-wise, business-wise, security-wise... etc.
It's depend on what you want to do.
If you except a heavy load, AppEngine is scalable and permit to handle many requests per second. It launch more instances automatically.
AppEngine have some free quotas and if you develop your application correctly by using memcache you can stay under these quotas.
Doing service with App Engine is completely different than Apps Script which is juste kind of javascript. You can use Python, Java, PHP or Go on App Engine. And if you want to communicate with other Google's products you need to authenticate which is a little bit more complicated than App Script.

Best way to have a beta version system with Google app engine? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm using google appengine for business use. When I deploy something, it goes directly to production.
I would like to be able to deploy the same app to a beta version that uses the same datastore as the production site, and push to production from time to time after a complete validation.
Is there a way to do that with google appengine? What do you use?
You could send a small % of users to the new version as detailed here: https://developers.google.com/appengine/docs/adminconsole/trafficsplitting
App Engine's Traffic Splitting tool allows you to roll out features
for your app slowly over a period of time, similar to what Google does
when rolling out a new feature over a few days or weeks. Traffic
Splitting also allows you to do A/B Testing. Traffic Splitting works
by splitting incoming requests to different versions of your app.
To set up Traffic Splitting, choose a non-default version of your app
with code you want to test, specify the percentage of traffic it
should receive, and choose the type of splitting to use. It also
important to pay attention to the effects of caching on the static and
dynamic resources in your app.
You also have options regarding routing:
Each request arriving at an app is sent to a particular version of the
app. Normally, the versions are distinguished by URL. For example,
consider an app called codeninja with three active major versions:
alpha, beta, and default. All traffic sent to
http://codeninja.appspot.com goes to the default version, but you can
send traffic to other versions by including their version name as a
prefix (for example, you could access the beta version of the
codeninja app via http://beta.codeninja.appspot.com.
You deploy with a version. Don't make it the default one and use its special url to access it. It's all explained in the appengine documents on how to deploy.

Web hosting requirements estimates [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I'm trying to work out what hosting to get for a small pop up site to take registrations from an EDM campaign. We will send the emails out from mailchimp or similar, and then the site will need to show a couple of info pages and a registration form. Ill proccess the form with cakephp to save to the db and email the registrant.
The email will go out to around 10,000 recipients - so i guess worse case scenario is they all open it at once and click to go to the site, if unlikely.
Is VPS required for this, or will cloud hosting do it? How do people go about estimating that?
Is VPS required for this, or will cloud hosting do it?
In general cloud hosting means a VPS, and then some. Usually the difference is that cloud providers often provide other services (like maybe a CDN, robust APIs, etc) and provide on-demand usage-based billing. This sounds perfect for you since you can just spin up additional instances (if you have a proxy/load balancer) or resize your instances if you find yourself running out of CPU or RAM.
However, cloud services can be a bit ambiguous at times, so let me break it down further. If you are considering a VPS you probably want to go with a provider that gives you a "cloud" VPN where with on-demand (hourly) billing so you can add/resize your VPNs as needed. My current favorite is Rackspace Cloud Servers, but others (like Amazon EC2) are good too. The main reason I prefer Rackspace is that the instances aren't transient (all data is gone on reboot) like Amazon's, which can complicate system architecture.

Google App Engine & Amazon Cloud,which is better? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm going to deploy my application on one of them,
and have no idea which is better.
Amazon's Cloud services, at this time, are much more general and flexible, while Google App Engine essentially fits some specific classes of applications that can live within its specific limitations (those limitations are being gradually relaxed, as GAE adds features and allows you to pay to exceed certain quotas, but that does not mean GAE will become a completely general-purpose platform the way Amazon's services are).
If your app can live within GAE's limitations, then GAE presents advantages: free up to a certain quota, almost no system configuration / administration overhead, etc. But if you need total flexibility -- for example, if you want to code part of your apps in C or C++, and that's just one of many examples -- then GAE is not suitable, while Amazon (for a price, in both money and sysadm overhead) can accomodate you.
If you've already written your app, and just want to deploy it, I'd have to say AWS is your best bet. AWS is a platform (or rather, EC2 is), and deploying an existing app is easy. App Engine, on the other hand, provides an entire development environment, at a much higher level of abstraction, which has significant advantages when it comes to scaling, but requires you to have written your app to work on it.
Now how about Free Amazon EC2 for a year to do a better comparision. Check this out.
http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/
No one is king in this field because both amazon and google have their own pros and cons. for the finally decision you have to study deep about both or you have to analyze what you required for you apps.
no doubt aws is old in this field and they have lot of good quality stuff but remember google is fast growing in cloud computing.
personally aws is easy to use and training and support is easily available on the other side google is his early stage and bit complex interface for newbie
so you can learn from you requirement

Resources