Windows Azure (w/ AWS) Presentation Coming Up

I have a presentation coming up next week on the 10th.  If you’re interested in cloud computing, specifically around storage then you should tune in.  I’ll be covering the basics and some of the architectural ideas, uses, and more around Windows Azure Storage, and the comparable Amazon Web Services storage services.  I’ll also be noting a few of my ongoing projects that you might, if you’re into cloud bits, get a kick out of or want to join.

To tune in to the presentation swing over to the https://www.clicktoattend.com/invitation.aspx?code=147809 link.  There is registration information on the page.  The presentation will technically start at 1 PM PST on the 10th of next week and run until about 1:45pm.  We’ll make the meeting live about 12:45 for early arrival and after about 1:45 there will be a question and answer session.  I hope to have a good bit of conversation afterwards discussing the uses, architectures, and patterns around storage use with cloud services.

I hope you’ll join me.  -Adron

Cloud Throw Down: Part 1 – Operating Systems & Languages

   
Amazon Web Services Amazon Web Services Windows Azure Windows Azure

The clouds available from Amazon Web Services, Windows Azure, Rackspace and others have a few things in common.  They’re all providing storage, APIs, and other bits around the premise of the cloud.  They all also run on virtualized operating systems.  This blog entry I’m going to focus on some key features and considerations I’ve run into over the last year or so working with these two cloud stacks.  I’ll discuss a specific feature and then will rate it declaring a winner.

Operating System Options

AWS runs on their AMI OS images, running Linux, Windows, or whatever you may want.  They allow you to execute these images via the EC2 instance feature of the AWS cloud.

Windows Azure runs on Hyper-V with Windows 2008.  Their VM runs Windows 2008.  Windows Azure allows you to run roles which execute .NET code or Java, PHP, or other languages, and allow you to boot up a Windows 2008 OS image on a VM and run whatever that OS might run.

Rating & Winner: Operating Systems Options goes to Amazon Web Services

Development Languages Supported

AWS has a .NET, PHP, Ruby on Rails, and other SDK options.  Windows Azure also has .NET, PHP, Ruby on Rails, and other SDK options.  AWS provides 1st class citizen support and development around any of the languages, Windows Azure does not but is changing that for Java.  Overall both platforms support what 99% of developers build applications with, however Windows Azure does have a few limitations on non .NET languages.

Rating & Winner: Development Languages Supported is a tie. AWS & Windows Azure both have support for almost any language you want to use.

Operating System Deployment Time

AWS can deploy one of hundreds of any operating system image with a few clicks within the administration console.  Linux instances take about a minute or two to startup, with Windows instances taking somewhere between 8-30 minutes to startup.  Windows Azure boots up a web, service, or CGI role in about 8-15 minutes.  The Windows Azure VM Role reportedly boots up in about the same amount of time that AWS takes to boot a Windows OS image.

The reality of the matter is that both clouds provide similar boot up times, but the dependent factor is which operating system you are using.  If you’re using Linux you’ll get a boot up time that is almost 10x faster than a Windows boot up time.  Windows Azure doesn’t have Linux so they don’t gain any benefit from this operating system.  So really, even though I’m rating the cloud, this is really a rating about which operating system is faster to boot.

Rating & Winner: Operating System Deployment Time goes to AWS.

Amazon Web Services

Amazon Web Services

Today’s winner is hands down AWS. Windows Azure, being limited to Windows OS at the core, has some distinct and problematic disadvantages with bootup & operating system support options.  However I must say that both platforms offer excellent language support for development.

To check out more about either cloud service navigate over to:

That’s the competitions for today.  I’ll have another throw down tomorrow when the tide may turn against AWS – so stay tuned!  🙂

Linux vs. Windows and AWS vs. Windows Azure Questions

Windows Azure & Amazon Web Services

Windows Azure & Amazon Web Services

A few weeks ago I blogged about sputtering Windows Instances (not just Windows Azure). I’ve since expanded my query and research to http://www.serverfault.com and http://www.stackoverflow.com to see if I can dig up more information and others’ prospectively experiencing the same issues.  I’d really love to find some solutions, which currently don’t seem to exist.

Linux vs. Windows

Linux vs. Windows

My serverfault question is “Linux & Windows Boot Up Times in Amazon Web Services and Windows Azure“.  (yes I know, horribly phrased question, I’ll do better next time)

My stackoverflow question is “Deploying Projects on EC2 vs. Windows Azure“.

Please feel to leave a comment or two here, or on either of the questions.  I’d love to get more hard facts about how exactly Windows boots in these environments.  Especially how Windows boots versus Linux, because it seems Linux performs about 10x better than Windows in this regard.

Communication on Lean/Scrum/Pairing Within Software Projects

Communication is important. Communication is even more important in projects using lean, scrum, or other agile ideals than in other projects. Mainly because of the rapid, refactoring, and pairing nature of the project process style. This truism lead me to think, “hey, I ought to write up a short blog entry about some effective methods of communication within teams”.

These are just a few scenarios where an effective communication was introduced during a project with great success.

Public Realtime Chat Forum/Room

On one of the projects I worked on a very successful communication practice was to use a public realtime chat using Yahoo Messenger (of course one could substitute with whatever instant messenger client). Each 3-8 person team would log on and join the group chat. This group chat was used for a number of very specific communications that needed instant, but non-interruptive communication.

  • Road Blocks – If someone ran into an architectural, build, or other road block the entire group would quickly review and knock the road block down.  This could usually happen in seconds to a few minutes.  Rarely did a road block ever exist for more than 10-15 minutes.
  • Levity – Someone would throw a geek joke out every once in a while or toss a little tech news tidbit into the chat.  Often around lunch time or such.  This would lighten the mood if things were getting a little intense around deployment time.
  • Scheduling Notification – If a meeting was coming up, considering the speed and focused approach this enabled, developers would often not have Outlook up to be interrupted by so meetings may have been missed.  Usually the lead or project manager would keep up with these scheduled meetings and pull the team into them with a simple chat mention.  This helped by reducing the avenues of interruption while the team was focused on problem solving and coding.
  • Pairing Request – If a developer ran into a tricky business logic, or other section of code they were trying to put together, one could request a personal chat or in person pairing to get the logic figured out and have the double check of a pair.  This really helped improve the quality of code and architecture and time to resolution around really tricky parts of code.

Sketchflow Workshops

I’ve dubbed this communication the sketchflow workshops, when in reality this process was an attempt to recreate paper prototyping as best as we could without onsite visits.  I’ll mention before continuing, that absolutely NOTHING takes the place of in person communication when doing paper prototyping.  So here’s my analysis, with that clause, of how these workshops worked out improving communication.

  • An online medium with video, white boarding, and sound was used to provide as much interaction as possible.  The application prototype/mock up would then be shown and the team and client would white board, discuss, and point out UX & UI changes or additions that were needed.
  • The white boarding of the app provided a means to quickly sketch out ideas, somewhat similar to paper prototyping.
  • Note taking was done actively in a group chat while people discussed & drew on the white board or presented the prototype/mock up.

There are a few things I would have added, that are now possible with newer tools, that would have improved this process even more.

  • Using SketchFlow w/ Expression Blend to make actual changes to the prototype/mock up would have been very useful, and easy to do with this toolset.
  • Using the deploy static site with feedback tools that Expression Blend enables would have also been useful to act in addition or in lieu of the white boarding medium (it was slightly cumbersome vs. real white boarding).
  • Video of people & video of a real white board would help dramatically.  These two additions could actually bring this type of communication almost on par with actual paper prototyping.

That’s it for this entry.  If you have any other specific communication tools, mediums, practices, or otherwise I’d love to hear about them.  Tweet, e-mail, or leave a comment for me if you would.

#wp7/#wp7dev + Amazon Web Services (AWS) and Windows Azure

I got to mess around with the Windows Phone 7 SDK finally over the last few weeks (Twitter hashtags #wp7 and #wp7dev).  The first few things I noticed was that there are a lot of missing parts to it.  Namely the calendar control I fussed about well over a month ago in Windows Phone 7 Calendar Control.  Even with the missing elements I kept wondering what I could build that would be useful and might be a good open source project?  I finally stumbled on the idea that I’d roll a few of my points of study together into one;  Windows Azure, Amazon Web Services, and Windows Phone 7.  With that stumbling notion I navigated straight over to Codeplex and rolled a new project!

With that written, I hope I can get some of you cloud afficionados and gurus to put in a few hours a month to help build a rockin’ open source mobile admin app!  If you’re interested please e-mail and I’ll get you setup on the project ASAP!  🙂

Here are my first few user stories just to get things started.  If you think of other functionality, please feel free to add that to the comments below or to the tracking section on the Codeplex Project.

http://wp7cloudadmin.codeplex.com/