Many Niches

Jack of All Trades, Master of Some

When Algorithms Attack

October 13th, 2011 by Brandon Watson

BlogPicture

I was doing some birthday shipping for my wife a few weeks back.  I actually had to hold off on posting this write up because I didn’t want to tip her off to what sorts of things she might expect for her birthday.

This post isn’t about her birthday, however, but rather Amazon and their collaborative filtering mechanism which makes recommendations to you while you are shopping.  Given that the search term with which I started was “gymnastics mats,” I can understand 4 of the 6 of these recommendations.  I can even go out on a limb and convince myself that, yes, people who are likely to be buying gym mats need to keep deer away.  Think of the liabilities to the gym studios when that first deer hurts themself.  The rules just aren’t set up for four legged participants.  Sadly, Bambi and her friends are really into gymnastics, and they keep hanging around.

It was the book recommendation that really piqued my attention.  The book itself is a parable style yarn about leadership and psychology.  Think “Chicken Soup for the Bad Manager.”  The scary thing is that I have read this book.  My manager suggested it as one of those great books I needed to read.

So I am left wondering what type of people are buying gymnastics mats from Amazon.  Are they type A business execs who are fashioning home gyms for their gymnastics bound children?  Are they incredibly driven, though perhaps misguided, leaders who are building gymnasiums?  Or is this simply a case of Amazon having a bit of fun with me, knowing that I read that book, and that I have deer eating the grass in my yard?

Posted in Fun Stuff | 1 Comment »

McKinsey, The Cloud, and Fuzzy Calculations

April 20th, 2009 by Brandon Watson

Summary

There was a report released April 15th by McKinsey called “Clearing the Air on Cloud Computing.”  The premise of the report was that the cloud was actually quite a bit more expensive for large corporations than running their own datacenters.  While it allows a nod to small to medium businesses in stating that the cloud may make sense for them, the top line message was that cloud services overcharge for things that companies could do for themselves.  The piece ends up being a push for virtualization, and knocks Windows as a main cost issue for moving to the cloud.

Report Out

The report starts out with McKinsey’s view on the cloud.  They lay out that the premise for the cloud has been lower cost and faster time to market, but the reality is that these claims are overstated and that “cloud computing” is at the top of the Gartner hype-cycle.

The report takes it one step further to claim that since there is no agreed upon definition for what the “cloud” is (apparently they found a study that found 22 definitions for the “cloud”, which seems low to me considering the conversations I hear at conferences and on news groups), large companies should not think about “internal clouds” but rather focus on the immediate benefits of virtualization of servers, storage and network operations.  They posit that the newness of the cloud is distracting IT departments’ attention from technologies that “actually deliver sizeable benefits; e.g. aggressive virtualization.”

Read the rest of this entry »

Posted in Cloud Computing | 3 Comments »

Cloud Platforms – What’s Going On?

March 9th, 2009 by Brandon Watson

I recently delivered a talk for a group of venture capitalists who wanted a primer on the cloud.  It was, so I thought, a pretty straightforward task to put together this discussion.  I have written about the motivations of those building cloud platforms, so I figured I could just transpose that content to slides.  Unfortunately, life often doesn’t work out the way we would like when you think there is an “easy” answer.

I wanted to ensure that there was some relevancy of my content not just to the VCs in the room, but also for their CEOs and CTOs, with whom they would undoubtedly share this content.  Further, I knew that I had to make it simple enough to fit into the allotted time, but meaty enough that everyone took something away from the call.  Given the time constraint, I focused on Amazon Web Services, Google App Engine and Microsoft Azure.  Lastly, given that VCs are investing and looking for ideas, I had to put on my old investor hat and present some high level whitespace analysis with some noted interesting companies.

I think the key takeaways would be that Amazon has built some very cool technology and they continue to innovate.  However, that must be tempered with some cost considerations (tied to growth) and the fact that the platform itself doesn’t solve any hard problems for you.  Google, on the other hand, has little in the way of cost concerns (they have a stated goal of supporting up to 5 million page views for free), but what you can do with the framework is pretty limiting in the context of the richness of applications now possible.  Lastly, Azure is a contender, but we have some things yet to prove, and of course, we are late to the game.  It’s still very early days, but there are some cool things happen in the clouds, both at the platform level, and at the “built on top of” level.

Posted in Cloud Computing | 8 Comments »

Cloud Strategy – A Question of Motivations

November 13th, 2008 by Brandon Watson

There’s been quite a bit of chatter on the web about the Azure Services Platform.  Obviously I’m excited to see people talking about our new platform, especially when there is plenty of good, some bad, and some good if not somewhat rambling.  There will be no shortage of guessing as to what Microsoft is “really up to” with our development efforts.  I wanted to take a crack at that one, but from a completely different perspective.  I want to frame the discussion centered on the motivations of the platform providers, and let that be a guide to understanding the delivered product.

Amazon

Let me start by giving a hat tip to the AMZN guys.  Their web services platform (AWS) has really been at the tip of the spear for cloud computing.  For the sake of this discussion, when I use the term “cloud computing,” I am talking about the developer platform, not things like GOOG apps.  The AMZN services are a loosely coupled set of services targeted at developers looking to avail themselves of infrastructure buildout.  Their infrastructure as a service (EC2) is a great way for developers to reduce their capital expenditures and take on a variable costing model for their servers.

The services, all up, encompass several key pieces for building applications that can take on a range of workloads.  The ability to now run Windows Server 2003 (which should get you terminal services) means that as a developer, you can deploy varying application types into AWS, beyond simply web apps.  From a developer standpoint, however, there is no unified development experience.  Which brings me to the discussion around motivations.

AMZN essentially spends 10 months out of the year building out servers.  They build out massive numbers of servers for the two months out of the year when they are handling the Christmas shopping season.  AMZN is, for all intents and purposes, a giant mall.  They spend hundreds of millions of dollars a year building more capacity for their mall.  Their store is the primary reason shoppers come in the front door, and most of the year, their mall is empty, relative to the size of the mall.  As a retailer with an ecommerce backend, their problems are no different than most enterprises.  They have machines that are sitting around doing little or nothing for large portions of the year.  Unlike most other enterprises, AMZN has the financial capacity to build out their server capacity.  At some point, AMZN made the decision to no longer be the primary traffic draw to their mall.  They realized that they could completely offset their own traffic (and then some) by taking the technology that they had built for themselves and making it available to other developers.

AMZN is, essentially, in the load management business.  They are a low margin retail operator that is running a hugely expensive infrastructure for which they are seeking maximum utilization.  They would like nothing more than to be noise in their own system.  AMZN is relentlessly metrics driven.  As such, they have a pretty good idea of how much money to expect off of traffic that walks through their front door.  They know how much to expect from traffic ending up at one of their marketplace partners.  With the addition of AWS, they have a new way to monetize their capacity, and with their predictable pricing model, they know exactly how much money they are going to make off of customers who deploy applications to their service.  Traffic on their network makes them money.  It may not make your app money, but it makes them money, so they are happy.  It more than likely saves you money, so you are probably happy too.

So, AMZN is motivated by maximization of infrastructure capacity, and optimization of what would otherwise be very low margin businesses.  They do this by delivering a loosely coupled set of services to developers looking for infrastructure as a service.  They aren’t necessarily targeting developers.  They aren’t a platform, per se.  They are targeting anyone who is looking to move workloads off of their own infrastructure and onto AMZN.

Google

Ahh, Google.  I love those guys.  They have done plenty of cool things, and their release of the AppEngine (GAE) was welcomed with very loud praise from many in the tech community.  According to some reports, they had 25,000 developers sign up for GAE in the first few hours of releasing it.  Taken as a whole, GAE is a very tightly coupled set of services designed to allow developers to build applications that will have no problem scaling up to, theoretically, infinite capacity.  The rigid requirements for a developer deploying into the GAE are such that you use one language (Python) and their database (big table).

