Thursday, September 30, 2010

The Intel Cloud Builder Series Webinar Featuring Enomaly (Oct 14th)

Join this discussion of Enomaly’s aptly named Elastic Computing Platform (ECP), which brings nearly infinite scalability and provisioning flexibility to cloud deployments. Learn how Enomaly’s ECP can support very large clouds with many thousands of servers, and virtually eliminate the upper limit on the number of virtual machines that can be provisioned. Cloud experts from Enomaly and Intel will present a logical blueprint for a typical configuration, discuss the unique attributes of ECP, and answer questions at the end of the presentation. Register today to hold your spot.
Thursday, October 14th, 2010 2:00 p.m. ET - Register Today!

Tuesday, September 21, 2010

Infrastructure Elasticity versus Scalability

Over the last few years I've gotten a lot of pressure to call our Elastic Computing Platform, a Cloud Computing Platform. Some may wonder why I've resisted to make this some-what semantic change in the branding of our platform. Yes, our customers are deploying cloud infrastructures, but how they're doing it is what this post is about.

For me, 'the cloud' represents the Internet, or more specifically it's a way of looking at application development and deployment from a network centric point of view. It's pretty much about thinking about applications that treat or use the Internet as the operating system. To enable such an environment takes a new way of thinking about your underlying infrastructure. A unified (API driven) infrastructure that is distributed, an infrastructure that is global, an infrastructure that is fault tolerant and most importantly scalable & elastic.

Some may think that being scalable is the same as being elastic, but I'm not convinced. Being scalable means being able to grow to the demands of an application and it's user base. This says nothing about what happens after this scale as been achieved. Being 'elastic' means being able to adapt (up, out and down again) The ablity to adjust readily to different realtime conditions. The metric that matters in an elastic computing environment isn't just how many users can I support, but how fast can I adapt to support those users. Speed and performance are key. How fast can I provision a new VM, how well does that VM perform once deployed, and how much will it cost me are what matters most. The problem with scalability is the question of what happens afterward. Elasticity is all about what is happening now.

Friday, September 17, 2010

Enomaly ECP 3.4 Service Provider Edition Released

Enomaly is proud to announce the latest 3.4 release of ECP Service Provider Edition. This is a major milestone, and brings many new capabilities and enhancements:

Full support for VMware ESXi 4.0 servers
A huge improvement in virtual machine I/O performance
Multiple Mix and Match Storage Pools

New Features
  1. VMware ESXi 4.0 is now supported as a first class hypervisor alongside KVM and XEN.
  2. Greatly improved VM performance with the addition of advanced machine flag for VirtIO for Disks (VIRTBLK). This allows pass through paravirt disk drivers.
  3. Cluster monitoring and notification module.
  4. Administrators can now restrict account/API access to a specific IP address or range.
  5. Administrative user interface is now fully localizable.
  6. Optional agent to manager heartbeat has been added for high latency networks.
  7. New administrative interface for Disk Templates.
  8. Users can now specify advanced VM tunables. Advanced options on VMs used to create packages will also be carried over into the package. The following options are now tunable:
  9. PAE - Allows 32-bit VMs to address more than 4 GB of memory
  10. APIC - Adding a virtual APIC can improve latency, performance, and timer accuracy, especially on multiprocessor virtual machines.
  11. ACPI - ACPI power management
  12. VIRTIO is a Linux standard for network and disk devices, enabling cooperation with the hypervisor. This enables VMs to get high performance network operations, and gives most of the performance benefits of paravirtualization.
  13. Ability to connect ECP to multiple storage pools (mix and match storage tiers).
  14. Added user editable "notes" field to VM details dialog. This is intended to be a location where users can document details about a virtual machine
  15. API enhancements to allow VMs to be queried by IP or MAC address and package ID.
  1. ISOs are now managed by the object-based permissions system.
  2. Improved consolidated product documentation.
  3. VM boot device can now be selected.
  4. Usability improvements to customer users interface. VM tab is first in the customer UI. Home tab has been relabelled Logs.
  5. Billing API has been improved to include additional information regarding packages and resource usage.
  6. Improvements to the i18n Internationalization system to allow multiple versions of a given language.
  7. Enhanced VLAN management. VLANs can now be assigned to alternative Nic’s on the host.
  8. Updated Korean, Japanese and Swedish translations
  9. Add installer support for CentOS 5.5.
  10. Improvements to the Virtual Infrastructure machine listing table.
