📜 ⬆️ ⬇️

VMware's flexible cloud organization for Internet projects (IaaS)

Currently, VMware has a number of specialized products for service providers, which in turn, on their base and their equipment, offer cloud infrastructure for rent (IaaS) . I would like to tell you a little about the opportunities that currently exist and describe the immediate prospects.

To build an infrastructure cloud ( according to the IaaS model ), VMware offers a family of products united by the common brand VMware vCloud (VMware vCloud Director and VMware vCloud Request Manager), supporting products include such things as VMware vShield (ensuring network security) and VMware ChargeBack (billing). Of course, all this is just binding in order to manage the virtual resources that are cut and provided by the core product of VMware vSphere.

What does the client get? Virtual resources for the client are presented in the form of the so-called virtual Data Center (hereinafter referred to as vDC), which is characterized by such parameters as:
For vDC, networks are also allocated, both internal (not having their own addressing) and external (in fact, a pool of public ip addresses of the service provider). Through vShield, the user has the ability to control the routing and filtering of traffic between networks, which, however, can be done simply by using our own firewall implemented from the FreeBSD virtual machine.
')
image

In addition to the simple ability to create and configure virtual machines, the management interface allows you to upload, use and share to other users, images of pre-configured virtual machines . Moreover, you can operate not with separate virtual machines, but with whole sets of interconnected virtual machines designed to solve one problem. Such a set can be a pre-configured software development infrastructure, an application provided in a three-tier architecture, and much more. For many developers, it may be interesting to provide your solutions not as an installable distribution (especially if it includes several server roles), but as a VMware vApp , which includes pre-installed operating systems, customized and ready-to-use applications and other for its work components (database, load balancers, etc.). Using a ready-made preconfigured vApp allows a potential client to start using and testing the application of interest within minutes.

image

However, since The theme of our post is still elastic cloud for developers, then we will go further. Suppose we have a project that contains three server roles: an application server, a database server, and something else, such as nginx. Add there another role designed to monitor the growth of the load and solve the problem of lack of resources. Call it Capacity manager. Suppose that the load on the project pulses throughout the day, and as the project progresses, it gradually grows as a whole. What are the ways to optimize the use of resources?

VMware vCloud Director offers resources for vDC in three models :


image

The Pay-As-You-Go model is the best for us, and we choose it. At the beginning, we created two application servers, one database server and two nginx servers. The configuration of each of them was minimally possible - (for example, CPU 3GHz, RAM 1Gb, HDD 40Gb).
Assume that all server roles except the database are interchangeable and stopping them does not cause downtime to the service provided, only to a decrease in performance. For each server role we made a ready-made server template, in order to minimize the deployment time of new servers in the future. At one point, our wonderful server as a Capacity manager discovered that both application servers are not coping with the load. He has two ways to solve the problem - to increase the number of application servers, or increase the number of resources of existing servers. Using the provided vCloud API, we extinguish the server, add the processor to it and turn it on again. The performance of our cloud has increased slightly. Now our Capacity manager sees that the disk space on the database server is running out. With this, it is simpler, enough to jerk the vCloud API correctly, increase the disk size given to the server under the database online and ask the operating system to see the changes. As the load grows, we have raised the configuration of the application servers to indecent sizes, such as RAM 32Gb and CPU 32GHz. It's time to start increasing our cloud horizontally. To do this, we pull the same vCloud API and make a copy of one of the existing application servers. We customize its parameters (ip addresses, host name) and launch it. Thus, we are able to dynamically change the size of our cloud and, accordingly, it is better to ensure consistency between the need for resources and their actual availability. The vCloud API features are well presented on the VMware website .

As a result, we have a project that adapts to the load, payment for resources for which is carried out depending on actual consumption. For those who do not want to implement the role of Capacity Manager, there is a developed web interface that allows you to do all the above-mentioned operations manually - this is acceptable in most cases, especially if you are not a developer of your platform, but more of a system administrator.

image

Many may argue that increasing resources by rebooting is not the most elegant way. Fully agree. What alternatives can there be? The most interesting thing is of course the ability to add resources to the virtual machine online. And it works! However, this method is very limited by the types of supported operating systems. Although progress does not stand still, and adding RAM and processor is already quite common, and if you have your hands free when choosing a base OS, it makes sense to choose it with an eye to such support. Reducing the amount of resources online is a less-developed task, and, unfortunately, I have not heard about a workable solution at the moment - it's up to the OS developers.

Afterword

Some, having familiarized themselves with this post, might think: how much fuss with all this, why do I need it? I'm just a developer and I don't want to manage and optimize the infrastructure. I will answer! We talk about IaaS - Infrastructure as a service . For this audience, our next article on PaaS - Platform as a Service from VMware - vFabric will be interesting. Where we will try to reveal what is behind this term and what opportunities this platform provides.

Test VMware vCloud


Login: demo
Password: 12345678

image

Source: https://habr.com/ru/post/112097/


All Articles