Showing posts with label Cloud Computing. Show all posts
Showing posts with label Cloud Computing. Show all posts

Thursday, December 14, 2017

Hello world in Microsoft Quantum Computing #qsharp #quantum

This week Microsoft Quantum Computing research team released their first quantum development kit (free preview release).

Steps to play around Quantum!

a) You need Windows 64 bit
b) Visual Studio
c) Download quantum development kit, and install it (download link at the end)
d) Download the quantum library's & samples from git hub(download link at the end)
e) Compile and run any one of the samples.

I have compiled and ran the TeleportationSample project:



Link to github MS quantum libs and code: https://github.com/Microsoft/Quantum.git


Tuesday, November 28, 2017

Fundamentals of Wireless Communication 5G

 

What is wireless communication?

Data or information transferred from point A to B without any wire or dedicated cables is called wireless communication.

Mother Nature is doing wireless communication for millions of years*.  Let me give few real examples of how nature does wireless communication:
   a)   When you make an eye contact with other person, the light bouncing off from your body will enter into other person’s eyes, then inside their eyes millions of light sensitive rods and cones or photoreceptor neuron receives and transfers it to brain, where your actual picture is drawn.
   
   b)   When you are talking to other person, vocal cord\folds in your body, generates pressure in the air, that converted into sound waves and enters into the ears, then ear drum vibrates and converts into electrical signal then passed it to brain and different part of brain processes it.

In both the scenario, main point is humans are doing wireless communication unconsciously.

If you are one of the smart people, you might have asked this question, ‘how come I can hear and understand multiple sounds at a time, like car honking, hearing voices people passing by, etc. at the same time’ trick is all these sounds have different hertz or frequency of sound waves. So ear drum vibrates differently for different sounds waves’ frequency.

That’s it, wireless communication in simple sentences:

A gentleman says hello to a lady, his vocal cord generates a sound wave and her ear drum receives sound waves and processes it.

A transmitter antenna, encodes information and  generates radio waves by vibrating electrons, then radio waves travels at the speed of light , when it its receiver antenna, information will be decoded”.

Compare above both the sentences lot of similarities, isn’t it?  When you are stuck in traffic jam, you turn on the radio station. It follows same principle transmitter antenna broadcast and a receiver antenna in your car receives and plays it.
The very key point here is at what hertz the radio waves are broad casted. Don’t worry hertz is simple words for a second how many time it rotates or vibrates. Basically sender and receiver should know the language which they are talking about.

Let’s get little bit technical:

Electricity, Automation, Wireless communication … all these things boils down to “Electromagnetic Spectrum” after understanding this spectrum led to revolution in wireless communication.

There are two types of wireless communication, analog and digital. Analog, all nature communication is analog which is continuous in time and value, ex: sun light. Digital is discrete in both time and value.

After the dawn of transistors and integrated circuits, it revolutionized the wireless communication, after this point of time, wireless means mostly digital wireless.

Below flow path explains steps inside modern wireless communication system:
Analog Signal -> ADC -> Signal Processing -> DAC -> Analog Signal

What is this 1G, 2G, 3G, 4G and now 5G?

In simple words, A telecom company called X, which has setup of lot of cell sites or antennas, and users who want to pay for wireless service like talk or text, subscribes to X’s wireless services. With this setup is in place, here is all what that Gs does as follow:
1G (first generation): user can send and receive couple kb bytes – approx.
4G, user can send and receive few Megabytes – approx.
5G, user can send and receive few Giga bytes – approx.

So basically in 1G user can send and receive just text msg’s but in 5G user can send and receive HD videos, high res pics etc.


PS: I am trying to simplify the technology into simple English words and approximating the measurement or units. This is not for any references, just to create the abstraction of complex ideas into simple real life examples and intention is to reach technology to wider audiences.

Wednesday, October 5, 2016

Cloud Computing - Demystified

Agenda:
To understand basics of Cloud Computing and it flavors
Walkthrough IaaS a type of Cloud computing
Walk through layers of IaaS
Introduction VMware vSphere / Microsoft Hyper V
Pros/Cons
References/further studies

Basics of Cloud Computing and it flavors

Cloud computing is a system for enabling convenient, on-demand network access to a shared pool of configurable computing resources e.g., servers, storage, applications/softwares, and services that can be quickly provisioned(is term used in IT to setup and ready to use) and released with minimal user effort or service provider interaction.
If you google about cloud computing you see similar description all over the internet. Let’s break it down. In earlier days, network designers while modeling network plan they used to mention cloud diagram for unknown/somebody else problem/work. When you/company/govt. anybody needs a pool of computing resources like a computers, software, storage (photos, videos remember iCloud or google drive), you can approach cloud service providers like amazon, Microsoft and many others. Once you approach them and using their applications/websites within few minutes you can set up your computing resources. 

So when you don’t want rent office space, hire network engineers, buy computers upfront, less capital … solution is cloud computing.

I know still many grey areas about cloud computing, let’s get into detail of it. Here is the trick/how cloud service providers do the magic of providing cloud computing services on demand (means when you need it start using it and when you don’t stop/cancel the service). Data Centers: is huge building, inside you see hundreds of blade servers, storage racks, virtual servers, network setups … usually data centers will be setup strategically(geographically, environmentally). Typically with one data center cloud provider can provide service to hundreds of customers.

