The Architecture of Google App Engine( GAE)
Google App Engine is the the typical example of PaaS. Google App Engine is for developing and hosting web applications and these process are highly scalable. The applications are designed to serve a multitude of users simultaneously, without incurring a decline in overall performance. Third-party application providers can use GAE to build cloud applications for providing services. The applications run in data centers which is
managed by Google engineers. Inside each data center, there are thousands of servers forming different clusters.
The building blocks of Google’s cloud computing application include the Google File System, the MapReduce programming framework, and Big Table. With these building blocks, Google has built many cloud applications. The above Figure shows the overall architecture of the Google cloud infrastructure. GAE runs the user program on Google’s infrastructure. As it is a platform running third-party programs, application developers now do not need to worry about the maintenance of servers. GAE can be thought of as the combination of several software components. The frontend is an application framework which is similar to other web application frameworks such as ASP, J2EE, and JSP. At the time of this writing, GAE supports Python and Java programming environments. The applications can run similar to web application containers. The frontend can be used as the dynamic web serving infrastructure which can provide the full support of common technologies.
Features of App Engine
- Popular language: Users can build the application using language runtimes such as Java, Python, C#, Ruby, PHP etc.
- Open and flexible: Custom runtimes allow users to bring any library and framework to App Engine by supplying a Docker container.
- Powerful application diagnostics: Google App engine uses cloud monitoring and cloud logging to monitor the health and performance of the app and to diagnose and fix bugs quickly it uses cloud debugger and error reporting.
- Application versioning: It easily hosts different versions of the app, and create development, test, staging, and production environments.
Google App Engine is one of the earliest PaaS Model which is fully scalable and simply a small example of how high frequency of requests can be efficiently handled. Despite the excellent architecture, there are too much restrictions, which makes the PaaS Model inclining towards the properties of a SaaS with too much Lock-in. For example, PHP can not run natively on the App Engine.