If you haven't already done so, I invite you to give Enomaly ECP a try, please get in touch for a free evaluation edition.

Friday, September 10, 2010

Someone Please Build Me a Laptop Based Blade Server

When it comes to building cloud based infrastructure it's not the performance of anyone single server that matters so much as the collective ability to deploy many parallel VM's quickly. Lately there seems to be a growing trend for service providers to use low end commodity servers rather than higher end kit. So building upon this concept, I have a crazy idea. Why not create a blade chasis that can use laptops or at least the realivant stuff inside anyway as the basis for a super cheap, power efficient lapserver?

Think I'm crazy? Well, I'm not the only one thinking about this. Take for example SeaMicro and their SM10000 High Density, Low Power Server. It uses ¼ the power and takes ¼ the space of today's best in class volume server. It is designed to replace 40 1 RU servers and integrates 512 independent ultra low power Atom processors, top rack switching, load balancing, and server management in a single 10 RU system at about $150k. Do that math, it basically replaces 40 traditional servers at nearly 1/8th the price per computing unit. Although there is one problem, the Atom processor which support Intel VT is 32 bit greatly limiting it's usefulness.

That's where the Laptop comes in. Let's take your lowest end laptop (Non Atom) with the Intel i3 processor. A quick search and I discovered that these laptops sell for about $350. Keep in mind these laptops come with a keyboard, and screen which add to the costs. Boil it down to just the components you need and you're looking at about $150 retail for the parts. (dual core i3 2.26ghz, 4GB ram, 500GB, network card, and 6 Cell battery)

So now consider putting this into a small form factor "laptop blade chasis" lets say a 2u or 4u size. My estimate is you could probably fit about 5 of these lapblades in a 2u or about 10 in a 4u. So doing the math on 4u (10 lapblades, 20 cores, 40GB Ram, 5,000GB of onboard storage and 10 batteries for about $1500 - $2000 net) Those same 20 cores would cost you about $25k-30k with traditional servers. So the ROI for a service provider would be days. Not to mention with ten 6 cell batteries, you've got an onboard UPS and laptops are inherently low power.

Crazy idea? Someone should do it, I'd buy one.

A few people have pointed me to SGI's CloudRack and HP's BladePC

Edge Based Cloud Spanning

As a long time proponent of elastic computing or the dynamic use of global computing resources it's very interesting to see some of the new usage models emerging from the growing pool of regional cloud service providers around the globe. With this new world wide cloud, the concept of low cost edge base computing is now starting to take shape. More specifically the ability to run an application in a way that its components straddle multiple localized cloud services (which could be any combination of internal/private and external/public clouds). And unlike Cloud Bursting, which refers strictly to expanding the application to an External Cloud to handle spikes in demand, the idea of edge based cloud computing or 'cloud spanning' includes scenarios in which an applications component are continuously distributed across multiple clouds in near realtime.

Actually, wikipedia does a great job of outlining the rationale.

  1. Edge application services significantly decrease the data volume that must be moved, the consequent traffic, and the distance the data must go, thereby reducing transmission costs, shrinking latency, and improving quality of service (QoS).
  2. Edge computing eliminates, or at least de-emphasizes, the core computing environment, limiting or removing a major bottleneck and a potential point of failure.
  3. Security is also improved as encrypted data moves further in, toward the network core. As it approaches the enterprise, the data is checked as it passes through protected firewalls and other security points, where viruses, compromised data, and active hackers can be caught early on.
  4. Finally, the ability to "virtualize" (i.e., logically group CPU capabilities on an as-needed, real-time basis) extends scalability. The Edge computing market is generally based on a "charge for network services" model, and it could be argued that typical customers for Edge services are organizations desiring linear scale of business application performance to the growth of, e.g., a subscriber base.
Today one of the biggest opportunities I see emerging out of the rising tide of regional cloud providers is the ability to leverage multiple cloud providers, who exist across a so called inter-connected meta-cloud. This market has been traditionally limited to the realm of companies such as Akamai who have spent hundreds of millions of dollars building out global server infrastructures. The problem with these infrastructures are they are typically configured for one use case and are quite expensive. But with the emerging regional cloud provider, the ability to connect several of these providers together is now a reality greatly reducing the overall cost and essentially allowing anyone be build there own private CDN.

Also the underlying virtualization or even operating system is less important than the application itself. But the question is what is "the" application?