In brief, log in to cloud provider website, register and with few button clicks from your office/home couch you can setup a computing resources. Isn’t ridiculously simple?

Flavors of Cloud: There are many jargons used inside cloud computing like SaaS, PaaS, IaaS,… these are all slightly different services provided over network to end customers. Let’s look into them briefly

SaaS (Software as a Service): You got married, photographer took excellent photos but you still you feel to do little touch up to your photos. So will you buy photo editing software paying upfront $$$ just to edit pics, after that you won’t use it or just rent it for a day get done your work and just pay fraction of $? Obviously later, that’s it that is the Software as a Service, pay per use. All you have do is login to SaaS provider website pay per use and exit. Isn’t it cool?

PaaS (platform as a Service): It’s a computing resource with windows, linux or mac platform. Within few clicks of button on service provider website, a virtual machine will be ready for you, all you need is internet and you can login to that vm from your laptop or desktop.

IaaS (Infrastructure as a Service): a pool of virtual/physical machines, storage, networks. This flavor we shall discuss in brief later sections.

You got a wonderful startup idea, but you don’t have computers, required software’s and also lot of money. With little money and help of cloud service providers you can set up 10 to 20 computers, software’s with less time and start implementing your ideas. If successful continue the service, worst case you can turn of cloud services.

Ex: Amazon EC2, Microsoft Azure, Office 365, Outlook365, Gmail for organization, Salesforce...

Walkthrough IaaS

IaaS or Computing as a Service is basic Cloud computing service. It is the first thing we can think of when somebody talks about cloud computing. In fact researcher at Cambridge first developed virtual machine software called Xen. Basically idea of virtual machine is simple, On top of hardware/OS, a hypervisor layer sits which helps to create virtual machines in which we can install different OS and run parallel in a box. Hypervisor software takes advantage of modern powerful hardware which at any point of time won’t be consumed by user, so creates an abstract layer and distributes/shares computing resources across multiple virtual machines.

IaaS: can be pool of virtual machines/physical machines, storage, servers, network… IaaS provider will take care of security/patch updates to the virtual/physical machines, on demand computing power increase/decrease (RAM, Processors)
  


Walk through layers/internals of IaaS
         Here is what typical work flow looks like inside a cloud company/datacenter, when you or an organization requests for computing resources from cloud service provider. Its number sequential work flows as follows.
  UI Layer: First you will land in cloud provider website. User interface/web site where customers login from their location, and create/update cloud service request. For ex: you are starting up a new business and you need 5 computers(virtual machines). Just login like www.cloudprovider.com.
  Business Logic Layer:  Once user submits his/her request like how many virtual machines, software’s, operating system(platforms) they need. Business layer where they have hardware, software stock details in DB. Number of business logics will trigger and instantly give feedback to customer that how much time/minutes will take to complete their request via UI. Business layer does many checks like enough blade server available or not, storage and many other tasks before invoking workflow engine.
  Orchestration/Work Flow Engine: After updating the user about request status, business layer passes client request to work flow engine. Which will have algorithms to execute clients request sequentially, ex: first create virtual machine, install OS, applications like ms office… if any step fails it will update system/db and exits. Some major cloud vendors provide work flow engine live status so that they can what’s going on.
  Virtual Machine Management Center: Hypervisor(like VMware, MS Azure..) creates virtual machines. Usually scripts will exists, workflow engine just invokes it and script will does all the activities like, create, update VMs, installing a server automation client inside VM…
Hypervisor is one of the key component of cloud computing, because most of the cloud request is for virtual machines.  Hypervisor provides excellent client\UI to monitor and control the virtual machines, through which we can know whether a partical VM is up or down, status of it. Using client you can increase ram, processor, … I am just mentioned few feature of hypervisor but it does lot of other complex tasks like clustering, if a VM goes down, automatically another VM boots up its called high availability
  Server Automation: as name says it does many server related activities like installing OS in VM, patch’s/security updates.
  Network Management: set up network/vLan, IP management and other network related activities.

Above mentioned points/steps involves complex tasks, I am just trying to simply and give an idea what goes on inside a Datacenter. Each steps have separate dedicated team, hundreds of scripts to execute automatically in synchronized way and its team work, together they make cloud work.

Introduction VMware vSphere / Microsoft Hyper V


Pros:
·        No upfront investment for infrastructure like servers, software’s, storage, network. Pay per use.
·        No worries about security/patch updates. Cloud service provider will take care of it.
·        On demand computing resource increase or decrease, for ex: increase RAM, Processor when required and later turn it off
Cons:
·        You will be locked with one service provider, it’s very hard to migrate to different provider in current cloud architecture
·        Availability. Even cloud giants experience network/service outages.         
·        Internet connectivity. No internet no cloud
·        Long term cloud seems more expensive than in house server setup.

References


I recommend you to go through above links, they have very good tutorials and documentation. If you like to become AWS / Azure developer it takes some time to get your feet wet, but you can learn and start developing programs with in short span of time. Writing small or simple programs is key to understand a new concept