Virtualization

Scalability – Scale Out/In vs Scale Up/Down (Horizontal Scaling vs Vertical Scaling)

October 1, 2016 Architecture, Azure, Cloud Computing, Cloud Services, Horizontal Scaling, Performance, Reliability, Resilliancy, Scalability, Scale Down, Scale In, Scale Out, Scale Up, Software/System Design, Vertical Scaling, Virtualization No comments

When you work with Cloud Computing or normal Scalable highly available applications you would normally hear two terminologies called Scale Out and Scale Up or often called as Horizontal Scaling and Vertical Scaling.  I thought about covering basics and provide more clarity for developers and IT specialists.

What is Scalability?

Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources (typically hardware) are added.

A system whose performance improves after adding hardware, proportionally to the capacity added, is said to be a scalable system.

image

This will be applicable or any system such as :

  1. Commercial websites or Web application who have a larger user group and growing frequently,
  2. or An immediate need to serve a high number of users for some high profile event or campaign.
  3. or A streaming event that would need immediate  processing capabilities to serve streaming to larger set of users across certain region or  globally.
  4. or A immediate work processing or data processing that requires higher compute requirements that usual for a certain job.

Scalability can be measured in various dimensions, such as:

  • Administrative scalability: The ability for an increasing number of organizations or users to easily share a single distributed system.
  • Functional scalability: The ability to enhance the system by adding new functionality at minimal effort.
  • Geographic scalability: The ability to maintain performance, usefulness, or usability regardless of expansion from concentration in a local area to a more distributed geographic pattern.
  • Load scalability: The ability for a distributed system to easily expand and contract its resource pool to accommodate heavier or lighter loads or number of inputs. Alternatively, the ease with which a system or component can be modified, added, or removed, to accommodate changing load.
  • Generation scalability: The ability of a system to scale up by using new generations of components. Thereby, heterogeneous scalability is the ability to use the components from different vendors.

Scale-Out/In / Horizontal Scaling:

To scale horizontally (or scale out/in) means to add more nodes to (or remove nodes from) a system, such as adding a new computer to a distributed software application.

image

Pros:

  • Load is distributed to multiple servers
  • Even if one server goes down, there are servers to handle the requests or load.
  • You can add up more servers or reduce depending on the usage patterns or load.
  • Perfect for highly available web application or batch processing operations.

Cons:

  • You would need additional hardware /servers to support. This would increase increase infrastructure and maintenance costs.
  • You would need to purchase additional licenses for OS or required licensed software’s.

Scale-Up/Down/Vertical Scaling:

To scale vertically (or scale up/down) means to add resources to (or remove resources from) a single node in a system, typically involving the addition of CPUs or memory to a single computer.

image

Pros

  • Possibility to increase CPU/RAM/Storage virtually or physically.
  • Single system can serve all your data/work processing needs with additional hardware upgrade being done.
  • Minimal cost for upgrade

Cons

  • When you are physically or virtually maxed out with limit, you do not have any other options.
  • A crash could cause outages to your business processing jobs.

We discussed in detail about the both approach in Scalability, depending on the need you will have to choose right approach. Nowadays high availability of cloud computing platforms like Amazon AWS/Microsoft Azure etc., you have lots of flexible ways to Scale-Out or Scale-Up on a Cloud environment, which provides you with virtually unlimited resources, provided you are being capable to pay off accordingly.

Hope this information was helpful, please leave your comments accordingly if you find any discrepancies or you have any queries. 

Installing Windows 10 Client Hyper-V in VMware Workstation/Fusion/ESX

July 10, 2015 Hyper-V, KnowledgeBase, Microsoft, OS Virtualization, Tips & Tricks, Virtual Machines, Virtualization, VMware, Windows, Windows 10 No comments , , , ,

As a Windows 10 Insider, I would always latest version of Windows on VMWare Player, Workstation or VirtualBox. Recently I was trying to set up a Windows Phone 10/UWP development environment inside a VMWare virtual machine.

I tried to enable Hyper-V platform components in my Windows 10 Preview Virtual machine. It shows an error.

Hyper-V cannot be installed: A hypervisor is already running

  • Unable to use Hyper-V platform inside a Windows 10 virtual machine
  • When trying to enable/install Hyper-V in a Windows 10 virtual machine, you will see the above error:

image

SOLUTION:

Solution for this problem is to edit your VMware Virtual Machine configuration(.vmx) file in your Windows 10 Virtual machine stored location.

  • Switch off/Shutdown your VMware virtual machine
  • Edit the corresponding .vmx file
  • Append the following entries to the vmx file (verify entry if already exists)
hypervisor.cpuid.v0 = "FALSEā€
vhv.enable = "TRUE"
mce.enable = "TRUE"
  • Save the changes
  • Start your Windows 8 VMware Virtual machine
  • Now go to Control Panel –> ā€˜Programs and Features’ –> Turn windows features on or off
  • Viola!,Ā  You can now enable ā€˜Hyper-V Platform’ . Now you can install Windows Phone SDK on your Windows 10 Virtual Machine

image

VMware Official Knowledgebase Reference Link:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2044876

Hope that help you guys with similar problems.

Microsoft Developer Program for IoT & Windows 10 IoT Core Insider Preview

May 3, 2015 .NET, .NET Framework, C#.NET, Cloud Computing, Embedded, Internet of Things, IoT, Microsoft, Tech-Trends, Virtualization, VisualStudio, VS2015, Windows, Windows 10, Windows 8.1 No comments

Microsoft has introduced a new developer program to enable the developers working on Internet of Things(IoT) based implementations.  As part of this program developers would be able to try out – Windows 10 IoT Core Insider Preview.

If you are an enthusiast working on IoT, you can signup @ https://www.windowsondevices.com/signup.aspx allows you to be early adopters of Windows on  Devices program.

Following Devices are currently supported by Windows 10 IoT Core Insider Preview.

<code>  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/p/?linkID=532948"&gt;Learn more about Windows IoT devices&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="github.io/content/GetStarted.htm" target="_blank"&gt;Microsoft Github repository&lt;/a&gt; for IoT, where you can find lots of samples and documentation. &lt;a title="http://ms-iot.github.io/content/GetStarted.htm" href="http://ms-iot.github.io/content/GetStarted.htm"&gt;http://ms-iot.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What is Internet of Things?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.nitrix-reloaded.com/wp-content/uploads/2015/05/theinternetofthings.jpg"&gt;&lt;img title="Print" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Print" src="http://www.nitrix-reloaded.com/wp-content/uploads/2015/05/theinternetofthings_thumb.jpg" width="386" height="235"/&gt;&lt;/a&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Part of the &lt;a href="/wp-content/uploads/2015/05/Cloud-computing"&gt;Cloud computing&lt;/a&gt; glossary: 
</code>

The Internet of Things (IoT) is a scenario in which objects, animals or people are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction. IoT has evolved from the convergence of wireless technologies, micro-electromechanical systems (MEMS) and the Internet.

Below is a high level technology roadmap as per Wikipedia:

Installing Windows 8 Client Hyper-V inside VMware Workstation/Fusion/ESX

August 9, 2013 AMD-V/RVI, Client Hyper-V, ESX, Hyper-V, Hyper-V Platform, Virtualization, VMware, VT-x/EPT, Windows, Windows 8, Windows 8.1, Windows Phone, Windows Phone 8, Windows Phone 8.0 SDK, Windows Phone Development, Windows Phone SDK No comments

Typically I used to try latest version of Windows on VMWare Player, Workstation or VirtualBox. Recently I was trying to set up a Windows Phone 8.0 development environment inside a VMWare virtual machine.

I tried to enable Hyper-V platform components in my Windows 8.1 Preview Virtual machine. It shows an error.

Hyper-V cannot be installed: A hypervisor is already running

  • Unable to use Hyper-V platform inside a Windows 8 virtual machine
  • When trying to enable/install Hyper-V in a Windows 8 virtual machine, you will see the above error:

image

SOLUTION:

Solution for this problem is to edit your VMware Virtual Machine configuration(.vmx) file in your Windows 8 Virtual machine stored location.

  • Switch off/Shutdown your VMware virtual machine
  • Edit the corresponding .vmx file
  • Append the following entries to the vmx file (verify entry if already exists)

hypervisor.cpuid.v0 = “FALSEā€
vhv.enable = “TRUE”
mce.enable = “TRUE”

  • Save the changes
  • Start your Windows 8 VMware Virtual machine
  • Now go to Control Panel –> ā€˜Programs and Features’ –> Turn windows features on or off
  • Viola!,  You can now enable ā€˜Hyper-V Platform’ . Now you can install Windows Phone SDK on your Windows 8 Virtual Machine

image

VMware Official Knowledgebase Reference Link:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2044876 

Hope that help you guys with similar problems.