Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

Friday, August 19, 2011

Drivers Of Cloud Technology

Who ultimately makes the decisions on what features cloud service providers make available?  It isn't as though these folks base these decisions on what customers actually need, is it?  We'd certainly like to hope so anyway.  At the very least, service providers should build features that reflect the characteristics of our favourite applications and frameworks.  Maybe this is in the form of appliances — pre-configured components that play a small role in an application's architecture.  Software should be the driver of cloud technology.

Amazon's EC2 is the best example of a cloud technology derived from another domain.  Amazon built EC2 as a product because they were able to reflect on the challenges they themselves faced with building large and complex applications.  They saw what the future of cloud computing looked like not only for Amazon, but for almost every other technology company in the world.  Only now is Amazon associated with technological prowess — a far cry from their core business only a few years ago.  Go figure — a book store played a key role in what cloud offerings look like today.

Cloud technology derived from a domain — an online store — is one avenue to innovation.  Another is the technology that utilizes the cloud.

But is this in fact a motivator for mature cloud service providers?  Are they paying attention to the consumer technology taking advantage of cloud services?  See, a key issue with cloud stuff is over-generalization — trying to satisfy every single use case with only a handful of features.  I think part of this conundrum is with virtualization — how the providers can opperate profitably.  It doesn't cost providers much in the way of overhead to spin up new virtual machines.

These virtualized, on-demand environments are ideal if you need these resources and that the provisioning of these resources can be automated.

What I think is missing from the big picture here is the consumer application.  Actually, forget about that — what about the application framework?  Since applications typically sit on top of frameworks, shouldn't the framework have a say with regard to what the cloud proffers?  I think so.  Because ultimately, no developer with framework expertise is going to abandon the bona fide methodologies.  This of course presupposes that the cloud can offer something application frameworks want.  What?

Virtual machines are just one way to make use of on-demand resources.  The cloud is our application as this is where it runs.  However, one single virtual machine isn't going to be of great benefit.  Why not just run it on a dedicated host somehwere?  We've got to utilize the cloud resources made available to us, and this is exactly why virtual machines are handy — they consume their own resources.  An obvious example of this is running your database server in it's own virtual machine.

These specialized virtual machines imply that we've dissected our application — if not the framework too — insulating components from one another.  Of course, this isn't easy to do.  Some frameworks have separately deployed components by nature.  Take Django for instance.  A typical Django deployment might have three virtual machines — one for the Django application itself, one for the database, and one for a memcache server.  Each of these components can be expanded further — maybe the database has one or more slave virtual machines or maybe there are 3 memcached servers.  Django's architecture makes it easy to discern the separable components that can safely run in an isolated environment.  But beyond this, we've got a challenging task ahead of us.

Imagine a Django development shop that specializes in Django websites and applications for companies.  They have large clients and thus need to scale their deployments.  For this, I think this shop needs an easy way to deploy the types of configurations discussed above — a Django application, along with database and cache nodes.  Instantiating this type of deployment requires extra effort by the development shop.  They can't simply click a deploy button without a lot of ancillary work in developing a deployment tool that'll go through the process of launching these virtual machines.  This is time this shop will not be spending on creating great software for their clients.

So what does the cloud offer for third-party consumer software?  A whole lot of hardware resources.  They're made available on demand as this is the reality for any application — traffic peaks and traffic slumps.  Virtual machines are great in their flexibility — we can take any component of our application and deploy it independently.  With this flexibility comes a cost however — the cost of becoming cloud experts.  I think the best thing cloud vendors can do is listen to the technology.  What is the most efficient way to deploy a typical Drupal site?  What would make the lives of Django development shops easier?  This is what should drive the next steps in making cloud computing accessible to everyone.

Thursday, July 21, 2011

Social Network Technology

