We're Hiring!  
Toll Free US & Canada: 1(877) 946-4743   Worldwide: +1(415) 869-7444

Archive for May, 2010

Since the launch of GoGrid over 2 years ago, we have provided free F5 load balancing as part of our Cloud Infrastructure offering. Being able to provide load-balanced solutions in the cloud is critical to having a scalable environment and without F5′s load balancers, our service offering would be very different.

f5_devcentral

But understanding the nitty-gritty details of how the F5′s work within GoGrid is not something that most people understand. For the most part, customers are concerned that it simply works and works well, which it does. Yesterday, Lori MacVittie, the Technical Marketing Manager at F5, posted a technical article that does a great job explaining how the magic behind the scenes works with the F5 load balancers and GoGrid.

The article is available on F5′s DevCentral as well as below:

Cloud Load Balancing Fu for Developers Helps Avoid Scaling Gotchas

If you don’t know how scaling services work in a cloud environment you may not like the results

Load_balancing_fu One of the benefits of cloud computing, and in particular IaaS (Infrastructure as a Service) is that the infrastructure is, well, a service. It’s abstracted, and that means you don’t need to know a lot about the nitty-gritty details of how it works. Right?

Well, mostly right.

While there’s no reason you should need to know how to specifically configure, say, an F5 BIG-IP load balancing solution when deploying an application with GoGrid, you probably should understand the implications of using the provider’s API to scale using that load balancing solution. If you don’t you may run into a “gotcha” that either leaves you scratching your head or reaching for your credit card. And don’t think you can sit back and be worry free, oh Amazon Web Services customer, because these “gotchas” aren’t peculiar to GoGrid. Turns out AWS ELB comes with its own set of oddities and, ultimately, may lead many to come to the same conclusion cloud proponents have come to: cloud is really meant to scale stateless applications.

Many of the “problems” developers are running into could be avoided by a combination of more control over the load balancing environment and a basic foundation in load balancing. Not just how load balancing works, most understand that already, but how load balancers work. The problems that are beginning to show themselves aren’t because of how traffic is distributed across application instances or even understanding of persistence (you call it affinity or sticky sessions) but in the way that load balancers are configured and interact with the nodes (servers) that make up the pools of resources (application instances) it is managing.


LOAD BALANCING FU – LESSON #1


Our first lesson revolves around nodes and the way in which load balancers interact with them. This one impacts the way in which you orchestrate processes, automate tasks, and interact with cloud framework APIs that in turn interact with load balancing solutions. It also has the potential to influence your choice of provider or core application design decisions, such as how state is handled and persisted.

f5_LB_article_diagram In general, a load balancing virtual server interacts with a pool (farm) of nodes (applications). Because of the way in which networks are architected today, i.e. they’re IP-based for interoperability, a node is identified by an IP address. When the virtual server receives a request it chooses the appropriate pool comprising one or more nodes based on the associated algorithm. Cloud computing providers today appear to be offering primarily one of two industry standard algorithms: round robin and least connections. There are many more algorithms, standard and not, but these two seem to be the most popular.

When a load balancing solution detects a problem with a node (it’s monitoring the node by sending ICMP pings or opening a TCP connection or doing an HTTP GET, depending on the provider and implementation) it marks it as “down”. Nodes can also be marked as “down” purposefully, in the event you want to perform some maintenance or find a problem with the application running and need to address it.

The gotcha comes in here, because when you’re scaling down or purposefully taking down a “node”, there may be users that have been directed to that node and are still actively interacting with it; there’s still connections to the node. While load balancers will stop directing new requests to a “down” node, how they handle existing (open) connections is configurable. When a node is marked as “down” the Load balancer has some options how to interact with existing connections ranging from allowing existing connections (users) to complete their interactions with the application to outright rejection of all incoming requests. The decision on this configuration option by the provider impacts the way in which you should architect your application if you’re really going to be taking advantage of elastic scalability, because while the options do not impact scaling up they do impact scaling down.

For example, after Amazon introduced its ELB (Elastic Load Balancing) service, users began to see what they considered odd and unacceptable behavior that was merely the result of the way in which load balancing works.

”Funky” AWS ELB behavior confusing customers

blockquote_2 We have a production site that is now sending traffic to someone else’s site. We terminated a couple of instances earlier today and this may have started this phenomenon, but this is very, very disconcerting. Repetitive refreshes brings up this site just as regularly as our servers. Can someone from amazon please help us out here? This is totally unacceptable behavior.

and a little while later in the thread:

I’m pretty surprised that terminating an instance doesn’t remove it from a load balancer.

The behavior (which Amazon indicates in the same thread has been resolved) is based on the understanding that taking a node “down” is not the same as “deleting” it. By terminating an instance in a load balanced environment the load balancer sees that it is “down” and marks it as such. Taking down the instance does not automatically delete it because there are many reasons you might want to take a node “down” and bring it back “up” later, such as upgrades, patches, etc… If you don’t bring it back up, however, the load balancer needs to be explicitly directed to delete the node lest you end up with odd behavior as described above (which shouldn’t happen in a truly isolated network environment, which says something about the way in which Amazon was internally designed from a network layer perspective). The ability of a load balancer to detect nodes as “down” and later as “up” is by design; it is in part what makes them dynamic and allows transparent (non-disruptive) scalability. Nodes can be added, deleted, taken down, and brought up without impacting the clients and their interaction with the application. The steps to scale down, then, require that first you take down the node (deregister in Amazon speak) and when all connections have been terminated (through normal means) then you delete it from the load balancer. This takes some coordination.

GoGrid’s load balancing implementation will not cause the scenario experienced by Amazon customers for two reasons: first, it makes extensive use of VLANs to isolate customers and thus no load balancing service for customer #1 will be able to communicate with a server used by customer #2 and second, GoGrid has orchestrated scalability services in such a way that load balancers are added and deleted en masse. Individual nodes are never added or removed but rather the entire load balancer object is modified. This effectively means the deletion of a node (by reconfiguring the load balancing object) is immediate and all existing connections are terminated. This is similar to the load balancer being configured to “reselect” a node when the original node is “down”.  This is something of which you need to be aware when deploying applications as it will eventually impact either the way your application behaves (from a user perspective) or your ability to scale elastically.


SCALING SERVICES IMPACT DEVELOPER DECISIONS


If you’re going to be using the scalability services of a cloud provider you, as a developer, need to know how the load balancing service is going to act when scaling down. You need to know specifically whether it bleeds (quiesces) connections when a node is taken “down” or whether a node being “down” results in rejects or reselection. This impacts (or should impact) the way in which you design your applications or the choice of provider. Also important to the decision is what you consider the proper behavior for your application. It may be the case that it’s acceptable for users to “lose” their session. It may not be. The core logical behavior and user expectations should in part drive your architectural decisions when designing a scalable application, even if that scalability is provided by a third-party as is the case with public cloud computing.

There are (at a minimum) two questions you should ask a provider regarding its scalability services to help determine the apropos course of action.

f5_LB_2_quest Possible reactions to the answers to these questions:

  • Rewrite the application to share state (shared-session database architecture)
  • Rewrite the application to be stateless
  • Do nothing and accept rejection/user loss of session as an acceptable risk
  • Choose a provider whose load balancing behavior aligns with your expectations
  • Implement a virtual private cloud instead, taking advantage of existing infrastructure to load balance applications “in the cloud” by extending your data center to include cloud-based resources.

In all cases, when you’re scaling down you don’t really want to just terminate the instance; you want to mark the node as down and allow the connections to bleed off before terminating it and deleting it from the load balancing solution. That’s the way it should work. By simply terminating the instance the node is marked as down and may continue to incur charges because health checks are using bandwidth to determine the status of the node. In the optimal case the load balancing service would offer a “conditional” delete function in its API that marked the node as “down” and, when all connections were completed, would automatically remove the node from the load balancing service. This is not the case today, for many reasons, but is where we hope to see such services go in the future.

If you have questions beyond what Lori has written about above, we do offer free 24×7 support at GoGrid as well as on the GoGrid Wiki (specific to the F5 Load Balancer).


An interesting article was posted to the Outsourcing Journal that is relevant to anyone considering using the Cloud as a viable infrastructure strategy. There are plenty of important topics & points in this article, especially as many companies begin moving full infrastructure to the Cloud. Using cloud infrastructure hosting provided by GoGrid and the CloudIQ platform by GoGrid partner, Appistry, companies can move their applications into the cloud for free[1].

oclogo-smalltag09

The Appistry CloudIQ platform consists of 3 offerings:

  1. CloudIQ Manager helps enterprises manage their applications within a cloud environment.
  2. CloudIQ Engine helps companies cloud-enable their applications, providing scalability and reliability.
  3. CloudIQ Storage allows organizations to harness inexpensive commodity storage

The Appistry CloudIQ platform is currently available on GoGrid as two Red Hat Enterprise Linux servers which have been recently updated as well:

