The Relenta CRM blog

Work smarter, not harder!

Slicing the cloud

It goes without saying that we are constantly looking for ways to perfect Relenta. We want the best speed and uptime for you, reduced costs and maintenance for us, and peace of mind for all. Greedy? Unrealistic? Impossible? These words aren’t in our vocabulary.

Sergey Gondrya CTO at Relenta

Sergey Gondrya, CTO at Relenta

To our astonishment, we quickly found the perfect solution that meets our seemingly conflicting requirements (its name is Slicehost). On the other hand, convincing ourselves that this is the right choice took quite a bit of time. And that’s what this post is all about.

“We” really means Sergey Gondrya, Relenta’s CTO and system architect extraordinaire. I just wrote it all down.

We’ll start with our wish list, talk about the Relenta system architecture, the process of elimination we went through, and the tests we ran to justify our decision.

What matters to us

Because Relenta hosts your email and sensitive business data, we take availability, security, and performance much more seriously than providers of less mission-critical software services might be able to afford.

As Winston Churchill, we are “easily satisfied with the very best.” Here is our wish list. In no particular order, we want to…

  • Focus on developing and servicing the application instead of worrying about hardware monitoring and maintenance.
  • Be in control and do almost whatever we want with the system without contacting support. This includes provisioning additional capacity.
  • Have storage that is fast, redundant and scalable right out of the box. Cheap, too.
  • Spend less on our monthly hosting bill and increase performance at the same time.
  • Know exactly how much we’ll pay for hosting on the next billing date. Estimates won’t do.
  • Have the best possible data center connectivity for customers across the globe, not just the US.
  • Be powered by a brand that is respected by geeks and recognized by the majority of our prospective customers.
  • Scale up easily, inexpensively and in a heartbeat.

It all comes down to the right balance between freedom, control and money. Doesn’t it always?

Relenta system architecture

Inspired by Google’s infrastructure, Relenta is designed to run on generic, non-specialized, cheap servers with no dependence on hardware type or manufacturer. The system can also be run easily on a single server. (In the near future, you will be able to download, install and run Relenta on any x86 hardware on your premises.)

Relenta is a single-instance, multi-tenant application. Customer data is sharded. Relenta is written primarily in PHP 5 with Java modules and shell scripts.

Currently Relenta runs on RedHat Enterprise Linux 5 OS, nginx and fastCGI webservers, and MySQL 5.1 database. The system is webserver-agnostic and can be easily modified to work with any other database server.

Relenta architecture

  • Master database contains meta information about customer databases. Replicated for high availability.
  • Data nodes are horizontally partitioned and may contain one or more customer databases which can be easily moved to a different node. Each node is replicated for high availability.
  • File storage is used to store information that doesn’t require or is not suited for relational database, such as documents, email attachments, originals of incoming email, data export files, etc.
  • Search. We use Apache Lucene for email search and will soon expand its capabilities to contact search.
  • Fetchers retrieve email from remote POP and IMAP servers. In the future this functionality will be expanded to include social network messaging (Twitter, Facebook, LinkedIn) as well as RSS.
  • System queue is an asynchronous internal messaging and task executing system.

SoftLayer was awesome

Our servers have been hosted at SoftLayer for a few years. It’s been a fantastic experience. Hardware upgrades aside, we’ve never had any need to contact support. SoftLayer’s uptime record is impeccable.

One thing that perplexed us at SoftLayer was its monitoring system, which is unpredictable and inconsistent (to be fair, we haven’t applied any effort to fix or adjust it either). Instead, we used Pingdom, which provides great value and quality monitoring from a dozen or so locations across the globe.

Other than monitoring, we’ve had no gripes with SoftLayer. In fact, we learned quite a few things from the way this company operates. We highly recommend it to anyone who is looking for self-managed dedicated hosting.

As for Relenta, we simply wanted to see if we can delegate the hardware management responsibility without paying a king’s ransom for managed hosting.

The process of elimination

There are only three hosting options, really: shared, virtual (VM for virtual machine or VPS for virtual private server) and dedicated. Both flavors of the dedicated option are a no-go for us:

  1. Self-managed, the kind we’re moving away from.
  2. Managed, the kind that is way too costly.

