choose the best paas cloud according to your needs

Posted by tzul at 2020-03-11

Getting started with choosing the right cloud platform from multiple platforms

Platform as a service (PAAS) is generally considered as one of the three major cloud computing service delivery models, and the other two are infrastructure as a service and software as a service. It accelerates cloud application development, provides managed infrastructure, simple and flexible resource allocation, and rich tools and services to help achieve efficient code and runtime performance.

However, the term masks the wide diversity of cloud platforms. Thick look, windows ® azure Gamma There doesn't seem to be much in common with Google App Engine or Amazon Web Services Gamma (AWS Gamma )In a totally different way, IAAs gradually moved to PAAS. Private platforms, such as those provided by VMware ®, meet other needs. This article introduces some leading cloud computing platforms and provides guidance on the use cases that these cloud computing platforms can handle.


PAAS is a combination of two trends:

Infrastructure services provide many advantages for customers who want to expand or migrate their applications to the cloud environment; however, infrastructure services usually run on platforms designed for desktop or traditional client server environments. They may be virtualized by now, but they are not optimized for the cloud.

The second notable trend is the evolution of web hosting sites. GeoCities and others have provided HTML hosting services since the mid-1990s; however, the number of web hosting services has grown at an alarming rate, supporting a variety of active server-side components, including Microsoft ® and Java Gamma Technology, as well as PHP, Python and Ruby on rails scripts. These platforms reduce the storage requirements of each application and simplify deployment compared to infrastructure services.


When choosing a PAAS cloud, what are the basic choices for cloud application developers, cloud migration experts, or administrators who are implementing the cloud?

Google App Engine

Google App Engine is one of the best known platforms. In addition to providing a basic runtime environment, it eliminates system management and development challenges that can be encountered in building applications that scale to millions of users. It provides tools to deploy code to a cluster and features such as monitoring, failover, automatic scaling, and load balancing.

Google App Engine initially only supports Python based runtime environment, and then adds support for Java virtual machines (JVM). Therefore, it can not only support applications written in Java, but also applications written in other JVM languages, such as groovy, jruby, Jython, Scala or clojure. The software development toolkit includes a complete local development environment, which can simulate Google App Engine on the developer's desktop.

Google App Engine has some restrictions on programming languages. For example, python modules must be pure Python modules because C and Pyrex modules are not supported. Similarly, Java applications can only use a subset of the Java runtime environment (JRE) Standard Edition class (JRE class white list; see resources); they cannot create new threads.


Listing 1 shows a simple "Hello world" Application in Google App Engine.

Listing 1. Google App Engine "Hello world"

