Tag Archives: consumer

Of cloud and factories

The most common metaphor for cloud computing is that it’s like your electric power company. Flick the switch on, log in to your cloud service, pay for what you use, log out, flick the switch off, go to sleep. Well, it’s a bit more complicated that that.

Power companies offer a single product: Electric Power. How many variations are there? Compare them to the myriad cloud offerings: Infrastructure as a service (virtual machines, Windows or Linux), Storage as a service (online, backup, archiving), Software (everything). To me, it looks more like manufacturing and selaling cars. And the cloud business has striking similarities to car manufacturing: Just assume that every car manufactured and sold is a month of a cloud service – any kind cloud service. What are the analogies?

  1. The infrastructure that powers a cloud service is like a car factory. There is an assembly line, pumping out a particular car model/cloud service. In both cases, the product is as good as the materials it’s made of and the quality of the manufacturing process. Also, the pricing catalog varies accordingly.
  2. Cars shipped out of the factory need an extended and reliable transport network, like rail, ports, RORO ships and so on. The same is true with cloud services: Since they are delivered over the Internet, cloud providers need multihoming (peering with at least two Tier-1 or Tier-2 providers), low latency and high bandwidth.
  3. Economies of scale and just in time production: The more cars you build and sell, the cheaper they are. Same thing with cloud services (Amazon Web Services). Also, adding more capacity as you grow is the only sustainable model for cloud providers – the analogy in the car industry is just in time production.
  4. Go to market: Building a cloud service is one thing, selling it is another. All car brands have an extensive network of resellers and dealers, cloud service providers rely also on partners and heavy Internet advertising and market awareness to bring in the sales volume to sustain their business. And volume is key to cloud services, just as it is in the car industry.
  5. Product qualities: Cars come in all sizes, shapes, colours, equipment. The same applies to cloud services. They all look alike (for example, all cloud service providers offer Windows servers), they do the same job, but what really matters is performance, capacity and reliability. What qualities would you look for if you were on the market for a new car?
  6. Common technology: Have you opened the hood of an Audi, Skoda, VW and Seat? The mechanics are the same, but the badges are different. Moreover, three technologies (soon to be four) power all cars on the globe: Gasoline, Diesel, hybrid (and electric in a few years from now). Guess what, it’s the same with cloud computing. There are only a handful of hypervisors and automation platforms that power most cloud service providers, yet, every provider has their own look and feel.

The perfect analogy would be the factory this gentleman used to run:


Usage metering and charging with Cloudstack

One of the prominent features of an IaaS cloud is that one can meter its resource usage by its consumers. Metrics are everywhere: From the hypervisor, virtual disk size, network I/O, occupied IP addresses, virtual CPUs and RAM, they are all over the place, waiting to be collected. As soon as you can grab a handful of metrics, you can implement chargeback policies and report back on your users on their resource consumption or, if you run a public IaaS shop, somehow transform these metrics to invoices.

Cloud.com’s cloudstack comes with an excellect usage server, recording metrics directly from its accounts. During installation, simply select the “Install Usage Server” option and perform some basic configuration, and you are all set to go. The usage server collect no less than thirteen (as of cloudstack release 2.2) metrics, which can be found here. In short, some of the most important ones are:

  • RUNNING_VM: Total hours a virtual machine is started and running on the hypervisor
  • ALLOCATED_VM: Total hours a VM exists (no matter if it’s up or down). Useful parameter for charging OS license usage, for example Microsoft SPLA licenses.
  • IP_ADDRESS: Self evident; applies to public (Internet) IP addresses consumed by a cloudstack account. These addresses are (according to cloudstack architecture) attached to the virtual router of the user
  • NETWORK_BYTES_SENT and NETWORK_BYTES_RECEIVED: Traffic passing through the virtual router of a user
  • VOLUME: Size in bytes of user volumes
  • TEMPLATE and ISO: Size in bytes of user-uploaded VM templates and ISO images
(For those who are not familiar with cloudstack’s architecture, cloudstack users are part of accounts. Virtual machines belonging to a single account live in their own private VLAN, totally isolated from other accounts. Access to the Internet, DHCP addressing, DNS and VPN termination, all take place in a special cloudstack virtual machine, a virtual router. Every account has its own virtual router, not directly controlled by the end user, but via the cloudstack API).

The service (“cloud-usage”) starts along with the rest cloud services on your cloudstack controller and its configuration variables are at the global parameters of cloudstack. The most important are usage.stats.job.aggregation.range and usage.stats.job.exec.time. The first controls the aggregation interval (in minutes) of collected metrics and the second the time the aggregation algorithm kicks in. Remember to restart the usage server service (“cloud-usage”) everytime you play with these variables.

All metrics are stored in a second database, called “cloud_usage”. To see if your usage server really works, connect to that database and see if its tables start to fill (all metrics tables start with “usage_*”). Data can be retrieved from the database, however, a more elegant way is to use the cloudstack API. The most useful API calls are:

  • listUsageRecords: Takes as arguments account, start & end date and returns usage records for the specified time interval.
  • generateUsageRecords: Starts the aggregation process asynchronously

Accessing the API is a breeze: Generate the secret and API keys from the console and pass them as arguments to a python script or a simple wget and target the API port (which is 8080 for plain http, or a designated SSL port).

So, what do you do with all these collected metrics? Well, there are two ways to deal with them. The first is to write a few complex scripts that collect the metrics from the API, sanitize them, implement your billing scheme and export to your reporting tool or ERP to generate invoices.

The second is to use an off the shelf charging/billing solution. As of January 2012, Amysta have a product in beta and Ubersmith offer complete cloudstack billing in their product, Ubersmith DE.

Adding value to SaaS

Software as a service is an entirely different animal from IaaS or PaaS. Implementing the latter two can be done (almost) with platforms available off the shelf and engaging a few consultants: Grab your favorite cloud automation platform (pick any: Eucalyptus, [Elastic|Open|Cloud]stack, Applogic, Abiquo, even HP SCA, throw in volume servers and storage, host on a reliable DC and you are good to go).

On the other hand, SaaS is something you have to:

  1. Conceive. IaaS and PaaS are self explanatory (infrastructure and platform: Virtual computing and database/application engine/analytics for rent); SaaS is… everything: from cloud storage to CRM for MDs.
  2. Implement: SaaS is not sold in shops. You have to develop code. This means, finding talented and intelligent humans to write code, and keep them with you throughout the project lifecycle.
  3. Market: Finding the right market for your SaaS is equally important to building it. SaaS is a service; services are tailored for customers and come in different sizes, colours, flavors. One SaaS to rule them all does not work.
  4. Sell: Will you go retail and address directly end customers? Advertising and social media is the road to go. Wholesale? Strike a good revenue sharing deal with somebody that already has customers within your target group, say, a datacenter provider or web hosting.
  5. Add some value to your SaaS. Cloudifying a desktop application brings little value to your SaaS product: It’s as good as running it on the desktop; the sole added value is ubiquitous access over the web. Want some real value? Eliminate the need to do backups. Integrate with conventional desktop software. Do auto-sync. Offer break-away capability (take your app and data and host somewhere else).
Let’s take two hypothetical examples: Cloud storage and CRM for doctors.
Cloud storage is a good offering for customers seeking a secure repository, accessible from everywhere. Let’s consider two approaches:
  • High end branded storage array with FC and SSD disks
  • 5-minute snapshots, continuous data protection
  • FTP and HTTP interface
  • Disk encryption
  • Secure deletion
The second approach would be:
  • WebDAV interface
  • Data retention
  • Daily replication
  • Auto sync with customer endpoints
  • Integrated content search

What’s wrong with the first approach? It is typical of the IT mindset: Offer enterprise IT features, like OLTP/OLAP-capable storage to the cloud. Potential customers? Enterprises that need to utilize high-powered data storage. Well, if you are an enterprise, most likely you’d rather keep your OLTP/OLAP workloads in house, wouldn’t you? Why bother?

The second approach offers services that are not delivered from your enterprise IT machinery. It’s added value to a cloud storage service and at the end of the day, they are deemed too expensive or complicated to implement in house. Potential customers? Enterprises that have not implemented these services but would seriously consider renting them.

Let’s consider now a cloud CRM for doctors. What would be some value added features for private MDs, apart from a database with customer names and appointment scheduling? I can think of a few:

  • Brief medical history of patient delivered to the doctor’s smartphone/pad. Can save lives.
  • List of prescribed medicines with direct links to medicare/manufacturer site. Patients can forget or mix up their prescribed drugs; computers never forget.
  • Videochat with patient.
  • Patient residence on Google maps and directions how to get there

Of supermarkets and clouds

OK, no more cloud computing definitions for me. I’ve found the perfect metaphor to explain what cloud computing is: The supermarket.

Probably you don’t remember how your parents (or grandparents) did their shopping in ye olde days, when supermarkets did not exist. Well, I can still remember my grandmother; she took her shopping bag and went to the butcher around the corner, the fish market downtown, the grocery store across the street and so on. It was fun; each shop had its own smell, arrangement, window and a different face behind the bench. The whole process took hours but it sure was a pleasant thing to do. And you had to do that over and over again, at least 2-3 times a week.

Now, my grandmother has passed away and all these little shops are long gone. Behold the supermarket. Drive, park, grab a cart, cross all the aisles, fill the cart, push across the tellers, pay, load car, drive away, talk to nobody. You’re done in one hour tops. And you’ve got to do that only once per week (depending on the mouths you have to feed…)

What does this have to with cloud computing? Think about it:

  • Cloud computing is about infrastructure uniformity. Like a supermarket, you have abundance of a limited number of the latest choices: Storage is massive, yet in two or three flavors (FC, NFS, iSCSI). Servers are Intel/AMD only with the same CPU stepping. Software stacks are canned – and everything must be kept at the same current revision, otherwise things will start breaking off. In contrast, a cluster of “legacy” HP superdomes or Sun E-series boxes, complete with their own SAN, backup TAN and a team of humans to manage them smells and feels like that old local shop around the corner: It has a little bit of everything. Complex, disparate, old software stacks. Dedicated storage. Cluster-specific network interconnects. Cryptic hardware. Exotic chips. Loyal admins. Human interaction. Everything.
  • Cloud computing is about making things easier. Service provisioning is a few clicks away. Hardware provisioning does not exist; everything is racked, cabled and powered once. System reconfiguration is almost automatic. In a legacy environment (well, in a non-cloud IT shop) trips to the computer room are frequent, CD/DVD swapping does happen, system provisioning is still a ritual ceremony, installing firmware, operating systems, service packs, patches and applications. Just like paying a visit to the grocery shop, then the bakery and the butcher, carrying those heavy shopping bags. Now, think how shopping is done in a supermarket and you get the picture.
  •  Supermarkets are big, neighborhood shops are small. Big size means cheap prices and countless shelves with goods. The same applies to cloud computing: Clouds are efficient in XXL sizes; that’s why cloud provider datacenters are massive. The downside? In a supermarket you can buy only what’s on the shelf and pay what the pricetag says. Unless you buy tons of stuff, you cannot ask the management to bring in a new product at a better price. In a small shop, if the owner knows your grandmother, well, you can ask for extra candies.
  • There is a supermarket in every town, meaning you can find your preferred brand of coffee (as long as it’s on the shelf) all over the country. If your local supermarket is blown to bits by a giant spider/tsunami/alien, drive to the next town. Cloud metaphor: More or less, all cloud service providers have redundant datacenters and data replication across them, so whenever a network outage or a natural disaster strikes, it’s likely that your services will survive.

When Windows XP counts your cash

Time for an illustrated post: From a nearby mall (I swear I didn’t do it; I was fast enough to grab these shots with my relic Nokia 6300)

OK, we know that XP has been loooong ago out of support for regular customers; will be around since 2014 for banks, presumably… So this ATM will be upgraded in two-three years from now. Let’s see the next slide, please:

That’s the splash screen of IBM Tivoli TMF and we can see it’s version 4.1.1. Currently the latest release is 4.3.1, so we’re a bit behind on this, too, aren’t we?

A few questions that pop in my head as I deactivate the phone camera and put my wallet back in my pocket:

  1. Why on earth would I trust a machine running XP, the most targeted and abused OS so far, to count my money?
  2. This ATM rebooted three times in a row and then worked just fine; most probably not due to a fault (we know that PCs fail miserably and die or reboot constantly) but due to maintenance. Why would a bank run maintenance tasks remotely in broad daylight?
  3. Tivoli is a quite decent platform for managing the box and its software; yet it’s not cheap and needs backend infrastructure, let alone services from (expensive) consultants for customization and operation. If XP was chosen as a low cost platform, bundling Tivoli and friends would make it a quite costly solution.

Will your cloud make money?

What comes first, the horse or the carriage? If you want to start your cloud business, do you need first to come up with a solid revenue model (how can you make money out of it) and then figure out how to implement it, or first you build it with what you know and then figure out a way to make money?

Actually, the most successful cloud companies did not follow either path. Google started as a search engine and then figured out a smart way to sell advertising to the millions eyballs skimming the text results. Amazon spun off IaaS from their main business, beating others on pricing options and rich technical choices. LinkedIn capitalized the business social network. Salesforce started from plain sales automation, now offers a full portfolio of business software. What do all of these have in common?

First, their revenue model constantly evolved down the road. Some started as spinoffs from an entirely different line of business, others offered free web services or subscription-based, yet, all of them changed their revenue models and adjusted their pricing strategies almost every quarter.

Second, they own their software and infrastructure. Instead of shopping around for bits of software, they control their code (by paying good money to talented humans to write, maintaind and update software) and their infrastructure: They own their datacenters. Large ones, with huge economies of scale.

Third, they control their supply chain and rely on partners and affiliates either for pure retail business or for added value services. If you are using their services, you pay them directly. If their services go down, you go after them directly. They do not maintain channel networks to resell their solutions, since the Internet is omnipresent and their portals one click away from your home page, so, why bother setting up a reseller or distribution network?

Fourth, and most important: They control their revenue model. Google capitalizes on hundreds of millions people using their free services. Amazon is perfectly aware that their IaaS services do not address their direct customers, but the customers of their customers and have adapted their pricing and services accordingly. LinkedIn offers a rich business communication platform where online recruiters and businesses can directly interact with their members. SalesForce constantly adapts and add new services that their existing customers can readily use.

The question is:  Can I do the same without biting the bullet and instead get bits and pieces off the shelf? For example, get some branded hardware with 24×7 support, rent some rack space, run Azure/VMware/Citrix/RH, get a decent cloud management platform, strike a few deals with cloudified software vendors and bring channel partners to do the reselling and distribution of my services?

Will this work? No.

First, you do not control your revenue model. You depend on a channel to resell your services, which means that you depend on your partner’s revenue model. In turn, you are also a reseller of somebody else services and products: You resell a hosted CRM or Azure/VMware/RedHat virtual servers and software platforms. And finally, you do not own your infrastructure, which means that you cannot control running costs of support and hosting.

Are these a bad thing? Yes.

In terms of money: Channel partner = $$ (their markup). Branded servers = $$ (acquisition & support). Renting rack space = $$. Azure, VMware and friends = $$ (licensing and support).

In terms of agility: Introducing new features and services is not a single step process: From tuning your heterogeneous software and hardware stack up to communicating the new services to your channel partners weeks, if months, pass, without revenue flowing in.

And then in terms of customer experience:  Figure out what’s wrong when something breaks (is it the application? Is it the virtual server? Is it the hardware?), call the cavalry (contact the appropriate vendor) and have them fix it. During all this time of this fascinating game of fault tracing and bug whacking, your customers’ business is directly affected: It’s down.

Smart TV, where art thou?

Once upon a time, there were TVs, phones and computers. Each one had a purpose: The TV was… um, a TV, the phone was a nifty little mobile voice communicator and the PC a white box with a white monitor. Oh, and there was something called the Internet, where the PC was hooked on.

Things started to change. Now, the Internet was available on the mobile phone. The PC got slimmer and turned into a laptop and then a netbook. At the same time, there was the iPhone (and a year later Android broke the surface). Then, there were the pads. And the iPad. And Android tablets. All of a sudden, people started ditching their netbooks and going for tablets, and quite soon we will see magical things like this.

However, there is somebody left out of the party: The TV. Strangely enough, the TV is still a TV. It has slimmed down to a few mm, it has grown and stretched, but has not yet morphed into something ubiquitous and intelligent like the PC and the phone.  Google TV (its first iteration) has failed and  the Smart TV is perceived as a TV that can play Netflix, BBC iPlayer and YouTube.  That’s odd, since the TV has some unique features vs the tablet:

– More real estate: A 42” television not only is visible from everybody in the room, it can squeeze much more information for the human eye

– More usable: You can control a TV single-handed from your couch with a Nintendo-style remote control; the tablet, you must hold it with one hand and tickle it with the other hand.

– More power: Any TV set has more internal space and cooling provision to house much more powerful hardware than your smartphone or tablet. Hard disks or high capacity flash storage can easily fit in a TV and you can physically upgrade the device via modules or PCMCIA slots.

– More connections: USB, HDMI, WiFi, Ethernet, DTV…

– More home applications: A TV can be a “home server”: A NAS to store all your media content or a sync master for your DECT phone and contacts.

– More software applications: Whatever applications run on your smartphone and tablet can be hosted in your TV set, taking advantage of the huge display and superb ergonomics of your couch and remote control. Stuff you do or wish you could do everyday around the house can be done through the TV. Some examples: Video surveillance, a look at the online press, asynchronous social media updates (Facebook, twitter), smart home dashboard (A/C, heating, security) and video calls.

So, why is the TV left behind?

Phones evolved, got bigger screens and applications merged into the daily routine of using your phone. The tablet is an evolution of the netbook, so, people who have had a netbook switch to a tablet because they can see the added value of the new form factor of their iPad. They also have a shorter lifecycle and it’s easier to switch to a new device sooner than later. However, a TV is a TV is a TV. In the mindset of the consumer, it is made for watching stuff, not doing stuff. It’s static, it’s on or off, in one word, it is a passive device.

The challenge for the consumer electronics industry is to bring to the market a fresh product, a concept that will add value to your couch, not just make a new generation of televisions and profit on the sales volume. Revenue can stem from the software applications after a smart TV has exited the store, in other words, from the home cloud.

Google has tried once and failed, now they come back with a vengeance. And here’s a surprise: Check out this ZTE announcement.