We all know what the real value of social networks is - the data.  The connections between individuals and other entities.  The micro updates, the kind that share little tidbits of information.  These things, aren't all that valuable on their own.  In fact, they produce a lot of noise.  The real value in social networks, is the aggregate data, the information we cannot see at a glance.  I think the ramifications of this information, the quest for it's possession, can be attributed to the current social bubble.  The prospect of mining this data is tantalizing - of course anyone with the necessary means will pay top dollar for it.  But is it just the data they're after?  There must be some valuable technology here, right?  Something is responsible for organizing all this information, for providing the lay user with tools to say what they want, when they want, and more importantly, as much as they want.  Data, data, and more data.  It's where it's at.

Why?  Why is the oodles of social information so important?  Statistics.  Competitive edge.  The collective opinions of consumers.  This is why we're looking for a better way to extract meaningful information from all this social noise.  Social noise.  I like that term.  It makes me think of riding home on the train and a group of over-galvanized teenagers hop on board.  Its like I signed into Facebook for three stops.  I filter it out, the best I can anyway, by reading, or listening to music.  This filtering is relatively easy to achieve on a subway car with few people - not a lot of noise.  But with social networks, and their big data, it'd be like standing in the middle of general admission at an Iron Maiden show with my headphones on.  Kinda difficult to filter that out.

It's technology like this - separating noise from meaning - that social networks have inspired.  It's like NASA, and the various spin-off thechnologies they've developed.  Going into outer-space is an enormous undertaking, requiring thousands if not millions of smaller technological solutions.  These smaller innovations probably never would have seen the light of day if not for the desire to visit distant worlds.  This is how I see the role of technological innovation in the social realm playing out.  We've got a pile of data, and we're only discovering now the interesting things we can do with it, other than the original use case of social interaction on the web.

Take Google for instance.  They've already been doing R & D for a long time now, despite the fact that labs is winding down.  They started doing R & D as a consequence of having more data than anyone previous.  The result?  Stuff like Docs and App Engine.  Could Google have hammered out these products had they not been the worlds largest, most relied-upon search engine?  Probably.  But would the idea to build such products have been prevalent if they didn't build such technology to support their web index?  See, data at this scale inspires new technology, innovative new tools that have wider applications than for what they were originally designed.

Obviously Google doesn't have the last word on innovative technology with regard to big data.  Big data is becoming the norm.  It seems that today you can't be taken seriously unless you own and operate multiple data centers.  Sure, the information were storing is interesting, I have no doubt about that.  Some insights about social information come naturally, without the aid of technology.  Even in the past three or four years, I'm sure there have been a few light-bulbs popping up while digging around in the ever-connected social landscape.  What I'm really looking forward to is not so much how much data the social domain can accumulate - they've already flexed their data center muscles and there is no end in sight.  I'm more interested in the spin-off technology these social networks are going to give to the world - hopefully in the form of open source software.

Wednesday, July 22, 2009

Open Source For America

In an interesting entry about open source software adoption, the announcement of the OSFA (Open Source For America) is discussed. So what exactly is the OSFA? The OSFA is a group of organizations who have invested heavily in open source technologies. The reason this group has formed is to promote the use of open source technology in the US federal government. This is simply a fantastic idea and a landmark in open source history. One may ask why a group of organizations is necessary to help a government adopt open source technology. The answer is that open source is relatively new. There aren't many professionals employed by the US government. The organizations that form the OSFA, however, have plenty of expertise in regards to open source. The US government is concerned with running a country, not choosing which software is best suited for the job.

The benefits of using open source technology apply to the government just as they would to any other organization or individual. That is, any government that chooses open source technology over the proprietary alternative gets treated just as though they are a regular user. There isn't any real discrimination in the open source world with who uses what.

The primary motivation for the US government is to cut costs. They savings are obviously in the fact that there aren't any license fees to pay with open source. However, they also gain everything else that comes with open source including generally better software. Additionally, there are hidden cost savings that generally occur on a per deployment basis.

The Canadian government seems to be falling behind in the information technology department. They certainly need to show more interest in advancing their infrastructure which can be achieved through open source. The OSFA serves as a good example of the next step that should be taken.