<?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>MySQL Expert, Linux, EC2 &#38; Scalability Consulting NYC</title> <atom:link href="http://www.iheavy.com/feed/" rel="self" type="application/rss+xml" /><link>http://www.iheavy.com</link> <description>Heavyweight Internet Group +1-212-533-6828</description> <lastBuildDate>Mon, 30 Jan 2012 02:24:43 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>A History lesson for Cloud Detractors</title><link>http://www.iheavy.com/2012/01/29/history-lesson-for-cloud-detractors/</link> <comments>http://www.iheavy.com/2012/01/29/history-lesson-for-cloud-detractors/#comments</comments> <pubDate>Mon, 30 Jan 2012 02:13:29 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[Disaster Recovery]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[cloud computing]]></category> <category><![CDATA[cloud criticism]]></category> <category><![CDATA[cloud servers]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2525</guid> <description><![CDATA[&#160; &#160; &#160; &#160; &#160; &#160; &#160; We've all seen cloud computing discussed ad nauseam on blogs, on Twitter, Quora, Stack Exchange, your mom’s Facebook page... you get the idea. The tech bloggers and performance experts often pipe in with their graphs and statistics showing clearly that dollar-for-dollar, cloud hosted virtual servers can’t compete with [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.columbia.edu/cu/computinghistory/"><img
class="size-full wp-image-2540 alignleft" title="Computer" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2012/01/Computer1.png" alt="Computing history" width="647" height="191" /></a></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>We've all seen cloud computing discussed ad nauseam on blogs, on Twitter, Quora, Stack Exchange, your mom’s Facebook page... you get the idea. The tech bloggers and performance experts often pipe in with their graphs and statistics showing clearly that dollar-for-dollar, cloud hosted virtual servers can’t compete with physical servers in performance, so why is everyone pushing them? It's just foolhardy, they say.</p><p>On the other end, management and their bean counters would simply roll their eyes saying this is why the tech guys aren't running the business.</p><p>Seriously, why the disconnect?</p><p><span
id="more-2525"></span></p><p>Quite simply, they have very different agendas. The operations team is trying to deliver application speed, reliability, and scalability. Meanwhile the management team is trying to balance cash flow, capital investments and operating expenses, all this while retaining as much flexibility in decision making as possible.</p><p>Sound familiar? Yes, the bottom line for both are the same, but they approach the problem from two different sides.</p><p>After hearing this refrain from enough customers, I realized the question we were asking in operations was the wrong question. It is true that cloud servers do not perform as well as traditional servers -- at least not yet. The question that one should ask is, given this performance constraint with virtual servers, how can I alleviate the performance limitations of virtual servers and storage but still deploy into the cloud?</p><h2>A little bit of history</h2><p>Anyone who's been around computing since the mid 1990’s will see where I'm heading with this. Commoditization of computing, that's where. In the late nineties there was a big shift happening. In the 1990’s as Linux was maturing, commodity servers became all the rage. A big shift began to happen which drove cheaper PC hardware into the datacenter. Where once Sun stood supreme, suddenly all these upstarts were pushing crappy commodity hardware at 1/10th of the cost.</p><p>Old-guard systems administrators  at that time would balk, telling you how the stuff wasn't reliable, performance was worse, and they just failed too often. And you know what? They were right! Nevertheless look where we are today. Linux barreled through the datacenter because it lowered costs and introduced flexibility by giving you more choices and more redundancy.</p><p>All this rings very true today with the push to the cloud. Startups are the biggest adopters of cloud computing because the future is mostly unknown to them. Investing a quarter million dollars in hardware today when you don't know where you'll be in six months - that's a very hard prospect to entertain.</p><p>But cloud computing more than just lowers cost. Don't have the money for redundant servers to support Disaster Recovery? With Amazon EC2 you simply write scripts to rebuild your infrastructure and keep them handy when such an ill-fated day arrives. Flexibility, scalability and easier cost management. That's what the cloud delivers.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/29/history-lesson-for-cloud-detractors/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What Wouldn&#8217;t Google Do?</title><link>http://www.iheavy.com/2012/01/27/what-wouldnt-google-do/</link> <comments>http://www.iheavy.com/2012/01/27/what-wouldnt-google-do/#comments</comments> <pubDate>Fri, 27 Jan 2012 17:15:32 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[Business]]></category> <category><![CDATA[iHeavy Newsletter]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2506</guid> <description><![CDATA[In his latest book, What Would Google Do? Jeff Jarvis seems to have authored a gushing tribute to the search giant that has pledged to do no evil. He paints a very optimistic picture, and shows us over and over how Google has opened up industries, and how that same openness helps consumers like you [...]]]></description> <content:encoded><![CDATA[<div><p><a
href="http://www.iheavy.com/2012/01/27/what-wouldnt-google-do/what-google-do/" rel="attachment wp-att-2509"><img
class="alignleft size-full wp-image-2509" title="What Google Do" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2012/01/What-Google-Do.jpeg" alt="What Would Google Do" width="182" height="278" /></a>In his latest book, What Would Google Do? Jeff Jarvis seems to have authored a gushing tribute to the search giant that has pledged to do no evil. He paints a very optimistic picture, and shows us over and over how Google has opened up industries, and how that same openness helps consumers like you and I.</p><p>Jarvis, if you don't know him by name, has been a journalist for some time, but gained particular cred and notoriety when he blogged with the headline "<a
href="http://buzzmachine.com/archives/cat_dell.html" target="_blank">Dell lies. Dell Sucks</a>" after his horrible experiences with Dell computers and customer service.</p><p>While digging through Googly chapters, on Real Estate, Publishing, Entertainment, Shopping, Education and even Airlines, Jarvis serves up anecdotes on how a more open approach can help these industries adapt to a new business environment brought about by the Internet. He cites interesting examples like Gary Vaynerchuk, the creator of the hilarious and insanely popular <a
href="http://winelibrary.tv/">winelibrary.tv</a> show about wines, and now a public speaker on social media and brand building; and Brazilian author <a
href="http://www.nytimes.com/2011/09/27/books/paulo-coelho-discusses-aleph-his-new-novel.html?_r=1&amp;src=ISMR_HP_LO_MST_FB" target="_blank">Paulo Coelho pirating his own works</a>.</p><p>Taking the cue from some of these successes Jarvis goes on to propagate the idea that sharing and dishing out services for free is the way to make money. The irony that you have to buy his book for him to tell you that deserves a chuckle, and also raises the question of whether he himself buys all of that (pun inevitable). Indeed openness is great for consumers as most of us would agree. A level playing field increases competition, drives down prices for consumers. But it also drives down profits and margins.<span
id="more-2506"></span></p><h2>With Google, Jarvis loses teeth</h2><p>What this book lacked though was an honest assessment of the tremendous potential for abuse that Google has acquired through the course of its growth. We now see that manifesting in the current controversy of Google favoring Google+ posts in search results.</p><p>He quotes Google's Marissa Mayer as saying "Data is apolitical".  Luckily google folks are good at coming up with these great slogans.  They can hide behind them all the while they're muscling search objectivism out of, and ‘social queues’ into search.  I really wonder whether this may backfire on them, and not just because they don't publish all those 200 variables that impact search, but because their strength has always been their algorithms, and how they aren't biased.  How I can get search based on what's out there, and let me sift it.  The more they try to *HELP* me sift, especially without my knowing how they're helping, the more I become confused at the results, or worse, suspicious of them.</p><p>I might argue Google hasn't necessarily won by openness as Jarvis posits. Rather they've won by being first to understand the Internet, and so have been first to market in so many areas that are being heavily disrupted by the new technology.  It uses openness as a strategy against incumbents, but uses muscle and monopoly as businesses always have, in areas where it leads.</p><p>Aaron Wall put it brilliantly in his <a
href="http://www.seobook.com/transparency" target="_blank">SEOBook blog</a>:  " <a
href="http://cdixon.org/2009/12/30/whats-strategic-for-google/">Where Google is losing you can count on them pushing the open label in order to build momentum</a> and destroy the asymmetrical information advantages of existing market leaders. But where Google leads non-transparency is the norm." Or to borrow a quote from a random comment: "Google is like a ‘friend’ who buys, lets you drink for free but then slips a 5 dollar bill out of your pocket when you aren’t looking."</p><p>I really felt like Jarvis was too much of a Google fanboy. His confidence in Google is pervasive throughout the book, something one would find uncharacteristic of a journalist. Why didn't he shine the Dell-Sucks laser beam light onto Google? I kept searching for that kind of incisive commentary but I couldn’t find it.</p><p>It is for this reason that I prefer <a
href="http://www.iheavy.com/2009/12/01/open-insights-62-context/" target="_blank">Googled, The End of the World as We Know It</a> by Ken Auletta. Auletta offers a more balanced and critical analysis and I don’t think that makes him look like a grandpa who’s afraid of new technology. Auletta’s work and prose just came across as more thoughtful and mature. and while both books have already suffered obsolesence from the day they were released, I know which one I can turn to for a better understanding of Google.</p><p>Read Jarvis like you would any article or book -- with a healthy dose of skepticism. And perhaps also keep this question in your mind: "What Wouldn't Google Do?"</p></div>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/27/what-wouldnt-google-do/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The Problem with Startup Bootcamps</title><link>http://www.iheavy.com/2012/01/18/the-problem-with-startup-bootcamps/</link> <comments>http://www.iheavy.com/2012/01/18/the-problem-with-startup-bootcamps/#comments</comments> <pubDate>Thu, 19 Jan 2012 04:02:51 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[startup]]></category> <category><![CDATA[startup advice]]></category> <category><![CDATA[startups]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2418</guid> <description><![CDATA[&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Scanning Crains NY Business recently, I saw an article on 'starting up' in 54 hours.  It's the brainchild of Marc Nager, Clint Nelsen and Franck Nouyrigat called Startup Weekend. Startup bootcamps seem to be the current extra-curricular activity of choice these days. Wharton is also getting in on [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.iheavy.com/2012/01/18/the-problem-with-startup-bootcamps/startup/" rel="attachment wp-att-2444"><img
class="alignleft size-full wp-image-2444" title="startup" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2012/01/startup.png" alt="" width="630" height="248" /></a></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Scanning Crains NY Business recently, I saw an article on 'starting up' in 54 hours.  It's the brainchild of Marc Nager, Clint Nelsen and Franck Nouyrigat called <a
href="http://startupweekend.org/" target="_blank">Startup Weekend</a>. Startup bootcamps seem to be the current extra-curricular activity of choice these days. Wharton is also getting in on it with their <a
href="http://venturebeat.com/2012/01/06/wharton-innovation-tournament/" target="_blank">Innovation Tournament</a>. Then there is the <a
href="http://www.businessweek.com/magazine/the-48hour-startup-09152011.html" target="_blank">48 Hour Startup</a>  and of course let's not forget the <a
href="http://3daystartup.org/" target="_blank">3 Day Startup</a>.</p><p>So what's my beef?  Truth be told I admire the ambition, the optimism, and the openness of these efforts.  And for sure these bootstrapping marathons do introduce entrepreneurs to future colleagues and partners, get them asking the right questions about financing, customers, revenue, competition and so forth.</p><p>My problem with these events is they frame startups as something you *can* do quickly. As if it were a Lego set or pop-up book that gives instant results and gratification. Sure startups are 21st century tech-driven business that provide innovative products in a very short development cycle but a lot of the day-to-day running of the business are still very mundane 20th century sensibilities; not unlike running a mom and pop store, a laundromat, deli or sandwich shop.<span
id="more-2418"></span></p><p><strong>No shortcuts</strong></p><p>You have to learn how to ask your customers what they want, learn how to sell them something they need, and be prepared to be surprised in the process. I've worked with many startups and have seen often how many have had to throw out an idea that didn't work and re-strategize. This takes courage an conviction.</p><p>One startup client was building iPhone apps for event management. After testing it on the market it turned out nobody really wanted an event management app.  But there was a market for professional and consulting services that can help build technology platforms, and architect the right solutions.  So they shifted gears and moved into that space.  They've grown tenfold since.</p><p>Another startup client's change in direction was so radical that it even warranted a name change. Buzzd, started out as a city guide for consumers based on aggregating Facebook, FourSquare and Gowalla check-ins. Last October <a
href="http://paidcontent.org/article/419-localresponse-raises-5-million-for-check-in-ads/" target="_blank">Buzzd became LocalResponse</a> and turned its focus onto advertisers instead.</p><p>This kind of honest self-analysis and business acumen so crucial for survival can only be acquired through experience. For example managing overheads or being aware that profitability does not always mean solvency. And then there are decision taking and setting priorities. Repair that wall or build a new display case? Use that money on product and inventory?  Attract customers to your store?  What's the right price point to settle on?  How do you avoid legal entanglements, and who are some of the predators to watch out for?</p><p>Startup crash courses are probably a great way for  aspiring entrepreneurs to network, and for VCs to spot the next killer investment. But at the same time, it feels suspiciously like a diet fad that promises to change 30+ years of behavior overnight, and get you looking like a bikini model in no time.  Fitness and health are lifestyle choices, as is building a successful business. As much as we like to think otherwise, there are simply no shortcuts.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/18/the-problem-with-startup-bootcamps/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Scalability Rules for managers and startups</title><link>http://www.iheavy.com/2012/01/10/scalability-rules-managers-startups/</link> <comments>http://www.iheavy.com/2012/01/10/scalability-rules-managers-startups/#comments</comments> <pubDate>Tue, 10 Jan 2012 16:43:42 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[Business]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[devops]]></category> <category><![CDATA[scalability]]></category> <category><![CDATA[scalability rules]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2375</guid> <description><![CDATA[Abbott and Fisher’s previous book, The Art of Scalability received good reviews for shifting the way we think about scalability from merely splitting databases and adding servers, to include the human factors that weigh heavily on its success. Together with the authors’ distinguished pedigree (PayPal, Amazon, and eBay between them), I picked up a copy [...]]]></description> <content:encoded><![CDATA[<div><p><a
href="http://www.iheavy.com/2012/01/10/scalability-rules-managers-startups/scalabilityrules/" rel="attachment wp-att-2381"><img
class="alignleft size-full wp-image-2381" title="scalabilityrules" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2012/01/scalabilityrules.png" alt="Scalability Rules" width="185" height="275" /></a>Abbott and Fisher’s previous book, <em>The Art of Scalability</em> received good reviews for shifting the way we think about scalability from merely splitting databases and adding servers, to include the human factors that weigh heavily on its success. Together with the authors’ distinguished pedigree (PayPal, Amazon, and eBay between them), I picked up a copy of their second book, <em><a
href="http://scalabilityrules.com/">Scalability Rules - 50 Principles for Scaling Web Sites</a> </em>without a second thought.</p><p>If <em>Art</em> was about laying a strong foundation for a scalable organization then <em>Rules </em>is the reference point for when you actually tackle the growth challenges. It acts as a reminder when you come to a crossroad of decision-taking, to keep with the principles of scaling. Each guiding principle is clearly explained and illustrated with examples. It also prescribes how and when to apply the rules.<span
id="more-2375"></span></p><p>For example I found many rules focused around people and processes such as <strong>#27 "Learn Aggressively"</strong> and <strong>#30 "Discuss and Learn From Failures"</strong>.  Then there were many rules centered on application design and developement such as <strong>#17 "Don't Check Your Work"</strong> and <strong>#35 "Don't Select Everything"</strong>.  I found myself agreeing with rules for architectural decisions directed to the operations team such as <strong>#11 "Use Commodity Systems"</strong> and <strong>#12 "Scale Out Your Datacenters"</strong>.</p><p>With my tendency to categorize things, (or in this case recategorize the chapters) I tried to fit the rules into their respective pigeon holes, although I did struggle with that. While they didn't all fit neatly, the groupings I could come up with were:</p><ul><li>Application Design Rules</li><li>Architecture Design &amp; Implementation Rules</li><li>People and Process Rules</li><li>Network Related Rules</li><li>Caching Rules</li><li>Availability Rules</li></ul></div><h3>Who needs Scalability Rules?</h3><p>Looking at the fifty rules divided up this way, summarizing the book becomes easier  but still a bit muddled.  For example I might ask the question, Who exactly is the book’s audience?  Is it application developers?  Certainly, there is a large section of rules designed for them.  Or maybe it's for the operations team, offering advice on how to design systems, networks and data centers, and advice for optimizing and redirecting development efforts?  Or maybe it is a book for managers, as the people and process related rules certainly are targeted towards those folks.  But if that's the case then much of the book is probably too technical for such an audience.</p><p>Ok, so let's step back, when or why might you have all these crisscrossing themes and roles?  The answer is that like me, the authors are consultants and in the course of engagements a consultant is often asked to wear many different hats.  So sometimes we're looking at scalability in regards to operational decisions, while at other times we're looking at scalability through the lens of application design decisions. And still other times scalability can best be achieved by focusing on people and processes. I’d add that not only is this a handy reference for consultants, but for any bootstrapping startup as well. Coders these day are expected to be at least a little bit knowledgeable with web operations, and vice-versa.  Especially pushing towards the guiding principles of <a
title="How to hire a developer that doesn’t suck" href="http://www.iheavy.com/2011/11/25/how-to-hire-a-developer-that-doesnt-suck/">devops</a>, this book can help engineers take a critical look at their roles within an organization.</p><p>Looked at in that light you can really see how this book is truly an opus of knowledge on scaling web sites.  Although the organization is sometimes confusing, it will surely bring insights and enlightenment to all of your teams, whether operations, devs, managers, or business units.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/10/scalability-rules-managers-startups/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How about an easier tip jar?</title><link>http://www.iheavy.com/2012/01/01/business-lessons-nyc-takeout/</link> <comments>http://www.iheavy.com/2012/01/01/business-lessons-nyc-takeout/#comments</comments> <pubDate>Mon, 02 Jan 2012 02:14:47 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[business decisions]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[small business]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2308</guid> <description><![CDATA[Walking around New York you find yourself stopping at plenty of different places to grab some takeout for lunch. There are Vietnamese sandwich places, pizza shops, noodle bars, taco stands, juice bars and of course your daily coffee shop. You'll find an endless variety. As is customary in New York, even for takeout there is [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-2307" title="Tip Jar by Eric Heath" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/12/tip-jar.jpg" alt="Tip Jar " width="240" height="160" />Walking around New York you find yourself stopping at plenty of different places to grab some takeout for lunch. There are Vietnamese sandwich places, pizza shops, noodle bars, taco stands, juice bars and of course your daily coffee shop. You'll find an endless variety.</p><p>As is customary in New York, even for takeout there is usually a tip jar at the checkout. Many of them have a large bowl, or glass jar in which you can throw your change as tips, or if you really love the place and service, a couple of dollars.</p><h3></h3><p>Of late I've noticed a few have placed those small plastic boxes with a tiny slot on the top. You try to put some change in the slot, and half of the money falls on the floor. It's as frustrating as threading a needle while suffering from astigmatic vision. Now when I come to a place that has this plastic box, I don't even bother tipping. I get a headache thinking about my change falling all over the floor. All I keep thinking is, why make it so difficult to tip?</p><p><span
id="more-2308"></span></p><h3>Lessons from tipping</h3><p>There're business lessons here to be sure. The most obvious being, when working with clients, make it easy for them to pay you. Don't ask them to jump through hoops to settle a bill. That goes just as well for complicated costs and itemization. Keep your invoices as simple as possible, so it's clear later on what it covers; the amount and the period. Do they like to pay by ACH or Wire, make that easy as well. Would they rather pay by Paypal? Perhaps have a carrier pigeon with a check? No problem!</p><p>This lesson might also be applied to add-on features and services. In many cases a client may require additional time or service from you. Does this involve a lot of approvals or details to be hashed over? Or is it already covered in your base contract so you both know what qualifies and how it will be billed? If you are in the design business, what's the cost of an additional design version or proof? Web operations, what's the cost of adding in another on-site day or weekend block of time?</p><p>We may not realize it but sometimes we fumble in the process of acquiring new business too. Recently I was looking to hire a web developer for a website facelift project. I liked the work of one of the applicants and tried to arrange for a quick chat over Skype. To my surprise they said they couldn’t get on Skype because they didn’t have an account. Granted they did offer to call me on my mobile but I’d also wanted to set up a three-way conference call. As a prospective client, I was amused at having to make the suggestion that they register for Skype in order to arrange the call. Someone more on the ball would’ve just said OK, and sign up for Skype right away.</p><p>Ultimately the lesson is to think in your customers’ shoes make it easy for your client to reward you when they're happy with your service, and want to buy more of what you are selling.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/01/business-lessons-nyc-takeout/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Review: Here Comes Everybody by Clay Shirky</title><link>http://www.iheavy.com/2012/01/01/review-here-comes-everybody-clay-shirky/</link> <comments>http://www.iheavy.com/2012/01/01/review-here-comes-everybody-clay-shirky/#comments</comments> <pubDate>Mon, 02 Jan 2012 02:09:27 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[internet]]></category> <category><![CDATA[social media]]></category> <category><![CDATA[web2.0]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2330</guid> <description><![CDATA[Clay Shirky tells a great story. Here Comes Everybody begins with a case of a lost phone in a taxi cab, and the extraordinary turn of events that led to the owner retrieving it. From photos posted online, to NYPD who were uninterested in following up, to taking it all online. Through that online publicity, the [...]]]></description> <content:encoded><![CDATA[<div><p><img
class="alignleft size-full wp-image-2359" title="HereComesEverybodyCover" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2012/01/HereComesEverybodyCover.jpg" alt="Here Comes Everybody" width="160" height="244" /><a
href="http://www.shirky.com/">Clay Shirky</a> tells a great story. <em>Here Comes Everybody </em>begins with a case of a lost phone in a taxi cab, and the extraordinary turn of events that led to the owner retrieving it. From photos posted online, to NYPD who were uninterested in following up, to taking it all online. Through that online publicity, the story got picked up by the NY Times and CNN, which put pressure on the police to track down the taxi.  It's a great example that illustrates the nuances, both good and bad, powerful and persistent that the Internet can unleash.</p><p>Throughout the book he weaves stories about the network effect, friends and friends of friends, and how that impacts information, organization, and the spread of ideas. Citing examples such as the SCO vs Linux court case and Groklaw, flash mobs and political organization, Shirky notes how all these events were influenced and facilitated by the Internet.<span
id="more-2330"></span></p><p>Mobilising people for collective action is that much quicker, effective, and less costly, with the Internet. Shirky examines how this could have the potential to topple dictatorships, pit amateurs against experts, and even the odds for everyone. While this may all sound too familiar (wasn’t it the same with the telegraph, the printing press, etc?) Shirky makes some intelligent and astute observations about changes in the media with the case of Wikipedia. To him the online, editable encyclopedia is not just a modern substitute for Encyclopedia Britannica, it is a whole new process of developing an encyclopedia.</p><p>Shirky tries to make his analyses accessible with clear prose and strong examples. Readers who are more interested in the how-tos rather than the what-haves of social media and web 2.0, may find the analysis overly academic. That said, Shirky’s book should be required reading for any novice wanting to appreciate the astonishing impact the Internet has had, and will have on our understanding of the world.</p></div>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2012/01/01/review-here-comes-everybody-clay-shirky/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The Mythical MySQL DBA</title><link>http://www.iheavy.com/2011/12/19/mythical-mysql-dba/</link> <comments>http://www.iheavy.com/2011/12/19/mythical-mysql-dba/#comments</comments> <pubDate>Mon, 19 Dec 2011 18:58:46 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Database Management]]></category> <category><![CDATA[Disaster Recovery]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[Web Operations]]></category> <category><![CDATA[human resource]]></category> <category><![CDATA[jobs]]></category> <category><![CDATA[mysql. mysql dba]]></category> <category><![CDATA[startup jobs]]></category> <category><![CDATA[startups]]></category> <category><![CDATA[talent]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2197</guid> <description><![CDATA[I’ve  been getting more than my fair share of calls from recruiters of late. Even in this depressed economic climate where jobs are rarer than a cab at rush-hour, it’s heartening to know that tech engineers are in great demand. And it’s even more heartening to think that demand for MySQL DBAs has never been [...]]]></description> <content:encoded><![CDATA[<p>I’ve  been getting more than my fair share of calls from recruiters of late. Even in this depressed economic climate where jobs are rarer than a cab at rush-hour, it’s heartening to know that tech engineers are in great demand. And it’s even more heartening to think that demand for MySQL DBAs has never been better.</p><p>My reckoning was confirmed by a <a
href="http://www.businessweek.com/magazine/retailers-are-losing-the-software-talent-wars-12012011.html">Bloomberg news report</a> about stalwart retailers suffering from a dearth of talented engineers. Bloomberg cited Target’s outage-prone e-commerce site as a symptom of, among other things the market’s shortage. One of the challenges old-timers like Target face is having to compete with Silicon Valley startups as a fulfilling and ultimately, financially rewarding place to work.<span
id="more-2197"></span></p><p>From the outside looking in, it's hard to say for sure why<a
href="http://www.target.com/" target="_blank"> Target.com</a> keeps crashing, but I can speculate on a few possible scenarios.</p><p>For one, the handoff from <a
href="http://amazon.com/" target="_blank">Amazon</a> may have been less than smooth, lacking proper documentation and so forth. It could also be that the handoff went to less experienced DBAs or perhaps, those more versed in the legacy technologies of Oracle and much less in the free-wheeling open-source ones like MySQL. Other reasons could be failures in capacity planning, incomplete or incorrect systems integration, or simply misconfigurations in the load balancer, replication of database and memory settings.</p><p>If any of these scenarios had been true for Target, a sound experienced DBA and/or operations team attuned to scaling and disaster scenarios should have been able to anticipate these outages and mitigate their impact.  That is, if there were enough talented and experienced ones to go around.</p><p>From our vantage point, we think there’s room for more individuals to specialize in this area. What we do see are developers or Unix system administrators that include MySQL experience in their bag of skills but few who can actually manage a database eco-system.  Even in the Oracle space where there are a lot of career DBAs, many of them have moved over from the business side, so they lack certain computer science and engineering fundamentals and a pure science foundation.</p><p>Much of this boils down to <a
href="http://www.heri.ucla.edu/nih/downloads/2010%20-%20Hurtado,%20Eagan,%20Chang%20-%20Degrees%20of%20Success.pdf" target="_blank">universities not churning out enough engineers</a>.  And the ones that do graduate are drawn to Startups; the coolest, smartest firms like Facebook and Google. If young college grads are gunning for the best job they can find, they're likely to shoot for the sexiest most cutting edge technologies.  In today's market that means programming jobs in Ruby on Rails or perhaps Node.js. Few would aspire to be in WebOps.</p><div
id="attachment_2199" class="wp-caption alignleft" style="width: 349px"><a
href="http://www.iheavy.com/2011/12/19/mythical-mysql-dba/dustin/" rel="attachment wp-att-2199"><img
class="size-full wp-image-2199" title="Dustin" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/12/Dustin.png" alt="Dustin Moskovitz" width="339" height="224" /></a><p
class="wp-caption-text">Not too sexy for Ops</p></div><p>If I were to really go out on a limb I might ask if you've ever heard of <a
href="http://en.wikipedia.org/wiki/Dustin_Moskovitz" target="_blank">Dustin Moskovitz</a>?  No?  Oh he's "the ops guy" from the original Facebook team and, with a net worth estimated at $3.5bln, the youngest billionaire in the world.  Did I imply that operations and database administration wasn't sexy?</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/12/19/mythical-mysql-dba/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>What Ops doesn&#8217;t tell you about your MySQL Database</title><link>http://www.iheavy.com/2011/12/16/what-ops-doesnt-tell-mysql-database/</link> <comments>http://www.iheavy.com/2011/12/16/what-ops-doesnt-tell-mysql-database/#comments</comments> <pubDate>Fri, 16 Dec 2011 20:36:56 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Database Management]]></category> <category><![CDATA[Database Operations]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2148</guid> <description><![CDATA[MySQL is a very scalable platform which has proven robust even in the most dense and complex data environments. MySQL's indispensable replication function is 'sold' as being fail-safe so you have little to sweat about as long as your backups are running regularly. But what the ops guys aren't telling you is MySQL performs replication [...]]]></description> <content:encoded><![CDATA[<p>MySQL is a very scalable platform which has proven robust even in the most dense and complex data environments. MySQL's indispensable replication function is 'sold' as being fail-safe so you have little to sweat about as long as your backups are running regularly. But what the ops guys aren't telling you is MySQL performs replication with tiny margins of error that could cause big problems in times of disaster.<span
id="more-2148"></span></p><div
id="attachment_2151" class="wp-caption alignleft" style="width: 325px"><a
href="http://www.iheavy.com/?attachment_id=2151" rel="attachment wp-att-2151"><img
class="size-full wp-image-2151  " title="duplicates" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/12/duplicates1.jpg" alt="Replication database backup" width="315" height="237" /></a><p
class="wp-caption-text">Same-same but different?</p></div><p><strong><br
/> The Scenario</strong><br
/> Imagine the scene, you use replication to backup your data. Your secondary database is your peace of mind. It's the always-on clone of your crown jewels. You even perform backups off of it so you don't impact your live website. Your backups run without errors. Your slave database runs without errors.<br
/> Then the dreaded day comes when your primary database fails. You instruct your team to switchover your application to point to your live backup database. The site comes online again. But all is not right. You notice subtle differences and your team begins to question how deep the data divide could be.</p><p><strong>The Problem</strong><br
/> Although MySQL replication is fairly easy to setup, and even to keep running without error, you may have unseen problems. MySQL's core technology to replicate data between master and slave is primarily statement based. Various scenarios can cause what in other database platforms you might call database corruption, that is silent drifting of data from what tables and rows contain on the master. It is no fault of your own, or perhaps one might argue even of your operations team. It is a fundamental flaw in how MySQL performs replication.</p><p><strong>The Solution</strong><br
/> Fortunately there is a solution. Checksums, the wonderful computational tool for comparing things can be put to work nicely to compare database. The <a
href="https://launchpad.net/percona-toolkit" target="_blank">Percona Toolkit</a> (formerly maatkit) includes just such a utility for use with MySQL. It can be used to check the integrity of your slave databases.<br
/> If you've never performed such a check, you should do so ASAP. If your database has been running for months at a stretch, chances are there could be differences lying undiscovered between the two systems.</p><p>Depending on the volume changing in your database, you can continue to use this tool periodically to confirm that all is consistent. If integrity checks fail, there is another tool in <a
href="www.maatkit.org" target="_blank">Maatkit</a> to syncronize differences, and bring everything back to order.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/12/16/what-ops-doesnt-tell-mysql-database/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Great Interactive Map of NYC Startups</title><link>http://www.iheavy.com/2011/11/28/great-interactive-map-of-nyc-startups/</link> <comments>http://www.iheavy.com/2011/11/28/great-interactive-map-of-nyc-startups/#comments</comments> <pubDate>Mon, 28 Nov 2011 18:51:45 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[nycstartups]]></category> <category><![CDATA[techstartups]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2074</guid> <description><![CDATA[Business Insider posted this spectacular interactive google map of our amazing Startup Ecosystem here in New York City.  Wow! Check out the full list of NYC Startups in the original article. View NYC Startups in a larger map]]></description> <content:encoded><![CDATA[<p>Business Insider posted this spectacular interactive google map of our amazing Startup Ecosystem here in New York City.  Wow!</p><p>Check out the full list of NYC Startups in the <a
href="http://www.businessinsider.com/nyc-startup-map-2011-11&amp;utm_campaign=visibli&amp;utm_source=nyctech&amp;utm_medium=twitter" target="_blank">original article</a>.</p><p><iframe
src="http://maps.google.com/maps/ms?vpsrc=0&amp;ctz=300&amp;ie=UTF8&amp;hl=en&amp;oe=UTF8&amp;msa=0&amp;msid=215172461931797238423.0004ae04d898b3f6f909e&amp;t=m&amp;source=embed&amp;ll=40.727976,-73.994808&amp;spn=0.056605,0.037187&amp;output=embed" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="350"></iframe><br
/> <small>View <a
style="color: #0000ff; text-align: left;" href="http://maps.google.com/maps/ms?vpsrc=0&amp;ctz=300&amp;ie=UTF8&amp;hl=en&amp;oe=UTF8&amp;msa=0&amp;msid=215172461931797238423.0004ae04d898b3f6f909e&amp;t=m&amp;source=embed&amp;ll=40.727976,-73.994808&amp;spn=0.056605,0.037187">NYC Startups</a> in a larger map</small></p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/28/great-interactive-map-of-nyc-startups/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to hire a developer that doesn&#8217;t suck</title><link>http://www.iheavy.com/2011/11/25/how-to-hire-a-developer-that-doesnt-suck/</link> <comments>http://www.iheavy.com/2011/11/25/how-to-hire-a-developer-that-doesnt-suck/#comments</comments> <pubDate>Fri, 25 Nov 2011 19:14:56 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[Web Operations]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[devops]]></category> <category><![CDATA[hiring]]></category> <category><![CDATA[operations]]></category> <category><![CDATA[startups]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2026</guid> <description><![CDATA[First things first. This is not meant to be a beef against developers. But let’s not ignore the elephant in the living room that is the divide between brilliant code writers and the risk averse operations team. It is almost by default that developers are disruptive with their creative coding while the guys in operations, [...]]]></description> <content:encoded><![CDATA[<div
class="wp-caption alignright" style="width: 278px"><a
href="http://imgs.xkcd.com/comics/good_code.png"><img
class=" " title="xkcd_goodcode" src="http://imgs.xkcd.com/comics/good_code.png" alt="xkcd_goodcode" width="268" height="410" /></a><p
class="wp-caption-text">Strip by Randall Munroe; xkcd.com</p></div><p>First things first. This is not meant to be a beef against developers. But let’s not ignore the elephant in the living room that is the divide between brilliant code writers and the risk averse operations team.</p><p>It is almost by default that developers are disruptive with their creative coding while the guys in operations, those who deploy the code, constantly cross their fingers in the hope that application changes won’t tilt the machine. And when you’re woken up at 4am to deal with an outage or your sluggish site is costing millions in losses, the blame game and finger-pointing starts.</p><p>If you manage a startup you may be faced with this problem all the time. You know your business, you know what you're trying to build but how do you find people who can help you build and execute your ideas with minimal risk?</p><p>Ideally, you want people who can bridge the mentality divide between the programmers eager to see feature changes, the business units pushing for them, and the operations team resistant to changes for the sake of stability.<span
id="more-2026"></span></p><h3>DevOps - Why can’t we all live together?</h3><p>The DevOps movement is an attempt to bring all these folks together. For instance by providing insight to developers about the implications of their work on performance and availability, they can better balance the onslaught of feature demands from users with the business’ need for up-time.</p><p>Operations teams can work to expose operational data to the development teams.  Metrics collection and analytics aren’t just for the business units anymore. Employing tools like Cacti, OpenNMS or Ganglia allow you to communicate with developers and other business units alike about up-time, and the impact of deployments on site availability, and ultimately the bottom-line.</p><p>Above all, business goals and customer needs should underscore everything the engineering team is doing. Bringing all three to the table makes for a more cohesive approach that will carry everyone forward.</p><h3>How to spot a DevOps person - Finding the sweet spot</h3><p>The DevOps person is someone with the right combination of skill, knowledge and experience that places him or her in the sweet spot where quality assurance, programming skills and operations overlap.<br
/> There are also a few distinguishing characteristics that will help identify such an ideal candidate.</p><h4>Look for good writers and communicators</h4><p>Imagine the beads of sweat forming when a developer tells you: “We’ve made the changes. Nothing is broken yet.”<br
/> This is like stepping on glass because it implies something will actually break. The point is savvy developers should be aware that the majority of people do not think along the same lines as they do.<br
/> Assuming your candidate has all the required technical skills, a programmer with writing skills tends to be better at articulating ideas and methods coherently. He or she would also be less resistant to documentation and be able to step back somewhat from the itty-bitty details. Communication, afterall is at the core of the DevOps culture where different sides attempt to understand each other.</p><h4>Pick good listeners</h4><p>Even rarer than good writers are good listeners. Being able to hear what someone else is saying, and reiterate it in their own terms is a key important quality. In our example, the good listener would probably have translated ‘nothing is broken yet’ into “the app is running smoothly. We didn’t encounter any interruptions but we’ll keep watch on things.”</p><h4>Lean towards pragmatists and avoid the fanatics</h4><p>We all want people who are passionate about something but when that passion morphs into fanaticism it can be unpleasant. Fanaticism suggests a lower propensity to compromise. Such characters are very difficult to negotiate with. Analogously in tech, we see people latch on to a certain standard with unquestioning loyalty that's bafflingly irrational. Someone who has had their hand in many different technologies is more likely to be technology agnostic, or rather, pragmatic. They'll also have a broader perspective, and are able to anticipate how those technologies will play together.  Furthermore a good sense of where things will run smoothly and where there will be friction is vital.</p><h4>Pay attention to extra-curricular activities</h4><p>Look at technology interests, areas of study, or even outside interests. Does the person have varying interests and can converse about different topics?  Do they tell stories, and make analogies from other disciplines to make a point?  Do they communicate in jargon-free language you can understand?</p><h4>Sniff out those hungry for success</h4><p>As with any role, finding someone who is passionate and driven is important.  Are they on-time for appointments? Did they email you the information you requested? Are they prepared and communicative?  Are they eager to get started?</p><p>Hiring usually focuses on skills and very well-crafted resumés but why do you still find some duds now and then? By emphasizing personality, work ethics, and the ability to work with others, you can sift through the deluge of candidates and separate the wheat from the chaff for qualities that will surely serve your business better in the long run.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/25/how-to-hire-a-developer-that-doesnt-suck/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Book review &#8211; Trust Agents by Chris Brogan &amp; Julien Smith</title><link>http://www.iheavy.com/2011/11/25/book-review-trust-agents-by-chris-brogan-julien-smith/</link> <comments>http://www.iheavy.com/2011/11/25/book-review-trust-agents-by-chris-brogan-julien-smith/#comments</comments> <pubDate>Fri, 25 Nov 2011 19:00:49 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[social media]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2049</guid> <description><![CDATA[Stumbling onto 800-CEO-Read, and their top books feature, I found Brogan and Smith's work.  Brogan's blog intrigued me enough so I walked down to the Strand here in NYC to pick up a copy. What I found was an excellent introduction to the nebulous world of social media marketing, where you find all sorts of [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-2053" title="trust-agents-cover-198x300" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/11/trust-agents-cover-198x300.jpg" alt="Trust Agents " width="160" height="242" />Stumbling onto 800-CEO-Read, and their top books feature, I found Brogan and Smith's work.  <a
href="http://www.chrisbrogan.com/" target="_blank">Brogan's blog</a> intrigued me enough so I walked down to the Strand here in NYC to pick up a copy.</p><p>What I found was an excellent introduction to the nebulous world of social media marketing, where you find all sorts of advice and suggestions on how to engage your target audience.  If you're feeling like an ignoramus on matters of social media, Trust Agents is a great place to start and will give you ideas of how to 'humanize' your digital connections.</p><p>The authors illustrate the Trust Agent idea with Comcast Cares for example and how they engaged customers, and what worked so well for them.  Or Gary Vaynerchuk and his game changing Wine Library TV about wine.  He also emphasizes that building relationships online is a lot like building relationships in the real world a la Keith Ferrazzi of Never Eat Alone fame.  Engage in meaningful ways with people, don't market to them. Share valuable tidbits, and the community will reward you tenfold.</p><p>A 'trust agent'  lives by six principles:</p><ol><li>Make your own game - be willing to take risks and break from the crowd</li><li>Be 'One of Us' - be part of the community by doing your bit and contributing to it</li><li>The Archimedes Effect - leverage your own strengths wisely</li><li>Agent Zero - position yourself at the center by connecting people and groups</li><li>Human Artist - learn how to work with people; help others and be conscientious of etiquette</li><li>Build an Army - you need allies to help spread your ideas</li></ol><p>The book is excellent.  Put it on your holiday list.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/25/book-review-trust-agents-by-chris-brogan-julien-smith/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Seattle Web Tech Meetup Nov 21</title><link>http://www.iheavy.com/2011/11/17/seattle-web-tech-bi-weekly-meetup-nov-21/</link> <comments>http://www.iheavy.com/2011/11/17/seattle-web-tech-bi-weekly-meetup-nov-21/#comments</comments> <pubDate>Thu, 17 Nov 2011 17:29:04 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[events]]></category> <category><![CDATA[meetup]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=2003</guid> <description><![CDATA[I'll be one of two speakers at the next Seattle Web Technology Bi-Weekly Meet up on Nov 21 at the Citrus Lounge. They've sexed it up a little by calling it a face-off between Windows Azure and Amazon EC2  (no prizes for guessing which side I represent) but really it's going to be a primer [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.iheavy.com/2011/11/17/seattle-web-tech-bi-weekly-meetup-nov-21/global_73189482/" rel="attachment wp-att-2004"><img
class="alignleft size-full wp-image-2004" title="global_73189482" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/11/global_73189482.jpeg" alt="" width="180" height="180" /></a>I'll be one of two speakers at the next <a
href="http://www.meetup.com/The-Seattle-Web-Technology-Bi-Weekly-Meetup-Group/events/38757512/">Seattle Web Technology Bi-Weekly Meet up</a> on Nov 21 at the Citrus Lounge.</p><p>They've sexed it up a little by calling it a face-off between Windows Azure and Amazon EC2  (no prizes for guessing which side I represent) but really it's going to be a primer on the Platform-as-a service and Infrastructure-as-a-service models. I expect some lively discussions during Q&amp;A.</p><p>I'll be covering questions such as what cloud computing is, what EC2 provides, what is datacenter automation and the differences between a standard datacenter liks Rackspace and Amazon EC2. Meanwhile you folks who've  large investments in say EXCHANGE servers will be able to pose questions to Marcus Wendt of Composite C1.</p><p>It's Amex sponsored and you'll get a ticket good for a beer or a Citrus signature drink with which you can get cozy and warm up by the fireplace while Marcus and I are beamed through a flat screen with our respective presentations. If you're in Seattle drop in. I hope to see you or at least, hear you there.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/17/seattle-web-tech-bi-weekly-meetup-nov-21/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book Review &#8211; Effective MySQL</title><link>http://www.iheavy.com/2011/11/03/book-review-effective-mysql-optimizing-sql/</link> <comments>http://www.iheavy.com/2011/11/03/book-review-effective-mysql-optimizing-sql/#comments</comments> <pubDate>Thu, 03 Nov 2011 21:00:22 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[Database Management]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[explain plan]]></category> <category><![CDATA[indexing]]></category> <category><![CDATA[mk-query-digest]]></category> <category><![CDATA[mysql tuning]]></category> <category><![CDATA[oracle press]]></category> <category><![CDATA[query profiling]]></category> <category><![CDATA[sql query tuning]]></category> <category><![CDATA[sql statements]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1924</guid> <description><![CDATA[Effective MySQL: Optimizing SQL Statements by Ronald Bradford No Nonsense, Readable, Practical, and Compact I like that this book is small; 150 pages means you can carry it easily.  It's also very no nonsense.  It does not dig too deeply into theory unless it directly relates to your day-to-day needs.  And those needs probably cluster [...]]]></description> <content:encoded><![CDATA[<h1>Effective MySQL: Optimizing SQL Statements</h1><h1>by Ronald Bradford</h1><p><strong>No Nonsense, Readable, Practical, and Compact</strong></p><p><img
class="alignleft size-full wp-image-1931" style="margin: 10px;" title="Effective MySQL" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/11/Effective-MySQL.jpg" alt="Effective MySQL" width="165" height="250" />I like that this book is small; 150 pages means you can carry it easily.  It's also very no nonsense.  It does not dig too deeply into theory unless it directly relates to your day-to-day needs.  And those needs probably cluster heavily around optimizing SQL queries, as those pesky developers are always breaking things <img
src='http://d1wcmuriwzc7sn.cloudfront.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Jokes aside, this new book out on Oracle Press is a very readable volume. Bradford has drawn directly from real-world experience to give you the right bite size morsels you need in your day-to-day MySQL activities.<span
id="more-1924"></span></p><h2><strong>Highlights</strong></h2><p>Chapter one, The Five Minute DBA gives you the basic methodology if you don't already know it.  Enable the slow query log, analyze it, and use the explain facility.  Then index as appropriate, or eliminate queries if you can.</p><p>Chapter two digs a little deeper into the basics, introducing explain extended, table statistics and storage engines.  You'll also learn how to use show session &amp; global status, as well as session &amp; global variables.  You'll also have your first look at MySQL's data dictionary - INFORMATION_SCHEMA.</p><p>Chapter three is where it starts to get meaty.  You probably know that MySQL has b-tree indexes, but did you know that it has b+tree indexes, or hash indexes?</p><p>Chapter four digs into indexes further with single &amp; multi-column indexes using them for sorting and joining.  You'll also find out about covering indexes which are multi-column matching the where clause, but also including columns needed in the SELECT predicate.  Do you have duplicate or unused indexes?  You'll learn why they matter to performance and how to eliminate them with tools like mk-duplicate-key-checker.</p><p>Chapter five continues along the same lines, with more coverage of indexes.  Learn to identify when you are using a covering index, fulfilling the entire query by only accessing the index.  You'll also learn about partial indexes, how they can reduce the size of index storage and retrieval while still getting your data for you.</p><p>Chapter six covers configuring the server itself, hitting on the system variables such as the innodb buffer pool (innodb_buffer_pool_size) and key buffer (key_buffer_size) as well as the query cache.  You'll also learn how to set the four main session memory settings - sort buffer (sort_buffer_size) and join buffer ( join_buffer_size) as well as the lesser known read buffers (read_buffer_size and read_rnd_buffer_size).</p><p>Chapter seven is all about the process of tuning and optimizing MySQL.  Rolling all the previous sections into marching orders, and prescriptive advice, he takes you through step by step how to apply the principles.  You'll get an introduction to <a
title="Maatkit Tools" href="http://www.maatkit.org/">mk-query-digest</a> (though strangely without attribution to <a
href="http://www.xaprb.com/blog/">Baron Schwartz</a>), the great maatkit tool for query analysis and aggregation, as well as the microsecond precision patch, which allows your mysql shell client to display more exact timing data.  For the patch he links back to an article on his own site which <a
title="not found page for microsecond precision patch" href="http://effectivemysql.com/articles/microsecond-precision-patch">seems to be not found</a>.  The author of the <a
title="get high precision times with your stock mysql client shell" href="http://www.flamingspork.com/blog/2011/02/08/timing-queries-in-the-21st-century-with-ld_preload-and-sed/">high precision mysql timer patch</a> is <a
href="http://www.flamingspork.com/blog/">Stewart Smith</a>.</p><p>I personally got the most out of Chapter eight, full of self-described hidden performance tips.  From identifying unused or duplicate indexes, to replacing inefficient data types with better ones, why it's important to use NOT NULL where possible or how to store IP addresses efficiently, this chapter has a lot of goodies.  For those still struggling with SQL statement tuning, there are a few patterns that are described, offering advice on how to rewrite a subquery as an inner join,</p><h4><strong>What you might not know</strong></h4><ul><li>MySQL includes Oracle's index organized tables by a different name</li><li>Too many indexes can dramatically impact INSERT &amp; UPDATE performance</li><li>Many DDL operations can be done online - see <a
title="Schlomi Noach's great openark toolkit" href="http://code.openark.org/forge/openark-kit">oak-online-alter-table (Shlomi Noach)</a></li><li>Datatypes matter - use enum, int unsigned, timestamp &amp; not null where possible</li><li>Covering indexes are your friend, duplicate &amp; unused indexes are not!</li><li>A replication slave can have different storage engines or indexes from the master. These can support different uses - such as data warehousing or non-transactional requirements.</li><li>While <strong>a_string LIKE '%end of my sentence.'</strong> won't use an index, you can index reverse_string, then use <strong>reverse_string LIKE REVERSE '%end of my sentence.'</strong> and MySQL <em>will</em> use this index.  You've simulated an advanced Oracle feature, reverse key indexes!</li></ul><h2><strong>A few small gripes</strong></h2><p>If I were to add a few complaints it would be to say that some of the examples were rather simplistic.  In many cases tuning SQL is not as simple as just adding the right index.  For instance there was no good discussion of the dreaded "using temporary, using filesort" that we see a lot in MySQL explains when sorting has to be done, but will not fit in memory.  Or what about tmpdir=/dev/shm, how will that improve things?  What about UNION versus UNION ALL where appropriate.  Why does DISTINCT do a sort?</p><p>The book was also missing a discussion of triggers, stored procedures, when or if the query cache can cause problems and so forth.  Also the article link mentioned about chapter seven isn't the only missing link.  I followed links to <a
href="http://effectivemysql.com/book/optimizing-sql-statements/">optimizing sql  statements</a> and it seems to go to a generic holding page.  Also the main link <a
href="http://effectivemysql.com/book/">effectivemysql.com/book</a> leads to an outline of an as yet unreleased <a
href="http://www.amazon.com/Effective-Backup-Recovery-Osborne-ORACLE/dp/0071788573/ref=sr_1_1?ie=UTF8&amp;qid=1320343610&amp;sr=8-1">title on Backup and Recovery</a>.</p><h2><strong>All in all, well worth your money</strong></h2><p>However, other than these few gripes the book overall is a very welcome addition to the small family of MySQL books.  Get a copy quick before they're all gone!</p><p>&nbsp;</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/03/book-review-effective-mysql-optimizing-sql/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>5 Tips to Cache Websites and Boost Speed</title><link>http://www.iheavy.com/2011/11/01/5-tips-cache-websites-boost-speed/</link> <comments>http://www.iheavy.com/2011/11/01/5-tips-cache-websites-boost-speed/#comments</comments> <pubDate>Tue, 01 Nov 2011 19:00:49 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Scalability]]></category> <category><![CDATA[Website Basics]]></category> <category><![CDATA[caching]]></category> <category><![CDATA[cdn]]></category> <category><![CDATA[cloudfront]]></category> <category><![CDATA[memcache]]></category> <category><![CDATA[varnish]]></category> <category><![CDATA[w3 total cache]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1885</guid> <description><![CDATA[Often when we think about speeding up and scaling, we focus on the application layer itself.  We look at the webserver tier, and database tier, and optimize the most resource intensive pages. There's much more we can do to speed things up, if we only turn over the right stones.  Whether you're using WordPress or [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.iheavy.com/2011/11/01/5-tips-cache-websites-boost-speed/speedy-vs-roadrunner/" rel="attachment wp-att-1897"><img
class="alignleft size-full wp-image-1897" title="speedy vs roadrunner" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/11/speedy-vs-roadrunner.jpeg" alt="" width="244" height="204" /></a>Often when we think about speeding up and scaling, we focus on the application layer itself.  We look at the webserver tier, and database tier, and optimize the most resource intensive pages.</p><p>There's much more we can do to speed things up, if we only turn over the right stones.  Whether you're using WordPress or not, many of these principals can be applied.  However we'll use WordPress as our test case.</p><p><span
id="more-1885"></span></p><h2>Test Your Website speed</h2><p>There are web-based speed testing tools that will help with this step.  Take a look at <a
href="http://www.webpagetest.org/" target="_blank">Webpagetest</a> , <a
href="http://fpt.pingdom.com/" target="_blank">Pingdom</a> tools and Google's Chrome plugin Pagetest which integrates right into your browser.  If you're using firefox, take a look at <a
href="http://developer.yahoo.com/yslow/" target="_blank">YSlow</a> .</p><p>If you've already got the WordPress plugin W3 Total Cache installed, that also integrates with Google Speed Test through an API key.  That integrates right into your WordPress dashboard.</p><h2>1. Reduce objects</h2><p>The first thing you can do to improve page performance and response is to make the page simpler.  Fewer images, fewer posts, fewer plugins, fewer widgets and so forth all contribute to a speedier page.  Obviously you don't want to forfeit functionality, but if you are loading 20 posts, you might want to reduce them to five or ten.   If you are calling out to third party APIs to load badges, twitter counts or SKYPE buttons, consider each and its affect on webpage load times.</p><p>If you have access to the underlying HTML, your application should try to reduce the number of DOM objects that are created.  These are created as the HTML is parsed.  Simpler structure here means faster page load times.</p><h2>2. Compress objects</h2><p>Your page is full of objects.  Many of them such as images, can be compressed.  This saves server storage space, and is a smaller object to copy across the network to the end users browser.  The web page test will show you a list of objects that are good candidates for compression.</p><h2><strong>3. Employ page &amp; object caching</strong></h2><p>An object cache will store name/value pairs in memory for your application.  Essentially the webserver tier will cache data that it reads from the database to avoid additional round trips and network overhead.   For most of us, we'll want to get memcache installed in our webserver tier.</p><p>For a page cache, take a look at Varnish.  This can also be installed by package manager.  A page cache is like a tiny hyper efficient webserver.  It can sit on the webserver itself or on it's own server if you have many webservers in your environment.</p><p>Lastly if you have not already, grab the W3 Total Cache plugin for WordPress.  This plugin integrates directly with these two types of caches.  Simply click the Performance tab, select General Settings, and scroll to the object cache and varnish sections.</p><h2>4. Browser caching</h2><p>Browser caching is a tricky one.  You might think this is totally in the hands of the end user.  As it turns out, however the objects your webserver sends back to clients specifies various caching information in the HTTP headers.</p><p>Since we're encouraging you to test things yourself, fire up your command line terminal, and use "curl" to take a look at the headers of a file on your webserver.  Here's an example:</p><pre><span style="color: #333399;">$ curl -I http://www.iheavy.com/files/pros.gif</span></pre><pre><span style="color: #333399;">HTTP/1.1 200 OK</span></pre><pre><span style="color: #333399;">Date: Tue, 01 Nov 2011 04:58:55 GMT</span></pre><pre><span style="color: #333399;">Server: Apache/2.2.3 (CentOS)</span></pre><pre><span style="color: #333399;">Last-Modified: Wed, 24 Aug 2011 01:06:09 GMT</span></pre><pre><span style="color: #333399;">ETag: "1649b1fb-5562-4ab35eadfe240"</span></pre><pre><span style="color: #333399;">Accept-Ranges: bytes</span></pre><pre><span style="color: #333399;">Content-Length: 21858</span></pre><pre><span style="color: #333399;">Content-Type: image/gif</span></pre><p>&nbsp;</p><p>Now we'll go ahead and enable W3 Total Cache in wordpress, then rerun the same curl command again:</p><p>&nbsp;</p><pre><span style="color: #333399;">$ curl -I http://www.iheavy.com/files/pros.gif</span></pre><pre><span style="color: #333399;">HTTP/1.1 200 OK</span></pre><pre><span style="color: #333399;">Date: Tue, 01 Nov 2011 05:01:27 GMT</span></pre><pre><span style="color: #333399;">Server: Apache/2.2.3 (CentOS)</span></pre><pre><span style="color: #333399;">Last-Modified: Wed, 24 Aug 2011 01:06:09 GMT</span></pre><pre><span style="color: #333399;">ETag: "5562-4ab35eadfe240"</span></pre><pre><span style="color: #333399;">Accept-Ranges: bytes</span></pre><pre><span style="color: #333399;">Content-Length: 21858</span></pre><pre><span style="color: #333399;">Cache-Control: max-age=31536000, public, must-revalidate, proxy-revalidate</span></pre><pre><span style="color: #333399;">Expires: Wed, 31 Oct 2012 05:01:27 GMT</span></pre><pre><span style="color: #333399;">Vary: User-Agent</span></pre><pre><span style="color: #333399;">Pragma: public</span></pre><pre><span style="color: #333399;">X-Powered-By: W3 Total Cache/0.9.2.3</span></pre><pre><span style="color: #333399;">Content-Type: image/gif</span></pre><pre></pre><pre></pre><p>The main line we're interested here is the cache-control line.  Notice that the object has an expiration of 31536000.  Turns out that is the number of seconds in one week.  This tells the browser to keep these objects in its own cache and not refetch from the webserver each time.  That's a tremendous speedup.</p><h2>5. Employ a CDN</h2><p>If you haven't heard of CDN before, it stands for content delivery network.  Dropbox, the filesharing service is essentially a CDN service with a handsome user interface built on top of it.  Akamai is another famous CDN solution, one of the most mature, and respected available.  If you're on Amazon you might look at CloudFront, their CDN solution.</p><p>What is a CDN exactly?  Consider your pressing need for some basic groceries.  Maybe you need juice, a sandwich, beer or cigarettes.   If you're walking around the city, you'll find a deli on every corner.  That's the quickest way to get those items, a short walk and a short line.  When you need bigger items, you might make a weekly trek to Whole Foods.  From the perspective of food and beverage manufacturers you certainly want to get your products into the delis.  They are your grocery distribution networks, if you will.</p><p>W3 Total Cache supports Amazon CloudFront, simply enter your private and secret keys, and save.  Then upload all of your content up to S3 and you'll be benefiting from a CDN in no time.</p><h2><strong>Test again</strong></h2><p>Now that you've had a chance to look at all these caching opportunities, and hopefully implemented many of them in WordPress, rerun your Google Speed Test.</p><div
id="attachment_1887" class="wp-caption alignleft" style="width: 377px"><a
href="http://www.iheavy.com/2011/11/01/5-tips-cache-websites-boost-speed/screen-shot-2011-11-01-at-1-23-45-am/" rel="attachment wp-att-1887"><img
class="size-full wp-image-1887 " title="Google Page Test - Score of 91" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/11/Screen-shot-2011-11-01-at-1.23.45-AM.png" alt="google page test screenshot" width="367" height="269" /></a><p
class="wp-caption-text">Google Page Test - Score of 91</p></div><p>We were able to raise our score from the mid-70's to 91 after tweaking various pieces of the site.  We haven't even implemented image sprites yet.</p><p>Hopefully this time around you'll see some objects loaded via CDN, more objects compressed, and proper expirations on most if not all content on your site.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><h2><strong>CDN &amp; caching are closer than you think</strong></h2><p>Most internet sites can make great gains in faster response time by looking in the right places.  Application and server rearchitecting give you a lot, but usually involve more complex and ongoing effort by developers.  However the basic caching improvements we described above will make a big difference as well.  CDN and caching technology is a lot more within reach than you think it is.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/11/01/5-tips-cache-websites-boost-speed/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The market for Cloud Computing</title><link>http://www.iheavy.com/2011/10/31/how-much-money-in-cloud-computin/</link> <comments>http://www.iheavy.com/2011/10/31/how-much-money-in-cloud-computin/#comments</comments> <pubDate>Mon, 31 Oct 2011 18:00:53 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[amazon web services]]></category> <category><![CDATA[cloud computing]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1821</guid> <description><![CDATA[Saw this awesome infographic by Cloud Spectator on twitter today. A great snapshot of the expected growth in Cloud Computing. If the Cloud Computing market was stacked up against world economies it would be the 51st largest in the world with massive inequality - Amazon has half the share.]]></description> <content:encoded><![CDATA[<p>Saw this awesome <a
href="http://twitpic.com/77ynsy#">infographic</a> by <a
href="http://www.cloudspectator.com/" target="_blank">Cloud Spectator</a> on twitter today. A great snapshot of the expected growth in Cloud Computing. If the Cloud Computing market was stacked up against world economies it would be the 51st largest in the world with massive inequality - Amazon has half the share.</p><p><a
href="http://twitpic.com/77ynsy#"><img
class="alignleft size-full wp-image-1828" title="Cloud infographic" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/10/Cloud-infographic.jpg" alt="Cloud Computing" width="350" height="453" /></a></p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/10/31/how-much-money-in-cloud-computin/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Book Review &#8211; The Lean Startup by Eric Ries</title><link>http://www.iheavy.com/2011/10/27/book-review-lean-startup-eric-ries/</link> <comments>http://www.iheavy.com/2011/10/27/book-review-lean-startup-eric-ries/#comments</comments> <pubDate>Thu, 27 Oct 2011 17:23:34 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[startup]]></category> <category><![CDATA[startup advice]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1782</guid> <description><![CDATA[What do you do after founding not one, but two companies and watching them fail miserably all by the time you were barely out of college? Move to the Valley, make shrewd investments in other startups and become insanely rich like Sean Parker? A Bit lofty perhaps. How about try, try again and succeed. Then reinvent [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.iheavy.com/2011/10/27/book-review-lean-startup-eric-ries/lean-startup-2/" rel="attachment wp-att-1790"><img
class="alignleft size-full wp-image-1790" title="lean startup" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/10/lean-startup.jpeg" alt="The Lean Startup cover" width="148" height="224" /></a>What do you do after founding not one, but two companies and watching them fail miserably all by the time you were barely out of college?</p><p>Move to the Valley, make shrewd investments in other startups and become insanely rich like Sean Parker? A Bit lofty perhaps. How about try, try again and succeed. Then reinvent yourself as a guru dishing out startup wisdom through your blog and publishing a book that ends up the top of the New York Times Bestseller's list. That's essentially what Eric Ries, author of The Lean Startup did.</p><p>True entrepreneurs fail many times before they succeed and continuously find opportunities to reinvent themselves. Ries is one of them. He's taken all that he's learned from his failures, and later successes, from his college years in the 1990s right through the dotcom crash, and packaged them into a guide for startups to consult in their quest for world domination. <span
id="more-1782"></span></p><p>Like any business or management book that wants to capture readers' attention The Lean Startup has ground-breaking ideas or rather something that challenges traditional thinking.</p><h3>How to be lean and light-footed</h3><p>One of  the main themes is that startups can stay lean and light-footed - and in the process avoid millions of dollars in sunk costs on failed ideas - by  discovering what customers want as they are developing the product itself. Ries advocates a Minimum Viable Product, that is when rolling out new products companies can already run and even charge, before they decide whether the blue or the red version is going to sell more. From there on the process of improving and perfecting the product is a continuous one through listening to what customers want, although not through their written feedback but rather through their actions. This favors scientific methods of decision-making over what is viewed as failure prone hunches and guess work. And it makes sense for startups who simple don't have the financial resources to take big risks.</p><p>Written in simple down-to-earth prose, The Lean Startup is an easy and quick read with sufficient real world examples. The good thing about books these days is they don't have to end up as dated publications. Since Ries is building a brand around the whole methodology, one can find additional resources and discussions it in his <a
href="http://www.startuplessonslearned.com">blog</a> (where it all began anyway), and through Lean Startup circles and <a
href="http://leanstartup.pbworks.com/w/page/15765221/FrontPage">wikis</a>.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/10/27/book-review-lean-startup-eric-ries/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Why generalists are better at scaling the web</title><link>http://www.iheavy.com/2011/10/25/why-generalists-better-scaling-web/</link> <comments>http://www.iheavy.com/2011/10/25/why-generalists-better-scaling-web/#comments</comments> <pubDate>Tue, 25 Oct 2011 17:40:54 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[devops]]></category> <category><![CDATA[generalists]]></category> <category><![CDATA[scaling web startups]]></category> <category><![CDATA[specialists]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1763</guid> <description><![CDATA[Recently at Surge 2011, the annual  conference on scalability  and performance, Google's CIO Ben Fried gave an illuminating keynote address. His main insight was that generalists are the people that will lead engineering teams in successfully scaling the web. In a world where the badge of Specialist or Expert is prized, this was refreshing perspective from [...]]]></description> <content:encoded><![CDATA[<p>Recently at <a
href="http://omniti.com/surge/2011" target="_blank">Surge 2011</a>, the annual  conference on scalability  and performance, Google's CIO Ben Fried gave an illuminating <a
href="http://www.eweek.com/c/a/Enterprise-Applications/Googles-CIO-Generalists-Not-Specialists-Will-Scale-the-Web-655875/" target="_blank">keynote address</a>. His main insight was that generalists are the people that will lead engineering teams in successfully scaling the web.</p><div><p>In a world where the badge of Specialist or Expert is prized, this was refreshing perspective from an industry bigwig. As tech professionals, or any professional for that matter, we don't welcome the label of generalist. The word suggests a jack-of-all-trades and master of none. But the generalist is no less an expert than the specialist. Generalists can get their hands greasy with the tools to fix bugs in the machine but they are especially good at mobilizing the machine itself; with their talents of broad vision, and perspective they can direct an entire team to accomplish tasks efficiently. This ability to see big-picture can not be underestimated especially during times of crisis or pressure to meet targets. For a team to scale the web effectively, you're going to need a good mix of both types of personalities.<span
id="more-1763"></span></p><h3><strong>Picking out the potential generalist</strong></h3><p>Startups wanting to achieve scalability  are face with huge pressure to do more with limited budgets.  In bringing on new engineers, they must hire people who have the programming skills to realise their big idea. Ideally these programmers should also have some architectural vision, a knowledge of web operations, and performance as that application becomes popular.  And what of maintaining that large infrastructure as it grows?</p><p>So the question for a startup is how do you spot or hire generalists?  In the book, <a
href="http://37signals.com/rework/" target="_blank">REWORK </a>by  Jason Fried and David Heinemeier Hansson, the authors emphasize good writers and good teachers.  Their point is that in order to teach an idea or concept you have to understand it thoroughly and be able to step into someone elses shoes in order to explain it from their vantage point.</p><p>This is in large part the skill that Ben Fried was speaking about at Surge. To borrow his method of using "Disaster Porn" as a way to illustrate a point, we have a story of our own.</p><h3>Our own disaster porn</h3><p>About five years ago we worked for a firm who was faced with ongoing challenges of growth.  Their user base was growing by 25%-50% per quarter but they were suffering from outages because of that growth.  What's more one of their top engineers was leaving to join another company.  They took the opportunity to bring us on board to assess the entire infrastructure.</p><p>We looked over the architecture and were surprised at every turn.  Although they had a lot of engineers on staff, they were all tasked with building features, and responding to ongoing business requirements.  None were given any operations responsibilities. There was a very obvious lack of leadership. so you can imagine how this turned out to be a recipe for a fine mess. One day we'd see new servers being added at random, another day we'd witness haphazard decisions with what technologies to use or what what versions of frameworks to adopt. In effect, each engineer was making decisions without considering the consequences on the whole.</p><p>The infrastructure wound up being built on two different webserver platforms, three - count 'em - three different programming languages and frameworks, and three MySQL databases scattered about on different machines. After a few hours discussing the architecture with the team, we put together a plan that framed the architecture around three simpler tiers.  Two included the standard load balanced webserver tier, and backend database tier, and then a third to manage batch jobs and building static assets and media files.</p><h3>A generalist solution</h3><p>Our push then was to standardize on one type of webserver, one version of each language stack, and consolidate all the databases into one instance.  This huge simplification meant that they could add replication to the database tier, eliminating single points of failure, providing redundancy for all business services.  This in itself was a major achievement. We left them with some major problems solved while offering a new direction and a better handle on the remaining challenges. What the company had lacked was not engineering know-how, but rather a generalist's perspective.  The engineers had focused too much on immediate tasks, locked on detail, but lost sight of the big picture.</p><p>As more companies move their applications to the cloud, some carefully and some not, we anticipate many more disaster scenarios such as these.  This speaks strongly to the rising cult of <a
href="http://www.iheavy.com/2011/06/19/devops-what-is-it-and-why-is-it-important/">DevOps</a> and its effort towards broader skills and collaboration among both developers and operations teams. The good thing to come out of it is that cleaning up messes such as these will force us to hone our strategic thinking and organizational skills, possibly making generalists out of many more of us.</p><p>&nbsp;</p></div>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/10/25/why-generalists-better-scaling-web/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>$1000 per hour Servers, Anyone?</title><link>http://www.iheavy.com/2011/10/07/amazon-1000dollar-hour-servers/</link> <comments>http://www.iheavy.com/2011/10/07/amazon-1000dollar-hour-servers/#comments</comments> <pubDate>Fri, 07 Oct 2011 13:00:28 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[cloud computing]]></category> <category><![CDATA[computing power]]></category> <category><![CDATA[server]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1641</guid> <description><![CDATA[Amazon's spot market for computing power is set up as an open market for surplus servers. The price is dynamic and depends on demand. So when demand is low, you can get computing instances for rock bottom prices. When you do that you normally set a range of prices you're willing to pay. If it [...]]]></description> <content:encoded><![CDATA[<p>Amazon's spot market for computing power is set up as an open market for surplus servers. The price is dynamic and depends on demand. So when demand is low, you can get computing instances for rock bottom prices. When you do that you normally set a range of prices you're willing to pay. If it goes over your top end, your instances get killed and re-provisioned for someone else. Obviously this wouldn't work for all applications, like a website that has to be up all the time, but for computing power, say to run some huge hedge fund analytics, it might fit perfectly.<span
id="more-1641"></span></p><p>A recent post on SEO MOZ alerted us to an interesting story where spot instances spiked to <a
href="http://devblog.seomoz.org/2011/09/amazon-ec2-spot-request-volatility-hits-1000hour/" target="_blank">$1000 per hour</a>. Incredible as it seems, but the psychology of bidding can be rather perverse. Still, this kilo of a quote for mere server space is pretty outrageous. With Amazon's usual price at around 50 cents per hour for these 2xlarge instances, they could have made some serious money during this short burst had a transaction actually took place. To the skeptics among us, this spike smells uncannily like a couple of <a
href="http://www.michaeleisen.org/blog/?p=358" target="_blank">algos gone crazy</a>, incidentally also on Amazon.</p><p>But it also speaks of over reliance on one cloud provider, specifically Amazon's continued dominance in the space. As an alternative to Amazon for computing power you could also go to a service like <a
href="http://www.spotcloud.com/" target="_blank">SpotCloud</a> which sits on top of multiple clouds, so you're less likely to experience this type of burst of demand. Then again, the spot instance volatility is baked in. Still the lesson is instructive, and will surely spell further growth for Amazon.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/10/07/amazon-1000dollar-hour-servers/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book Review &#8211; Help! by Oliver Burkeman</title><link>http://www.iheavy.com/2011/09/29/book-review-help-oliver-burkeman/</link> <comments>http://www.iheavy.com/2011/09/29/book-review-help-oliver-burkeman/#comments</comments> <pubDate>Thu, 29 Sep 2011 20:07:29 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Book Review]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[books]]></category> <category><![CDATA[self-improvement]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1564</guid> <description><![CDATA[Help! How To Become Slightly Happier and Get a Bit More Done I've long overcome that sheepish feeling when browsing the Self-help section at the bookstore. Sure, How to Make Friends and Influence People or the Seven Steps to World Domination in your bookcase aren't exactly the sort of titles to suggest a deep intellect but [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.amazon.co.uk/Help-Become-Slightly-Happier-More/dp/0857860267?ie=UTF8&amp;tag=oliverburkema-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0857860259" target="_blank"><img
class="size-full wp-image-1566 alignleft" title="helpjacket-191x300" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/09/helpjacket-191x300.png" alt="Help! by Oliver Burkeman" width="191" height="300" /></a></p><h1>Help! How To Become Slightly Happier and Get a Bit More Done</h1><p>I've long overcome that sheepish feeling when browsing the Self-help section at the bookstore. Sure, How to Make Friends and Influence People or the Seven Steps to World Domination in your bookcase aren't exactly the sort of titles to suggest a deep intellect but I like to keep an open mind when checking out the latest hardcover secret to happiness and prosperity. Basically I try not to diss a book just because it's got "soup" on the cover.</p><p>I will concede that publishers have gone a bit overboard with churning out the number of self-help titles in the last 20 years or so. As with anything that proliferates you're stuck with having to wade through the swamp of well, BS. <em>HELP! How to Become Slightly Happier and Get a Bit More Done</em> by <a
href="http://www.oliverburkeman.com/">Oliver Burkeman</a> is ideal for those curious enough about self-improvement but too cool to buy into mind-body-soul mantras.</p><p><span
id="more-1564"></span></p><p>Since 2006 Burkeman has been writing a column in <a
href="http://www.guardian.co.uk/" target="_blank">The Guardian</a>, self-mockingly titled, <em><a
href="http://www.guardian.co.uk/lifeandstyle/series/thiscolumnwillchangeyourlife">This Column Will Change Your Life</a>. </em>It has garnered a large enough following and accumulated a substantial amount of content to warrant a book version or if you like, a best-of collection.</p><p>Approaching the subject with rational skepticism, Burkeman has made it his mission to sort through the best and the worse of self-help literature to tell us what works and what doesn't. He doesn't hesitate to call out the snake oil salesmen nor does he dismiss all self-help advice as hokum because he genuinely believes there is something we can all learn from research in human-happiness, <a
href="http://www.economist.com/blogs/freeexchange/2007/10/the_happy_facts">however flawed</a>.</p><p>I reckon Burkeman's greatest achievement is his ability to strip down what has been pedaled as new enlightenment by the self-help gurus, into realistic terms with wry humor and wit. I say realistic, because he reminds us that self improvement is a lifelong project for anyone who cares to make the effort, and it would be ridiculous to take a prescriptivist approach. From managing your inbox to procrastinating less, the topics he tackles are easy to relate to; for example, why your friends' Facebook statuses usually make their lives seem more awesome than they actually are or his explanation of the Color of the Bike Shed phenomenon, where the time spent on any item is inversely related to its cost and importance.</p><p>Although I sometimes wonder why buy a book when you can read all its contents online, Burkeman's writing has obviously been compelling enough for its publishers to re-release the title with a new so-called mass-market cover (notice the cute belly-up turtle). Even if it doesn't change your life, HELP! will definitely entertain.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/09/29/book-review-help-oliver-burkeman/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>iHeavy Newsletter 84 &#8211; Restaurant Scalability</title><link>http://www.iheavy.com/2011/09/29/iheavy-newsletter-84-restaurant-scalability/</link> <comments>http://www.iheavy.com/2011/09/29/iheavy-newsletter-84-restaurant-scalability/#comments</comments> <pubDate>Thu, 29 Sep 2011 17:32:19 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Database Management]]></category> <category><![CDATA[High Availability]]></category> <category><![CDATA[iHeavy Newsletter]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[high availability]]></category> <category><![CDATA[infrastructure design]]></category> <category><![CDATA[scalability]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1533</guid> <description><![CDATA[Restaurant Scalability Could pro-waitering serve up some lessons on web scalability? Observing peak hour dining at a New York restaurant gave us some insight. I was dining at a restaurant the other day with friends. It was a warm and cozy place, nicely decorated with a long, narrow dining room.  The food was scrumptious, yet we were [...]]]></description> <content:encoded><![CDATA[<h2><strong><a
href="http://www.flickr.com/photos/paulbalchin/4430937086/sizes/s/in/photostream/"><img
class="alignleft size-full wp-image-1534" title="Photo by Paul Balchin" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/09/4430937086_89baae2ceb_m.jpg" alt="restaurant scalability" width="240" height="240" /></a>Restaurant Scalability</strong></h2><p><em>Could pro-waitering serve up some lessons on <strong>web scalability</strong>? Observing peak hour dining at a New York restaurant gave us some insight.</em></p><p>I was dining at a restaurant the other day with friends. It was a warm and cozy place, nicely decorated with a long, narrow dining room.  The food was scrumptious, yet we were getting increasingly frustrated by the service as the night went along.</p><p>With some waiting experience behind me, I could immediately see the problem. The waiters, probably through lack of experience, were making the mistake of doing one thing at a time.  They would go to a table, respond to one customer's request, and go and fetch that item.  Back and forth, back and forth they would dart, but always dealing with one request at a time.<span
id="more-1533"></span></p><p>As the night got busier the demands began weighing in, like the insidious lactic acid build-up in a distance runner. Soon the incessant gesturing and requests from diners would turn the once beaming, confident servicemen into distressed drones evasive of eye-contact for fear of having to fulfill yet another request for a water top-up.</p><p>I knew how they felt because this happened to me many times when I first learned to wait tables.  Until a seasoned veteran waiter showed me how it was done I used to scamper about like a headless chicken. He explained to me that I should enter the dining room, look up, walk to each table and see if they needed anything.  Each time walking around to all the tables in my station, I would then return to fetch many requests all at once.  A fork or napkin for this customer, a glass of wine or condiments for another.  I would then put all of those items on my tray and return to satisfy all those requests in parallel.</p><p>Observing the waiters that night, it struck me that this is very much what web scalability is about.</p><h4><strong>Serialization</strong></h4><p>Serialization in web applications for example is like when the waiter fetches only one item at a time.  So-called decoupling of services is like delegating out the table cleanup to a busboy so you can concentrate more on customers.</p><h4><strong>Complex Infrastructures</strong></h4><p>Gordon Ramsay often makes his first move paring down the menu.  Complex menus can be confusing to customers, but they can also complicate things in the kitchen and thereby reduce quality.  So too can complicated infrastructures.  Years ago we had a client whose environment included two different webservers (nginx and Apache), three programming languages (Python, Ruby, and PHP), inconsistent versions across them and load balancing only across apache.  If that wasn't enough they had MySQL databases scattered randomly across machines, some of which were not backed up.   This kind of complexity breeds all sorts of problems.</p><h4><strong>Be Mindful of Scaling </strong></h4><p>While developing your application, bake scalability into the mix.  Include multiple database handles for read and write databases.  Back to our restaurant analogy;  this is similar to opening shop in a building that has a adjacent vacant unit available.  As your business grows, you can occupy that additional space fairly easily because you put a little extra thought into your location at the beginning.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/09/29/iheavy-newsletter-84-restaurant-scalability/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Oracle Announces Paid MySQL Add-ons</title><link>http://www.iheavy.com/2011/09/21/oracle-announces-paid-mysql-addons/</link> <comments>http://www.iheavy.com/2011/09/21/oracle-announces-paid-mysql-addons/#comments</comments> <pubDate>Wed, 21 Sep 2011 13:00:30 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Cloud Migrations]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Database Migrations]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[commercial mysql]]></category> <category><![CDATA[commercial mysql extensionsamazon rds]]></category> <category><![CDATA[drizzle]]></category> <category><![CDATA[mariadb]]></category> <category><![CDATA[oracle mysql announcement]]></category> <category><![CDATA[oracle rds]]></category> <category><![CDATA[percona]]></category> <category><![CDATA[state of mysql]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1509</guid> <description><![CDATA[ Oracle starts charging for MySQL Add-ons Exciting news, Oracle just announced commercial MySQL extensions that they'll be offering paid extensions to the core MySQL free product. To be sure, this has raised waves of concern among the community, but on the whole I suspect it will be a good thing for MySQL.  This brings more commercial [...]]]></description> <content:encoded><![CDATA[<h1> Oracle starts charging for MySQL Add-ons</h1><p>Exciting news, Oracle<a
href="http://blogs.oracle.com/MySQL/entry/new_commercial_extensions_for_mysql"> just announced commercial MySQL extensions </a>that they'll be offering paid extensions to the core MySQL free product.</p><p>To be sure, this has raised waves of concern among the community, but on the whole I suspect it will be a good thing for MySQL.  This brings more commercial addons to the table, which only increases the options for customers.  Many will continue to use the core database product only, and avoid license hassles while others will surely embark on a hybrid approach if it solves their everyday business problems.<span
id="more-1509"></span></p><p>Speaking of licensing, back in May, Amazon <a
href="https://forums.aws.amazon.com/ann.jspa?annID=1031">announced that it's RDS or Relational Database Service would now offer Oracle as an option</a>.  For those familiar with negotiating Oracle licensing, and the concomitant headache, this is certainly a welcome addition.  It also marks a dramatic break from the previous per-cpu or per-seat licensing models, and Oracle's embrace of the cloud model of instant provisioning.  Interesting all around!</p><p>For those concerned about MySQL as a whole going commercial, there are three large companies continuing to support and distribute the core database including <a
href="http://www.percona.com/">Percona</a>, <a
href="http://montyprogram.com/">Monty Program AB</a> (MariaDB) and Brian Aker's fork <a
href="http://www.drizzle.org/">Drizzle</a>.  These distros have strong community support, and that strength will only grow.</p><p>&nbsp;</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/09/21/oracle-announces-paid-mysql-addons/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Scale Quickly Like Birchbox &#8211; Startup Scalability 101</title><link>http://www.iheavy.com/2011/09/18/scale-quickly-like-birchbox-startup-scalability-101/</link> <comments>http://www.iheavy.com/2011/09/18/scale-quickly-like-birchbox-startup-scalability-101/#comments</comments> <pubDate>Mon, 19 Sep 2011 01:00:43 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[Software Development]]></category> <category><![CDATA[Startups]]></category> <category><![CDATA[Web Operations]]></category> <category><![CDATA[agile software development]]></category> <category><![CDATA[autoscaling]]></category> <category><![CDATA[birchbox]]></category> <category><![CDATA[capacity planning]]></category> <category><![CDATA[cloud deployments]]></category> <category><![CDATA[decouple processes]]></category> <category><![CDATA[feature flags]]></category> <category><![CDATA[operational switches]]></category> <category><![CDATA[scaling web applications]]></category> <category><![CDATA[scaling web startups]]></category> <category><![CDATA[startup advice]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1448</guid> <description><![CDATA[One of the great things about the Internet is how it has made it easier to put great ideas into practice. Whether the ideas are about improving people’s lives or a new way to sell and old-fashioned product, there’s nothing like a good little startup tale of creative disruption to deliver us from something old [...]]]></description> <content:encoded><![CDATA[<p>One of the great things about the Internet is how it has made it easier to put great ideas into practice. Whether the ideas are about improving people’s lives or a new way to sell and old-fashioned product, there’s nothing like a good little startup tale of creative disruption to deliver us from something old and tired.</p><div><p>We work with a lot of startup firms and we love being part of the atmosphere of optimism and ingenuity, peppered with a bit of youthful zeal - something very indie-rock-and-roll about it. But whether they are just starting out or already picking up pace every startup faces the same challenges to scale a business. Recently, we were reminded of this when we watched <a
href="http://www.inc.com/" target="_blank">Inc’s</a> video interview with Birchbox founders, Hayley Barna and Katia Beauchamp.<span
id="more-1448"></span></p><p><object
id="embedded_player_47d0768285e49" width="512" height="313" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowfullscreen" value="TRUE" /><param
name="allowscriptaccess" value="always" /><param
name="wmode" value="transparent" /><param
name="base" value="http://video.inc.com" /><param
name="src" value="http://video.inc.com/plugins/player.swf?v=47d0768285e49" /><embed
id="embedded_player_47d0768285e49" width="512" height="313" type="application/x-shockwave-flash" src="http://video.inc.com/plugins/player.swf?v=47d0768285e49" allowfullscreen="TRUE" allowscriptaccess="always" wmode="transparent" base="http://video.inc.com" /></object></p><p>Birchbox is a service that delivers a box of cosmetic samples to its subscribers each month for them to try out before they decide to make a full size purchase through the <a
href="http://www.birchbox.com" target="_blank">Birchbox site</a>. To encourage its members to buy those lipsticks and mascaras, Birchbox produces product editorials and How-To videos on their site. By many yardsticks, the startup has been successful in less than a year from its launch but as Beauchamp puts it, <a
href="http://mashable.com/2011/08/16/birchbox-katia-beauchamp-interview/">they have a long road ahead of them</a>.</p><p>Listening to Barna and Beauchamp talk about their scalability issues, we thought about how we would help a business in their position.</p><p><strong>First some notes about the business</strong></p><ul><li>Not just a service &amp; tech company; have a physical product</li><li>Rapid growth and relentless feature changes</li><li>Doubling in size monthly</li><li>Doing something new - trailblazing &amp; disruptive</li><li>Building a platform - must match customer &amp; brand partner needs</li></ul><p><a
href="http://www.iheavy.com/2011/09/18/scale-quickly-like-birchbox-startup-scalability-101/birchbox/" rel="attachment wp-att-1467"><img
class="alignright size-full wp-image-1467" title="birchbox" src="http://d1wcmuriwzc7sn.cloudfront.net/wp-content/uploads/2011/09/birchbox.jpeg" alt="birchbox" width="182" height="277" /></a></p><p><strong>What we would recommend:</strong></p><p><strong>1. Embrace Agile Software Development</strong></p><p><strong></strong>Agile Software Development means more frequent but smaller code pushes, better change management, and a development process that's more responsive to changing business needs.  We'd all like to have a fully formed scope, list of features, and blueprint before we begin development.  But the real world things are rarely so cut and dry.  Agile speaks to this need in a successful and proven way.</p><p><strong>2. Deploy applications in the Cloud</strong></p><p>Web applications experiencing rapid growth and high seasonal traffic are especially suited to cloud hosting solutions.  Scaling up or scaling out on a moment's notice becomes the norm (Kate Moss could reveal her favorite lipgloss of the season tomorrow and cause a surge in orders). On-demand computing resources are thus a natural fit for Birchbox.</p><p><strong>3. Build and deploy code with feature flags and operational switches</strong></p><p>As new features, and changes are planned, operational switches should be included in the mix. Like what the term suggests, this allows the web operations team to flip any new features on and off when required or make them available only to their administrative or beta users. This gives flexibility for Birchbox who runs a customer loyalty program.  If they hit a performance snag and find they can't cope being knee-deep in orders, they can turn that new feature off temporarily until they address the problem.</p><p><strong>4. Perform basic capacity planning</strong></p><p>As their user base grows, Birchbox would want to monitor metrics and server utilization.  Database capacity is at 25% with two web servers and 40% when you add a third?  Do some basic calculations to figure as you hit five or six web servers you'll need to scale out your database tier horizontally.</p><p><strong>5. Anticipate barriers to scalability - Processes and Services don’t have to share the same bed</strong></p><p>Start with two web servers not one. Birchbox may want to keep their database and web server on separate servers. When you split them up they won’t have to share resources so each can do the job much faster. Something this simple may not be obvious to businesses that want to be ready to scale from the very start. Use message queues to avoid serialization bottlenecks.  Use object and page caches, and be prepared to move them to their own servers if needed.</p></div>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/09/18/scale-quickly-like-birchbox-startup-scalability-101/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>3 Biggest MySQL Migration Surprises</title><link>http://www.iheavy.com/2011/08/29/3-biggest-mysql-migration-surprises/</link> <comments>http://www.iheavy.com/2011/08/29/3-biggest-mysql-migration-surprises/#comments</comments> <pubDate>Mon, 29 Aug 2011 19:48:28 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[Database Migrations]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[mysql anomalies]]></category> <category><![CDATA[mysql explain plan]]></category> <category><![CDATA[mysql gotchas]]></category> <category><![CDATA[mysql joins]]></category> <category><![CDATA[mysql master slave data differences]]></category> <category><![CDATA[mysql migration gotchas]]></category> <category><![CDATA[mysql performance]]></category> <category><![CDATA[mysql query tuning]]></category> <category><![CDATA[mysql replication differences]]></category> <category><![CDATA[mysql replication failure]]></category> <category><![CDATA[mysql replication integrity checking]]></category> <category><![CDATA[mysql replication issues]]></category> <category><![CDATA[mysql single index per table]]></category> <category><![CDATA[mysql sorting queries]]></category> <category><![CDATA[mysql sql tuning]]></category> <category><![CDATA[mysql subqueries]]></category> <category><![CDATA[tuning mysql joins]]></category> <category><![CDATA[tuning mysql queries]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1320</guid> <description><![CDATA[3 ways your MySQL migration project can shake you up Once a development or operations team gets over the hurdle of open-source, and start to feel comfortable with the way software works outside of the enterprise world, they will likely start to settle in and feel comfortable.  Best not to get too cushy though for [...]]]></description> <content:encoded><![CDATA[<h1>3 ways your MySQL migration project can shake you up</h1><p>Once a development or operations team gets over the hurdle of open-source, and start to feel comfortable with the way software works outside of the enterprise world, they will likely start to settle in and feel comfortable.  Best not to get too cushy though for there are more surprises hiding around the corner.  Here are a few of the biggest ones.<span
id="more-1320"></span></p><p><strong>1. Replication Is Not Perfect</strong></p><p>Yes, you've installed MySQL, setup a slave, and got it replicating properly.  You check the slave and it's 0 seconds behind the master.  What's more you monitor the error log file, and have a check in place to alert you if something happens there.  Job completed, good job!</p><p>Not so fast.  Unfortunately this is not the end of the story.  Many MySQL replication slaves are not consistent with their masters, but they drift apart silently.  Really?  Yes really.  But there are tools to help you.  Maatkit includes a checksum tool that will build checksums for all of your tables, and populate a table with that data.  Your checksum data then flows through replication to the slave.  From there you can perform a check on the slave to see if there are any differences.  Such a check is easy to wire into nagios or other monitoring software, to alert you as soon as a difference materializes in your slave database.</p><p>With vigilant data integrity checking in place, your MySQL slave is robust enough to perform backups off of.  But beware if you're not using tools to check and relying only on the error log.  This is unfortunately not sufficient.</p><p><strong>2. Queries With Bad Performance</strong></p><p>MySQL's optimizer is still fairly rudimentary.   There are some classes of queries that MySQL does not handle well.  If I were to provide a general rule it would be to stick to fairly simple queries, with at most a few joins.  Simpler lookups are sure to be fast.  Also less complex and convoluted queries are easier to understand, optimize and tune later on if they require it.</p><p><strong>Subqueries</strong></p><p>Although MySQL supports these, they often optimize badly, and perform terribly.  Review an explain plan to be sure you're optimal.  Replace such a query with a join where possible.</p><p><strong>Joins</strong></p><p>MySQL only supports the nested loops algorithm to do joins.  Merge join and hash join, two alternate and very efficient algorithms have not yet been implemented in MySQL unfortunately.  Be aware, run explain and profile your slow queries.</p><p><strong>Using Temporary; Using Filesort</strong></p><p>When MySQL has to do sorting, it does so in one of two ways.  If the dataset is small it'll use a quicksort, and do it in memory.  In this case you'll see just "using filesort".  However if  you see "Using Temporary; Using Filesort" in an EXPLAIN plan output, it means MySQL is using a two-pass algorithm to do a sort, creating a temporary table because it won't all fit in memory.   Sometimes a composite or multi-column index can help with these situations.  You may also affect this behavior by setting sort_buffer_size and join_buffer_size at the session level, then rerunning the explain.</p><p>Newer versions of MySQL such as 5.6 have gotten much smarter about this, as the optimizer is always being tweaked and improved.  Check your query plans in dev &amp; test before migrating your production database.</p><p><strong>Single Index Usage</strong></p><p>Although MySQL supports very efficient b-tree indexes, it cannot always use multiple indexes, or merge indexes together for more efficient path to data.  Although there are some exceptions, figure at each stage of a query and on each table MySQL will likely choose only one index.  When you're not satisfied with this, you may choose to build a covering or multi-column index.  Keep in mind these will only serve that one particular query, or a query against the leading edge column.  Also keep in mind that the more indexes you have built on a table, the less performant inserts, updates and deletes will be against this table.  All of those operations will require index maintenance so you must balance read performance (indexes on more columns) with write performance (requiring index maintenance and updating).</p><p><strong>3. Where Are The Transactional Tables?</strong></p><p>Yes MySQL does offer row-level locking, ACID compliance, and repeatable read and other isolation levels and referential integrity.  In fact it's implementation of the buffer cache to support reading and writing blocks from disk is modeled on Oracle's own algorithm.  So why are you getting all of that?</p><p>As it turns out MySQL supports various Storage Engines, unlike other databases which have all of this rolled into the kernel, and only support transactional tables.  This can be thought of as a feature although in reality it is more of a anomaly of how MySQL has evolved, and where it's roots lie.  As such the default storage engine is MySQL which is not transactional.  All changes are effectively auto-commit, and it only supports table level locking.</p><p>If you haven't checked already, verify what table types you have as follows:</p><p>mysql&gt; select table_schema, engine, count(*) from information_schema.tables group by table_schema, engine;</p><p>Outside of system tables, your application tables should all be InnoDB.  You can modify an existing table to be transactional as follows:</p><p>mysql&gt; alter table mytable engine=innodb;</p><p>You should also set storage_engine variable to default to Innodb.  Finally you may also choose to set the sql_mode NO_ENGINE_SUBSTITION which will force MySQL to flag an error whenever the storage engine you choose is not available.  This prevents it from creating a table with a storage engine other than your choice.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/08/29/3-biggest-mysql-migration-surprises/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>5 Things That Are Toxic to Scalability</title><link>http://www.iheavy.com/2011/08/26/5-things-are-toxic-to-scalability/</link> <comments>http://www.iheavy.com/2011/08/26/5-things-are-toxic-to-scalability/#comments</comments> <pubDate>Fri, 26 Aug 2011 18:15:26 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[Scalability]]></category> <category><![CDATA[Web Operations]]></category> <category><![CDATA[application metrics]]></category> <category><![CDATA[asynchronous]]></category> <category><![CDATA[business metrics]]></category> <category><![CDATA[capacity planning]]></category> <category><![CDATA[decoupling]]></category> <category><![CDATA[feature flags]]></category> <category><![CDATA[master master database]]></category> <category><![CDATA[master master mysql]]></category> <category><![CDATA[master slave mysql master slave replication]]></category> <category><![CDATA[metrics collection]]></category> <category><![CDATA[mysql replication]]></category> <category><![CDATA[parallelization]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[performance metrics]]></category> <category><![CDATA[scalability]]></category> <category><![CDATA[scalability by design]]></category> <category><![CDATA[scalability operations]]></category> <category><![CDATA[scalable web applications]]></category> <category><![CDATA[scalable web operations]]></category> <category><![CDATA[tracking metrics]]></category> <category><![CDATA[website metrics]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1318</guid> <description><![CDATA[Scalability is about application, architecture and infrastructure design, and careful management of server components. 1. Object Relational Mappers ORMs are popular among developers but not among performance experts.  Why is that?  Primarily these two engineers experience a web application from entirely different perspectives.  One is building functionality, delivering features, and results are measured on fitting [...]]]></description> <content:encoded><![CDATA[<h1>Scalability is about application, architecture and infrastructure design, and careful management of server components.</h1><p><strong>1. Object Relational Mappers </strong></p><p>ORMs are popular among developers but not among performance experts.  Why is that?  Primarily these two engineers experience a web application from entirely different perspectives.  One is building functionality, delivering features, and results are measured on fitting business requirements.  Performance and scalability are often low priorities at this stage.  ORMs allow developers to be much more productive, abstracting away the SQL difficulties of interacting with the backend datastore, and allowing them to concentrate on building the features and functionality.<span
id="more-1318"></span></p><p>On the performance side the picture is a bit different.  By leaving SQL query writing to an ORM, you are faced with complex queries that the database cannot optimize well.  What's more ORMs don't allow easy tweaking of queries, slowing down the tuning process further.</p><p><strong>2. Synchronous, Serial, Coupled or Locking Processes</strong></p><p>Locking in a web application operates something like traffic lights in the real world.  Replacing a traffic light with a traffic circle often speeds up traffic dramatically.  That's because when you're out somewhere in the country where there's very little traffic, no one is waiting idly at a traffic light for no reason.  What's more even when there's a lot of traffic, a traffic circle keeps things flowing.  If you need locking, better to use InnoDB tables as they offer granular row level locking than table level locking like MyISAM tables.</p><p>Avoid things like semi-synchronous replication that will wait for a message from another node before allowing the code to continue.  Such waits can add up in a highly transactional web application with many thousands of concurrent sessions.</p><p>Avoid any type of two-phase commit mechanism that we see in clustered databases quite often.  Multi-phase commit provides a serialization point so that multiple nodes can agree on what data looks like, but they are toxic to scalability.  Better to use technologies that employ an <em>eventually consistent </em>algorithm.</p><p><strong>3. One Copy of Your Database</strong></p><p>Without replication, you rely on only one copy of your database.  In this configuration, you limit all of your webservers to using a single backend datastore, which becomes a funnel or bottleneck.  It's like a highway that is under construction, forcing all the cars to squeeze into one lane.  It's sure to slow things down.  Better to build parallel roads to start with, and allow the application aka the drivers to choose alternate routes as their schedule and itinerary dictate.</p><p><strong>4. Having No Metrics</strong></p><p>Having no metrics in place is toxic to scalability because you can visualize what is happening on your systems.  Without this visual cue, it is hard to get business units, developers and operations teams all on the same bandwagon about scalability issues.  If teams are having trouble groking this, realize that these tools simple provide analytics for infrastructure.</p><p>There are tons of solutions too, that use SNMP and are non-invasive.  Consider Cacti, Munin, OpenNMS, Ganglia and Zabbix to name a few.  Metrics collections can involve business metrics like user registrations, accounts or widgets sold.  And of course they should also include low level system cpu, memory, disk &amp; network usage as well as database level activity like buffer pool, transaction log, locking sorting, temp table and queries per second activity.</p><p><strong>5. Lack of Feature Flags</strong></p><p>Applications built without feature flags make it much more difficult to degrade gracefully.  If your site gets bombarded by a spike in web traffic and you aren't magically able to scale and expand capacity, having inbuilt feature flags gives the operations team a way to dial down the load on the servers without the site going down.   This can buy you time while you scale your webservers and/or database tier or even retrofit your application to allow multiple read and write databases.</p><p>Without these switches in place, you limit scalability and availability.</p><p>&nbsp;</p><h2>Want more?  <a
href=" http://eepurl.com/qPF1">Signup for our scalability newsletter.</a></h2>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/08/26/5-things-are-toxic-to-scalability/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>5 Tips for Better Database Change Management</title><link>http://www.iheavy.com/2011/08/26/5-tips-for-better-database-change-management/</link> <comments>http://www.iheavy.com/2011/08/26/5-tips-for-better-database-change-management/#comments</comments> <pubDate>Fri, 26 Aug 2011 17:42:35 +0000</pubDate> <dc:creator>Sean Hull</dc:creator> <category><![CDATA[CTO/CIO]]></category> <category><![CDATA[Database Management]]></category> <category><![CDATA[Database Operations]]></category> <category><![CDATA[High Availability]]></category> <category><![CDATA[Software Development]]></category> <category><![CDATA[Web Operations]]></category> <category><![CDATA[agile databse change management]]></category> <category><![CDATA[agile software development]]></category> <category><![CDATA[change management]]></category> <category><![CDATA[code deployments]]></category> <category><![CDATA[code push]]></category> <category><![CDATA[database change management]]></category> <category><![CDATA[ddl changes]]></category> <category><![CDATA[dml changes]]></category> <category><![CDATA[feature flags]]></category> <category><![CDATA[managed ddl changes]]></category> <category><![CDATA[managing database changes]]></category> <category><![CDATA[professional deployments]]></category> <category><![CDATA[reliable code push]]></category> <category><![CDATA[reliable deployments]]></category> <category><![CDATA[roll forward scripts]]></category> <category><![CDATA[rollback scripts]]></category> <category><![CDATA[software deployments]]></category> <category><![CDATA[software push]]></category> <category><![CDATA[version control for database change management]]></category> <category><![CDATA[versioning database changes]]></category><guid
isPermaLink="false">http://www.iheavy.com/?p=1315</guid> <description><![CDATA[Deploying new code that includes changes to your database schema doesn't have to be a process fraught with stress and burned fingers. Follow these five tips and enjoy a good nights sleep. 1. Deploy with Roll Forward &#38; Rollback Scripts When developers check-in code that requires schema changes, that release should also require two scripts [...]]]></description> <content:encoded><![CDATA[<p>Deploying new code that includes changes to your database schema doesn't have to be a process fraught with stress and burned fingers. Follow these five tips and enjoy a good nights sleep.</p><p><strong>1. Deploy with Roll Forward &amp; Rollback Scripts</strong></p><p>When developers check-in code that requires schema changes, that release should also require two scripts to perform database changes. One script will apply those changes, alter tables to add columns, change data types, seed data, clean data, create new tables, views, stored procedures, functions, triggers and so forth. A release should also include a rollback script, which would return tables to their previous state.<span
id="more-1315"></span></p><p>This idea of database change management is popular as Migrations in Ruby on Rails. It is a convenient way to enforce good coding, and better database change management. However, keep in mind it has it's limits. See Perform Backup section below.</p><p><strong>2. Ban SELECT * FROM table</strong></p><p>Whenever you select from a table, be sure to specify the column names in all of your SQL code.  That way if later features or code changes add columns to that table, there is no potential to break old code that did SELECT * and got the old table column structure.  If the table was formerly returning four columns and after your code and schema changes returns five columns, it might break code that uses SELECT *.</p><p>The same goes for update statements.  Be sure to specify columns explicitely, and have a policy to enforce this on developers.</p><p><strong>3. Perform Backup on Affected Data</strong></p><p>Database rollback scripts have their limits, so a full database backup on any affected tables, or to be thorough the entire database, is a fully insured way to deploy database changes.</p><p>Since the developer's script cannot account for data in a live database, a rollback script will not work on database changes that do any of the following.  Only a backup will suffice:</p><ul><li>drop a table</li><li>drop a column</li><li>delete any data</li></ul><p><strong>4. Build in Feature Flags </strong></p><p>Feature flags provide the operations team with a mechanism to turn on or off a new feature.  If you're going the extra mile to build in these switches you will make rolling out new features a lot more trouble free.  Even better, include a mechanism to enable or disable a feature for a percentage or class of users.  That allows you to dial the feature on gradually or expose it only to a certain group of users.   In an emergency this will also come in handy as a way to quickly disable a new feature that has gone awry.</p><p><strong>5. Involve DBAs in the Review &amp; Test Process</strong></p><p>Before deploying a new release, include a process whereby the DBA must review schema changes and scripts.  This provides an additional sanity check, and a Database Administrators perspective on those changes.  He or she may well provide insight or caution on potential gotchas that you might encounter.</p>]]></content:encoded> <wfw:commentRss>http://www.iheavy.com/2011/08/26/5-tips-for-better-database-change-management/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 2/113 queries in 0.040 seconds using disk
Object Caching 3612/3973 objects using memcached
Content Delivery Network via Amazon Web Services: CloudFront: d1wcmuriwzc7sn.cloudfront.net

Served from: www.iheavy.com @ 2012-02-04 22:04:51 -->