Then there is much hoopla about cloud hosting. The term cloud is used as a metaphor, based on the way internet is pictured on the network diagrams. It represents an abstraction for the concealed hosting infrastructure, and for that reason it would seem reasonable to apply the term only to shared and virtual environments.

As much as we dislike vague buzzwords, we have to admit, the word cloud has a very nice ring to it. Whoever came up with the term is a genius. Or was it the wisdom of the crowd?

Anyway, a quick look at the shared cloud hosting solutions, such as Rackspace’s CloudSites, revealed functional limitations similar to those of shared hosting. Because Relenta requires Java, shell scripts and custom server-side components, shared-type cloud hosting turned out to be unsuitable for us. Nevertheless, CloudSites is a major step up from a familiar shared hosting environment, because it offers load balancing, clustering, redundant storage and easy scalability straight out of the box.

What’s left is a virtual-style cloud hosting. Back in the day when I was deeply involved with the web hosting industry, we called it VPS. A broader term that seems to be preferred today is VM. The truth is, there isn’t much difference either way.

Virtualization technology has come a long way since we first tried it a few years ago for another project. At the time, the overhead of virtualization was too high. The technology seemed to be not quite there, so we decided to give it some time to ripen. And so it has.

Among VM providers we quickly narrowed our choices to Rackspace’s Slicehost and Amazon’s EC2, then almost instantly discarded the latter and finalized on Slicehost. The rest of the time was spent on testing and convincing ourselves that our decision was spot on.

Rackspace’s Slicehost vs. Amazon’s EC2

Slicehost is a VPS company “built for people who know their stuff.” They use customized Xen VPS back-end to manage slices ranging from 256MB/10GB for $20 per month to 15.5GB/620GB for $800 per month. If you use your slices for only a part of the billing cycle, they will be prorated based on the number of days used. Simple and straightforward. In October 2008 Slicehost was acquired by Rackspace. Our slices are physically located in the mothership’s data center, which was one of our critical decision-making factors.

EC2 stands for Elastic Compute Cloud that “lets you run on Amazon’s proven computing environment.” EC2 “changes the economics of computing” by charging you for the actual usage. How much? We gave up trying to figure it out. If you want a good example of what simplicity is not, take a look at EC2′s “simple calculator.”

Slicehost gave us a temporary free slice to play with. We didn’t ask EC2 for a free test drive, because we didn’t want to embark on time-intensive research not knowing what our costs will be. We wanted a fixed monthly per-unit fee. With EC2, the exact fees are impossible to determine without setting up and running the system under full payload. Life is too short for that.

Another level of uncertainty for us was related to support. To our minds, Amazon is in the business of selling stuff and gathering knowledge about our buying behavior along the way. Are they as qualified to offer hosting services to the public as Slicehost, a division of Rackspace who built its reputation on fanatical support over the years? We didn’t want to find out the hard way.

Long story short, as much as we were intrigued by Amazon EC2, we didn’t feel like opening the Pandora’s box.

The Slicehost experience

Slicehost did well on two benchmarking tests, MySQL sysbench and Bonnie disk. Our servers at SoftLayer had SATA drives in RAID5 configuration. Slicehost uses undisclosed drive types (we strongly suspect SAS) in RAID10 which would have been cost-prohibitive for us in a dedicated server environment.

MySQL sysbench

Transactions per second:

SoftLayer 300-400 
Amazon EC2* EC2 small: 100-150   EC2 large: 300-350  EC2 xlarge: 450-500 
Slicehost 450-550 

* as reported by RightScale

 

Bonnie disk

  Write Rewrite Read
SoftLayer  30MB/sec   20MB/sec   40MB/sec
Slicehost  90MB/sec   41MB/sec   110MB/sec

Private network speed

The speed of private network is 5x faster at SoftLayer compared to Slicehost (20-25MB/sec vs 4-5MB/sec), but we can live with that since it isn’t a bottleneck for Relenta performance.

Support

We didn’t require much support during the setup and migration process. Any questions, regardless of their perceived or actual importance are answered by Slicehost within minutes regardless of time of day. For completeness sake we will mention one issue that Slicehost dealt with proactively and swiftly. We were notified that our slices were initially placed on the same physical machine:

Typically our load balancing algorithm will select distinct hardware on creation, so its likely that at the moment you added those servers we were in the process of adding capacity and not enough spare servers were available to properly space them out.  If you’d like to have those slices relocated to different hardware, please reply to this message and we should be able to take care of it right away.

This was indeed taken care of within minutes.

SLA

One other thing we feel compelled to mention is SLA (service level agreement), which Slicehost doesn’t offer. Because they are a part of Rackspace’s brand and data center, we are not concerned. The way we look at it, if a hosting service goes down for more than a few hours, any SLA issues will be the least of our worries. Any agreement is only as good as the company that provides it. In fact, one can argue that if a hypothetical hosting company goes down for say 10 hours and as a result doesn’t collect one month worth of its revenue, it might eventually put customers at greater risk because of the disrupted cash flow.

Like a glove

All things considered, Slicehost fits all of our criteria almost like a glove:

  • We can forget about the hardware. Yeah!
  • Our expenses and performance are predictable.
  • It takes two minutes to provision a new slice from the control panel.
  • For storage, we can use Rackspace’s CloudFiles which offers functionality and pricing similar to Amazon CloudFront. For detailed comparison, see Mosso’s blog.
  • We conservatively estimate that we end up paying anywhere from 30% to 70% less for the same end result compared to the dedicated servers at Softlayer (the variation is due to the multitude of configuration options and a few wildcards). This is the hard cost that does not include indirect savings.
  • Traceroutes that we ran from Latvia, Australia, Germany, UK and several locations across the US showed between one and five fewer hops compared to SoftLayer.
  • We ran informal brand recognition tests when talking to prospects during the past few weeks. Whenever Relenta’s strategy for reliability and uptime would come up, we would mention that we’re in the process of migrating from SoftLayer to Slicehost, a Rackspace company. A typical response was “Rackspace, good for you.” Unfortunately, not many people heard of Softlayer before. Could this be because our prospects are small businesses, while SoftLayer targets enterprise customers?

That’s it! As with any hosting provider, only time will tell how good of a fit it is. We have good feelings about Slicehost and hope you will do too.

  • http://www.slicehost.com slicematt

    Awesome, we are so glad to have you with us. Thank you for the write up, let us know if you need anything.

  • sean

    Hey guys, congrats on the move. Seems like a good idea to me.

    When is the cutover? Will it be possible for us to lose more messages auto-forwarded to Relenta from Google apps?

    Will this improve the speed of receiving and sending messages?

    • http://www.relenta.com Dmitri Eroshenko

      Thanks Sean. We're still researching the issue with your auto-forwarding. Other accounts were not affected. I will contact you privately as soon as I have all the answers.

      We are still working on improving the delivery times from remote POP and IMAP servers.

      The good news is that @relenta.net email delivery is now almost-instant.

  • http://www.essaycapital.com/custom_research_paper.php Custom Research Paper

    yes this is really good idea..Very well points..Thank you for write up bro..hope you will give more info in future..
    Custom Term Paper

  • briceachang

    It is suprising to hear that ittle research is done for these virus. why?? aren't there many resesarch institutes wasting funds researching things like “eating more vegetables is thrift savings plan good for you” which is such a obvious fact that needs no research!! put money into life saving projects! please

  • Nghia

    # We can forget about the hardware. Yeah!
    # Traceroutes that we ran from Latvia, Australia, Germany, UK and several locations across the US showed between one and five fewer hops compared to SoftLayer.

    Hello,

    nice article :)
    I wondering about the two points above. What do you mean exactly by “we can forget about the hardware”. Dont you have to pick RAM and Storage size?

    Also about the traceroute from Europe. I didnt find anything about a CDN in their services. How is it better than SoftLayer?

    • http://www.relenta.com/ Dmitri Eroshenko

      > Dont you have to pick RAM and Storage size?

      Yes but that's all we have to do.

      > How is it better than SoftLayer?

      It just is.

  • max191

    I have discovered and learned much from your blog. Your blog is really good.
    regards
    charcoal grill

  • JJ

    (In the near future, you will be able to download, install and run Relenta on any x86 hardware on your premises.)

    Hi, I would like to ask if this may still be an offering in the near future? If so when and how much?

    Thankyou.

    • http://www.relenta.com/dmitri Dmitri Eroshenko

      Hi JJ, no ETA at this point.

  • http://www.baguess.com prada handbags

    good

  • http://www.baguess.com prada handbags

    good