tries to stay afloat by reducing operating costs and increasing profits,
Resultly is no different. As an Internet based company, it is crucial to
us to remain in operation all around the clock. One of possible
solutions to increase availability of our services is to establish a
high level of redundancy. Let us take a look at a simple computation
that makes the power of redundancy obvious.\
\ Let us assume that that a vital process has a probability of running at
any given time is P (measured from 0 to 1), then the probability\
that the same processes is found inactive is (1-P). Now assume that we
have two copies of the same process, then the chance that all of them
simultaneously crash is
and the chance that at least one is running would be 1-(1-P)^2^.
As an example, let's say that P=.8 i.e. chance that the process is up is
80% (which is quite low). By doubling the number of processes, we
measure the probability by the established expression:
1-(1-0.8)^2^=0.96. Thus we increased the chance of success from 80% to
96% by increasing the number of independent copies. Having two servers
running the same process is expensive. The key to increasing redundancy
and controlling the cost lies in hardware virtualization.
about our relationship with Apple in one of the earlier blog posts.
Apple came to our rescue this time as well. The Mac mini
is a perfect candidate for a highly sharded cluster configuration we are
pursuing. Its compact form factor (four units in a 1U rack) allows us to
save on our server collocation costs among other benefits. After we
chose the server platform, we have yet to solve two problems:
establishing high level of redundancy and running Windows based
processes on the Apple platform. Both of these issues can be addressed
by using virtualization techniques.
We already discussed Parallels products in our earlier posts.
Parallels offer virtualization software for Apple amongst other platforms. The Parallels' motto is "Run the Software
You Need on the Hardware You Want" and that addresses one part of the
problem. We install Parallels
Server software that
allows simulation of different server environments on the Apple
platform. Parallel Server enables one Mac mini for running up to four
copies of Window Server establishing a high level of redundancy. (We
found four in our configuration is optimal based on four physical cores
of our Mac mini CPU’s. In theory, you can run more simultaneous copies.)
Having this number of copies of the same process, the probability that
at least one copy of the process remains viable is 99.84% according to
the computations we discussed earlier. This, of course, does not apply
to the scenario when the hardware fails and all four virtual servers are
lost. However, this is still a reasonable approach to improving
redundancy and controlling the cost.
A byproduct to such configuration is the maximized hardware throughput.
Hardware throughput and making sure we are able to squeeze every bit of
performance out of our machines is also crucial. Parallels hypervisor is
optimized to allocate system resources efficiently. Having four Windows
Servers ensures that at no time a processor is in the idling mode and
this way, we get the most out of our hardware.\
\ There are other useful features of Parallels Server that we use at Resultly, such as
Integrated snapshots and point and click migration. These capabilities
are irreplaceable during disaster recovery and rapid deployment
processes. Rapid deployment is critical in the initial state of our
growth and point and click migration capabilities suit our needs very
well. It allows us to make a copy of any virtual machine and seamlessly
transfer it to a different server.