I wanted to do a quick post on a last minute problem and solution I encountered.
I'm heading out to do a presentation on Azure for Windows Phone developers in about 30 minutes and as I was running through my code I came across a problem; the Azure Emulator was hosting my services on port 444 instead of the HTTPS port (443). It was obvious that something must be using port 443 and that the service has decided to use the next port up (444). Problem is the application is not configured to run on this port and I didn't want to go through and start updating configuration files just before a presentation. So how do I find what is occupying that port?
There's a command line tool called
netstat that can be used to answer this question. I'll save you the trouble of looking through it's documentation. The exact command to type in is as follows:
netstat -o -a
It will return a list of addresses, ports, and process IDs. I looked for the line that mentioned port 443 and saw a process ID of 4332. From there I opened the task manager ( [CTRL]+[SHIFT]+[ESC]) and found process 4332 in the "Services" tab. It was a service from VMWare. I shut down the service, stopped the Azure emulator, and restarted the project. This time it came up on port 433!
The other day I was asked "What is cloud computing." I looked at it as being a concept that you just know like "time." How many of you can give a complete definition of time without referencing a dictionary? A short version of what I told him is that if some one uses cloud services it means they use computers that are some where else owned by some one else.
But I heard some one give a nice analogy explaining cloud computing. So I am taking it as my own.
I live in a house. Imagine for a moment that I decided to power the house by means of my own. I'd have to have a generator of some type constructed (solar batteries, hydroelectric generator, windmill, nuclear, what ever). That generator would require some type of maintenance. If I needed more power than the generator could produced then I would either need to suffer through having sufficient power or I would need to add more generators. If I add more generators and then find that many times I don't need them then I have the extra expense of maintaining these extra generators. I don't know anything about maintaining such equipment myself. So I'd either have to be trained in doing so in addition to the other tasks I do around the house or would need to pay some one else to take care of this.
Thankfully that's not how things work at my house. My neighbors and I get our electricity from our power company. I have no idea where it is generated or how it is generated. I honestly don't care as long as it makes it's way to me. If I need to use more electricity than usual in a month it's available. If I use less than I can do so and pay less. I don't have to worry about the space constraints for a generator or hiring staff to take care of it. I just pay for the electricity I need and go on about my business.
That's pretty much how Cloud Computing works in a nutshell. Only instead of purchasing electricity you are purchasing computing and/or storage. You may not know where the computer is actually located. On some plans if more computational power is needed the number of machines allocated can automatically increase for as long as needed and then decrease when no longer needed. There's no need to worry about maintaining the machines as the company that sold them will take care of that.
Now is a perfect opportunity to get your feet wet with Microsoft Cloud Computing. You can try SQL Server Azue and Windows Azure free for one week. You can get a Windows Azure bootcamp pass to learn Azure at your own pace between May 3 and May 10. You can find information on the bootcam pass and the learning material here.
If you live in the Atlanta area and would like to take advantage of a full day of Microsoft sponsored Azure training RDA and Microsoft have an event scheduled for July 2nd that you may want to take advantage of.
Please join us at the Microsoft Atlanta area (Alpharetta) campus on July 7th, 2009, as we present a free day of Microsoft-sponsored training on the Microsoft Azure platform and Live Services. No prior experience with Azure or Live Services is required.
For more information and to sign-up , please visit http://www.rdacorp.com/getting_started/events.html.
Earlier today Microsoft announced its plans for adjusting to the world economy. The news story I read stated that mid-PC sales were down while server software was up. I can't help but associate that with what a Sony exec called "A race to the bottom" in which consumer and OEMs begin to target building the cheaper computer instead of the higher performing computer. With the increasing emphasis being placed on Cloud Computing and Web Services and it all supports a prediction that software was going to move from the individual PCs back to the servers. We can find evidence of this now. Previously if you wanted to work on a word document you needed a computer with sufficient space and a reasonably powered processor. You would then need to purchase and install Microsoft Word and you could edit documents from your siloed computer. While you can still do this today you also have the option of using an online service to essentially do the same thing. You can use a low powered computer with any of a variety of operating systems as long as that computer has a supported browser. The power of the individual computer matters a little less and connectivity matters a whole lot more. as applications begin to target modern terminals.
It's possibly that my view of the future is slightly exagerated but I doubt it is completely wrong. That being said my plans for adjusting to what I think to be the needs of the future are to accelerate my learning path for Microsoft Azure Services Platoform and Live Services. I've been experimenting with Live Services for some time now and have found them to be useful in quickly putting together useful applications. An Azure application runs across several 64-bit Windows 2008 servers. Installation of patches is handled for you, failover is taken care of, and so are several other maintenance tasks allowing development of highly available, secure, and redundant applications with more ease. Effective use of the platform is going to require a different way of thinking than developing the traditional application so I plan to get started tonight with the intent of having information to teach and share within the next week.