Learning about Hadoop on Azure

May 18, 2012

In order to learn about Hadoop on Azure I crunched 5GB of ftp logs and counted the top 100 messages.  This is a variation on the code sample that counts words in Leonardo Da Vinci Project Gutenberg EBook.  There is a similar Hadoop application that extracts information from IIS logs.  

 

1.       Sign-in using access code and  provision a cluster. 

·         NB: This takes approximately 20 minutes.  The cluster appears to be very temporary – ~48 hours.   

·         Reference: Windows Azure Deployment of Hadoop-based services on the Elastic Map Reduce (EMR) Portal

2.       Load up analysis data on Azure Blob storage. 

·         Once the data is loaded you can query the ABS using the command #ls asv://ftplog/sample

 

[21] Sat 15Oct11 00:00:31 – (013831) 220 Serv-U FTP Server v11.0 ready…

[02] Sat 15Oct11 00:00:31 – (013831) Closed session

 

·         NB: Transferring 5GB to ABS took approximately 8 hours

·         Reference: Setup Azure Blob Store for Hadoop on Azure CTP

3.       Copy the data from ABS to Hadoop (Optional)

·         NB: This process took about 60 seconds

·         Reference: How to transfer data between different HDFS clusters.

4.       Execute the counter job

·         Upload “FTPLogMessageCounter.js” using fs.put(“bin”)

 

var map = function (key, value, context) {

    if (!value) {

        return;

    }

    var words = value.substring(37);

    context.write(words,1);

 };

 

var reduce = function (key, values, context) {

    var sum = 0;

    while (values.hasNext()) {

        sum += parseInt(values.next());

    }

    context.write(key, sum);

};

 

