Travel To? compositecode.com

This blog domain will be ending shortly and will "probably" be redirected to compositecode.com at some point.  The RSS feed for this site already points to the appropriate RSS feed so if you read the RSS, no need to do anything.

If you come here and check out the site visually, then you'll need to go to http://compositecode.com to check out the site in the future.

Also you can go to http://compositecode.com and sign up for the e-mail delivery of the blog entries too.  So be sure to swing over to the new domain and check it out.

Thanks for reading here at blog.adronbhall.com, and I hope to have your eyes on the new blog in the future.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 6/17/2010 at 8:12 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Your Cloud, My Cloud, Security in the Cloud

I had a great conversation the other night while at the Seattle Web Analytics Wednesday (#waw) with Carlos (@inflatemouse) and a dozen others.  @inflatemouse brought up the idea that an analytics provider using the cloud, increases or at least possibly increases the risk of security breach to the data.  This is, after all a valid point, but because of the inherent way web analytics works this is and is not a concern.

Web Analytics is Inherently Insecure

Web analytics data is collected with a Javascript Tag.  Omniture, Webtrends, Google, Yahoo, and all of the analytics providers use Javascript.  Javascript is a scripting language, which is not compiled, and stored in plain text in the page or an include, or passed into the URI when needed.  This plain text Javascript is all over the place, and able to be read merely by looking at it.  So the absolute first point of data collection, the Javascript tags, is 100% insecure.

The majority of data is not private.  So this insecurity isn't a huge risk or at least should not be.  If it is, you have larger issues before you even contemplate using an on-premise and cloud solution to bump up your compute and storage capabilities.  Collecting data that needs to be secure via web analytics is an absolute no.  Do NOT collect secure, private, or other important pieces of data this way.  If you have even the slightest legal breach in this context, your entire analytics provision could have this data scraped, possibly used in court in a class action suite, or in other ways even.

For the rest of this write up, I will assume that you?ve appropriately encrypted, or enabled SSL, or otherwise secured your analytics or data collection in some way.

Getting that Boost on Black Friday

eE-commerce has gotten HUGE over the last decade.  The last Black Friday sales and holiday season saw the largest e-commerce activity in history.  Omniture, Webtrends, and all of the other web analytics providers often see a ten fold increase in web traffic over this period of time.  Sometimes, for some clients, this traffic is handled flawlessly by racks and racks of computers sitting in multiple collocation facilities around the world.  However, for some clients that have exceedingly large traffic boosts, data is lost.  (yes, ALL the providers lose data, more so during these massive boosts)  The reason is simple, the machines can?t process in time or handle the incoming traffic because the extra throughput isn?t available to scale.

Enter the cloud.  The cloud has vastly more scalability, almost an infinite supply by comparison, to any of the infrastructure available to the analytics providers.  Matter of fact the cloud has more scale available than all of the analytics providers.  This is actually saying a lot, because Webtrends (and maybe some of the others) I know does an amazing job with their scalability and data collection, arguably more accurate and consistent than any of the other providers (especially since many of them just sample and "guess" at the data).

So when you extend your capabilities to the cloud for web analytics do you really increase your security vulnerability?  Most of the providers of web analytics have their own array of security measures, that I won't go into on levels of security.  However, does introducing the cloud change anything?  Does it alter the architecture so significantly as to introduce legitimate security concerns?

Immediately, from a functional point of view, assuming good architecture, intelligent system design, and good security practices are in use already, introducing the cloud should and is transparent to clients.  For the provider it should not increase legal concerns, functional concerns, or otherwise pending the aforementioned items are taken care of appropriately.  But that is just it, every single current provider has legacy architecture, various other elements that do not provide a solid basis for a migration to the cloud for that extra bump of power and storage.

So what should be done?  What if a provider wants that extra power?  Can the technical debts be paid to use the awesome promises of the cloud?  Is the security really secure enough?

Probably not.  Probably so.  But . . .

This provides a prospective opportunity for a new solution for web analytics to be provided.  It provides a great opportunity for a modern cloud based solution, that provides more than just a mere Javascript tag and insecure unencrypted data to be collected for analysis.  It provides the grand opportunity to design an architecture that could truly lead the industry into the future.  Will Webtrends, Omniture, Unica, or someone else step in to lead the analytics industry into the future?

At this point I'm not really sure, but it definitely is an interesting thought and a conversation that I have had a lot of people at #altnet meetings, cloud meetups, and with cloud architects, engineers, and others that have similar curiosities.  I await impatiently to see someone or some business take the lead!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/28/2010 at 12:29 PM
Tags: , , , , , ,
Categories: WebTrends | Web Analytics | Discussion Points or Ideas | Cloud Infrastructure
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Cool Places, Things, and Groups in Seattle So Far?

I am new to Seattle from the "I live here" perspective.  I have travelled here and visited more than a few times.  The last week or so I have been wandering a bit and checking out various groups such as Web Analytics Wednesday and possibly will check out the Startup Drinks Group in Ballard this Friday.  All in all I'm happier with my move from Portland to Seattle than I originally thought I'd be (because Portland is seriously awesome too).  Seattle is surprising me in a few ways that I actually didn't expect, one of them is the tech scene presence is a little bit better than I originally thought it was (good job tech scene pplz).

There are a few points I am still curious about.  Maybe some readers could help me out with the following:

  1. Where and when do the people interested in Saas, Cloud Computing, and similar topics get together, hang out, have drinks, or otherwise?  I haven't found too much going on around these topics.
  2. Ok, I have found a number of awesome coffee shops to hang out at on those days were I don't go into the office.  So does anyone else have any suggestions for cool places to pull out the laptop and crank on some code and such?
  3. I really dig hearing about all the awesome startups in Seattle, which Seattle 2.0 is pretty awesome in relating, but is there anything else I should check out?

That's my burning curiosities at the moment, so if any of your dear readers have any thoughts on these things, or know of anything please do leave a comment or three.  : )

I moderate, so if they don't show up immediately it will eventually.  Thanks!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/27/2010 at 8:55 PM
Tags: ,
Categories: Keeping Up | Seattle Scene
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (7) | Post RSSRSS comment feed

Cloud Tidbits I Feel Compelled to Mention

Just a few links for today.  I am still hustling together some code for the Kata that I am working up related to real world testing - ala TDD.  In the meantime, check out some cloud tidbits.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/20/2010 at 3:09 AM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

More Cloud News

Recently Amazon jumped into the relational database cloud competition with Microsoft.  Up until the 6th of this month, Microsoft had the only cloud with a real dedicated relational database offering in SQL Azure.  Now Amazon has their Relational Database Service heating up the competition.

In other news, Google finally joined the storage party with their recent launch announcement at the I/O Conference.  So now we have Amazon, Microsoft, and Google as the big companies on the block throwing down on the storage offerings.  Stay tuned for more!

In other news I have been working through the katas setup for TDD practice.  They're actually a lot of fun and would suggest anyone out there interested in TDD or just unit testing to just go out and give one a test drive.  : )

Currently I am working on a code kata putting together ideas from Roy Osherove's The Art of Unit Testing and what one needs to know for testing in enterprise environments, abstracting the appropriate code to take into account web services, files, I/O, architectural issues, and other elements of coding.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/18/2010 at 9:00 PM
Tags: , ,
Categories: Unit Testing | Just Stuff | Keeping Up | Cloud Infrastructure
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Seattle #altnet

Just a few of the key points brought up during the #altnet meeting on Saturday this weekend.  There were a number of other topics, but these stuck in my mind as something I am more interested in.

  • katas | How to transition the learning from katas into the more elaborate testing realm of fakes, mocks, stubs, and such.
  • Smells |  ViewModels, testing WPF and Silverlight.  How to test for latency,
  • Upfront versus down the road costs.  How to decide when something should be learned at a macro level.
  • UI Testing | What is a good method or practice to use to keep the testing time to a minimum.

These four points bring me to my current story list of code to write.

  • Knock out a kata or two, and elaborate on the katas so that they have a more real world use for Enterprise (and other) Developers that have lots of abstracted layers and other parts to move through.
  • I really need to get back to my Silverlight and WPF skills.  Somehow I need to bring these skills into my daily Azure Cloud work, which should be relatively easy, I just have to do it.
  • Not sure I will have time, but I would like to write up some cost analysis (not just $,  but in time, effort, and other costs) associated with certain up front design and up front testing versus testing or design after the fact.  Of course this entire discussion point is very relative, but I am sure I can dig up some information somewhere.
  • UI Testing.  It was an interesting topic at ALT.NET, but doubtful I will touch on it much until I get more dedicated WPF/Silverlight/Web UI Work.  Right now there just isn't enough value it it for me (kind of based on the aforementioned topic).
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/17/2010 at 12:06 AM
Categories: Keeping Up
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Saas (Software as a Service) in and around the Cloud

I have been in many conversations lately about Software as a Service (Saas) and Cloud Infrastructure & Technology.  In those conversations I have found that there is commonly a mixing of what people think Saas and Cloud actually mean.  In reality, there are two autonomous concepts and Cloud should not be used interchangeably with Saas.

Saas Clarified

Software as a Server, commonly shortened just called Saas is very descriptive of exactly what it means.  With Saas there is a particular software application provided to clients via a service.  That may be a bit confusing, so I will elaborate further.  The software part of this acronym could be a calendar application, a to-do list, expense tracking, or something else.  The delivery of that particular software is then provided by a service such as SOAP or REST Services, or some other transport medium over the Internet or other secure connection.

The other very significant implication of Saas is the process of payments for the particular software or service.  This is the part that is not implied within the name.  Saas is and was created primarily to allow creators of software to provide software based on subscription style payments.  Since the maturity of software applications has reached a certain threshold the industry as a whole has been searching for a mechanism to allow more fluid and measurable means of revenue.  Saas is the model that provides that means.

The Clouds Defined

What is cloud technology, infrastructure, applications, or computing?  The various cloud offerings out there do not always work to provide a good clear definition of what exactly a cloud is.  What I like to think of as the cloud ideal, which fits into most of the definitions is,

"Cloud Computing is Internet computing using shared resources over geographically dispersed areas.  Over these areas, content delivery is provided with resiliency through redundant systems, drives, and other hardware providing a high uptime percentage (99.9% or more)."

Of course, that is my definition with my particular criteria that I feel is important to have for a legitimate cloud.  As I learn and research more about cloud technology, infrastructure, and the ideals behind this model of computing I will most likely get more specific, and possibly add more to my personal definition of what Cloud Computing is.  Also, see my original definition by real examples blog entry.

Cloud and Saas Clarification

The cloud, often used to describe a Saas model is incorrect.  A Saas Business Model can be hosted in any number of cloud infrastructures, but one does not implicitly necessitate the existence of the other.  A Saas Business Application may simply be hosted in a shared environment, or on a single server, partially clustered servers, or otherwise.  Meanwhile a cloud infrastructure setup may not have any Saas Applications at all and instead runs only services between machines.  Simply put, the cloud and Saas don't particularly have anything to do with each other.  It just happens that they often do.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: adron
Posted on: 5/13/2010 at 5:33 PM
Tags: ,
Categories: Cloud Infrastructure
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Windows Azure ASP.NET MVC 2 Role with Silverlight

I was working through some scenarios recently with Azure and Silverlight.  I immediately decided a quick walk through for setting up a Silverlight Application running in an ASP.NET MVC 2 Application would be a cool project.

This walk through I have Visual Studio 2010, Silverlight 4, and the Azure SDK all installed.  If you need to download any of those go get em? now.

Launch Visual Studio 2010 and start a new project.  Click on the section for cloud templates as shown below.

After you name the project, the dialog for what type of Windows Azure Cloud Service Role will display.  I selected ASP.NET MVC 2 Web Role, which adds the MvcWebRole1 Project to the Cloud Service Solution.

Since I selected the ASP.NET MVC 2 Project type, it immediately prompts for a unit test project.  Because I just want to get everything running first, I will probably be unit testing the Silverlight and just using the MVC Project as a host for the Silverlight for now, and because I would prefer to just add the unit test project later, I am going to select no here.

Once you've created the ASP.NET MVC 2 project to host the Silverlight, then create another new project.  Select the Silverlight section under the Installed Templates in the Add New Project dialog.  Then select Silverlight Application.

The next dialog that comes up will inquire about using the existing ASP.NET MVC Application I just created, which I do want it to use that so I leave it checked.  The options section however I do not want to check RIA Web Services, do not want a test page added to the project, and I want Silverlight debugging enabled so I leave that checked.  Once those options are appropriately set, just click on OK and the Silverlight Project will be added to the overall solution.

The next steps now are to get the Silverlight object appropriately embedded in the web page.  First open up the Site.Master file in the ASP.NET MVC 2 Project located under the Veiws/Shared/ location.  After you open the file review the content of the <header></header> section.  In that section add another <contentplaceholder></contentplaceholder> tag as shown in the code snippet below.

<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    </title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
</head>

I usually put it toward the bottom of the header section.  It just seems the <title></title> should be on the top of the section and I like to keep it that way.

Now open up the Index.aspx page under the ASP.NET MVC 2 Project located in the Views/Home/ directory.  When you open up that file add a <asp:Content><asp:Content> tag as shown in the next snippet.

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>
 
<asp:Content ID=headerContent ContentPlaceHolderID=HeaderContent runat=server>
 
</asp:Content>
 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</asp:Content>

In that center tag, I am now going to add what is needed to appropriately embed the Silverlight object into the page.  The first thing I needed is a reference to the Silverlight.js file.

<script type="text/javascript" src="Silverlight.js"></script>

After that comes a bit of nitty gritty Javascript.  I create another tag (and for those in the know, this is exactly like the generated code that is dumped into the *.html page generated with any Silverlight Project if you select to "add a test page that references the application".  The complete Javascript is below.

function onSilverlightError(sender, args) {
    var appSource = "";
    if (sender != null && sender != 0) {
        appSource = sender.getHost().Source;
    }
 
    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;
 
    if (errorType == "ImageError" || errorType == "MediaError") {
        return;
    }
 
    var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";
 
    errMsg += "Code: " + iErrorCode + "    \n";
    errMsg += "Category: " + errorType + "       \n";
    errMsg += "Message: " + args.ErrorMessage + "     \n";
 
    if (errorType == "ParserError") {
        errMsg += "File: " + args.xamlFile + "     \n";
        errMsg += "Line: " + args.lineNumber + "     \n";
        errMsg += "Position: " + args.charPosition + "     \n";
    }
    else if (errorType == "RuntimeError") {
        if (args.lineNumber != 0) {
            errMsg += "Line: " + args.lineNumber + "     \n";
            errMsg += "Position: " + args.charPosition + "     \n";
        }
        errMsg += "MethodName: " + args.methodName + "     \n";
    }
 
    throw new Error(errMsg);
}

I literally, since it seems to work fine, just use what is populated in the automatically generated page.  After getting the appropriate Javascript into place I put the actual Silverlight Object Embed code into the HTML itself.  Just so I know the positioning and for final verification when running the application I insert the embed code just below the Index.aspx page message.  As shown below.

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        <%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">
            http://asp.net/mvc</a>.
    </p>
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
            width="100%" height="100%">
            <param name="source" value="ClientBin/CloudySilverlight.xap" />
            <param name="onError" value="onSilverlightError" />
            <param name="background" value="white" />
            <param name="minRuntimeVersion" value="4.0.50401.0" />
            <param name="autoUpgrade" value="true" />
            <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration: none">
                <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight"
                    style="border-style: none" />
            </a>
        </object>
        <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px;
            border: 0px"></iframe>
    </div>
</asp:Content>

I then open up the Silverlight Project MainPage.xaml.  Just to make it visibly obvious that the Silverlight Application is running in the page, I added a button as shown below.

<UserControl x:Class="CloudySilverlight.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
 
    <Grid x:Name="LayoutRoot" Background="White">
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="48,40,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</UserControl>

Just for kicks, I added a message box that would popup, just to show executing functionality also.

private void button1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("It runs in the cloud!");
}

I then executed the ASP.NET MVC 2 and could see the Silverlight Application in page.  With a quick click of the button, I got a message box.  Success!

Now the next step is getting the ASP.NET MVC 2 Project and Silverlight published to the cloud.  As of Visual Studio 2010, Silverlight 4, and the latest Azure SDK, this is actually a ridiculously easy process.

Navigate to the Azure Cloud Services web site.

Once that is open go back in Visual Studio and right click on the cloud project and select publish.

This will publish two files into a directory.  Copy that directory so you can easily paste it into the Azure Cloud Services web site.  You'll have to click on the application role in the cloud (I will have another blog entry soon about where, how, and best practices in the cloud).

In the text boxes shown, select the application package file and the configuration file and place them in the appropriate text boxes.  This is the part were it comes in handy to have copied the directory path of the file location.  That way when you click on browser you can just paste that in, then hit enter.  The two files will be listed and you can select the appropriate file.

Once that is done, name the service deployment.  Then click on publish.  After a minute or so you will see the following screen.

Now click on run.  Once the MvcWebRole1 goes green (the little light symbol to the left of the status) click on the Web Site URL.  Be patient during this process too, it could take a minute or two.  The Silverlight application should again come up just like you ran it on your local machine.

Once staging is up and running, click on the circular icon with two arrows to move staging to production.  Once you are done make sure the green light is again go for the production deploy, then click on the Web Site URL to verify the site is working.  At this point I had a successful development, staging, and production deployment.

Thanks for reading, hope this was helpful.  I have more Windows Azure and other cloud related material coming, so stay tuned.

kick it on DotNetKicks.com Shout it
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 5/12/2010 at 4:08 AM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

A Cloudy Story

I have tried to explain cloud computing in the past, but it never turns out well if I just explain what it is.  So instead I have a few stories to tell instead, that provide reasons and why cloud model computing exists.  I then have a bit to spin about why cloud computing is the future as well.

The face of the Internet is quickly changing.  It used to be this zit ridden, crude HTML spaghetti, user experience disaster where people would go and wonder aimlessly.  Over time there has come to be a sort of cohesive gathering around certain websites.  The websites have changed from time to time and today these websites include Myspace, Facebook, and Twitter as the premier gathering places.  These sites each have had various amounts of horrendous downtime, lost user data, fail whales, and other fun implosions of their respective services.  These implosions provide great empirical evidence why the Internet has been in desperate need of cloud infrastructure and architecture.

What is cloud computing?  Wikipedia defines cloud computing as

"Cloud computing is Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like the electricity grid."

But what do Myspace, Facebook, and Twitter have to do with the cloud?  They have all had massive growing pains over the years.  These pains could have been alleviated with a good simple design in any of the modern cloud infrastructures.

So now, back to the stories of these gathering places on the web.  Myspace kicked off years ago in August of 2003.  The core team of eUniverse Employees copied the then popular Friendster Site.  The company supposedly had server capacity and other resources to spare.  However within a short period of time the site had hit limitations and users began to experience failures all the time.  Anyone that used Myspace during this time knows exactly what these were.  A lot of these issues derived from a not so scalable implementation of ColdFusion.  The errors during system failures were commonly the default errors one would see from a choking non-scalable ColdFusion Server.  It became apparent that Myspace had issues.

The simple fact of the matter was, Myspace was ill-prepared for the growth they were receiving.  The servers became overloaded, and could not feed the page requests in a reasonable amount of time.  The problem was the delivery and timeliness of additional server equipment, the power outages, the ability to redeploy fixes to the software architecture, and a host of other problems that kept resurfacing over and over again.

Facebook got started just after Myspace did.  It didn't immediately have the same issues, but there were failures along the same lines.  One of the ways Facebook managed to hide some of the issues was to control the growth of its user base more.  In addition their architecture was a little ahead of the curve of growth.  But still, even with experiences of others to learn from, Facebook still ran into growth issues a number of times.

Again, the hardware and software were not able to be altered for scalable growth fast enough.  The users of the service got pages that weren't available and the list of issues grew.  Eventually, Facebook grew itself a cloud of its own.  Just as Myspace had out of necessity.  They grew infrastructure that tied hardware and software together into a cloud of sorts, albeit it was too late to have alleviated the initial problems.  The main thing though, Myspace and Facebook have eliminated the vast majority of their problems by creating this type of infrastructure.

Now one may think, "Oh those nerds must have it down now, surely another high growth service wouldn't dare not build directly into a cloud environment of some sort!"

WRONG.

Along comes Twitter in 2006.  Obliviously bounding along into the Internet.  At first it went almost unnoticed.  Around 2008 though this service started to have some heavy growth.  At this time a funny thing happened, the fail whale surfaced and blew its spout!  Immediately users took notice, and at first it became a laughable joke if one got the fail whale.  As time went by, and growth started to rapidly accelerate though the whale came back more and more frequently.  Often times users found it annoying, cursed the very existence of the poor fail whale, and became indignant about the beast from the sea of Twitter.

What had Twitter failed to do?  They failed to plan or scale appropriately.  They failed because they didn't setup an appropriate infrastructure.  They failed because they didn't use a cloud model.  It really is as simple as that.  Sure there are tons of excuses, like those given by Twitter that Om Malik quotes, "Twitter is, fundamentally, a messaging system. Twitter was not architected as a messaging system, however. For expediency's sake, Twitter was built with technologies and practices that are more appropriate to a content management system."

Excuses, excuses, excuses.  Refactor, rebuild, redeploy.  Oh wait, it is harder than that because they didn't build for the cloud.

To the point around what cloud computing is.  It really doesn't matter.  What one needs to know from a business and user perspective is what problems it gets rid of and what power it gives us all.  The cloud has massive potential to remove almost entirely all of the issues that Myspace, Facebook, and especially Twitter has had.

Cloud Systems, within the infrastructure itself are the resources to handle systems that sites like Myspace, Facebook, and Twitter need.  Within good software architectural practices there are the solutions to get software built right for the cloud.  Within the components that put the software and hardware together the ability to deploy regularly, with accuracy, and almost zero downtime (maybe minutes per year) are available.  Going from development to staging to production are no longer a huge process as it has been in the past.

Now the real challenge is to get businesses to make smart architectural decisions about those systems and get them moved into the cloud!  If your site is intended for high capacity usage on the web or enterprise and legal restrictions don't stand in your way, this really is a no-brainer for any new startup.  Why would future sites want to go through the same embarrassment, especially when just starting out!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 5/10/2010 at 2:41 AM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Week 0.5 Hit the Ground Running at Logic 20/20

Week 0.5 and rolling.  This week is my first at my new job with Logic 20/20 as a Senior Consultant (re: Software Engineer, Software Architect, Technical Writer, Mentor, and more).  Mostly I have been ramping up on the new project work heading my way.  I am really stoked to be jumping into Windows Azure and cloud infrastructure, coding, development, best practices, patterns, and looking forward to working with a number of my new coworkers.  This is really a great team of individuals;  solid skills, great attitudes, can do spirit, and all around good people.

Some of my work will of course be covered under NDA, but some of it will be things that I can blog about and will be blogging about regularly.  The first few topics I have already started working on albeit my spare time is almost at zero this week.  I did manage to put some ideas down on a few entries and get prepped to elaborate on those ideas.  As you might guess, these entries will be based around cloud technology.  Some will be specific to Windows Azure, some will be about cloud infrastructure and technology in general.  After all, there are more than a few solutions out there and one has to have a good understanding of the market to really understand the directions the industry is moving.

So stay tuned, I have some good things coming to the blog.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 5/5/2010 at 8:36 PM
Tags: , , , ,
Categories: Logic 20/20
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed