Okay, now that I have your attention let’s talk about Google App Engine for a minute and how you can achieve your DevOps dreams with a fully managed serverless application platform.
App Engine launched 10 years ago as a tool to run web applications on Google infrastructure. App Engine only supported Python at the time, but the service offered dynamic webserving, persistent storage (Datastore), and APIs for authenticating users and sending email.
Fast forward to 2019 and the App Engine offering has matured. The standard environment is optimised for rapid scaling (sudden and extreme spikes of traffic) or apps intended to run for free or at very low cost.
- Python 2.7, Python 3.7
- Java 8
- Node.js 8, and Node.js 10 (beta)
- PHP 5.5, and PHP 7.2 (beta)
- Go 1.9, and Go 1.11 (beta)
If you need something else, the flexible environment offers Python, Java, Node.js, Go, Ruby, PHP, or .NET, or any other software that you can run in a container.
But it’s more than just a code runtime engine. Google markets App Engine as having zero-config deployments and zero server management, allowing you to focus on writing code (that sounds like my kind of DevOps). App Engine offers Monitoring, Logging & Diagnostics, Traffic Splitting and Application Versioning (those features you normally hear about when talking about “DevOps” or CI/CD).
Assuming you already have a Google Cloud account, creating a deploying your first App Engine App consists three easy steps:
- Create a Project to store all your related resources
- Create an App
- Deploy your App
gcloud projects create project-demo-xxx \
--name="project demo xxx" --labels=type=test
gcloud app create --region=australia-southeast1 \_
gcloud app deploy --project project-demo-xxx
Normally, navigating a new Cloud vendor, a new product, and new concepts and troubleshooting demo code can be time consuming and error prone. I know, I’ve gone through this process myself.
If you’re interested in giving App Engine a go (and I encourage you to do so, because it’s a fantastic example of what an integrated serverless platform should look like) you can head over to https://github.com/drewkhoury/gae-demo and try it yourself. I’ve streamlined the whole process to try and get you up and running as quickly as possible:
- How to authenticate with Google via the command-line
- Taking advantage of the local environment Google provides (dev_appserver.py)
- Sample Python App that’s optimised for App Engine
- Docker containers / Docker compose for consistency (local development and deployment)
Let me know what you think of Google App Engine after you give it a go!
Also posted on: