Google App Engine's best feature is cloud endpoint
1.9.27 - 2015-09-16
Overall Satisfaction with Google App Engine
We are currently evaluating Google App engine as a platform as a service to our customers. The Google App Engine cloud endpoints is equivalent to Microsoft Azure's web apps or API apps. We are impressed with its ability to deploy Java or Python based RestFul API directly to Cloud endpoints. I coded the logic in the RestFul API to access Google's Cloud DataStore (kind-entity-property type of data store). Google's SDK made it easy to integrate its App Engine with its storage solutions. I have not tried its Cloud Bigtable from Cloud endpoints but I'm sure it's on our next task list.
Google App Engine's primary programming language is Java. I tried JetBrain's IntelliJ IDEA for managing Google App engine cloud endpoint projects. I used the community edition, which had less support for Google App Engine Cloud endpoint. The enterprise edition should have better support.
For those who prefer to use Python, JetBrains may have just released PyCharm for $99. Nothing comes for free. If you work at a company that has those licenses, you should feel lucky. Having a good IDE is critical to productivity. It has a "PyCharm Free Educational (Classroom) License" for free.
- Auto scale application load.
- Platform as a Service feature abstracts the web server layer.
- Perfect for Android or iOS app server logic development.
- Connect to different Google storage types.
- Able to use C# as the programming language in its SDK.
- Integration with Visual studio C# for using Google app engine cloud endpoint SDK.
- Documentation on choosing a IDE to get started. Doing things in the command line is too basic. It's good to know them but having a sophisticated IDE is the next step to achieve higher productivity.
- Positive: Customers with Java, Python code base may choose to use Google app engine over Microsoft Azure for deploying their web applications.
- Negative: Customers with C# ASP.NET web application code base may choose not to use Google app engine due to lack of C# support in the SDK.
- Positive: pricing is 10% more competitive compared to Microsoft Azure and %48 more competitive compared to Amazon AWS.
- Windows Azure
Consider the data store your web applications will need. If it's a brand new v1 application, look at the storage offerings from Microsoft Azure, Amazon, Google. It's quite difficult to connect to Amazon's or Microsoft Azure's storage from web applications running in Google App Engine.
Google App Engine Feature Ratings
Using Google App Engine
- serving micro-services based REST APIs
- corporate inventory management Web applications
- store based web applications
- payment processing REST APIs
- Product catalog REST APIs
- Order management REST APIs
- Store Location management REST APIs
- Language runtime specific knowledge and skills
- For App Engine flexible, skills and knowledge of Docker containers
- StackDriver monitoring for configuring real time alerts to the DevOps team.
- Trackdriver trace to troubleshoot service level latency.
- Stackdriver Debug and error reporting to find production bugs.
- Stackdriver profiler to get application performance insights.
- Stackdriver logging to troubleshoot general application errors and warnings.
- Google Cloud certified professional cloud developer.
- DevOps team. Ops team are lesser qualified because troubleshooting App Engine errors will require most developer's skills.
- building new Microservices
- building new REST APIs
- rebuilding or migrating existing microservices to App Engine
- rebuilding or rehosting containerized web apps to App Engine flexible.
- Migrate low security risk REST API to App Engine
- configure Serverless VPC Access for App Engine standard services to consume Cloud SQL or Compute engine hosted microservices or databases.
- Use App Engine firewall to restrict traffic into the deployed services.
- Migrate existing Java 8 App Engine standard services to Java 11 with Google Cloud SDK.
- Build greenfield Java 11 REST APIs with App Engine standard Java 11 runtime.
There are currently a growing demand for running custom web serving frameworks with the latest Java runtime in top cloud providers. Google Cloud App Engine Java 11 runtime is meant to solve exactly that problem. It's the next degree of serverless offering from Google Cloud Run. While Cloud Run offers building and deploying any Docker image to Google managed kubernetes hidden from developers, App Engine standard Java 11 runtime does a similar job except it's meant for Java 11 runtime. Enterprises may be more interested in deploying existing containerized applications to Google Cloud Run on GKE compared to Cloud Run and App Engine. Cloud Run on GKE allows the network and security teams to prepare a GKE cluster that complies with the corporate security and network requirements, which can't be done in App Engine Java 11 runtime.
The advancement from Java 8 to Java 11 runtime isn't trivial. Developers can bring their own web serving frameworks and customize the Java entry point in app.yaml:
entrypoint: java Main.java
You can find all the App Engine samples for Java 11 on github. I tried the sprint boot sample and added a REST endpoint: