Friday, February 24, 2012

Open Source Software and Cloud computing


Software is the lifeblood of every business.  Without it there would be no need to have computers because there would be nothing to do with them.  Over the last 20 or so years computing has been tied to the Microsoft platform and in turn the applications that were written for them had a Microsoft focus. Unix operating systems tried to vie for that space in the data center but their use as started to decline in the last few years

The Changing Landscape
 
In the last 3 or 4 years there has been a gradual shift in the desktop space from PC’s being Windows based to a significant number of Mac based systems.  One of the main reasons that Macs were not as widely used before now is that most applications were being written for a Windows platform.  There has be a gradual trickle of users that is starting to turn into of flood that are using a non Windows based PC.  A couple of years ago you would see the occasional Mac that was some creative guy snuck into work but as of late it seems like everyone is moving to a Mac.  Some of the larger organizations that I work with, such as Cisco and Oracle, allow their workforce to choose between using a PC and a Mac and a lot of people are choosing Mac’s. With the launch of the IPAD a couple of years ago it seems like this process has accelerated.  This last weekend I was at the mall with my kids and I just happened to stop into the Apple store was blown away by the number people there. 

So what does Apple have to do with Open Source software?  Open source software existed before this latest Apple craze.  Linux software has been around for years.   In the past PC’s were the way to go because of the choices of vendors that sold the software and in turn the software choices were much broader.  In essence buyers were tied to a Windows operating system and the software that ran on it.  Sure there was software that was being developed but not as much as we see today. The hesitancy of computer users from 10 years ago to use something different has all but disappeared.

A New Way to Look at Software

Companies like Apple, Google and Facebook have changed the way we think about software.  Google proved that we could basically use software anywhere and that there was a business model where people could make money without charging for their software.  Facebook put the trend of sharing everything and interacting in a social way into hyper-drive.  With the advent of the digital marketplace that Apple created through iTunes and through the App Store (or modeled off what was created for the underground peer-to-peer market that Napster made famous) 1000's of new applications are being created each day. Last night I attended and event where someone mentioned that 600,000 apps existed in the App Store.

The significance of this is there are a lot of people who have started to create new content (including myself) for a new and different generation of users.  A  lot of people at large companies or small start-ups are trying to create the next big thing but have limited resources to do it. 

Cloud computing and Open Source software has emerged as a solution for this space.  After the dot.com bubble burst people weren’t as willing to just give out money as readily and with the down economy of the last couple of years entrepreneurs have had to be more creative in stretching their funds.  Also with 600,000 other applications that are competing for our attention it is hard to justify a lot of money for starting an unknown venture

Cloud computing has provided a hardware cost savings to organizations but other costs such as OS licenses (namely Microsoft) and other software licenses were an additional cost users wanted to avoid.   There are a lot of organizations that need software but didn’t, or couldn't,  pay for software like web servers, CRM systems, email, databases, blogging software, etc. 


Open Source Software Challenges

While commercial applications may have been available many small companies started to look at Open Source as a way to get established while preserving capital.  In doing this several problems have popped up.
  • Free software is great but when you are using Open Source software there is now no support desk somewhere to call when you have a problem.   
  • There may also be limited documentation on how to use a trouble shoot the software.  Open Source support is generally done as community support so it may or may not be good depending on the organizations that are involved in the code.   
  • Setting up the software may not be intuitive.  Not only that but you may not know what patches need to be on the OS, or what other software may be needed to build a new application,  
  • And lastly which software can you actually trust. 
Emerging Solutions

Because of these problems groups of open source organizations such as Jumpbox,  Bitnami, and Turnkeylinux.org have started to assemble application packages together for the users.  Users then do not have to spend the time figuring out all the dependencies that are needed for the applications. Some applications may also use other software such as web services or databases to give the users more functionality.  So application packages from these vendors may have several pieces of software loaded in the images.  Users just take their image and load them into a cloud vendor. These packages also have the capability of being downloaded to local hardware as well so if a user wants to do this work at their site they can.

These solutions help users avoid some of the limitations of open source software.  Third party companies are also springing up to provide support services for some of these so of these Open Source applications.  Similar to Red Hat and Suse in the Linux market, companies like 10Gen (that supports MongoDB) and Cloudera and Hortonworks (that support Hadoop) have been created support services for the big data space.  Other vendors are popping up as well to provide a support model for other open source software.  This makes open source and cloud computing more palatable to larger organizations or organizations that have grown to a point where they need a better support model.    

Some of the types of the applications offered by these vendors include:

  • Blogging
  • Bug Tracking
  • Content Management
  • CRM
  • Customer Service
  • Database Management
  • Development Tools
  • Discussion Forums
  • Document Management
  • eCommerce
  • Education
  • Human Resources
  • Infrastructure
  • Instant Messaging
  • Network Management
  • Photo Management
  • Portal
  • Project Management
  • Security
  • Telephony
  • Ticket Tracking
  • User Management
  • Wiki

Some the commercial software vendors are also starting to have prebuilt packages for their customers.  Microsoft, for instance, has already started to put some of their applications into their Azure platform, such as mail and more companies will be following suit. 

We are just in the beginning of the Cloud frenzy but as the features of the cloud grow applications, and in particular Open Source applications, will play a significant role in shaping its direction.  

Wednesday, February 22, 2012

Cloud Auctions

This past week I attended a networking/cloud event to learn some new information about cloud computing.  Before the event began I met Laurent Raufaste who was an IT administrator at the start-up company Percolate.   The event that we were attending was about using the clouds for quantitative analysis of financial instruments (yeah I know sounds really exciting). As we started chatting we realized that neither one of us were quants but we had a common interest in cloud computing.  As we talked Laurent mentioned to me a truly innovative way of using cloud computing.

The technology had to do with  cloud auctions.  Percolate  is a social media based company that specializes in tracking social media sites and helping users analyze trends so they can create better content to put out to their information consumers.  What that means is they have to look at massive streams of social content and then choose what will get the most attention to their readership.  In order to do that the needed to create an algorithm that could look through mountains of data and then provide a recommendation.  Essentially they are looking at a "Big Data" solution.

As a start-up Percolate needed to find a way to do these calculations in the quickest time possible but as inexpensively as possible. One or the solutions that the uncovered was cloud auctions  The way a cloud auction works is cloud providers have excess capacity that if they don't have in use becomes wasted capacity.  Instead of leaving the capacity unused they open up an auction for the unused capacity to users to bid on.  The bidders that are above the spot price at the time will get the amount of capacity they bid on.

So let's say a cloud vendor has a big customer leave and now they have unused capacity in their data center they can accept bids from all those companies that are looking for inexpensive compute resources.  The spot price of the computing resources would change periodically based on supply and demand, and customers whose bid exceeds it gain access to the available instances. If the price you bid exceeds the current spot price for the resources then you get access to the instance.  As long as you are above the spot price the instance is yours. This essentially could give you access to cloud resources for penny’s.

There are a couple of big caveats for this type of resource allocation.  First it takes a while for the instances to be set up so if the spot price moves you may not get access to the instance.  Second once your bid price is below the spot price or compute capacity is needed by the vendor, you're instance will immediately be shut down.  For most commercial software packages this is not acceptable but if applications are written with that knowledge in mind then they can deal with losing their environment.

Percolate for example uses this compute technology to do MapReduce calculations on their data. It is not a huge deal to them when the instances go down because the master nodes are located on non-volatile compute resources so when there is no response back from the node then another node will pick up the computation of the node that just went down.  This ability to get access to resources in this manner has saved a lot of money for an early start-up.  Very few vendors offer this technology right now but it wouldn't surprise me if a company popped up that took this concept and was able to lay it down across multiple cloud vendors (or even non-cloud vendors).  We shall see what the future will bring.    

Financial Clouds and the Embarrassingly Parallel Computing Problem

This past week I had the opportunity to attend a small Conference put on by Picloud called QuantCloud 2012.  For those of you who don't know what a quant is I would recommend reading Michael Lewis book The Big Short. Essentially a "Quant" is short for a quantitative analyst. These people specialize in applying mathematical techniques to financial investment.  Typically people doing work as quants have PhD’s in mathematics. Many of the mortgage backed instruments that caused the huge economic problems is 2008 were created by quants.  (If you are looking for more information on quants Mark Joshi wrote and excellent paper titled On Becoming a Quant.) 

So I am not a quant (although over the years I have worked with several large banking customers on hardware that they use). What piqued my interest into looking at something that I was pretty sure was going to be over my head.  Over the years of working with trading firms such as Nasdaq and Bank of New York I had learned a little bit about how their systems work and when I heard that they were talking about how quants could take advantage of the clouds it sparked some interest.

The Typical Environment
 
When you look at organizations that do trading of any type there are a couple of characteristics to the data.  First of all they are small transactions, second there are a lot of them (millions), and third of all they are extremely sensitive to latency.  What this typically means is they are looking for every way to eliminate latency in their systems.  Over the years they have experimented with infiniband connectivity, flash drives in servers, running full 64 GB databases in server RAM and other things just to reduce the latency.   In my mind cloud and compute didn't compute because of the large amounts of data and the extremely low tolerance for latency.

The Big Challenges

What I learned is that these companies that trade in securities have several big problems.  First, they need to create algorithms that run through massive amounts of options and scenarios in order to identify a trend that will give them a financial advantage.  This means that the quants are continuously creating scenarios that crawling through millions of records to come up with a strategy.  Secondly, in order for the strategy to work they typically have very little time to create a run the scenarios.  Ken Elkabany the CEO from PiCloud probably put it the best when you stated in his presentation that quants  "have an embarrassingly parallel computing problem".  If they were to run their scenarios on their own it infrastructure they may not be able to complete the calculations in a timely process.

There are also some other factors that are putting some pressure on them to look at other ways to get the results they need.

1.  There is downward pressure on the market and the margins have gone down on these scenarios as more companies do trading based on quantitave analysis. A lot of the larger companies are noticing that their income has gone down significantly
2.  It is becoming harder to find these undervalued investments
3.  Markets are more volatile
4.  Increase regulation and scrutiny has been added to what they do based on the problems that occurred in 2008 with mortgage backed securities.

What this really means is the amount of money that companies were using to buy the infrastructure to do the analysis is becoming harder to get as the big banks and brokerage houses look to trim some expenses.

A Solution using the Cloud and Platform as a Service

This is where the cloud comes in.  As a mentioned before latency is concern for these companies but only when they are trading.  When they are doing analysis of the data they have "an embarrassingly parallel computing problem". They need to do lots of computations really quickly. Cloud now becomes a good option for them because instead of going and setting up an environment that has 1000s or nodes to run the calculations they can rely on the cloud to provide the cycles to run the calculations.  They then would only pay for what they used when they were running the calculations.  The underlying infrastructure is something that is managed by the PaaS provider.  That PaaS provider could use their own resources or they could use an IaaS vendor for the infrastructure.

There is one problem with this scenario.  If you use the clouds then you have to be worried about creating and cloning those environments in the cloud vendor's environment.  This is where PaaS (Platform as a Service) providers come in.  A PaaS provider such as PiCloud writes and interface that abstracts the whole concept of servers from programing interface.  In the case of PiCloud they change a couple lines of code in a developer's scripts to call cloud resources instead of local resources.  The environment is preset up because of the PaaS provider so all you have to do is wait for the results. 

There are some gotchas to this approach if you have to move large chunks of data into the cloud while doing your analysis and some institutions may have concerns about moving the data out into the cloud but this provides a interesting option for solving the embarrassingly parallel computing problem.

Tuesday, February 14, 2012

Excellent article on Cold Calling

Over the years of supporting sales reps I have watched them struggle to acquire new accounts.  They spent a lot of time on the phone trying to contact the right people in the organization and to be quite honest wasted a lot of time with people who weren't interested in buying anything.  As a solution architect that always had desires to get into sales this always something that scared me.  Half the battle in sales is trying to find the right person to sell to at the right time. 

I just read an excellent article shared with me by Marketo by Aaron Ross who created a new sales lead generation process and team that helped increase Salesforce.com’s recurring revenues by $100 million. It is part of Aaron's new book Predictable Revenue.

It is a great read for any executive who is trying help his sales force become more effective.  The same methods that sales reps have been employing for years don't work as well so it is time to look at other methods.  Aaron's piece is a great start. http://bit.ly/yy1PaH via @marketo

Friday, February 10, 2012

My Marketing Aha Moment

For the last 10 years of my professional career I have been in the business of technically supporting sales reps as they sold hardware and software to our customers.  I was the Solution Architect.  My job was basically to make sure the sales rep didn't screw up.  In this process I had the opportunity to try to think about what was the best way to portray the product so that the customer would want to buy it from us.  Sometimes that was a chore, other times it wasn't.


In my role as a solution architect I can't tell you how many events we did over the years.  I used to run a demo lab and we would come up with ideas to get people to come see our wares and sometimes we would get people to come and sometimes we wouldn't. When nobody showed up we would blame marketing who would in turn blame sales for not inviting their customers.  Over time I think a started to notice a little "seminar fatigue" within the IT crowd and some of these events that work well years ago seemed work sometimes.  I work in the NY Metro area so on any given day a could probably attend 20 to 30 different events put on by companies.  At one of the last ones that I did we got decent attendance but it was nothing like what we had seen before. How does a business deal with that?


I have always toyed with the idea of becoming a sales rep or starting my own business but the idea of having to go out and find people to sell to made me a little nervous.  I have 6 kids so the variability of paychecks was something that I didn't want to have to think about.

So I guess you are asking what do my musings about events have to do with marketing.   I am not a marketing professional by trade but I have always been interested in the big question of How do I find the right people to sell to at the right time.  Over the last 10 plus years in sales I have seen a number of leads come in from marketing to be honest with you 99% were garbage.  And after looking at what we have been doing in the past I now know why.  Marketing has been comfortable doing things that they have always done and in the past it was very difficult to tell whether what they had done had any effect at all.  In the past couple of months I have have my eyes opened to a whole new world of how customers are now interacting with businesses that I hadn't even considered.  So when did this AHA moment hit me?

My journey started last year when I attended November 2011 CloudForce in NY where they mentioned two topics that caught my attention.
  1. In the past there were very few outlets for customers to look for information about products so the job of sales was to help educate them.  We now no longer live in that age of information scarcity.  It is very abundant and everyone is an expert
  2. People are using social media to connect more to information and resources and the new sales models need to understand how people are looking for the information.  
I thought I had stumbled on to a hidden gem of wisdom that I had previously not considered.  Little did I know that the leading thinkers in the marketing world have been stewing over this for a couple of years.  The traditional roads to market were not working for them.  Buying big ad campaigns and doing expensive product blitzes were having less effect.  People have also been attuned to filtering the content out there because there is just to much to deal with.  It turns out that in the past most marketing budgets were concerned with outbound campaigns that were interrupting customers (cold calling, email/spam, etc.) while the new thinking in the marketing world is inbound marketing that uses your intellect to attract customers to you by providing useful content. 
 
One of the other things that started to open my eyes to some big changes going one was actually being scanned by a marketing automation vendor in the vendor pavilion.  I wasn't particularly interested in Marketing Automation (I'm a tech guy not a marketer).  Shortly after the conference I received an email from Marketo about providing good content to their customers.  I was blown away by how prescient their advice was.  I immediately started asking if we had any marketing automation in place.  As it turns out our company used Pardot but we were in the process of evaluating different vendors software because our renewal was up.


With each new vendor I seemed to be constantly enlightened by each piece of new software and just when I think I see something that I really like I get to see another one.  It has been a great ride.  We have looked at 4 vendors  Marketo, Pardot, eTrigue, and we are starting to look at Hubspot

All of the vendors are relatively speaking doing the same thing.  I guess the reason for this is that there is a problem with how people were marketed to in the past.  Cold calling campaigns and email blasts with no analytics meant the it was hard to determine what was successful.  A famous comment usually attributed to Lord Leverhulme goes:

“I know that half of my advertising budget is wasted, but I’m not sure which half”

So from what I have seen I really like the simplicity and layout of how  eTrigue lays out its campaigns and how it reports on marketing activities and it ranks really high on my list.  I really like how Marketo tracks all customer touches with all campaigns and is able to show you when and where customers interacted with what you are doing.  Hubspot really has get me very interested because they don't just report on and give you the ability to set up campaigns and create landing pages but they use analytics to help you determine what you should be saying to get success in your campaigns.  They also give your the ability to see what your customers are doing.  One of the other features that is extremely interesting to me is there Hubspot marketplace where they integrate with other vendors products.  I work in the cloud space and as you can see from my first post I think that most software will be SaaS software so in the cloud software is king.

I am also a fan of SalesForce.com's AppExchange  and the Bitnami pre-configured cloud applications for the same reason.  The cloud vendor that provides the best integration with software will win (and some vendors have a really good head start). 

This journey of evaluating the next generation of marketing automation has been an extremely enjoyable on and I am thankful for that day in November CloudForce when I had my marketing AHA moment.