Clouds like love

    What are clouds, and when does it make sense to build cloud solutions? And if you build, which platforms to use? Do I need to provide clients with cloud services? Or maybe it's better to use virtualization? And how is virtualization different from clouds? All IT and non-IT companies are asking these questions: from large telecom operators to small startups. Let's try to figure it out! In the previous articleWe examined the concepts of SDN and NFV. The question arises - if both are related to virtualization and networks, then it turned out to be clouds? After all, we all know perfectly well that clouds are virtualization of resources somewhere on the network. I tried to find a formal definition of clouds, but could not find. Definitions were vague and fuzzy, like real clouds. And then I had the feeling that the CLOUDS could not be clearly defined, they are like LOVE, which can only be described and characterized from different angles. Further investigation confirmed this assumption. To begin with, I found the Cloud Computing standard , which is developed by NIST (National Institute of Standards and Technology). It highlights 3 dimensions of cloud services:

    The clouds




    Those. there is no clear definition of the cloud even in the standard. Let's consider in more detail all measurements:

    Service Model or Service Model


    The following concepts must have been heard by everyone:

    • IaaS (Infrastructure as a Service) - the provider provides only computing resources (servers, storage, processing, memory, network bandwidth). In this case, a set of prepared OS images that can be deployed in a few minutes can be provided. Network connectivity between virtual machines and additional disk resources are also provided. A separate part of IaaS is MaaS (Metal as a Service) - providing access to bare hardware without OS (bare-metal servers). IaaS Provider Example: AWS. Platforms for building IaaS: VMware, OpenStack, Azure.

    • PaaS (Platform as a Service) - the supplier provides an operating system and certain software for independent implementation by the customer of their services, for example, DB, CMS. Examples: OpenShift, Heroku, Google Cloud Platform, Cloud Foundry.

    • SaaS (Software as a Service) - the provider provides software for use by the customer, for example: Microsoft Office 365, Microsoft Exchange, 1C, etc.

    It is believed that real clouds are only PaaS and SaaS, but the standard does not confirm this opinion.

    Deployment model


    Now about deployment models that are also well-known:

    • Private cloud - The infrastructure is deployed within the organization, thereby ensuring security and performance.

    • Public cloud - the infrastructure is designed to provide services to third-party customers. For example, AWS, Google Cloud. The advantages here are obvious: you do not need service personnel, rapidly expandable resources, you pay only for what you consumed (hours, gigabytes), the ability to focus on an idea or business, and not on maintaining the infrastructure. Well suited for the rapid deployment of small systems for organizing startups.

    • Community cloud - the infrastructure is shared between several organizations with similar concepts of resource consumption, security policies, etc. There are fewer consumers than in the public cloud, but more than in the private. Example: Google Apps for Government.

    • Hybrid cloud is a combination of two or more different cloud infrastructures (private, public or public). Among hybrid clouds, there are interesting use cases, for example: inside a private cloud, an organization stores all the necessary relevant information, and backups are transparently sent to a public cloud.

    Functional characteristics


    But the functional characteristics of the clouds are often not paid attention to, while for the clouds these are essential requirements:

    • Broad Access Network - the ability to access resources from the Internet using a variety of devices.
    • Rapid Elasticity - Resource Elasticity. If necessary, quick allocation of additional resources, up to infinity.
    • Measured Services - Automatic measurement of services and billing for payment.
    • On-Demand Self Services, Resource Pooling - allocation of computing resources (resource pooling) upon request from customers (on demand).

    It turns out that the Service had the right to be called cloud, you need to be able to answer the question "Where is it in all three dimensions?".

    The back of the clouds


    But with all the advantages of clouds, there are a number of points that can have negative consequences, especially in public clouds:

    • The cloud is relatively easy to manage, but software updates affect thousands of users, which could potentially lead to serious crashes.
    • In public clouds, large configurations are not always cheaper, TCO should be considered
    • There are several security questions in public clouds:

    1. How is sensitive data handled?
    2. Are the regulator's personal data requirements met?
    3. How reliable is the safety of data (duplication, backup)?
    4. What is the protection against hacker attacks?

    This is all, of course, not a reason to abandon the use of clouds, but the reason to more carefully understand the pros and cons.

    Virtualization


    Now a few words about virtualization, without which there can be no clouds. Virtualization also has several dimensions, which can conditionally be called “Type” and “Virtualization Method”.

    I will briefly discuss all of them. For a deeper immersion in the topic, I recommend the article "Overview of virtualization methods, architectures and implementations"

    Types of Virtualization


    Server Virtualization


    • Usually, virtualization refers to the location of several virtual servers within the same physical
    • But there may still be a combination of several physical servers in one logical one to solve a specific problem
    • Distribution + virtualization = system GRID

    Resource virtualization


    Resources are RAM, hard drives, processors. They can also be sliced ​​and distributed in parts to different users.

    Application Virtualization


    Application virtualization is what we already know as PaaS and SaaS

    Virtualization Methods


    Full virtualization and paravirtualization


    The main virtualization methods are full virtualization and paravirtualization. The outline of both methods is very similar. There is a hypervisor and virtual machines with guest OSs. With full virtualization, no changes are made to the guest OS. Paravirtualization sets up optimized images for a particular hypervisor. This allows you to maximize the use of hardware resources and does not require any changes from applications. An example of a system that implements full virtualization is VMware, an example of paravirtualization is Xen and KVM.

    There are several ways to virtualize:

    OS level virtualization


    A feature is that there can be only one guest OS. An example of OS-level virtualization is Linux-VServer:


    Containerization


    Recently, containerization systems such as Docker or Kubernetes have been used more and more. They allow you to automatically deploy prepared OS images mainly for the purpose of automatic testing and for CI systems. Containers are very similar to virtual machines, but they do not require a hypervisor, but only the corresponding engine:


    Hardware emulation


    With this virtualization method, the VM fully emulates the operation of certain equipment. On the one hand, this makes it possible, for example, to emulate another type of processor on one processor. On the other hand, it is clear that this will slow down dozens of times. An example of an emulator is Bochs .


    OS Library Emulation


    And for the sake of completeness, I will add library emulation. This is a way in which not all OS is emulated, but only part. For example, Wine on Linux is a library emulation for Windows applications.

    It turns out that we can virtualize different systems using different methods. Those. we see that existing methods and types of virtualization can solve many problems. A logical question arises, when does it make sense to deploy a cloud platform?


    Cloud platforms are located above a set of virtual machines, completely isolate the application from both the hardware and the structure of the virtual environment. Cloud platforms are used for automatic and manual scale in / scale out, start / stop / configure VMs and applications. When does it make sense to stay in virtualization, and when to stay in the cloud? The concept is as follows: when there is a lot of everything - the cloud, a little - virtualization:

    • For tasks with a large number of virtual servers, the cloud is better, for tasks with 10-20 virtual machines you can not deploy a cloud platform.
    • If you need to constantly change the configuration of resources - the cloud.
    • A lot of users, data, customers - the cloud.

    A few words about the platform for building clouds. There is a lot of information on them, so I will only give a dry squeeze:

    Cloud Platforms


    There are two main platforms for building clouds, the rest (Eucalyptus, Cloudstack, Microsoft Azure) occupy an insignificant share.

    • VMware is the vSphere platform. VMware has collected a huge number of technologies, is developing its own version of OpenStack.
    • OpenStack - formed in 2010, it is a set of free software projects that can be used to create infrastructure cloud services and cloud storage. The OpenStack Foundation (2012) has more than 1,000 organizations and more than 30,000 members. Major stack suppliers: Mirantis, RedHat, HP.

    Cloud platforms are typically used by customers to accomplish the following tasks:

    • Work with a frequently changing configuration of iron, as we talked about above.
    • The provision of Internet services and other network applications. Applications must be Cloud Ready.
    • Telco Cloud (aka SDN & NFV).
    • Collection, storage, processing of BigData.

    I will dwell on these tasks in detail and on Cloud Ready applications in one of the following articles.

    Carriers and Cloud


    It is interesting to understand if mobile carriers have clouds? Do they provide cloud services? From open sources, the picture is as follows:

    Beeline


    From cloud services provides:

    • PaaS: Shared Hosting
    • SaaS: Microsoft Office 365

    Megaphone


    There are traces of the network that in 2013 MegaFon provided IaaS. Now on the site from a similar one you can find the Colocation service . At the same time, MegaFon has a host of specialized services: CDN, M2M, WiFi authorization, VPN, etc.

    MTS


    MTS provides cloud services under the brand name “Belarusian Cloud Technologies” .

    • IaaS as access to your CloudServer
    • PaaS: SiteBuilder
    • SaaS: Microsoft Exchange, Microsoft Lync 2013

    RTK / Tele2


    Tele2 was not seen trying to promote the clouds, but RTK, whose mobile assets are in a joint holding with Tele2 (T2 RTK Holding), turned around seriously. RTK made the "National Cloud Platform" and now on its basis provides:

    • IaaS: Virtual Data Centers
    • SaaS: 1C, Virtual Office

    From the data obtained, it can be concluded that for mobile telecom operators the provision of cloud services is not a priority, they are more focused on the development of their networks and services. Telecommunications operators need to apply for network services, such as: virtual PBX, virtual network, M2M and generally for everything that can be provided on SDN & NFV technologies: virtual Firewall, DPI, etc. And for computing clouds it is better to go to specialized providers.

    Next articles



    Also popular now: