Anyone who has already managed to work in the IT industry may think: “Have we not heard all this before? Maybe cloud computing is another technology with bloated advertising, another magical solution, the“ silver bullet ”, which should solve are there any problems? Or is there something in this? ” The answer to these questions is, oddly enough, “yes” and “yes.” No one denies that there is hype around cloud computing. This article discusses the choice of several existing cloud computing platforms, but this list is far from exhaustive. Many software vendors seek to capitalize on this fashion trend. However, there are still very real and tangible benefits from cloud computing – it doesn’t matter if it’s advertising or not.
However, before moving on to this technology, it is necessary to carefully study some aspects of cloud computing. Th article will talk about the benefits and challenges of cloud computing.
About Cloud Computing
Cloud ClassificationWikipedia defines cloud computing as “the development and use of computer technology using the Internet.” This is a very general description, on the basis of which many types of technologies can be attributed to cloud computing. A large group of proposals in the field of cloud computing is the implementation of the concept of “software as a service” (Software as a Service – SaaS). Examples of SaaS: web applications such as Zoho (word processing, spreadsheets), Salesforce (customer relationship management system), SlideRocket (presentations) or Web services, such as Google Search, Yahoo! Weather or PayPal. These are all great examples of cloud-based data processing, but they are unlikely to be useful for a company about to implement cloud computing.
The type of cloud computing that is perhaps most suitable for business use is the infrastructure known as Platform as a Service (PaaS). The most well-known examples of PaaS include various types of cloud storage, such as storing unstructured data using Amazon (Amazon Simple Storage Service, S3) or IBM file storage (IBM Scale out File Service, SOFS). Both of these technologies are distributed file systems. S3 is accessed via the Web service interface, while SOFS can be accessed using file protocols such as NFS and FTP. Amazon also provides structured data storage services through SimpleDB.
Data processing is, of course, more than just data storage, and it is here that cloud computing platforms enter the scene. These platforms allow you to take the source code and execute it “in the cloud.” Of course, this can be combined with cloud storage and cloud Web services. There are many platforms with a wide range of strengths and weaknesses.
Why might you need to run the application on a cloud platform, and not on the company’s own servers? There are a few simple practical considerations for this. Firstly, you don’t have to buy and configure all these servers. If this were the only advantage of cloud computing, then it would not be different from the services of providing Web hosting. The main advantage of cloud data processing is the ability to quickly turn on (“spin up”) or turn off applications, as well as flexibly increase computing power as the load on the application grows. At a minimum, any cloud computing platform can easily increase computing resources on demand. Some systems, in addition to on-demand data processing, also provide standard development platforms.
Simply put, cloud computing enables organizations to quickly deploy applications and develop them to meet the needs of their business. Although this sounds very attractive, there are some issues you should know about cloud computing.
It’s easy to fully concentrate only on the positive aspects of cloud computing, but there are also negative ones. One of the obvious problems with cloud data processing is that the application data is in the cloud with the application itself. This data may be confidential, for example, personal information about customers or their financial instruments and records of transactions. This can be open data, which nevertheless has very high value, for example, aggregate information about users and how they use the application. In the case when very important information is stored in the cloud platform, it is necessary to understand whether this platform is safe.
Who can access data in the cloud is not the only thing to worry about. Equally important is the integrity of this data. Computer failure should not be ruled out, so it is very important to have data backups and ensure their recovery in the event of a failure. Does the platform provide backup and recovery of data, or at least give such an opportunity to those customers who need it? Reliability of the application is also very important. What kind of service level agreements are provided by a particular platform? These and other issues are explored in this article when looking at some of the available platforms.
Choosing a platform for cloud computing is not easy because of the many options available. The list presented in the article is far from complete, but it gives some idea of the most popular options and fundamental differences between them. Particular attention is paid to the programming languages and open source technologies supported on each platform, as well as how each platform deals with the most pressing cloud computing issues. To facilitate orientation in the long list, the platforms were divided into basic and specialized.
Basic platforms offer a minimum – only virtual hardware and, possibly, an operating system. They are usually more flexible because they have fewer restrictions.
Specialized platforms provide some kind of application development environment and their own services in addition to the base platform. Specialized platforms are usually simpler and often offer a number of unique services.
If you need maximum freedom in configuring applications in the cloud, then you probably need to choose the underlying platform. You can specify some hardware requirements, for example, the type of processor with a certain clock speed, with a certain amount of memory, and so on. From this moment you can create just such a system, which is necessary for the tasks of the business. This is very similar to hosting services, but those that grow and decrease in accordance with the needs of the company. This section discusses four service providers of this type: Amazon, IBM, Joyent, and Mosso.
Amazon Elastic Compute Cloud
Amazon’s Elastic Compute Cloud (EC2) was one of the first cloud computing platforms and is still one of the most popular. It’s customary to say that “you will never be fired for working with Amazon.” EC2 is a great example of a base platform.
To get started with EC2, you need an instance of Amazon Machine (Amazon Machine Instance, AMI). AMI is a complete server image with an operating system, applications, and so on. Amazon and the EC2 community already have many popular AMIs, both with Microsoft Windows® and Linux, as well as various open source software packages such as Apache Web Server, MySQL, and the Python interpreter. If you cannot find the right one AMI, Amazon provides tools for creating your own AMI options that you can use only for yourself or share with the community.
AMI can be installed on “instances” of various sizes. At the time of writing, a small instance had a processor with one core at 1 GHz with 1.7 GB of memory and 160 GB of disk space. At the other end of the range is a very large instance with a 4-core CPU at 2 GHz each, 15 GB of memory and 1.6 TB of disk space. There are more specialized configurations designed for complex computing tasks. You just need to select the desired size and deploy AMI. All administration and instance management is performed using Web services. A large ecosystem has already grown around these Web services to facilitate the management of EC2 instances. For example, there is a Firefox extension called Elasticfox that you can use to manage and run AMI images directly from Firefox.
EC2 runs on XEN, open source virtualization software. With EC2, you can run almost any software. Various varieties of Linux are widely used as operating systems for AMI. Any programming language is available: Java ™, PHP, Python, and so on. Commercial software can also be used on EC2, but the flexible nature of EC2 makes open source software more attractive: you don’t have to worry about licensing when you have to use larger copies or more.
Amazon provides EC2 with a wide range of infrastructure services that can be used to address issues such as data reliability and backup. Amazon S3 is an excellent backup option. This is largely a do-it-yourself model. Amazon cloud administration and access is exclusively through its Web services that require 2-step verification.
Ibm blue cloud
When Amazon first entered the cloud computing industry, many were surprised. When IBM entered this area, no one was surprised. The Blue Cloud solution was announced at the end of 2008 and was intended to provide the core cloud computing capabilities. Customers can choose from more common x86 hardware or higher-end POWER® based hardware. Blue Cloud uses IBM Tivoli® software to automatically provision systems with various capabilities (processor / memory / disk), giving organizations the ability to leverage massive computing power – but pay for it only as needed. IBM is also a pioneer in closed cloud platforms, delivering the benefits of cloud computing for internal applications behind the firewall.
IBM Blue Cloud is a new, evolving technology, so it is advisable to check the latest information on what types of technologies are currently supported. IBM is one of the main proponents of open technology, making the IBM platform an attractive choice for applications that make extensive use of open technology.
Joyent may not be as widely known as Amazon or IBM, but it has quickly gained an impressive reputation as a provider of cloud computing platform for start-up Web companies. Joyent Accelerator to a large extent provides the flexibility of traditional hosting providers, but with the key feature of cloud technology – increasing capacity depending on the load on the application. With it, you can quickly deploy an application instance to PHP, Java, or Ruby on Rails, already pre-configured and ready to use. This uses as much processing power as is required for a given load. This solution works on the OpenSolaris OS, so you can use all the usual tools to access and manage the resources deployed in it, including SSH and FTP.
Joyent’s cloud computing environment is focused on scalability. Even the most affordable offers can cope with peak loads. This has earned Joyent popularity among organizations creating Facebook apps that usually don’t need a lot of resources but can have very high peak loads.
Joyent supports any OpenSolaris compatible technology. This applies to all open LAMP (Linux – Apache Web-Server – MySQL – PHP) technologies and programming languages, as well as to other programming languages, for example, Java and Ruby. Joyent makes it possible to effectively use any available Linux or UNIX® tools to ensure the security and maintenance of the site and data.
Mosso, a subsidiary of the renowned hosting provider The Rackspace Cloud, has several different offerings for cloud computing. Mosso Cloud Sites span basic and specialized platforms. There are two basic Cloud Site configurations. One uses open source software. This is a classic LAMP system. Another configuration uses Windows Server with an IIS Web server and a SQL Server database. You must choose a configuration and pay for bandwidth, storage space and processor usage as needed.
Mosso announced that it will also offer a new product called Cloud Servers, Linux servers with complete configuration flexibility. Mosso Cloud Sites are popular for providing the basic components required by many applications. They can be described as a specialized platform of a basic level. The next section discusses more specialized platforms on the market.
It is clear that the term “specialized” is somewhat subjective. What exactly makes a cloud computing platform specialized? All platforms in this section offer additional features, in addition to the basic platform features described above. Sometimes these are unique development environments; sometimes these are additional services integrated into the platform; sometimes just convenient features. The following specialized platforms are covered in this section: Microsoft Azure, Google App Engine, Aptana Cloud, Heroku, Ning, and Salesforce.
The Azure platform was announced by Microsoft in the fourth quarter of 2008. This platform is tied to its operating system, which is a specialized version of Windows. It includes a “hypervisor” for dynamically providing instances of machines and is designed to run any .NET applications. Of course, server-side .NET applications are ideal candidates for porting to this cloud. Microsoft also began offering versions of many of its server products, such as Exchange, running in the cloud on Azure.
But Azure is not just a Windows and .NET platform. The Azure platform also offers many other services, including SQL Services, a highly scalable database on SQL Server, and Live Services – a Web services interface for popular Microsoft applications: search, photo sharing, instant messaging, and so on. Azure also provides tight integration with the Microsoft Visual Studio® IDE, which makes it easy to launch, test, and deploy applications on the Azure platform.
Azure is one of the most closed of the available cloud computing platforms, but it has some positive aspects if Microsoft commercial technologies are already used. One side. the possibilities are limited by commercial Microsoft technologies, such as .NET languages and SQL Server-based databases, on the other hand, you can use many Windows technologies to provide access security and control any applications running on Azure.
Google app engine
The App Engine platform, launched by Google in the second quarter of 2008, is significantly different from other cloud platforms. There is no highlighting of hardware, even virtual; all that is required is just to deploy the application in it, and you can do it for free. However, restrictions are imposed on the use of App Engine resources, and additional processor power, storage resources and Internet bandwidth can be purchased as needed, as on other cloud platforms. The Google App Engine has several handy features, but this is only the beginning of its suite of specialized features.
The Google App Engine provides a robust development environment that only supports Python. Python has developed many services offered by this platform. User management is integrated with Google. For example, you’re signed in with the same credentials that you use to sign in to Google Mail. There is an API for storing structured data. Storing and retrieving data from storage is similar to using a relational database, but it is a technology entirely developed by Google. It is based on its own distributed file system Google GFS.
Google only supports Python, which is an open technology; all other technologies are owned by Google (although Google probably uses many open technologies within itself). Also, the Google App Engine does not offer any solutions for data backup, but the data warehouse used is designed for high fault tolerance.
Aptana inherited from Joyent support for open source technologies and programming languages. She also inherited open source management and backup tools. Many management aspects are integrated into Aptana Studio, but more complex systems are also possible.
One could simply say that what the Google App Engine is for Python, the Heroku project launched by Y-Combinator is for Ruby on Rails. But that would be unfair to Heroku. It is not just a cloud platform that has Ruby on Rails. Heroku only supports Rails, and therefore it is heavily Rails oriented. In Heroku, you just need to add a specific package to the locally installed version of Ruby, and you can immediately execute commands to deploy and run your application on the Heroku cloud. You can also deploy from the Git repository. You can even access the source code of the application and edit it directly from a Web browser. You can use any desired Ruby package or Rails plugin for the application.
Heroku is fully focused on convenience. It runs on top of Amazon EC2, so computing power can be flexibly scaled up. Heroku offers free services as part of the Heroku Garden offer. There you can deploy and test the application in the cloud for free. When it is decided to switch to a larger load or if fault tolerance is required, you can transfer your application to the main Heroku platform.
The cloud platforms discussed in this article so far are largely general purpose platforms. Whatever the application, they can handle it. Some of them are focused on Web applications, but this is still a fairly general classification. The popular Ning site gives users the ability to create their own social networks. This is usually done simply by configuring, adding pages, adding interface elements to pages, configuring interface elements, and so on. Using Ning, you can download the source code for the network, modify it as required, and run it in the Ning cloud. Since the source code of the network is developed in plain PHP, his knowledge is enough to start creating his own applications for the social network.
Ning, like Google App Engine, provides its own API for storing data instead of a relational database. It also provides many APIs for accessing social network infrastructure. You can deploy the application by simply downloading the source code of the program to the site and determining the hardware needs. Ning receives money for advertising on the created network, as well as by limiting space on storage devices and limiting bandwidth. For a fee, you can remove ads and add more data space and increase throughput.
Obviously, Ning is a very specialized cloud platform. But if you plan to embed social network functions in the application (even if they are of secondary importance) and programming in PHP is not a problem, Ning can be a very attractive choice. Ning is similar to the Google App Engine. There is only one option for choosing a programming language (PHP), and you can’t just install additional software if necessary. Nevertheless, this platform makes it possible to use a highly scalable, albeit closed, system.
Another very specialized cloud computing platform is provided by Salesforce, a company well known for its revolution in customer relationship management (CRM) software using the SaaS (Software as Service) model. Using the Force.com platform, you can create your own applications that run on the cloud computing infrastructure of the same type that Salesforce uses for its CRM application. Companies use AppExchange to search and “install” these applications, making them available to their users. This is similar to Facebook applications, as the application works as a unit with the main Salesforce applications.
You can also create your own Force.com website based on one or more applications. This is more like a cloud computing paradigm. In the case of Force.com, you don’t have to pay for equipment, but you have to pay for the number of users. There are also different price levels, depending on how much space is required to store data for one user. To create an application that runs on Salesforce, you need to write a program in Apex, a Java-like programming language developed by Salesforce. The same language is used by Salesforce engineers to create their own CRM applications.
Salesforce also provides many platform-specific services for managing users, accounts, roles, and data access. For business applications, especially enterprise-specific ones, Force.com can be an attractive option. Salesforce has a fairly limited selection of open source technologies and programming tools. But, like Google App Engine and Ning, Salesforce provides highly scalable proprietary technology.
This article looked at some of the important benefits of cloud computing. An overview was presented of a wide range of cloud computing platforms, as well as their similarities and differences. This information will help you choose the most suitable platform for your organization.
The next articles in the series “ All About Open Source Cloud Computing ” will talk about how to develop, deploy, and manage cloud platform applications.