<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Socialping Blog &#187; Scaling</title>
	<atom:link href="http://blog.socialping.com/category/scaling/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.socialping.com</link>
	<description>Twitter Analytics, Monitoring, and Notifications</description>
	<lastBuildDate>Fri, 06 Jan 2012 03:43:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Infrastructure</title>
		<link>http://blog.socialping.com/2011/04/infrastructure/</link>
		<comments>http://blog.socialping.com/2011/04/infrastructure/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 15:40:36 +0000</pubDate>
		<dc:creator>Joel Strellner</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Scaling]]></category>
		<category><![CDATA[infrastructure]]></category>

		<guid isPermaLink="false">http://blog.socialping.com/?p=129</guid>
		<description><![CDATA[There has been a lot of talk over the last few years about outsourcing your infrastructure to companies like Amazon&#8217;s AWS service, or Rackspace&#8217;s Cloud Servers and others. This mentality is wrong, for most people. Today we are in the middle of a massive Amazon outage that has been going on for many hours already, [...]]]></description>
			<content:encoded><![CDATA[<p>There has been a lot of talk over the last few years about outsourcing your infrastructure to companies like Amazon&#8217;s AWS service, or Rackspace&#8217;s Cloud Servers and others.</p>
<p>This mentality is wrong, for most people.</p>
<p>Today we are in the middle of a massive Amazon outage that has been going on for many hours already, and no concrete time frame is available for when it will come online again, which brings me to my first point: using a service like AWS means you don&#8217;t get the one-on-one customer support you need when running a business that has critical needs, like 100% uptime.</p>
<p>Sure there are ways to load balance between available zones, but as today proves, even that doesn&#8217;t always work.  In order to be truly available, you need multiple datacenters and those datacenters must from from multiple providers and be far apart from each other, like one on the east coast and the other on the west coast.</p>
<p>My other point is related to billing.  Cloud servers ARE NOT CHEAPER, when you run them 24/7.  Many people have cited cost savings as the main reason to use AWS.  I don&#8217;t know about you, but every time I have tested this theory, it always worked out that it was cheaper to use dedicated servers than it did using a virtualized server. Additionally, with virtualized servers, you typically also get reduced disk I/O, network latency and more which make your service run slower.</p>
<p>How many services need to scale up and down their infrastructure daily?  Far less than you might think.  Today, <a href="http://foursquare.com">Foursquare</a>, <a href="http://quora.com">Quora</a>, <a href="http://cotweet.com">CoTweet</a>, <a href="http://hootsuite.com">Hootsuite</a>, and I&#8217;m sure dozen&#8217;s more of popular services are offline because of the AWS outage.  The only one I see that is likely benefiting from scaling up and down servers is probably Foursquare, the rest probably have their servers running 24/7.</p>
<p>Until recently we&#8217;ve always hosted our servers at <a href="http://steadfast.net/">Steadfast Networks</a>. In the recent months, we switched to using <a href="http://serverbeach.com">ServerBeach</a> as our primary provider.  With both of them, we&#8217;ve used multiple dedicated servers in a load balanced, high availability manner.  We also use replication and a few other techniques to make sure that our customers data is safe and our service is online all the time.  We learned this <a href="http://blog.socialping.com/2010/09/socialping-is-effed-and-its-my-fault/">the hard way</a> in the past.</p>
<p>I know that this post is different from most of our posts on our blog, but we have a lot of experience working with these cloud services, and in that time have determined, they just are not worth it.</p>
<p>We know many people feel strongly about using them.  Feel free to let us know why in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.socialping.com/2011/04/infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going that way, really fast.</title>
		<link>http://blog.socialping.com/2010/09/going-that-way-really-fast/</link>
		<comments>http://blog.socialping.com/2010/09/going-that-way-really-fast/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 23:17:54 +0000</pubDate>
		<dc:creator>Joel Strellner</dc:creator>
				<category><![CDATA[Beta v2]]></category>
		<category><![CDATA[Scaling]]></category>

		<guid isPermaLink="false">http://blog.socialping.com/?p=113</guid>
		<description><![CDATA[I was just reading an interesting post on Coding Horror about iterating quickly and it got me thinking about all the iterating we&#8217;re doing on Socialping. Granted we&#8217;re a small company and have been given the opportunity to make dozens of changes without having to support a previous version or transition data, there&#8217;s still a lot to [...]]]></description>
			<content:encoded><![CDATA[<p>I was just reading an <a href="http://www.codinghorror.com/blog/2010/09/go-that-way-really-fast.html">interesting post on Coding Horror</a> about iterating quickly and it got me thinking about all the iterating we&#8217;re doing on Socialping. Granted we&#8217;re a small company and have been <a href="http://blog.socialping.com/2010/09/socialping-is-effed-and-its-my-fault/">given the opportunity</a> to make dozens of changes without having to support a previous version or transition data, there&#8217;s still a lot to be said about the speed that things are changing.</p>
<p>So, here&#8217;s an update: By now we&#8217;ve finished most of the API and we&#8217;ve got a new back-end in testing that is going to hopefully support us much better than the old setup did (for the nerds reading this, we&#8217;re using MongoDB for our tweets, Redis for a few things that need really fast access times, and MySQL for the account info).</p>
<p>At this point we&#8217;re still planning on <a href="http://blog.socialping.com/2010/09/doing-the-retrofit/">rolling out a retrofitted version</a> of the site using our new API instead of it having direct access, I think we are going to be doing more changes to the code than I anticipated, and thus there are likely going to be a few things that in fact, totally new.</p>
<p>I&#8217;m starting to get a bit of &#8220;can&#8217;t wait to release it&#8221; excitement because finally a number of the pieces are starting to talk to each other.  Just a few more talking pieces and we&#8217;ll have our <span title="Minimal Viable Product">MVP</span> out and we&#8217;ll get to start iterating on it while you guys are trying to break it. Exciting stuff.</p>
<p>Want to help us break it when it comes out? <a href="http://socialping.com/betarequest.php">Register for the beta here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.socialping.com/2010/09/going-that-way-really-fast/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scale, Scale, Scale</title>
		<link>http://blog.socialping.com/2010/05/scale-scale-scale/</link>
		<comments>http://blog.socialping.com/2010/05/scale-scale-scale/#comments</comments>
		<pubDate>Wed, 26 May 2010 22:02:36 +0000</pubDate>
		<dc:creator>Joel Strellner</dc:creator>
				<category><![CDATA[Scaling]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[sacaling]]></category>

		<guid isPermaLink="false">http://blog.socialping.com/?p=85</guid>
		<description><![CDATA[The scalability of Socialping hasn&#8217;t been looking too good lately. We&#8217;ve got hundreds of users in our beta and thousands of items being watched, collectively bringing in hundreds of thousands of tweets each and every day. These aren&#8217;t little terms that only get a few tweets an hour either, many of them are terms like [...]]]></description>
			<content:encoded><![CDATA[<p>The scalability of Socialping hasn&#8217;t been looking too good lately.  We&#8217;ve got hundreds of users in our beta and thousands of items being watched, collectively bringing in hundreds of thousands of tweets each and every day.  These aren&#8217;t little terms that only get a few tweets an hour either, many of them are terms like Twitter, Facebook, Google, etc &#8211; you know, really popular things that really stress our systems. And <strong>we love you guys for it</strong>.</p>
<p>Part of this whole &#8220;beta&#8221; thing that we are in is to see what our limits are, when things are going to break, and how they break when they do. We&#8217;ve got more data on what was and wasn&#8217;t working, and how it was working (when it did) than we could have hoped for &#8211; and the sum of that data? We couldn&#8217;t scale to where we want to go with our current setup.</p>
<p>Recently we&#8217;ve had to make a lot of changes to our systems to handle the load.  Those changes included rolling out <a href="http://code.google.com/p/redis/">Redis</a> (a NoSQL key/value store and (sort of) database) and migrating from MySQL where it made sense.  Other than one subsystem that gets used in our reporting systems, we&#8217;ve pretty much completed this migration and our load has been reduced considerably.</p>
<p>Sorry, I&#8217;m about to get all geeky, but if you have the time, take a look at Redis&#8217; new &#8220;hash&#8221; types, they are perfect for some of the stuff we do.  We also quite heavily use the Sorted Sets (zsets) and the regular Set types.  I want to commend Salvatore Sanfilippo (<a href="http://twitter.com/antirez">@antirez</a>) for all of his hard work on Redis, it&#8217;s truly one of the best key/value databases available.</p>
<p>So, back to the point of this post, lately we&#8217;ve been forced to scale, scale, scale and now that we&#8217;ve done enough to give us some headroom, we&#8217;ve put together a plan that&#8217;ll hopefully let us scale to the point that we can open things up the rest of the beta users that are still waiting to get in and eventually to the public as a whole.</p>
<p>If you care what those changes will be: we&#8217;re planning on continuing to use Redis for the long term, both as a cache and as data store, but also adding a cluster of servers that will use <a href="http://cassandra.apache.org/">Cassandra</a> for storing our tweets and while we&#8217;re still evaluating search options (spoiler alert!), likely <a href="http://www.elasticsearch.com/">ElasticSearch</a> will be used to allow you guys to better search through your tweets.  We&#8217;ll still use MySQL for managing some of the account stuff, like your watchlist.  I know I am glossing over a lot of details, but this is the main stack we intend on using. As more details finalize and we start rolling these out, expect updates on how it&#8217;s going.</p>
<p>Thank you to all of the beta testers in there breaking things, and thank you for your patience as we work through our growing pains.  For those of you still waiting to get in, we&#8217;re trying our best to get you in as soon as possible.  Thank you for your patience as well.</p>
<p>P.S. Oh, and Salvatore, if you read this, when Redis Cluster is ready for testing, we want to be part of it.  We are definitely going to need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.socialping.com/2010/05/scale-scale-scale/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