One such application ideally suited to this sort of edge based deployment architecture is a web cache such as Squid or Varnish as well as a selection of proprietary options. The interesting thing about web cache software in general is how it could be used in parallel to a series of random (untrusted) regional cloud providers. Moreover these caches don't necessarily need to worry about the security, performance or even SLA of a given provider; the location and connectivity is really all the matters. These local cloud services may be viewed as transient (see my post yesterday Random Access Compute Capacity) Meaning, location is more important than uptime, and if a given provider is no longer available, well, there are potentially dozens of others near by waiting to take up the slack.

It will be interesting to watch this space and see what kind of new geo-centric apps start to appear.

Thursday, September 9, 2010

Random Access Compute Capacity (RACC)

Forgive me for it's been awhile since my last post. Between the latest addition to my family (little Finnegan) and some new products we have in the works at Enomaly, I haven't had much time to write.

One of the biggest issues I have when I hear people talking about developing data intensive cloud applications is being stuck in a historical point of view. The consensus is this is how we've always done it, so it must be done this way. The problem starts with the fact that many seem to look at cloud apps as a extension to how they've always developed apps in the past. A server is a server, an application a singular component connected a finite set of resources albeit RAM, storage, network, I/o or compute. The trouble with this is development point of view is the concept of linear deployment and scale. The typical cloud development pattern we think of is building applications that scale horizontally to meet the potential and often unknown demands of a given environment rather than one that focuses on the metrics of time and cost. Today I'm going to suggest a more global / holistic view of application development and deployment. A view that looks at global computing in much the same way you would treat memory on a server - a series random transient components.

Before I begin, this post is 2 parts theoretical and one part practical. It's not meant to solve the problem so much as address alternative ways to think about the problems facing an increasingly global data centric & time sensitive applications.

When I think of cloud computing, I think of a large seemingly infinite pool of computing resources available on demand, at anytime, anywhere. I think of these resources as mostly untrusted, from a series of suppliers that may exist in countless regions around the world. Rather than focus on the limitations I focus on the opportunities this new globalized computing world enables in a world where data and it's transformation into usable information will mean the difference between those who succeed and those who fail. A world where time is just as important as user performance. The ability to transform useless data into usable information. I believe those who do accomplish this more efficiently will ultimately win over their competitors. Think Google Vs Yahoo.

For me it's all about time. When looking at hypervisors, I'm typically less interested in the raw performance of the VM than I am in the time it takes to provision a new VM. In a VM world the time it takes to get a VM up and running is arguably just as important a metric as the performance of that VM after it's been provisioned. Yet, for many in the virtualization world this idea of provisioning time seems to be of little interest. And if you treat a VM like a server, sure 5 or 10 minutes to provision a new server is fine if you intend to use it like a traditional server. But for those who need quick indefinite access to computing capacity 10 minutes to deploy a server that may only be used for 10 minutes is a huge overhead. If I intend to use that VM for 10 minutes, than the ability to deploy it in a matter of seconds becomes just as important as the performance of the VM while operational.

I've started to thinking about this need for quick, short term computing resources as Random Access Compute Capacity. The idea of Random Access Capacity, is not unlike the concept of cloud bursting. But with a twist, the capacity it self can be from any number of sources, trusted (in house) or from a global pool of random cloud providers. The strength of the concept is in treating any and all providers as nameless, faceless and possibly unsecured group of providers of raw localized computing capability. By removing trust completely from the equation, you begin to view your application development methods differently. You see a provider as a means to accomplish something in smaller anonymous asynchronous pieces. (Asynchronous communication is a mediated form of communication in which the sender and receiver are not concurrently engaged in communication.) Rather than moving large macro data sets, you move micro pieces of data across a much larger federated pool of capacity providers (Edge based computing). Transforming data closer to the end users of the information rather than centrally. Singularly anyone provider doesn't pose much threat because each application workload is useless unless in a completed set.

Does this all sound eerily familiar? Well it should, it's basically just grid computing. The difference between grid computing of the past and today's cloud based approach is one of publicly accessible capacity. The rise of regional cloud providers means that there is today a much more extensive supply of compute capacity from just about every region of the world. Something that previously was limited to mostly the academic realms. It will be interesting to see what new applications and approaches emerge from this new world wide cloud of compute capacity.

#DigitalNibbles Podcast Sponsored by Intel

If you would like to be a guest on the show, please get in touch.