Once again, when considering what has been built, one need look no further than the motivations of GOOG to really get where they are going.  When you consider the stricture imposed on the architecture of apps built for GAE (singple process, no long running queries, no local file access, no network access), a developer is all but required to build standard CRUD web applications.  There is no stack for enterprise integration.  The delivery vehicle is the web browser.  The data that is created goes right into big table.

Some might say that GOOG’s core business is search.  I actually have a different opinion.  GOOG’s core business is the monetization of page views.  Search is their instantiation of that business model, but many of their other applications have nothing to do with search, and everything to do with the monetization of page views.  Think about gmail – ads on the sidebar.

Applicaitons on GAE are mostly CRUD apps, storing structured data into big table.  As a developer, building an applicaiton on GAE, you are essentially feeding the GOOG beast.  While they have not yet released final pricing, allow me to put on my pointy tin foil hat and talk about what might come to pass.  GOOG knows exactly how much it costs to run their infrastructure, and as such could hand developers a bill for the resources which they consume.  However, GOOG doesn’t have AMZN’s problem.  Their traffic is mostly linear, and going up and to the right.  It’s probably logarithmic at this point, but who’s counting?  In any event, since they have little variability in their traffic patterns, they don’t have to get into the load management business.  By allowing developers to build applications on their infrastructure, they are incurring unnecessary costs.  Their motivations, however, are driven by their business model.  Each new app that is plugged into the infrastructure ads new data to their data set, and creates new opportunities for page monetization.

Think of the case where GOOG shows up to a developer and says, “hey, moboganda.com - how are you doing?  That’s a great app you put up on GAE.  We’ve been going over the data and we figured out that if we ran AdSense on your pages 20% of the time, we could actually recoup the cost of running the infrastructure for you.  In fact, you don’t even need to do anything, since we own the infrastructure, the feature is already in there.  You can turn it off with a JavaScript include.”  As the young CEO of a web startup, this could sound like a pretty cool deal.  Free infrastructure and they didn’t have to do anything to get that turned on.  Not bad.  Let’s take this game of what-if one step further.  The GOOG guys come back in two months with the following, “hey buddy, that app of yours is performing really well.  You made more money on those 20% ads than we thought.  What we would love to do is run ads 100% of the time.  Of course, you are free to sell that ad space yourself.  I’m sure you have a full time ad sales force.  We’re only a multi-billion dollar company focused soley on monetizing pageviews, but feel free to go it alone if you want.”  To the developer, this could be music to your ears – focus on building the application, and GOOG does the monetization for you.  If you really wanted to go crazy, one could imagine a world where GOOG says to their developers, “$5 bounty for all new GOOG accounts created through your app.”

Bottom line: GOOG is motivated by feeding the GOOG beast and monetizing pageviews.  That shines through in the design of their app delivery vehicle, the tight coupling of the services, and the expected design patters of the applications to be built on their infrastructure.

Microsoft

With all of the above points in mind, hopefully you can start drawing some pretty good conclusions about the potential future directions of the competitive cloud platforms in the market.  As for MSFT, there are plenty of things I could say, but let me simply state what I believe to be our motivations.  We are a platform company.  We very much believe that we are in the business of delivering the best platform and tools to developers to build great applications.  Our on-premise stack has proven to be extremely successful over the last several decades.  With the release of the Azure Services Platform, one of the core design tenets was that we would like to achieve parity between our on and off-premise stacks.  The entirety of the Azure Services Platform is designed to enable experienced MSFT developers to be combat effective on day one.

However, the platform, from my point of view, is but a part of the engine.  The heart of the engine is the application that you plan to build.  GOOG very much believes that the web is the platform, and thus the web browser is the only delivery vehicle for applications.  We have a divergent opinion.  It seems absolutely crazy to me that a person carries around more computing power in their pocket today (cell phone) than was available a scant 15 years ago in the high end desktop computers, and GOOG believes that those processor cycles should be shunted aside.  Our software plus services strategy really is about enabling developers to deliver the right experience to their customers, on the preferred end point device, at the right time from a single piece of infrastructure.  We are motivated by our developers building great applications, and Azure is the final leg of the software plus services strategy.

