Looking back on our recent history of technology development, it is clear that since distributed computing and its related technologies (such as grid computing and SOA) have been widely adopted, the cloud computing movement has emerged. Although cloud computing has become a new technology, there are many questions about this new technology. The 1th part of this series will outline cloud computing, then analyze the various layers of the cloud, describe the different cloud types and their pros and cons, and explain why cloud computing campaigns are important to enterprise developers.
Introduction
What is cloud computing?
The problem may seem trite and simple, but it is not. Currently, there are hundreds of (or even thousands of) definitions of cloud computing on the web. To fully answer this question, it may be more convenient to understand what is not cloud computing before trying to define it.
Some people say that cloud computing is just another term for the service (SaaS) model of software that has been at the forefront of the Web 2.0 movement. Others say that cloud computing is a marketing hype, just a new face for old technologies such as utility computing, virtualization or grid computing. This view ignores the fact that cloud computing is broader than any of these specific technologies. To ensure this, cloud solutions typically include these technologies (and some other technologies), but it is a comprehensive strategy that distinguishes cloud computing from its predecessor products.
For this article, we define cloud computing as a comprehensive solution in which all computing resources (hardware, software, networking, storage, and so on) can be quickly delivered to users based on command instructions. You can manage the resources or services provided to ensure availability, security, and quality. The key to these solutions is that they can scale and shrink, enabling users to get the resources that are right for their needs: neither more nor less.
In short, cloud computing solutions enable IT to deliver as a service.
Why use cloud computing?
There are many reasons why more and more companies are turning to IT solutions that include cloud computing. First, cloud computing can reduce the costs associated with delivering IT services. Reduce capital and operating costs by acquiring resources only when resources are needed and paying only for the resources that are required. In addition, by reducing some of the burden associated with managing various resources across the enterprise, your key staff can focus more on creating value and business innovation. Finally, the cloud computing model provides business agility. By extending or shrinking the entire IT infrastructure to meet the requirements, companies can more easily meet rapidly changing market demands and ensure that their customers are in the lead.
In many ways, cloud computing enables the integration of many existing technologies (SOA, virtualization, automated computing) with new ideas to develop a complete IT solution.
Cloud Profiling
With an acceptable cloud definition support, let's look at each layer of the cloud. Figure 1 summarizes the three rule components of the cloud model. The figure accurately reflects the proportion of IT quantity to cost, physical space requirements, maintenance, management, management oversight, and obsolescence. In addition, these layers can represent not only cloud profiling, but also general IT profiling.
Figure 1. Cloud Profiling
The layers that make up the cloud include:
Application Services
Everyday Web users may be most familiar with this layer. The application service layer resides in an application that is suitable for the SaaS model. They are applications that run in the cloud and are provided to the user as a service as required. Sometimes these services are free, providers generate revenue from projects such as Web ads, and sometimes application providers create revenue directly from the use of services. Does it sound familiar? Maybe so, because we almost all use them. If you use the Turbo Tax online tax, check your emails with GMail or Yahoo mail, or schedule appointments with Google Calendar, you must be familiar with the top layer of the cloud. They are just two examples of these types of applications. There are thousands of SaaS applications from the actual record, and the number is growing after using WEB 2.0 technology.
Perhaps the public is not fully aware of these applications because many of the applications in the application services layer are directed to the enterprise community. There are some managed software products: handling payroll processes, human resources management, collaboration, customer relationship management, business partnership management, and so on. Common examples of these products include: ibm®lotus®live, IBM Lotus sametime®, Unyte, Salesforce.com, Sugar CRM, and WebEx.
In both cases, the application provided through the SaaS model can benefit the user, who does not have to install and maintain the software, and these applications can be used with a license model that supports the use of paid concepts.
Platform Service
This is a layer where we can treat the application infrastructure as a set of services. This includes, but is not limited to, middleware as a service, message delivery as a service, integration as a service, information as a service, connectivity as a service, etc. The services here are primarily designed to support applications. These applications can run in the cloud and run in more traditional enterprise data centers. To achieve the scalability required within the cloud, the different services provided here are often virtualized. Examples of cloud-related products in this section include Ibm®websphere®application Server virtual images, Amazon Web Services, Boomi, Cast Iron, and Google App Engine. Platform services enable users to ensure that the application infrastructure is provided on demand and that applications that meet the needs of users are available.
Infrastructure Services
At the bottom of the cloud is the infrastructure services layer. Here, we see a set of physical assets, such as servers, network devices, and storage disks that are provided to consumers as supply services. Services here support the application infrastructure (regardless of whether the infrastructure is provided through the cloud) and more users. For platform services, virtualization is a common way to provide resources on demand. Examples of infrastructure services include: IBM Bluehouse, VMWare, Amazon EC2, Microsoft Azure Platform, Sun parascale Cloud Storage, and so on.
Infrastructure services primarily address the problem of correctly equipping data centers by computing power on demand. In addition, because this layer generally leverages virtualization technology, you can achieve cost savings resulting from more efficient resource utilization.
Public, private, and mixed clouds
Now that you know what cloud computing is and what constitutes a cloud computing solution, let's look at the three main types of cloud. For the purposes of this article, we will describe several types of enterprise users related to cloud computing (Figure 2):
Figure 2. Cloud Type
The
public Cloud is a cloud service provided by a third party (vendor). They are fully hosted and managed by the cloud provider outside the corporate firewall.
Public cloud attempts to provide users with no worries about IT elements. Whether it's software, application infrastructure, or physical infrastructure, the cloud provider is responsible for installation, management, provisioning, and maintenance. As long as customers pay for the resources they use, there is no problem of low utilization.
But there is a price to pay. These services are usually provided according to the "Configuration Convention", which is based on the idea of adapting to the most common use scenarios. If the resource is directly controlled by the consumer, the configuration options are typically a smaller subset of those resources. Another thing to keep in mind is that because consumers have little control over the infrastructure, processes that require stringent security and compliance are not always well suited to the public cloud.
Private Cloud is a cloud service provided within the enterprise. These clouds are within the corporate firewall and are managed by the enterprise.
The private cloud provides many of the benefits offered by the public cloud, one major difference being that the enterprise is responsible for setting up and maintaining the cloud. The difficulty and cost of building an internal cloud can sometimes be difficult to bear, and the ongoing operating costs of the internal cloud may exceed the cost of using the public cloud.
The private cloud does provide an advantage over the public cloud. Finer granularity control of the various resources that make up the cloud provides the company with all of the configuration options. In addition, because of security and regulatory issues, it is appropriate to use a private cloud when the type of work being performed is not practical for the public cloud.
The
hybrid cloud is a mixture of public and private clouds. These clouds are typically created by the enterprise, and management responsibilities are shared by the enterprise and the public cloud provider. A hybrid cloud leverages services that are both in the public space and in the private space.
When a company needs to use a service that is both a public cloud and a private cloud, it is more appropriate to choose a hybrid cloud. In this sense, companies can list service goals and needs, and then get them from public or private clouds accordingly. A well structured hybrid cloud can provide services for secure, vital processes such as receiving customer payments and supporting business processes such as employee payroll processes.
The main flaw of the cloud is that it is difficult to effectively create and manage such solutions. Services must be obtained from a variety of sources and must be supplied as if they originated from a single location, and the interaction between private and public components can complicate the implementation. Since this is a relatively novel architectural concept in cloud computing, best practices and tools for this pattern will continue to emerge, but are generally less willing to take this model until you know more about it.
SOA and cloud Computing
The previous generation of cloud computing is a large and well-known technology. They are efficient with calculations, grid computing, virtualization, hypervisor, and a large number of other calculations. A technical concept that cloud computing does not always (but should actually) talk about is SOA. Service-oriented architecture plays a role in the development of cloud computing today, and it should also play a pivotal role in the development of cloud computing.
In many ways, cloud computing can be viewed as an extension of the SOA post application and has entered the application and physical infrastructure. As businesses and cloud providers seek to provide cloud solutions, the basic goal is to provide the enterprise IT infrastructure as a service. You should also summarize the lessons learned from integrating and incorporating enterprise applications as discrete services, because the infrastructure layer is also organized and delivered as a service. The application and physical infrastructure (very similar to applications in SOA) must be discovered, manageable, and manageable. Ideally (very similar to SOA), open standards that dictate how to discover, use, manage, and dictate services will evolve. These standards will outline the entire lifecycle of the cloud solution.
Figure 3 Records the view of the three cloud method and shows how each of these layers will fundamentally serve the entire SOA. In some cases, two of the underlying services are provided as part of an SOA, but it is important to recognize the service-based approach of all layers of the cloud.
Figure 3. Cloud Services
Cloud and development
If you're a software developer or tester, you might think all of this sounds good, but it's not sure if it's about you. After all, it's for the management, isn't it? This is a common first point of view, but does not take into account the obvious advantages that cloud computing can bring to the development and testing teams.
For example, the biggest hurdle in testing and development is the ability to acquire, deploy, configure, and host environments in which development unit tests, prototyping, and complete product testing are performed. Cloud computing solutions can be used to quickly create and host such environments, reducing the burden on test and development teams and putting problems in the cloud. For the development team, this means that continuous code integration and prototyping will become easier to execute because testing of product updates and new code is relatively easy. For the Test team, more time can be spent testing the quality of the product and less time supporting the test.
In addition to providing the development team with a run-time environment, there is another cloud area that is directly oriented to developers. Tools as services are a subset of SaaS and are ideas that can provide development tools in the cloud. The IDE and the simple Code Editor become the hosting software that developers use to access the Internet connection. In this way, the developer does not have to hold the local IDE and the appropriate license on all of their computers. As a developer, you may know the potential value of being able to access the general development environment from any computer at any time.
Cloud computing has another impact on developers. If conditions are ripe, it is a chance to advocate that developers adopt standard programming model APIs. All developers strive to be model programmers, and thus adhere to standards, but most may deviate from the standard from time to time. Deviations from the standard may be because proprietary APIs give you tangible benefits such as performance, and in other cases you may just want to "pursue utility." Any deviation from the standard API is particularly dangerous in the cloud, and the reason is quite clear. Although the user knows that they have received the requested service from the cloud provider, they may not know the implementation details of the service.
For example, suppose you request a j2ee™ Application Server service from a cloud provider. The cloud provider provides the application Server service, but you may not know exactly which server to receive the vendor unless you have signed a specific agreement with the provider. Any application you choose to deploy to the provided server should not be subject to vendor-specific code because you may end up encountering an unexpected application server implementation.
Tools for the Cloud
The main components of cloud computing mentioned above are tools. In many ways, this is critical to the success of cloud computing solutions. There is an important technology in the marketplace to provide cloud solutions, but these technologies are often difficult to implement due to the lack of complete, understandable tools.
Consider the application services layer in the cloud. Tools in this layer can provide an environment to help cloud application development, and should provide a way to package and deploy applications to the cloud infrastructure. We know that there are already many such tools that meet the requirements, but the problem is that almost all of these tools are linked to the infrastructure of the cloud provider. Open standards are key to maximizing functionality and flexibility from this tool. Each time a developer changes the cloud infrastructure, they are unable to pay for the cost of learning new tools, and the development team does not continually pay for the cost of rewriting the application because of the transformation of the cloud infrastructure. Therefore, the tool must help application development, packaging, and deployment in a way that enables completed projects to be ported across multiple cloud infrastructures.
Tools also play a very important role in the infrastructure services layer. Building the infrastructure for the cloud is not a trivial process. For a cloud provider, all physical assets, whether internal or external, need to be considered in order to allocate the correct physical resources to the cloud. The tools in this space should help the company virtualize its IT assets to take all resources into account for the cloud. However, it is not enough to provide the cloud builders with asset virtualization. Tools in this space should also provide some intelligence for creating clouds. In the past, it was a hard task for IT administrators to try to match the expected requirements with physical resources. This has brought about the problem of insufficient utilization of resources, which has become a powerful catalyst for the cloud. The tool must guide the user through the physical composition of the cloud based on the desired characteristics of the system requirements.
Summary
in the current and predictable future, cloud computing will play a very important role in the technology industry. Ultimately, it provides it as a service to consumers. The number of products and services in cloud computing space will continue to grow, and this is the trend. We are very pleased with the opportunity that cloud computing brings to our WebSphere developers, and in subsequent articles we will discuss what these opportunities are and understand some of the WebSphere solutions that transform cloud computing from concept to enterprise profit return.