from google.appengine.ext import webappfrom google.appengine.ext.webapp.util import run_wsgi_appclass MainPage(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello, World!')application = webapp.WSGIApplication( [('/', MainPage)])def main(): run_wsgi_app(application)if __name__ == "__main__": main()

The actual code used by different applications is significantly different. As shown in the python example in Listing 1, if the application logic is minimal, the command is very simple. You need to import some modules contained in the SDK and define a request handler mainpage, which processes all HTTP get requests to the root URL. This method can write HTTP responses using the self.response object. The run WSGI app () function takes an instance of the WSGIApplication and runs it in the Common Gateway Interface (CGI) environment of the Google App Engine. If you don't have a lot of requirements, it's enough to use the code content.

MainPage GET self.response run_wsgi_app() WSGIApplication

Google App Engine datastore uses optimistic concurrency control to support queries, sorting, and transactions. This is a highly consistent distributed tree database, which is based on the low-level BigTable data storage system and adds some additional functions. The query language of Google App Engine (called GQL) is similar to structured query language (SQL) in the select statement, but there are some clear limitations. For example, GQL does not support join statements, so it can only accept a single table query.


Despite its limitations, the environment provides a rich set of application programming interfaces (APIs). In addition to the data storage functions mentioned earlier, it also provides a set of library functions:

cron cron

Although web and worker are the most common types of roles, windows azure provides additional templates for specific needs. For example, CGI web roles support the fastcgi protocol, so they can support other programming languages, including PHP, ruby, python, and Java. Windows Communications Foundation (WCF) is a web role that simplifies WCF service support. Windows azure now also provides an infrastructure service (in the form of VM), which can accept the upload of Windows Server ® 2008 R2 VM image.

Windows azure storage provides services that can host three kinds of data:

The term "fabric" in the windows azure term refers to a group of machines running the windows azure operating system, which are jointly managed and usually located in the same area. Fabric controller is a code layer that assigns all user instances (web and worker roles) and performs any necessary updates. It also monitors applications, reassigns and allocates resources as needed, and ensures that all services are functioning properly. also delivers a PAAS called It's different from Google's and Microsoft's products. It also provides managed services based on its own technology, and provides common features such as redundancy, security and scalability. But focuses more on data processing than code processing.

External programming access exposes all user specific configurations (tables, reports, workflows, user privileges, customization, and business logic) as metadata and programmatically accesses them. It provides a Web Services API (soap) that allows access to all application data from any environment. The platform also provides a developer's toolkit for prepackaged connectors (SAP R / 3 and Oracle financials), desktop software (Microsoft office, IBM ® Lotus Notes ®), and Middleware (Tibco, pervasive, IBM cast iron ®) for Microsoft. Net, Java, Facebook, Google, AWS, and ERP. In addition to regular data access, uses an external search engine that provides a complete index and allows search for unstructured data.


The application is built with visualforce and apex. The visualforce framework is used to create a graphical user interface, and apex is a special programming language. The syntax used is similar to Java, but the behavior is more similar to the database storage process (see Listing 2).

Listing 2. Apex account update

// This class updates the Hello field on account records that are// passed to it.public class MyHelloWorld { public static void addHelloWorld(Account[] accs){ for (Account a:accs){ if (a.Hello__c != 'World') { a.Hello__c = 'World'; } } }} has three kinds of program logic:

Listing 3. Apex trigger

trigger helloWorldAccountTrigger on Account (before insert) { Account[] accs =; MyHelloWorld.addHelloWorld(accs);}

Apex can be run as a stand-alone script as needed, or as a trigger when a data event occurs, as shown in Listing 3. The language allows developers to add business logic to events, such as clicking buttons or updating records and visual force pages. Workflow logic can trigger tasks, send electronic messages, update databases, and interact with external applications by sending outgoing SOAP messages to any Internet destination.

Amazon Web Services

Amazon is the market leader and de facto standard for infrastructure services. The main difference between AWS and more typical platform services is that Amazon does not have a specific runtime environment. You can use one of Amazon's pre built machine images, but it's not limited to these machines. You can run almost any platform in an Amazon environment.

The corollary of this is that while Amazon provides a way to manage and distribute VMS, it does not directly provide specific functionality to manage applications.

Figure 1 provides an Amazon elastic compute cluster (Amazon EC2 Gamma )An example of the interface.

Figure 1. Amazon EC2

click to enlarge

The core component of AWS is Amazon EC2 and its additional storage services. Amazon EC2 provides users with a template selection that can be instantiated in a shared virtualization environment (as shown in Figure 1). Each VM is invoked in Amazon Machine Image (AMI). Amazon AMI does not have any persistent storage, but can use them for logs, results, and intermediate data while instances remain active. Due to the loss of locally installed AMI disks during instantiation, Amazon also provides two permanent storage functions: Amazon Simple Storage Service (Amazon S3) implements key value storage, while Amazon elastic block store (Amazon EBS) provides the foundation of file system.

More structured data can also be stored in Amazon simpledb. Use them for general queries or Amazon relational database service (Amazon RDS), a web service that can set up, run, and extend relational databases in the cloud.

In addition to computing and storage, Amazon offers a range of value-added services, including content delivery, queue notification, load balancing, auto scaling, provisioning, and monitoring.

One of Amazon's biggest initiatives in providing full PAAS support is the release of AWS elastic Beanstalk, a service for Java developers and built on the Apache Tomcat software stack. Users can use AWS management console, AWS toolkit for eclipse, Web Services API or command-line tools to upload any standard Java Web Application Archive file to AWS elastic beanstalk.


Hosting applications in a private data center gives you maximum control and flexibility. After you install Apache or Microsoft Internet information services (IIS) on the selected hardware using any web framework you need, you can upload applications that have been developed in your own environment. You can choose your own programming language, and you are free to implement any necessary interfaces to connect to legacy or partner systems. You only need to install PHP, python / Django, ruby / rails, or a complete set of Java tool interfaces. The biggest drawback is that you can't automatically get anything about cloud computing. You can reproduce these advantages internally, but doing so requires a lot of work and a certain amount of investment, which may only be suitable for large enterprises.

For those who decide to implement a private cloud, some tools, products, and services may be needed to gain performance, utilization, and automation benefits. VMware's powerful virtualization technology portfolio can help meet these needs.

Most of VMware's cloud oriented activities are carried out in its VMware vcloud program. Vcloud represents some of the supporting technologies, including VMware vSphere, vcloud API, and vcloud service provider ecosystem. VSphere platform is the flagship product of VMware. It is a virtualization framework that can manage large infrastructure pools, including software and hardware from internal and external networks. The vcloud API is a representational state transfer interface and restful, which is used to provide and consume virtual resources in the cloud. It supports deployment and management of virtualization workloads in private, public, and hybrid clouds. This API supports the upload, download, instantiation, deployment, and operation of virtual devices (VAPPs), networks, and virtual data centers. The two main components of the vcloud API are the user API (focusing on the assignment of the vcloud) and the admin API (for platform / tenant management).

Vcloud service provider ecosystem is a common collection of cloud computing services. It is oriented to enterprises and service providers, supports any application or operating system, and can choose the location of the application (local or remote). It is delivered by service providers such as terremark and, including applications that can be used as virtual devices.

In addition to infrastructure oriented products, VMware vfabric provides a private platform service that combines the spring java development framework with a number of integration services, including application server, data management, cloud ready messaging, load balancing, and performance management.

IBM SmartCloud Application Services

IBM also offers IAAs (IBM smartcloud enterprise) and PAAS (IBM smartcloud application services) for users who want to take advantage of the advantages of the public cloud and require enterprise standards in security, customization, and internal application integration. The two are closely related because IBM smartcloud application services automatically deploy virtual resources to IBM smartcloud enterprise. Together, they deliver a secure, collaborative, cloud based environment that supports and accelerates the full application lifecycle of development, deployment, and delivery. Figure 2 provides an example of the IBM smartcloud application services interface. .

Figure 2. IBM SmartCloud Application Services

click to enlarge

IBM smartcloud application workload services includes advanced pattern technologies originally introduced in IBM workload deployer. This advanced pattern technology provides the ability to easily create, deploy, and manage professional technology patterns. Based on years of experience, the professional technology model embeds the best implementation, configuration, management and monitoring practices, which can realize specific software solutions. These patterns are provided by IBM and independent software vendors through an online catalog. The expertise model has been simplified to create value quickly while ensuring consistent, predictable results. Users can also use the integration tools included with IBM smartcloud application workload services to create customized professional technology patterns and share them across the organization.

This advanced pattern technology is also included in IBM's new puresystems family:

Standardization and portability

Each of these platforms has its own advantages and disadvantages. The biggest challenge for developers is that these platforms are different. It is difficult for an application developed on one platform to run normally on another.

In order to protect user investment and reduce the risk of supplier binding, there is a growing demand for platform integration. Many standard organizations have implemented cloud computing from their own perspectives. The most famous plans focus on IAAs, but gradually add PAAS functionality. At a higher level, they use two different methods:

Concluding remarks

As these standards initiatives mature, you can expect that an industry standards platform will become more specific and exceed the many features described in this article. In the process, you need to try out different platforms and software stacks.

Because each platform has its own advantages and disadvantages, users need to further view their requirements in programming language and development tools, as well as their dependence on infrastructure in connection, scalability and security. The good news is that you have many choices, which increases the chances of finding the right platform for you. But the bad news is that users have to make choices, which is not easy.