AWS, WordPress, Windows Azure, Clouds, and More…

I’ve been looking into getting a blog, specifically WordPress, into the cloud.  Of course the first two I take a look at are Windows Azure and AWS.  This is what I’ve found so far.

Windows Azure

Windows Azure is easy enough, sort of, but distinctly limits the control and abilities of the actual blog.  This is primarily because of the way one has to host a blog, and the software just isn’t really built to take advantage of the platform specifically.  In other words, WordPress isn’t really built around horizontal scalability.  Also one has to run WordPress in a CGI Instance, not exactly ideal either.  It works, and really does work well, but there are just options that aren’t available in this situation.

The other issue is that a single running CGI Role is going to run you around $100 bucks a month.  I’ve checked and if you push off the entries into a Windows Azure Table Storage area, that’ll easily break past that $100 bucks into the $110-200 range or higher.  It all really depends on how many transactions and views your site is getting.  If you really necessitate Table Storage vs. a traditional relational data store for your blog, I seriously doubt a couple hundred bucks will be an issue.  In all reality, if you’re using the Table Storage you most likely should be in the traffic range that would run you about $1000 bucks a month or more, in each geographic area.

Amazon Web Services

AWS is however a different beast altogether.  First, running an EC2 instance you can get everything running that you need.  The data store for the entries and also gain access to a level that allows you to add plugins and all the other features of WordPress.

The pricing on Amazon gets a lot better too.  One can get the reserved instance for $350 bucks a year (or $227.50 for Linux/UNIX).  That enables one to install WordPress with total control for about $30 bucks a month.  Considering the redundancy, uptime, and general availability and performance of the cloud that is a really decent price.  Even if one gets some heavy bandwidth usage, the cost for that shouldn’t go above a few dollars.

Summary

At this time, if you want some cloud computing power behind your blog, AWS is the clear winner in price and performance!

A few reference links:

August 2010 ALT.NET Seattle & Inaugural Android Meet Up

ALT.NET Seattle Meet

This weekend I attended the ALT.NET meet up.  For more information on future meet ups check out these resources:

We covered some great topics around not using IoC (Justin, where were ya!?), REST and what it really is, and lots of things around WCF.  We all adjourned briefly for some burgers at Blue Moon and went right back at it.  If you’re serious about architecture, frameworks, and coding in general (in general in the .NET stack) you should definitely check out this group.  Anyone can come and jump in, easy to participate and everybody is great about helping each other out.

Inaugural Android Mobile Meet Up

This group was great also.  I forget how many exactly, but in excess of 40 people were there, possibly even 60 or so.  The session were great and the organizer did a top notch job of getting the pizza in, introducing the speakers, and getting some appropriate props for F5 Networks for hosting!  Thanks Benn for a job well done.  For more information or to attend the next meet up check out http://www.meetup.com/Seattle-Android-Developers/

Other Meets

This week there are also a number of meet ups that I hope to attend;

Waterfall vs. Agile

Before reading this you should know what the Agile Manifesto is and the Agile Principles are.

I’ve seen it on more than one project in my career and it always seems to happen.  Agile rarely gets credit in this scenario.  People rarely learn what was and was not effective on the project in this scenario.  Those that are Agile Practitioners that know what a truly fast paced, effective, high quality, and successful software project can be know.  What I’d like to know though, especially from those that have successfully dealt with the “Must have big design up front (BDUF) headaches” and transitioned those people to a more Agile style approach.

The scenario generally starts like this…

A project is green-lighted for whatever reason.  Often with some high level manager determining that a project will save or make $X amount of money.  The project is poorly defined or simply not defined at all.  The stakeholders, clients, or others that would prospectively use the software are nowhere to be found and unidentified by management.  There are at least a half dozen external dependencies the project must have completed.  (Take Note Upper Management & Executives:  Six Sigma/Lean Processes can help at this level dramatically)

Waterfall Approach

In a waterfall approach all of these things will have to be documented and nothing initially gets developed.  The people writing the documents, often some sort of business analyst, is forced to basically make up whatever they can come up with.  In addition to that and hypothesis is derived from thin air and someone starts to come up with a more functional, technical, or even concrete UML design documentation.  To summarize, in a waterfall approach a whole bunch of people start documenting all sorts of things about this theoretical application software.  A 6th grader would study this and say, “so they write a bunch of lies right?”

When the actual concrete ideas come to fruition, long hours of the famous death march approach usually start.  Sometimes more and more people are thrown at the application in hopes that somehow it will speed things up, but in reality as a seasoned software developer knows, it only slows them down.  Other issues very common with this approach are horrifying low code quality, a lack of tests, missing ability to regression test, no verification of what done truly means, and a whole host of known issues.

Agile Approach

An Agile approach on the other hand would start finding the clients and consumers of the theoretical software.  These people would be engaged and some paper prototypes or other initial sketches of what the software might do are created.  Maybe sketchflow or some other software is used to create some rapid prototypes to give the clients an idea of what the software would look like and what it might do.  The clients start giving feedback and a more concrete idea is formed around this theoretical software upper management has dictated.  Initial tests and code are written and put into a continuous integration process, with an end product being dropped every few days or weeks.  A 6th grader would study this and say, “you’re building software and having fun?”

What Happens in the End, IF the Waterfall Project is Successful

There seems to be two resolutions that I’ve found that allow Waterfall to actually be successful.  The first is that the project forgoes the charade of Waterfall and starts implementation of more Agile ideals and processes immediately.  This cleans up things and improves morale, all while getting the project back on track.  The second solution is that development/engineering determines they’ll do Agile anyway, and up manage the management.  Management thinks they have a successful Waterfall Project when in reality the proactive developers/programmers took it upon themselves to assure success, and thus moved to an Agile ideals, process, and practices among themselves.

In Summary

These two different models are HUGELY disparate, and yet the aforementioned waterfall model approach is still heavily used.  I suspect, unfortunately, that it is primarily used at a majority of businesses (and especially Government).  Even if the business or Government pretends they’re doing Agile and calls their Waterfall Model Agile something another.  This is something else I’ve seen far too often.  This is a complete misrepresentation of what Agile Ideals and processes are.

The Questions

I’d like to know, what methods do you use to attack and remove the barriers caused by waterfall at large organizations?  Do you subvert the existing management infrastructure and just do things in a more Agile way regardless in order to succeed?  Are there any specific practices, techniques, or otherwise that help you align so that one can keep a project moving along quickly, all while avoiding the damage waterfall models do to the actual underpinning project, code quality, and other such items?

Please leave a comment or three.  🙂

Biting The Bullet, Book Writing Commences

I’ve decided to go for it.  I’m going to write a book and today is the day that marks the beginning of this journey.  I’ve read up and asked for advice from writers that have undertaken the technical book effort before.  John Papa, provided some great information in the past, and even wrote a new blog entry related to some of those past efforts More Tips for Writing A Technical Book.  The previous entries are great material too;  10 Things to Consider Before Writing a Book and 6 Great Tools for Writing a Book.  I’ve read through these and am taking heed of the advice John gives.

Another blog entry I’ve come upon recently is by Bart Czernicki titled Technical Book Sales Insight Through Real-Time Amazon Rankings Analytics.

One of the things I’ll be doing, is blogging some of the notes, book sections, and other things to see if ordering, writing, and other bits work according to you the blog readers.  With that in mind, I present my first table of contents.  It’s a rough draft, but what do you think so far?

Title:  Windows Azure Cloud Computing Subtitle: From Enterprise to Startup, A Clear Path Chapters:

  1. The History & Ideas of Cloud Computing    a. Literal History of Cloud Computing       i. Yesterday.       ii. Today.       iii. Tomorrow.    b. Modern Cloud “Services” Focus       i. SaaS       ii. PaaS       iii. IaaS    c. Why Jump Into The Clouds       i. First, The Disadvantages       ii. Now, The Advantages    d. The 60k Ft. View of Cloud Architecture       i. Public & Private Clouds       ii. Enterprise, Startups, and More       iii. On Premises
  2. Starting Windows Azure Development    a. What you’ll need, what you’ll want.    b. Other languages; Java, PHP…    c. Build a Cloud Site & Service with…       i. C#       ii. Java       iii. PHP
  3. The Platform Elements of Windows Azure    a. Web Role    b. CGI Role    c. Service Role    d. Storage       i. Blob       ii. Table       iii. Queue    e. …OTHER BITS
  4. Architectural Patterns for Windows Azure    a. Queuing Patterns    b. Storage Patterns    c. Instance Patterns    d. Mixed On-Premises or Private and Public Cloud Patterns    e. Cloud to Cloud Patterns
  5. Cloud Security    a. Physical Security of Facilities    b. Device & Data Security    c. Cracker & Social Engineering Security    d. Strategies for Additional Security
  6. Business, Ideas and the Future of Cloud Technology    a. Super Computing for Anyone    b. SaaS is Ideal, but PaaS and IaaS are core.    c. Enterprise, Startups, and the Drivers of Cloud Computing
  7. Closing – Summary & Appendixes

Windows Phone 7 Calendar Control

I’ve been doing some Windows Phone 7 development and research into what is and is not available in the beta.  A fellow coworker of mine and I stumbled upon the sad realization that there isn’t a calendar control at this time!  Is this really true Windows Phone 7 team!?!?

Even Bing says no control.  🙁

Windows Phone 7 Calendar Control Search Results

Windows Phone 7 Calendar Control Search Results

Does anyone else out there in the blogosphere or twitterverse know if there is something available, or that may be available very soon?

This is something that absolutely needs to be in the RTP of the Windows Phone 7 SDK when it is released, and am honestly surprised it isn’t available now.