Posted in Cloud Computing | 9 Comments »

Business Model Influencing Software Architecture

October 10th, 2008 by Brandon Watson

As I work through my day job as the guy in charge of Cloud Services ecosystem development for Microsoft, I have the distinct pleasure of working on some very hard problems.  During my travels, I also get to spend time thinking about topics on which not much brain matter has been spent.  Over the last couple of weeks, I have been thinking about a unique circumstance that could present itself to developers as development continues to migrate to cloud platforms.  Dare Obasanjo has written about some of the attendant challenges with a SaaS platform, but I wanted to throw out a few new ideas.

In times past, ISVs would develop their software and ship it off to their customers when there was a sale.  Way, way back, diskettes were sent, which evolved to CDs, then to DVDs, and eventually net-based delivery.  For the really complicated stuff, a bona fide “systems engineer” would show up with the servers under his arm.  The beauty of this model, from the stand point of running a business, was that you knew exactly how much profit you were making on a customer.  Sales guys have some loose reigns, for the most part, so that they can get the deal done, and their lever is product price.  CFOs can then plug all the data into their spreadsheets and from that they derive the customer profitability.

You see, it doesn’t generally matter if you write bad code.  The first step in all customer service calls for any enterprise software packages is to poke the box.  No matter what the issue is, the first step is to reset the box.  How does that construct carry over in a cloud based world?  With shared hosting, the damage any single tenant can do is limited to the number of other deployments on that shared set of servers.  With a true cloud – a fabric of machines shared across all deployments — there is no proverbial machine to poke.  Mercifully, the cloud architects have thought this through, and are building in self-healing into the infrastructure.

What this example does not envisage is the profitability impact of bad code.  When code goes awry on a customer site, only that customer is impacted.  Profitability never enters into the equitation.  Service support calls, if they are not charged for, are at least baked into the standard service and p contract.  Further, a machine lockup cannot spread in this environment.  In a cloud, thanks to the magic of elasticity, without proper controls in place, errant code can actually spread like a virus, causing machine images to spin up, which in turn drains the profitability of that customer account.

Consumptive pricing for end customers hasn’t yet hit mainstream.  Most pricing (if you are charging at all) is based on price per seat per month or year.  If you are hosting your web app with a hoster, your profitability is locked in when you make the sale.  There is some variability associated with network throughput charges, but for the most part, you’re locked in.  In the cloud world, where all of your resources are billed out 0n a consumptive basis, profitability is now a function of variable cost inputs.  These inputs are impacted by how well your code performs.

Animoto Machine Instance UsageAmazon loves to hold out Animoto as an example of the greatness of their platform.  They love to show the chart on the left here.  In a couple of days, usage of the Animoto service exploded.  There’s an accounting of the event in a blog post by the AWS team.  If you do the quick math, they were supporting approximately 74 users per machine instance, and their user/machine image density was on the decline with increased user accounts.  The story they like to tell from this chart is “wow, we were able to spin up 3000 machines over night.  It’s amazing!”  What I see is more along the lines of “holy crap, what is your code doing that you need that many instances for that many users?”  I don’t mean to impugn Animoto here, but I don’t want the point to be lost: the profitability of your project could disappear overnight on account of code behaving badly.

For the most part, the design and efficiency of your code is largely in your hands.  What about a potentially more onerous situation – customers behaving badly?  Revisiting the software license model, a customer can only use so many cycles on the servers to which your application is deployed.  That customer can abuse the code, but they cannot impact the customer experience of any other customer, and they can’t cause you to deliver more machines to them to support their load unless they pay for them.  As such, you’ve collected your money, and they have no impact on your profitability.  In a world where SaaS vendors haven’t yet figured out how to do consumptive based pricing for their offerings, the very real possibility exists that a small handful of customers can abuse your application and destroy not only the profitability of the account, but of your entire P&L.