Appistry_images

GoGrid and Appistry customer, Presidio Health, a small start-up which provides a Healthcare SaaS offering is one such company used the free Appistry CloudIQ offer to move its infrastructure over to the GoGrid cloud. Prior to migration, Presidio Health business requirements were high and their infrastructure was not made to meet the success they were having. They wanted to concentrate on growing their business as opposed to managing their IT infrastructure.

“We wanted to focus on the software we were developing for hospitals,” Gregory explains. “We didn’t want to support a full IT staff around the clock to manage the hardware. By using an external provider, we didn’t need to worry about downtime or redundancy. Outsourcing fit our business needs.”

Other items of interest in the article:

  • Presidio Health needed HIPAA compliance which was achieved with the GoGrid/Appistry solution
  • Hybrid Hosting model helped in the success
  • The GoGrid/Appistry solution increased computing power by 70 percent but didn’t increase the IT spend
  • The Cloud Computing solution will allow Presidio Health “to grow quicker”

I recommend that readers interested in this case study as well as the Appistry/GoGrid solution read this article for complete details.

  1. standard GoGrid hosting costs still apply – For the next 90 days, GoGrid is offering a US$100 credit to Outsourcing Journal readers who reference this promotional code: GGAPPO []

So the cat is sort of out of the bag with the release of the May 2010 GoGrid Newsletter. We definitely have some exciting news to share with GoGrid customers and those looking to move their infrastructure into the GoGrid Cloud. If you are currently a GoGrid customer receiving our newsletter, you should have received the following:

GoGrid_may_2010_newsletter

For those of you who do not receive the Newsletter and are interested in the latest and greatest news coming from us at GoGrid, what follows is the contents of the May 2010 GoGrid Newsletter:

Hello,

Spring is upon us and the change of the season presents us with new beginnings. In this edition of the newsletter, we’ll discuss information and opportunities that can help your business with new growth.

Specific topics include:

  1. New CPU Allotments for Virtual Servers
  2. GoGrid Expansion
  3. CDN News
  4. Cloudkick Promotion
  5. GoGrid and Microsoft Promotion
  6. Events and Other News

New CPU Allotments for Virtual Servers


On March 9, GoGrid nodes (the physical machines that host virtual servers) were upgraded with Intel’s powerful Nehalem processors, resulting in an increase in CPU allotments for most Windows and Linux virtual server options. See an earlier blog post about the Nehalem processors.

Virtual servers now have equal CPU-to-RAM ratios and virtual servers with 2, 4, and 8 GB RAM now have between 25-50% more CPU.

CPU Allocation (cores) RAM (GB) Disk Size (GB)
.5 .5 30
1 1 60
2 2 120
4 4 240
8 8 480

New node capacity is still being built and we expect to have enough new nodes to handle 100% of new virtual server adds in 4-6 weeks. Until then, most virtual servers will be added to new nodes, but depending on demand, some virtual servers may be deployed on non-Nehalem nodes and therefore will receive the older CPU allotments.

Below are some CPU Allotment FAQs:

Q: Will I pay more for the new CPU allotments?

A: No, the new CPU allotments are free of charge.
Q: Will my existing virtual server get the new CPU allotments?
A: No. If you deployed a Linux virtual server before March 9 or a Windows virtual server before March 25 it will have the old CPU allotments.
Q: Can I upgrade my existing virtual server so that it has the new CPU allotment?
A: No. You will have to delete your existing virtual server and deploy a new virtual server to get the new CPU allotment (subject to node availability).
Q: How do I know if my virtual server has the new CPU allotment?
A: Linux virtual servers deployed after March 9 and Windows virtual servers deployed after March 25 should have the new CPU allotment. You can check your virtual server’s CPU allotment by using the following commands:

Windows

  • Start -> run
  • Type “cmd”
  • In command window, type “systeminfo|more”
  • The “Processor” row will display the processor count of your virtual server

Linux

  • cat /proc/cpuinfo

If you have questions, please contact your dedicated GoGrid account team or GoGrid technical support.

GoGrid Expansion


We are excited to announce the expansion of GoGrid services to the East Coast (US-East-1) in less than 8 weeks. In late June, users will be able to provision virtual servers in our West (US-West-1) or East Coast (US-East-1) data center locations using the GoGrid portal or API.

The first release of the US-East-1 data center will include virtual server provisioning. We expect to have full feature functionality by the end of 2010, which will include F5 load balancing, Cloud Storage, MyGSI, and PartnerGSI.

Key Highlights:

  • US-East-1 data center expansion in late June.
  • Virtual server provisioning in the first release, with full feature functionality coming later in the year.
  • Additional information will be sent out in early June.

Please feel free to contact me, maria[at]gogrid.com, or your service team account manager with any questions about our new US-East-1 data center.

CDN News


Coming May 2010
We’ve expanded our global content delivery services with the addition of our Parisian point-of-presence (PoP). Your end users will receive their desired content from the fastest PoP on our network no matter where in the world they’re located. For more information visit GoGrid CDN.

New CDN Analytics Tool
Edge Performance Analytics, GoGrid’s new premium reporting suite, offers improved reporting performance to help you optimize your content and identify impending issues. Plus, you can now easily monitor your reports by scheduling email alerts daily, weekly or monthly.

Here are the details:

Premium Reporting Suite Pricing

  • $99.99/month
  • $99.99 setup fee

Reporting Features

  • HTTP trending statistics
  • Detailed insight on the performance of edge servers
  • Ability to generate specialized reports

For more information about Edge Performance Analytics or to get started, log in to the GoGrid portal and create a GoGrid CDN Provision case.

Cloudkick Promotion


If you haven’t checked out Cloudkick for GoGrid then you’re missing out on a powerful and cool set of tools for managing your GoGrid server infrastructure.

Here are a few Cloudkick features:

  • Fault detection with elastic monitoring – know when your servers are down and have monitors added automatically as new servers come online.
  • Dynamic graphs – interactive, zoomable, savable graphs, make it easy to visualize what’s happening with your infrastructure.
  • Server diagnostic – instantly see which processes are using the most CPU and memory on your machines.
  • Manage virtual & physical servers in one dashboard – you can also manage servers from multiple data centers in the same unified dashboard, right next to your GoGrid account.

Cloudkick is offering the first 100 GoGrid customers who sign up a 20% discount off their monthly charges.

To get started, simply:

  1. Sign up at: https://www.cloudkick.com/providers/gogrid/signup
  2. Enter promo code: go20

Read more about Cloudkick on our blog.

GoGrid and Microsoft Promotion


Receive a $500 Credit: Experience the Elasticity of GoGrid Virtual and Physical Servers
GoGrid and Microsoft have teamed up to offer GoGrid customers a $500 credit towards any GoGrid physical server you deploy running Windows Server 2008 or MSSQL Server 2008.

When you started with GoGrid, your infrastructure was a snapshot of your current business. As business grows, so do infrastructure requirements. With GoGrid, not only do you have the ability to scale and harness the elasticity of the cloud, but you can also meet your growing infrastructure needs with GoGrid Hybrid Hosting.

GoGrid Hybrid Hosting gives you flexibility to:

  • Build flexible, secure, high performance, and scalable server networks.
  • Choose from Virtual Servers, Physical Servers or any combination.
  • All servers share the same VLAN.

Check out some example configurations or read about some GoGrid customers driving business forward with a GoGrid Hybrid solution. Check out our blog post for more discussion on the promotion.

Receive your $500 credit, contact a sales representative and get started.

Events and Other News


Web 2.0 Expo
GoGrid will be an exhibitor at the Web 2.0 conference in San Francisco, CA.

Under the Radar
GoGrid was a sponsor at the annual Under the Radar conference in the heart of Silicon Valley.
Read more about it on our blog.

As always, you can find more information about GoGrid at:

If you have any questions please feel free to contact me directly at Maria[at]gogrid.com.

Thank you,
Maria Gallegos

Pretty exciting stuff right? More information will be forthcoming regarding the rollout of our East Coast presence so be sure to subscribe to our blog feed and Twitter stream to get the latest information and updates. A be sure to “like” us on our GoGrid Fan Page on Facebook!


GoGrid was selected by HostReview’s editorial staff to be one of the Top 10 Hosts in the Best Cloud Computing Provider categories for May 2010.

top10_cloudproviders201005

This award is based on a variety of items including:

  • Overall Product Offering
  • Value
  • Customer Service
  • Users’ Reviews

More information about HostReview’s Top 10 list can be found on their site.

GoGrid would like to congratulate the following other companies who were included in this list as well: Rackspace Cloud, Storm on Demand, NaviSite, Hosting.com, SoftLayer Technologies, 3Tera, BlueHost, VPS.NET and DediPower.

GoGrid previously was awarded the following from HostReview:

HostReview_GoGrid_previous