·         Run the query interactively – using the command: pig.from(“asv://ftplog/sample”).mapReduce(“bin/FTPLogMessageCounter.js “, “word, count:long”).orderBy(“count DESC”).take(100).to(“log_output”)

·         View the results using the command: file = fs.read(“log_output”)

·         NB: Make sure to use the word “pig.” Many of the Hadoop on Azure docs leave this part out.

·         Reference: Running a JavaScript Map/Reduce Job from Interactive JavaScript Console

 

General Reference:

·         Hadoop-based Services on Windows Azure How To Guide

·         Introduction to Hadoop on Windows Azure (video)

·         Hadoop on Azure (video)

·         Hadoop on Azure Yahoo Message Group

 


What do you do when demand for your application outgrows the capabilities of an RDBMS?

February 11, 2012

Relational Database Management Systems (RDBMS) systems date back to the early 1970s and are characterized by a fixed schema, SQL (structured query language), and ACID compliance. (Atomicity: Transactions are complete or not complete, Consistency: leaves the system in a known state, Isolation: impacts only itself, and is Durable: permanent.) Data is organized in rows and columns like a spreadsheet and relationships can be built between different tables. In general relational databases work incredibly well until you hit “big data.” Big data is often defined using the three V’s velocity, volume, and variety.

  • Volume – multiple terabyte or more
  • Variety – numbers, audio, video, text, streams
  • Velocity – how fast the data is collected and requested

clip_image001

Source: Montis.com

With the volume of data they need to process every second, it is easy to see why Google, Twitter, Facebook, and many other sites like them had to look for options beyond RDBMS. Over the past 10 years a technology known as NoSQL has emerged largely in response to the challenge of solving big data problems. Generically speaking NoSQL solutions have the following characteristics.

  • No-schema required upfront
  • Can store massive amounts of data
  • Auto-sharding / elasticity (spreading data over multiple machines)
  • Distributed query support (ability to execute a query on shared data)
  • BASE (basically available, soft state, eventually consistent) not ACID

There is a raft of NoSQL solutions available for a variety of different business problems. The following figure from the 451 Group is an interesting illustration of the current marketplace. The acronym SPRAIN refers to:

  • Scalability – hardware economics
  • Performance – MySQL limitations
  • Relaxed consistency – CAP theorem (*)
  • Agility – polyglot persistence (use the right database for given problem)
  • Intricacy – big data, total data
  • Necessity – open source

* CAP (or Brewer’s) theorem says that a distributed computer system can only simultaneously satisfy two of three guarantees: consistency, availability, and partition tolerance.

clip_image002

Source: 451 Group

Having spent time putting a NoSQL (Mongo) database into place I can attest to the fact that it’s harder than it looks (hard to query directly, limited support, limited reporting, and steep learning curve). That said, the products and documentation are getting better, developers are becoming more comfortable with the technology, and companies like Couchbase are sprouting up to provide support. Today NoSQL is a great thing if you have the opportunity to start from a clean sheet of paper. In particular the no upfront-schema works really well with the MVC programming model (i.e., Rails, ASP.Net MVC3).

Many organizations don’t have the luxury of starting over and have RDBMS-based applications that for one reason or another face performance or scalability challenges that for business reasons (time, cost, skill, etc.) not technical challenges cannot be addressed with a new database. As Couchbase points out RDBMS developers have resorted to “sharding” – putting data across multiple servers, denormalizing data – adding redundant columns to the schema to optimize performance, and adding memory cache to optimize query performance. None of these solutions is really the answer and for an organization facing a big data problem.

Another way to optimize the performance of a database bound application is by minimizing query time by loading the database itself into an SSD or flash memory. The “catch” so to speak is that flash memory is not cheap but on the other hand it is much much less expensive than re-writing software. FusionIO makes a flash memory product called ioDrive. IoDrive is a PCI card that effectively behaves like an SSD drive. Because FusionIO has designed the card to integrate at the memory tier they have managed to minimize I/O bottlenecks. “Spinning disks” have a read rate of approximately 200-300 IOPS (I/O Operations per second); IoDrive can achieve a rate of almost 100K IOPS.

References:


Best practices for adding scalability

November 11, 2011

My thesis is that a you can’t have a good SaaS application that doesn’t scale.  By definition the need for scalability is driven by customer demand but there is demand and there is DEMAND. A handful of lucky organizations (Google, Twitter, Facebook) are faced with industrial strength volume every minute of every day. Organizations with this type of DEMAND can afford to have entire divisions dedicated to managing scalability. Most people are dealing with optimizing their resources for linear growth or the happy situation where their application (Instragram) catches fire (in some cases overnight). A scalable architecture makes it possible to expand to cloud services such as EC2 and Azure or even locally hosted capacity. Absent a scalable architecture an organization is faced with curating a collection of tightly coupled servers and overseeing a maintenance nightmare.

Scalability is the ability to handle additional load by adding more computational resources.  Performance is not scalability, however, improving system performance mitigates to some degree the need for scalability.  Performance is the number of operations per unit of time that a system can handle (e.g., words / second, pages served / day, etc.).  There are two types of scalability – vertical and horizontal.

Vertical scalability is achieved by by adding more power (more RAM, faster CPU) to a single machine.  Vertical scalability typically results in incremental improvements.  Horizontal scalability is accommodating more load by distributing processing to multiple computers.  Where vertical scalability is relatively trivial to implement, horizontal scalability is much more complex.  Conversely, horizontal scalability offers theoretically unlimited capacity.  Google is the classic example of infinite horizontal scalability using thousands of low-cost commodity servers.

If you have the luxury of working off of a blank sheet of paper or have the flexibility to implement a major new technology stack some of the better solutions for implementing scalability include ActiveMQ, and Hadoop. Microsoft’s AppFabric Service Bus promises capability in this area for Azure hosted applications. Many times scalability was considered when an application was first created but has proven to be inadequate for current demand.  The following are suggestions for improving an existing application’s scalability.

Microsoft’s Five Commandments of Designing for Scalability

  • Do Not Wait- A process should never wait longer than necessary.
  • Do Not Fight for Resources - Acquire resources as late as possible and then release them as soon as possible.
  • Design for Commutability- Two or more operations are said to be commutative if they can be applied in any order and still obtain the same result.
  • Design for Interchangeability – Manage resources such that they can be interchangeable (i.e., database connection).  Keep server side components as stateless as possible.
  • Partition Resources and Activities – Minimizing relationships between resources and between activities

Microsoft’s Best Practices for Scalability

  • Use Clustering Technologiessuch as load balancers, message brokers, and other solutions that implement a decoupled architecture.
  • Consider logical vs. physical tierssuch as the model view controller (MVC) architecture.
  • Isolate transactional methodssuch that components that implement methods that implement transactions are distinct from those that do not.
  • Eliminate Business Layer State such that wherever possible server-side objects are stateless.

Shahzad Bhatti’s Ten Commandments for Scalable Architecture

  1. Divide and conquer – Design a loosely coupled and shared nothing architecture.
  2. Use messaging oriented middleware (ESB) to communicate with the services.
  3. Resource management – Manage http sessions and remove them for static contents, close all resources after usage such as database connections.
  4. Replicate data – For write intensive systems use master-master scheme to replicate database and for read intensive systems use master-slave configuration.
  5. Partition data (Sharding) – Use multiple databases to partition the data.
  6. Avoid single point of failure – Identify any kind of single point of failures in hardware, software, network, power supply.
  7. Bring processing closer to the data – Instead of transmitting large amount of data over the network, bring the processing closer to the data.
  8. Design for service failures and crashes – Write your services as idempotent so that retries can be done safely.
  9. Dynamic Resources – Design service frameworks so that resources can be removed or added automatically and clients can automatically discover them.
  10. Smart Caching – Cache expensive operations and contents as much as possible.

References:


CloudForce Boston – June 2011

July 4, 2011

I recently attended the CloudForce 2011 event in Boston.  Marc Benioff spoke for slightly more than an hour with minimal slideware and no notes.  Marc is an amazing speaker and I suspect much of what we saw in Boston will get re-used at the Dreamforce keynote in August.  Clouldforce was a great opportunity for me to piece together in my mind the Salesforce.com (SFDC) story.

Salesforce now has a very interesting collection of technologies – 4 families if you will:

  • Tools for Sales– “Sales Cloud” – pipeline management and Jigsaw – leads
  • Tools for the supporting Customers – “Remedyforce” – generic customer support and “Service Cloud” – help desk in the cloud
  • Social – Chatter – Twitter for business and Radian6 – social network monitoring
  • Platform as a Service (PaaS) – Force.com – applications for extending SFDC, Database.com – database in the cloud, Heroku – Ruby on Rails in the cloud

The tools for Sales and Support evolved organically from SFDC’s roots as a CRM company.  The PaaS applications, less Heroku, evolved from the platform that Salesforce built to support the CRM business.  The social stuff is all new and was the focus of much of Marc’s talk.

Social Enterprise

My sense is that it’s the social networking pieces that really excite Benioff personally.  Benioff paints a compelling vision of Salesforce.com (the company) becoming the engine of the social enterprise.  The argument in favor of becoming a social enterprise is based on how dominant social networking (read Facebook) has become to the consumer.  Indeed he asserted that more people are using social networks than email.  He used Facebook as an opportunity to cite McKinsey research on the consumerization of IT.  The key point is for the first time the technology consumers use in their personal lives is now driving enterprise IT strategy.  Today’s consumers expect to be able to interact with brands on their iPhones and via social networks.  Companies ignore this dynamic at their peril.  Indeed as seen in this video he is positioning his companyas the defacto expert in B-to-B social networks.  Chatter (enterprise Twitter) and Radian6 (social network monitoring) are Salesforce.com’s beachheads into the world of the Social Enterprise.

Platform as a Service

Using SFDC as a PaaS provider makes a ton of sense if your organization already has (or will have) a significant investment in their CRM products.  Its logical that Salesforce would make their PaaS offerings available for anyone to use, however, this is a crowded space with strong established offerings available from Amazon, Microsoft, and Google.  I am not sure I fully appreciate the Heroku tie in.

Disclaimer: I am a basically a Microsoft .Net guy but am a very big fan of Ruby on Rails.  I’ve written force.com applications and have done more than the prototypal hello world application in a bunch of languages including PHP, Ruby on Rails, and Java.  I’ve never been wild about the tools (Apex Code and Visualforce) that Salesforce gives you as a developer to natively integrate with their platform.  Apex code essentially allows developers to write stored procedures for the Salesforce.com database where Visualforce is a presentation layer language for their system.  Both of these languages have roots in Java and are based on the model view controller (MVC) design pattern.  My basic problem with the SFDC languages is that they are SFDC specific and there is a learning curve with any new language.  (There is amazing developer support for just about any language you can imagine to interface with SFDC but only applications written in Visualforce or Apex can run on the SFDC servers.)  If you talk to the CRM folks they will tell you that this specialization was needed to achieve the kind of performance and deep integration they wanted.  At the time that these tools were announced I wondered why they couldn’t do what they wanted with Java.  Now SFDC buys Heroku which allows you to run Ruby on Rails in the Cloud.  Ruby on Rails is another MVC-based application and is the “hot” open source language.  How amazing would it be if you could write a force.com application that would run on the SFDC servers in RoR.

Some amusing quips from Cloudforce

  • Beware of the false cloud – a cloud is not real if it is not public
  • SharePoint is like your grandfather’s attic – what I put in I can never find

Amazon Web Services – Ready for Primetime

January 11, 2011

Netflix is in the process of moving to the Amazon cloud. There are a couple of really good blog posts by John Ciancutti who is Netflix’s VP of Personalization Technology. I find it very interesting that an operation as big as Netflix would be investing as much as they are into AWS. Thjs is how I read it.

This is a huge leap of faith. While I am not an investment analyst and haven’t studied Netflix’s proxy statements I am a customer. From what I can see Netflix is slowly walking away from the DVD in the mail business and moving to the video on demand model. The old way of doing business would have said that ‘our web presence is too core to our business to outsource to a third party’.

This is a tremendous vote of confidence for Amazon. I am sure that Netflix did not go into this partnership with Amazon without thorough due diligence. In this business there is no one-size fits all model and “your mileage will vary,” however, I interpret Netflix’s decision as a statement that the Amazon cloud is ready for primetime. I’ve heard this same message from other people that I know as well.

There was a Window of opportunity. According to the Netflix post they “needed to re-architect” anyhow so the timing apparently worked out to optimize their software to integrate into AWS.

The cost equation is starting to make sense. Every time I’ve looked at AWS I’ve come away thinking that it’s really expensive. A friend of mine observed the following: “they (Netflix) are large enough that they could probably save millions by building it themselves.  However, there would be opportunity cost of putting some of their best people onto scalability instead of feature development.”

AWS is no silver bullet. There are stories out there like Instagram which over night explodes to 1M users. The only way a product like that could have possibly scaled to accommodate that much traffic is with a solution like AWS/EC2. That said, committing an existing business to a cloud-based solution is very much a strategic decision and requires management commitment.

I think about AWS as the established incumbent in the space. They aren’t by any means the only serious player.  I’ve heard good things about Rackspace’s CloudServer offering, and that Windows Azure is an increasingly interesting technology that will be very meaningful – particularly to folks that write code using the Microsoft stack.


Picking the Best SaaS Hosting Strategy

May 28, 2010

Choosing the best application hosting strategy is a function of considering multiple overlapping factors.

  • Managed / Unmanaged – Who will monitor, maintain, and patch the host operating system.  Managed service providers cost more but argue that their costs are less than hiring a dedicated IT administrator, incurring the cost associated with downtime, or the value of an entrepreneur or software developer’s time.
  • Physical / Virtual hardware – Virtual machines are more flexible but typically do not perform as well as physical machines.
  • Owned / leased equipment – Business consideration if physical hardware is selected.
  • Shared / dedicated environment – Whether a given business / application is the only application running on a given platform.
  • Direct interaction with OS / hardware– Whether non-traditional technologies need to be installed or if there are unique requirements (security, networking, custom hardware).

Shared service provider

Shared service provider is an ideal solution for a publically accessible development sandbox.  Individual developer wishes to showcase a piece of work to colleagues, customers, or friends.

Characteristics: Ability to host application code written in a variety of different languages (C#, PHP, Java, Perl, etc.), leveraging common frameworks (Rails, .Net, Django, etc.), and connecting to a traditional SQL database (MySQL, SQLServer, etc.).

Pros: Cost, ease of use.

Cons: Limited capability, can be sluggish, cannot install tools, limited to common technologies, minimal monitoring, limited up-time guarantees.

Costs: $5-$10/month.

Sample Providers (*):  Dreamhost, 1&1, Godaddy.  See lifehacker review.

Platform-as-a-Service Providers (PaaS)

A PaaS solution would be appropriate for small purpose-built application with modest CPU, bandwidth, and CPU requirements.  PaaS solutions are ideal for applications that might experience explosive growth such as a commercial iPhone/Android application that exchanges data with the cloud.  PaaS solutions typically would not be appropriate if there is no monetization strategy as the costs would become prohibitive as usage takes off.   Note that although Salesforce.com’s solution can be used as a more generic solution it is optimized for applications that integrate with data on their platform.

Characteristics: Similar to shared service provider, however, more robust platform for hosting applications.  Many times are technology specific.  See much more detailed discussion of PaaS on Wikipedia.

Pros: Scalable, robust, allows developers to focus on code vs. IT, solutions optimized for development.

Cons: Cost, control limited to application code and supported technologies.

Costs: Typically tied to usage.  Often free for development.

Sample Providers (*):  Heroku (Rails), AppEngine (Python, Java), Azure (.Net), VMForce (Java), Salesforce.com (Apex).

Virtualized server

A virtualized server makes sense for situations where a developer needs the ability to interact directly with the operating system, where there is minimal concern about scalability, and the amount of data being exchanged is not significant.  An ideal application of a virtualized server would be for a PCI complaint shopping cart.

Characteristics: Windows or Linux computing platform implemented on a larger computer using a back-end virtualization solution.   May or may not be managed solution.   Features and, functionality vary greatly between providers.

Pros: Provides the ability to have OS-level control.  Ability to install non-traditional apps (i.e., Cassandra).

Cons: Less performance and scalability than physical hardware.  Need to be concerned about OS-level issues.

Costs: Pricing in variable depending on usage and configuration.  Range $20 – $200 / month based on selected options.

Sample Providers (*):  Amazon EC2, Mosso (aka Rackspacecloud), HostGator, 4Domains.

Physical server

Physical servers make sense when significant amounts of data are to be transferred, finite control of the system is required, or application performance needs to be maximized.   Most technology companies purchase “cage space” or enter into a managed service provider agreement.

Characteristics: Windows or Linux computing platform implemented physical hardware.   May or may not be managed solution.   Equipment may be owned or leased.

Pros: Same as virtual server plus ability to scale.  Predictable cost structure.

Cons: Longer-term contracts typically required.

Costs: Variable depending on configuration.

Sample Providers (*):  Rackspace, Navisite, Datapipe.

(*)I’ve used most of the “sample” providers and by and large have been happy with their services.


Outsourcing all of your IT to the Cloud

May 20, 2010

Even though I used to compete against Appririo I was always impressed with their team and their commitment to adopting cloud technologies.  About a month ago (April 2010) they came out with their “$1M Cloudsourcing Guarantee.”  Basically, the way the program works is that Appririo will craft a strategy for moving all of a given organization’s IT infrastructure to a cloud-based solution.  If $1M in savings cannot be achieved over an on-premise solution Appririo will make up the difference in services.  While I could blow holes in the fine print of the program on balance I think this is brilliant marketing and demonstrates Appririo’s belief in SaaS solutions.

What I really like is that Appririo has already outsourced all of their IT and is publicly talking about what they’ve done.  I’ve long thought having all of your IT infrastructure in the cloud is the way to do it.  They have organized their system three plus application suites – Google Apps for Business, Salesforce.com, Workday, and Amazon Web Services and Windows Azure.

Other than Workday I’ve used all of these solutions and in general I think these are all terrific solutions.  Depending on the size the organization, maturity, and how much legacy business systems need to be carried forward will dictate which systems can / should be moved to the cloud.  A clean-sheet start-up can make choices that just aren’t possible for a business that has an active book of business.

  • Google Apps for Business: Good fit for just about any business no matter what size.  I do not view GA as a replacement for desktop productivity software.  We primarily use Google Talk (typically through Digsby) for IM, Gmail (typically through Outlook), Sites, and Spreadsheets.   While the collaboration is nice in general the features in Google Docs are not good enough for pretty much anything other than use as a notepad replacement.  Spreadsheets are terrific for basic spreadsheets to be shared with multiple users but the lack of PivotTables and relatively basic charting is a drawback for everyday use.   We’ve found that the free version is more than adequate for our needs.  It will be interesting to see if Microsoft’s forthcoming Office Web Apps displace Google for document collaboration.
  • Salesforce.com: Properly implemented SFDC is in my mind a must have for any business.  I don’t view it as just a CRM system (though it’s the best one out there).  The challenge with SFDC is that it can be a fair amount of work to properly configure and to get the maximum value out of it you need the Enterprise version and some expertise configuring it.  There is an entire industry dedicated to tailoring SFDC to your business’ needs.  Broadly speaking its money well spent if you’ve got it.  For the small business just starting out Professional Edition is a good starting point.
  • Workday: As I’ve never used them I am not going to comment on that suite other than to state that we used Salesforce.com for HRM and Financials.
  • On demand processing : I think these types of platforms: Azure (.Net), AppEngine (Python, Java), Heroku (Ruby), and eventually VMForce (Java) are excellent for point specific solutions.   For example, these types of solutions are really a great-fit for hosting a single purpose iPhone application. AWS is unique in that it’s a suite of product offerings.  EC2 is the closest Amazon analogy to these other system but unlike the others requires the purchasing organization to deploy an Operating System first.  If you can convince yourself that the economics make sense, it’s a good fit for hosting a complex business application.  Rackspace has a similar solution called the Rackspace Cloud.

In summary, there are a ton of very good SaaS solutions out there for just about every conceivable application.  Some of the others ones that immediately come to mind include Zuora (Subscription Management and Billing), Cleverbridge (shopping cart), Quickarrow (Professional Services Automation), Taleo (recruiting), Eloqua, Vertical Response, and Marketo (Marketing Automation), and the list goes on.


Thoughts about VMForce

April 29, 2010

The other day a friend asked me what I thought of Tuesday’s VMForce announcement from Salesforce.com and VMWare.  After reading up on it and giving is some thought I think VMForce is a big deal and is going to be an important platform that companies looking to move their apps to the cloud will want to consider.

VMForce will be a hosted platform for running Enterprise Java applications in the cloud.  This figure from Rod Johnson’s blog (GM of SpringSource) does a good job of explaining the solution.  The “database” is Salesforce.com and the applications run on VMWare in the SFDC data centers.  Java apps will run on the SpringSource tc Server leveraging VMWare’s aquistion of SpringSource.   Information Week characterized Spring applications: “as lightweight Java in the same way as PHP and MySQL are used for lighter weight Web applications.”  VMForce should be available in developer preview (no doubt in time to be demo’d at Dreamforce) later this year and in production sometime in 2011.  I did not see anything about pricing.

VMForce Overview from SpringSource Blog

In that same Information Week article Jerry Chen, manager of cloud strategy at VMWare is quoted as saying “Java has emerged as the leading enterprise language of choice.”  I am not sure that I would agree with that statement but don’t necessarily have the data to prove otherwise just a gut sense that Java’s day may have passed.  Michael Coté points out that “Heroku [Ruby Cloud Platform] is increasingly heralded as a good way of doing cloud development…”  I am a pretty big fan of Rails but not so much Ruby.  VMForce is potentially very interesting in the context of being able to use Rails and Java on Spring’s Groovy on Grails.

VMForce probably will turn out to be a very good thing for both SFDC and VMWare.  SFDC has rock-solid infrastructure, great development tools, mature reporting, and a well establishing data model.  Moreover, the folks at SFDC are fully committed to Java as their tool of choice for developing their own platform.  Salesforce will benefit from this partnership by opening up their platform for hosting enterprise Java applications.  My sense is that SFDC has been underwhelmed by the market’s adoption of  their solution as Platform as a Service (PaaS) beyond the CRM market.  Unless you have an enterprise application that is deeply intertwined with your customer file in some way why would you host it on SFDC?  SFDC made a strategic decision to develop their own languages – Apex Code and VisualForce – for applications that run on their platform.  While similar to Java and JSP they are syntactically very different and despite what SFDC would have you believe there is a learning curve even for experienced developers.  Further, many developers are not all that jazz’d about learning a “stove pipe” language that is only useful in a niche market.  I think VMForce will address many of these problems.

The biggest question I have is how much will it cost.  For non-trivial applications cloud-based solutions can be very expensive.  Beyond that I’d like to get confirmation that all VMForce applications will be multi-tenant.  I am sure that there will be some reasonable restrictions on the applications to ensure security and prevent abuse though those are not yet clear at the moment.

I can certainly understand why SFDC would want a deal like this but it does move them a bit further away from Google who has a  similar offering in AppEngine (Python and Java).  VMForce, which is again a year away, will almost certainly have less restrictions than AppEngine which limits access to a finite number that have been “White Listed.”

Bottom line with VMForce SFDC / VMWare now becomes a fourth serious player in the PaaS space.

It will be interesting to see how the other big players in this space -  IBM, Oracle, SAP – align themselves or if they choose to build something themselves.

Good reference links:


Thinking about Browsers

July 13, 2009

Browsers

I have all three of the current major browsers installed on all three of my machines – Internet Explorer 8.0, Firefox 3.5, and Chrome 2.5.  I use IE as my default browser only because I know that the majority of my customers use it and I want to see the web like they do.  The latest web stats suggest that IE is losing share to Firefox.   (Our internal stats suggest don’t such a precipitous drop off but I think the trend is right.)

I am still searching for something to like about IE over the competition.  It’s not like IE is bad per se; Its just that there just isn’t anything to love about it.  IE is not particularly fast and with all due respect to web slices (which could be interesting) there are no overly compelling features.

Although the broader Internet has yet to embrace Chrome its hands down the fastest of the three browsers.  The Firefox 3.5 benchmarks suggest that it is as fast or nearly as fast as Chrome.  In my real-world experience there is no comparison.  Almost certainly the add-ons that make Firefox so great also make it slow.

Almost everyone I know that works on the web professionally prefers Firefox.  The thing that makes Firefox great is the add-ons.  Pretty much everyone I know that uses Firefox has the ad-block extension.  When you do what I do and run IE on the mainstream web it’s the equivalent of coming out a quiet lounge with soft lighting to a casino floor – bright and loud.  You have to wonder how different the web would be if all browsers supported ad blocking like pop-ups.  (As an aside its now possible to suppress ads in IE 8 using the In Private filtering.)

My single wish for Firefox is that it would load as fast as Chrome.  On the other hand I’d be happy to make Chrome my platform of choice if it would support extensions like Firefox.  I’ve read that both camps are working on these features.  http://mashable.com/2009/06/29/firefox-next/ and http://dev.chromium.org/developers/design-documents/extensions/samples.

The other serious players in this space are Safari and Opera.   Safari is obviously a very compelling choice if you own a Mac otherwise not so much.  Sometime ago I tried the Windows version of Safari and was not at all impressed.  I don’t know anyone who uses Opera as their primary desktop browser.  I think their prospects are better in the mobile device market.


Watching the clouds

September 2, 2008

I found the following list of sites that monitor clould based web services.

  • CloudStatus is a free service that monitors Google and AWS.
  • TrustSaas.com is an uptime monitoring and alerting service SaaS applciations.  The following applications are presently monitored: GMail (several flavors), Google Calendar, Google Sites, Google Talk, AppEngine, Salesforce.com (8 clusters), Facebook, MobileMe, MySpace, Twitter, TypePad, WordPress, 37 Signals (BaseCamp, Backpack, Campfire, Hirise).  Note: the GoogleApps listed do not appear to the the Google Enterprise Apps, they appear to be the consumer direct versions.
  • Salesforce.com has their Trust web site at trust.salesforce.com.
  • Twitter is using Pingdom here

On a related note

There may be others.


Follow

Get every new post delivered to your Inbox.

Join 45 other followers