The simple answer is “quotas,” though that is somewhat harder to enforce in practice when the consumptive unit is not easily measurable.  What kind of a quota can you put in place for a business intelligence application where a micro managing mid-level employee is running wild with “what-if” scenarios?  As more applications migrate to the cloud, there will be plenty of scenarios where the work units are not as simply to constrain as disk or processor usage.

Consumptive costing models, automatic scaling of applications and difficult to define atomic quota units have the potential to create serious financial challenges for cloud based application vendors.  The new challenges will manifest themselves by enforcing rigid software efficiency design goals on development teams, and forcing the operations team to entertain the notion of firing bad customers.  Designing good software is certainly not a new topic, but the possibility of bankrupting a company is not something about which the architects have ever really had to think.

Posted in Cloud Computing | 1 Comment »

On The Topic Of SLAs

July 22nd, 2008 by Brandon Watson

For Want Of SLAIt’s not so often than I get to poke fun at anyone (yeah, right), but in this day and age where it seems that the only way to get noticed is to have funny cartoons, I figured I would enlist the help of my super secret artisan resource, and poke some fun at our competition.

As I spend more and more time with our partner community discussing all things related to SaaS and PaaS, one topic comes up over and over again.  Having a proper Service Level Agreement (SLA) provided by any potential cloud provider is the most important item on the list of their required items.  The failures of the Amazon cloud (portal and web services) and Google properties (Apps, and App Engine) are well documented, and it has given pause to many of the potential developers in the IT Pro and ISV space.  Their main concern is what is going to happen if they deploy a service or application against that infrastructure?  Who’s neck do they get to choke?

Google App Engine has no mention of an SLA in their terms of service, and they know it.  The GMail guys have one, but like the Amazon S3 SLA (the only one of their web services to have an SLA), it’s 3 9s.  A good start, but not what the enterprise customers are going to need to instill confidence to move to the cloud.  The loss of control associated with moving to the cloud is a powerful disincentive for these developers, and without a higher degree of certainty over the uptime of the services consumed, moving mission critical, line of business applications and services to the cloud becomes a much harder discussion with the business decision makers.

The notable exception here is Joyent, who goes out on a limb to claim 100% uptime in their SLAThe big issue here, unfortunately, is that as a provider on top of the Amazon services, they are at the mercy of Amazon and their ability to keep their servers up.  The pecuniary consideration Joyent is willing to pay out is not really well within their control, which is unfortunate, and it will be interesting to see how this plays out over time.  However, I definitely give them credit for putting that SLA out there.  The problem with writing late at night is you get your companies mixed up.  Joyent does provide SLA, but they don’t run on Amazon.  Big thanks to Rod at Joyent for keeping me honest on this one.  Joyent is running their own datacenters and have made significant investments across their 4 DCs.  That said, they have had some downtime, which is not unexpected.  It would be very interesting to know the economic impact of their January outage, but something tells me that Rod won’t be so forthcoming with that correction for me. <g>

The company I was thinking about that had tied themselves to the Amazon ship is RightScale.  They have a FAQ tied to their pass through SLAs with Amazon.  The challenge I have with their solution is that if you have access issues, you are advised to log in and launch more instances.  This doesn’t help you if datacenters fall over, power goes down, large scale DDoS attacks, etc.  This only helps for domain / app specific scaling issues, and even then, it doesn’t always solve your problem.

There’s a lot of work to be done in the cloud space, especially if the many business ISVs out there are going to think about porting some or all of their offerings to a platform provider.  The feedback from partners is very clear, and the online conversation backs up this assertion – SLAs are the first stop to winning the hearts and minds of the business ISVs and IT Pro developers.

Posted in Cloud Computing | 10 Comments »

 
© 2009 Many Niches Powered by Wordpress