High Performance and Hosting Infrastructure: 1cloud Project Experience
In our blog, we already talked about building the infrastructure of a hosting provider and creating an API for it, described the automation of accounting tasks, and even revealed the topic of redesigning our own site.
In today's topic, we will talk about another interesting topic - the possibility of ordering the so-called "large configurations", that is, high-performance and simply "large" servers.
What is it and for whom
“Large” servers mean machines with up to 32 CPUs and up to 128 GB RAM (per server). We also developed a mechanism that allows customers to migrate their infrastructure to a more productive pool as they work.
A similar need may arise, for example, with the rapid growth of a project that is rapidly gaining traffic, for which the current technological stack is simply not keeping pace. Then it is logical to decide on a quick and painless transition to more productive servers and vertical scaling.
In this case, in the end, horizontal scaling most often turns out to be a more profitable option in the long term.
The base pool is suitable for, for example, terminal servers or for not very loaded applications and web sites. For demanding performance or high workload resources, you can use a performance pool.
All 1cloud virtual servers reside on NetApp FAS6240 / FAS8040 disk arrays. The equipment is located in the Tier III level data center (SDN) in St. Petersburg, and all communication channels have physical redundancy.
What is the difference between a performance pool
The infrastructure of the base 1cloud server pool is based on HP ProLiant blade servers with Intel Xeon x5675 processors. Servers with up to 12 CPUs in the production pool are hosted on Cisco UCS servers with Intel Xeon E5 processors.
They look like this:
Virtual servers from 14 CPUs to 32 CPUs are hosted on Dell PowerEdge servers with Intel Xeon E7 processors:
How does migration
After the site was redesigned, a convenient calculator appeared on it, allowing not only to order standard configurations, but also to create “custom” applications. After the introduction of the high-performance server pool in the calculator, new controls appeared:
In addition, the ability to order large servers appeared in the internal hosting control panel. Thanks to this, users can not only conveniently order such a server from scratch, but also quickly migrate their infrastructure to a more productive pool in just a couple of clicks:
Quite often, productive servers are required at the stage of testing the provider's infrastructure - in order to facilitate this process, we implemented the opportunity Providing servers with up to 8 CPUs and 32 GB of RAM for testing.
Large configurations allow you to implement vertical scaling of the infrastructure - thanks to the 1cloud API, you can configure automatic scaling if necessary.
In the near future we plan to work in two directions:
- Creating a function to monitor server load - clients should be able to directly see how busy their server is in the hosting control panel and be able to configure alerts when threshold load values are exceeded.
- Implementing a load balancer - in a similar way, customers will have the opportunity to distribute the load across the servers in a couple of clicks directly from the control panel interface.
The implementation of these two “features” will allow us to lay the foundation for the implementation of other services, for example, an elastic cloud and automatic horizontal scaling with increasing load.
That's all for today. We will be happy to answer questions in the comments. If you have any particular interest in a topic related to the hosting infrastructure, please tell us and we will make a new post.