<?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>Control Group &#187; cloud</title>
	<atom:link href="http://blog.controlgroup.com/tag/cloud/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.controlgroup.com</link>
	<description>Technology for Big Ideas.</description>
	<lastBuildDate>Tue, 31 Jan 2012 15:14:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Climbing out of the Window and into the cloud</title>
		<link>http://blog.controlgroup.com/2011/11/03/climbing-out-of-the-window-and-into-the-cloud/</link>
		<comments>http://blog.controlgroup.com/2011/11/03/climbing-out-of-the-window-and-into-the-cloud/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 17:44:24 +0000</pubDate>
		<dc:creator>Stephen Cheevers</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1786</guid>
		<description><![CDATA[I’ve deployed Windows in every version since 3.0, and I looked at those early Windows through a greyscale monitor on a 286. I’ve used Microsoft Office in every version up to 2010 and hooked an old Neanderthal smartphone up to a hosted Exchange server and tapped my way through my emails with my little stylus. [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve deployed Windows in every version since 3.0, and I looked at those early Windows through a greyscale monitor on a 286. I’ve used Microsoft Office in every version up to 2010 and hooked an old Neanderthal smartphone up to a hosted Exchange server and tapped my way through my emails with my little stylus.  I’ve installed and configured Windows server back-ends from Windows NT up to 2008r2. I’ve worked in IT rooms that were so full of loud server iron, that it was like being in the engine room of a submarine. I’ve installed or worked on every version of Exchange from version 5.0 up to 2007. I spent thousands of dollars of my own money on Microsoft manuals and certification exams in order to stay up to speed on developments.</p>
<p>And then it all began to change, and for me, it began with Exchange. Exchange 2007 was the last version I deployed, and the last version my own email account was connected to. I’ve been a Google Apps user for two years now, and I’ve also helped transit some of our clients over to Google Apps also.  My personal transition away from a Microsoft-centric working experience started with email, and has continued on through the rest of what I do. I feel like I’m boarding the Google boat and there are just a few bags left on the MS dock.</p>
<p>Google Apps has been offering full-featured email and collaboration services for a while now. An Exchange server can be replaced in a cost-effective fashion, providing shared calendars, spam filtering, message archiving, chat services, access anywhere from a web browser, and almost no mailbox size limits&#8211; starting at $50 per mailbox per year. And while you can certainly use Outlook, Apple Mail and iCal to connect to Google, you can use nothing but your web browser if you want and have full functionality. About the only major feature of Exchange not replicated in Google Apps is Public Folders. But then again, Microsoft isn’t providing for that either going forward.</p>
<p>Replacing email servers is one thing, but replacing those desktop applications is another story altogether. Microsoft has held a monopoly on workstation software and business productivity applications for years. The fact is, Windows and Office work well enough for the majority of users out there. They’re easy to use and familiar. A real challenger has to offer a better way of doing something the average user is <strong>already </strong>doing. And Cloud computing’s Software As A Service  is finally maturing to that point.</p>
<p>Speaking as a heavy Microsoft user, I’ve personally been anchored to Windows and Office, primarily by Visio and Project.  Microsoft Word is still critical for final document drafts and printing, since the offerings on Google Apps just aren’t there yet in terms of refinement and features. But it’s just a matter of time. The recent addition of Smartsheet to our toolkit has now removed our reliance on Microsoft Project except for our very largest initiatives. And we are eagerly awaiting the evolution of Google Drawings to allow us to build the type of schematics we’re creating with Visio.</p>
<p>Microsoft of course has its own Cloud offering, Office 365, and naturally it’s tied into licensing of their existing products. They have a tiered licensing model that’s much more complex than Google’s. But it’s also a much deeper system than Google Apps.  It goes without saying that Google has no legacy revenue streams to drag into the 21st century. Even so, any company can make a migration decision based on what functionality works best for them, but it’s nice to be able to start fresh at a very aggressive price-point.</p>
<p>For further comparison, since Google Apps is platform agnostic, Mac users don’t draw the short straw <em>yet again</em> when it comes to software and collaboration with their Windows brethren. For remote users in a company that’s migrated to Google Apps, all they need is an Internet connection and a web browser, and they will have exactly the same experience as they have sitting in their office. While the individual feature-set of Google Apps isn’t as elegant or robust as Microsoft Office or Office 365, Google Apps is radically simpler in that you get full access to it’s features with just a web browser. This makes it a serious competitor for today’s geographically diverse, small to mid size business.</p>
<p>Regarding remote workers, smartphones deserve a mention. I used a Blackberry for years, but opted for a Droid recently. You probably knew this was coming, but Google Apps on the Droid takes only minutes to configure, and works smoothly. Google Apps functionality includes: Gmail, Calendar and Contact sync, Push support, Google Docs,  Enterprise Admin controls, and 2-way verification for extra security. This feature set is available for almost all platforms, including Windows:  <a href="http://www.google.com/apps/intl/en/business/mobile.html">http</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">://</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">www</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">.</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">google</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">.</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">com</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">/</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">apps</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">/</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">intl</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">/</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">en</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">/</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">business</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">/</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">mobile</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">.</a><a href="http://www.google.com/apps/intl/en/business/mobile.html">html</a></p>
<p>By contrast, Office 365 applications for iPhone and Android are not coming anytime soon. Mobile access is limited unless you’re using Windows Phone, which let’s be honest, almost nobody is.</p>
<p>Handheld prevalence as per end-of-year 2010:</p>
<p>Android #1 – 33.3 milllion</p>
<p>Symbian #2 – 31 million</p>
<p>Apple #3 – 16.2 million</p>
<p>RIM #4 – 14.6 &#8211; million</p>
<p><strong>MS #5 – 3.1 million</strong></p>
<p>Source: http://on.mash.to/rG6bfd</p>
<p>As I write this, I have my email, shared documents, and a Project Plan open on my Windows workstation and on my Linux laptop. I use these applications every single day. My documents appear and function identically across these two computers. My email appears and functions identically. The Gannt chart appears and functions identically. On my Droid phone I have read and write access to my calendar, documents, and email. With the exception of Visio and Word, I can be anywhere with an Internet connection, on a borrowed computer running OSX, Linux or Windows and be fully functional. The last of my bags on the dock contain Word and Visio. I can’t leave them behind just yet, but I’m waiting. I want to get going.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F11%2F03%2Fclimbing-out-of-the-window-and-into-the-cloud%2F&amp;title=Climbing+out+of+the+Window+and+into+the+cloud">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F11%2F03%2Fclimbing-out-of-the-window-and-into-the-cloud%2F&amp;t=Climbing+out+of+the+Window+and+into+the+cloud">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F11%2F03%2Fclimbing-out-of-the-window-and-into-the-cloud%2F&amp;title=Climbing+out+of+the+Window+and+into+the+cloud">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F11%2F03%2Fclimbing-out-of-the-window-and-into-the-cloud%2F&title=Climbing+out+of+the+Window+and+into+the+cloud&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/11/03/climbing-out-of-the-window-and-into-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Control Group Announces HIPAA Compliant Cloud Migration Service</title>
		<link>http://blog.controlgroup.com/2011/06/22/control-group-announces-hipaa-compliant-cloud-migration-service/</link>
		<comments>http://blog.controlgroup.com/2011/06/22/control-group-announces-hipaa-compliant-cloud-migration-service/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 15:06:49 +0000</pubDate>
		<dc:creator>Charlie Miller</dc:creator>
				<category><![CDATA[press]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[hipaa]]></category>
		<category><![CDATA[pronia medical systems]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1678</guid>
		<description><![CDATA[Control Group leverages Amazon Web Services; provides Pronia Medical Systems secure migration to the Amazon cloud NEW YORK&#8211;(BUSINESS WIRE)&#8211;Control Group, a technology consulting firm, today announced it will be offering collaboration services for healthcare companies looking for the scalability and cost advantages of cloud migration under the strict HIPAA requirements of a Business Associate Agreement. [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Control Group leverages Amazon Web Services; provides Pronia Medical Systems secure migration to the Amazon cloud</strong></em></p>
<p>NEW YORK&#8211;(BUSINESS WIRE)&#8211;Control Group, a technology consulting firm, today announced it will be offering collaboration services for healthcare companies looking for the scalability and cost advantages of cloud migration under the strict HIPAA requirements of a Business Associate Agreement. New York City based Control Group offers clients a bundle of services that include a comprehensive HIPAA-focused technology audit, cloud design and architecture implementation that meets the complex HIPAA requirements.</p>
<p>&#8220;Many healthcare companies are great candidates for cloud migration. They want to explore the platform for its scalability and cost advantages,&#8221; said Sholom Ellenberg, Control Group&#8217;s executive vice president of Infrastructure Services. &#8220;With this new service we offer collaboration with healthcare companies assuring that the solution will be compliant.&#8221;</p>
<p>Control Group&#8217;s innovative cloud architecture methodology leverages sophisticated automation, allowing healthcare companies to manage infrastructure on-demand in tandem with their applications. This integrated approach maximizes the advantages of <a href="http://aws.amazon.com/">AWS</a> and ensures compliance with HIPAA security and privacy requirements.</p>
<p>Control Group client <a href="http://www.proniamed.com/">Pronia Medical Systems</a>, creator of an innovative insulin dosing system used by hospitals to manage glucose delivery, has already experienced benefits from the new offering. &#8220;Control Group&#8217;s solution shortened our customer onboarding effort significantly. A new application instance in AWS can be deployed quickly, and the technology audit, design and implementation phases of the project kept our HIPAA compliance front and center,&#8221; said Brian Besterman, M.D., CIO and co-founder of Pronia.</p>
<p>&#8220;We are excited to work with Control Group to enable healthcare companies to migrate their core applications to AWS. Control Group&#8217;s innovative consulting, migration, and implementation services make it easier for customers to take advantage of AWS&#8217; secure, on-demand, pay as you go cloud services,&#8221; said Terry Wise, Director, Business Development, AWS.</p>
<p>For more information about Control Group&#8217;s <a href="http://www.controlgroup.com/case-study/hipaa-cloud">HIPAA Compliant Cloud Migration Services</a> please contact Sholom Ellenberg at 212.343.2525 x681 or visit <a href="http://www.controlgroup.com/">controlgroup.com</a>.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F06%2F22%2Fcontrol-group-announces-hipaa-compliant-cloud-migration-service%2F&amp;title=Control+Group+Announces+HIPAA+Compliant+Cloud+Migration+Service">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F06%2F22%2Fcontrol-group-announces-hipaa-compliant-cloud-migration-service%2F&amp;t=Control+Group+Announces+HIPAA+Compliant+Cloud+Migration+Service">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F06%2F22%2Fcontrol-group-announces-hipaa-compliant-cloud-migration-service%2F&amp;title=Control+Group+Announces+HIPAA+Compliant+Cloud+Migration+Service">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F06%2F22%2Fcontrol-group-announces-hipaa-compliant-cloud-migration-service%2F&title=Control+Group+Announces+HIPAA+Compliant+Cloud+Migration+Service&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/06/22/control-group-announces-hipaa-compliant-cloud-migration-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thanks to CUNY&#8217;s Technology Immersion class!</title>
		<link>http://blog.controlgroup.com/2011/04/28/thanks-to-cunys-technology-immersion-class/</link>
		<comments>http://blog.controlgroup.com/2011/04/28/thanks-to-cunys-technology-immersion-class/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 20:53:22 +0000</pubDate>
		<dc:creator>Charlie Miller</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[behavior driven development]]></category>
		<category><![CDATA[Charlie Miller]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[CUNY]]></category>
		<category><![CDATA[David Rocamora]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Evan Frohlich]]></category>
		<category><![CDATA[journalism]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1584</guid>
		<description><![CDATA[Last night I was joined by our VP of Dev Ops, David Rocamora, and one of our senior application developers, Evan Frohlich, for a visit to CUNY&#8217;s Entrepreneurial Journalism program. We were invited to be guest presenters in the program&#8217;s Technology Immersion class. This course presents students with the media, business, and journalistic opportunities presented by new and emerging [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1598" style="border: 0px;" title="CUNY Graduate School of Journalism logo" src="http://blog.controlgroup.com/wp-content/uploads/2011/04/cuny.png" alt="CUNY Graduate School of Journalism" width="364" height="79" /></p>
<p>Last night I was joined by our VP of Dev Ops, David Rocamora, and one of our senior application developers, Evan Frohlich, for a visit to <a href="http://www.journalism.cuny.edu/academics/entrepreneurial-journalism/">CUNY&#8217;s Entrepreneurial Journalism</a> program. We were invited to be guest presenters in the program&#8217;s <a href="http://www.journalism.cuny.edu/academics/entrepreneurial-journalism/technology-immersion/">Technology Immersion</a> class. This course presents students with the media, business, and journalistic opportunities presented by new and emerging technologies and trends. It was a great, smart group of students from a wide range of backgrounds, each with a unique idea for a business or product at the crossroads of technology and journalism. Lots of neat innovation happening there.</p>
<p>I spoke a bit out CG, our history, capabilities, and process, while Dave gave an excellent talk on the Cloud, and how software and infrastructure are intimately connected. (Remember what happened <a href="http://blog.controlgroup.com/2011/04/21/everything-fails-sometime/">last week</a>?) Evan spoke about behavior driven development, and offered some guidance on avoiding feature creep, and releasing early and often.</p>
<p>It was great to be back in a classroom with these guys. We can&#8217;t wait to see how the student&#8217;s business and product ideas gel, and look forward to using some of their products in the future!</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F28%2Fthanks-to-cunys-technology-immersion-class%2F&amp;title=Thanks+to+CUNY%26%238217%3Bs+Technology+Immersion+class%21">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F28%2Fthanks-to-cunys-technology-immersion-class%2F&amp;t=Thanks+to+CUNY%26%238217%3Bs+Technology+Immersion+class%21">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F28%2Fthanks-to-cunys-technology-immersion-class%2F&amp;title=Thanks+to+CUNY%26%238217%3Bs+Technology+Immersion+class%21">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F28%2Fthanks-to-cunys-technology-immersion-class%2F&title=Thanks+to+CUNY%26%238217%3Bs+Technology+Immersion+class%21&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/04/28/thanks-to-cunys-technology-immersion-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring Machines in the Cloud: Our Approach</title>
		<link>http://blog.controlgroup.com/2011/04/25/configuring-machines-in-the-cloud-our-approach/</link>
		<comments>http://blog.controlgroup.com/2011/04/25/configuring-machines-in-the-cloud-our-approach/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 13:00:03 +0000</pubDate>
		<dc:creator>David Rocamora</dc:creator>
				<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[uptime]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1578</guid>
		<description><![CDATA[We&#8217;ve done a lot of work recently to revamp the way we deploy computers in the cloud and I wanted to share a little bit about how we&#8217;re doing this at a pretty low level to give you an idea of how we are approaching this. Our software and processes are cloud agnostic, but we [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve done a lot of work recently to revamp the way we deploy computers in the cloud and I wanted to share a little bit about how we&#8217;re doing this at a pretty low level to give you an idea of how we are approaching this. Our software and processes are cloud agnostic, but we mostly work with <a href="http://aws.amazon.com">Amazon Web Services</a> because we feel that they offer the best solution for most of our clients at this time.</p>
<p>We maintain two base Linux images as part of our cloud toolkit. The only difference between the two images is their architecture. One is 64bit and the other is 32bit. The images are minimal&#8211; they have just enough software and configuration to get them off the ground and configured. We have copies of the images in each region in Amazon, but when it comes to maintenance and upgrades we really only deal with the two master images. All of the computers that we deploy in EC2 come from these two images.</p>
<p>The base image by itself is not very useful. When a computer is instantiated from one of the images, our toolkit combines it with our <a href="http://www.puppetlabs.com/">Puppet </a>repository and some instance specific configuration. The Puppet repository contains the Puppet manifests for how we deploy software. The repository is where we store our collective knowledge around deploying successful software. The instance specific configuration is crafted by the developers and operations teams to pick and choose the appropriate things from the Puppet repository provide the very specific configuration about how to deploy the server and the application that will run on it. As the instance boots, it configures itself, installing the software and making the changes required to bring it into service.</p>
<p>This is all pretty low level, but it provides some capabilities that makes our solution very flexible:</p>
<ul>
<li>With only two images to maintain, <strong>keeping software up to date is simple</strong>. We anticipate that we will be releasing new images about once a quarter to capture any updates to the packages in the base system.</li>
<li><strong>Everything is version controlled.</strong> It is easy for us to see what a machine looked like on a specific date or understand the changes that have been made to how the software is configured on an instance.</li>
<li><strong>The instances are very self sufficient.</strong> There is no single point of failure that would prevent instances from starting correctly.</li>
<li><strong>This is all very portable.</strong> With just a little bit of work we can deploy things in a different region of Amazon. Also, our Puppet code and instance specific configurations can work in more places than just Amazon. With a little bit of work to recreate the base images in another platform we can consistently and predictable recreate infrastructure anywhere, giving our clients the ability to choose the right solution for them.</li>
</ul>
<p>This last item is something that should be on everyone&#8217;s mind (especially considering <a href="http://www.nytimes.com/2011/04/23/technology/23cloud.html">the outage at Amazon last week</a>). As <a href="http://blog.controlgroup.com/2011/04/21/everything-fails-sometime/">Steve said last week</a>, everything fails and you need to design your infrastructure and applications around that. A process for redeploying your infrastructure in another AWS region or a different cloud is an important part of building a very reliable service in the cloud. It is hard to say what the next kind of failure in the cloud will be like, but with a process like ours we can be ready to deal with outage when it happens.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F25%2Fconfiguring-machines-in-the-cloud-our-approach%2F&amp;title=Configuring+Machines+in+the+Cloud%3A+Our+Approach">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F25%2Fconfiguring-machines-in-the-cloud-our-approach%2F&amp;t=Configuring+Machines+in+the+Cloud%3A+Our+Approach">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F25%2Fconfiguring-machines-in-the-cloud-our-approach%2F&amp;title=Configuring+Machines+in+the+Cloud%3A+Our+Approach">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F25%2Fconfiguring-machines-in-the-cloud-our-approach%2F&title=Configuring+Machines+in+the+Cloud%3A+Our+Approach&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/04/25/configuring-machines-in-the-cloud-our-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everything Fails Sometime</title>
		<link>http://blog.controlgroup.com/2011/04/21/everything-fails-sometime/</link>
		<comments>http://blog.controlgroup.com/2011/04/21/everything-fails-sometime/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 18:13:14 +0000</pubDate>
		<dc:creator>Stephen Croll</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data center]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1572</guid>
		<description><![CDATA[Control Group designs cloud-based solutions with the philosophy that every system fails at some point. Embrace this chaos and build for the rainy day. Today we are seeing some major outages on Amazon&#8217;s us-east-1 region. Reddit and Quora are two of the high profile victims, but this is affecting everyone in a very popular data [...]]]></description>
			<content:encoded><![CDATA[<p>Control Group designs cloud-based solutions with the philosophy that every system fails at some point. Embrace this chaos and build for the rainy day. Today we are seeing some <a href="http://money.cnn.com/2011/04/21/technology/amazon_server_outage/">major outages on Amazon&#8217;s us-east-1 region</a>. Reddit and Quora are two of the high profile victims, but this is affecting everyone in a very popular data center.</p>
<p>You can design around regional performance degradation though. Years ago, having global traffic management in place was an expensive pipe dream. Today you can easily turn up another EC2 region and use a service like <a href="http://dyn.com/enterprise-dns/dynect-platform">Dynect</a> or <a href="http://www.akamai.com/html/technology/products/gtm.html">Akamai GTM</a> to provide failover and/or load balancing. Even better, consider making your systems portable so you can have multiple cloud providers and maintain your machines and applications with Puppet.</p>
<p>3-5 years ago this would have taken a year of planning, purchasing and hands-on labor to implement two data centers. <a href="http://www.controlgroup.com/case-study/science-and-health-publishing">Earlier this year</a> we were able to create two data centers with complex infrastructure on EC2 and active/active load balancing in under two months and for a fraction of the cost.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F21%2Feverything-fails-sometime%2F&amp;title=Everything+Fails+Sometime">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F21%2Feverything-fails-sometime%2F&amp;t=Everything+Fails+Sometime">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F21%2Feverything-fails-sometime%2F&amp;title=Everything+Fails+Sometime">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F21%2Feverything-fails-sometime%2F&title=Everything+Fails+Sometime&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/04/21/everything-fails-sometime/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Public/Private Debate</title>
		<link>http://blog.controlgroup.com/2011/04/17/the-publicprivate-debate/</link>
		<comments>http://blog.controlgroup.com/2011/04/17/the-publicprivate-debate/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 14:07:49 +0000</pubDate>
		<dc:creator>Stephen Croll</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1534</guid>
		<description><![CDATA[I thought Phil Wainwright&#8217;s most recent article on private clouds (as well as the first in the series) was an interesting perspective. I share many of the sentiments, but can&#8217;t go quite so far as to say the idea of the private cloud is discredited. In the end it depends on the business and it depends on the [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>I thought <a href="http://www.zdnet.com/blog/saas/private-cloud-discredited-part-2/1289">Phil Wainwright&#8217;s most recent article on private cloud</a>s (as well as the<a href="http://www.zdnet.com/blog/saas/private-cloud-discredited-part-1/1204"> first in the series</a>) was an interesting perspective. I share many of the sentiments, but can&#8217;t go quite so far as to say the idea of the private cloud is discredited. In the end it depends on the business and it depends on the applications you are hosting. Even Adrian Cockcroft, the writer of the <a href="http://perfcap.blogspot.com/2011/03/how-not-to-build-private-cloud.html">blog that Phil cites as final proof</a>, has updated his post to say:</p>
<blockquote><p>&#8220;&#8230;to clarify, that doesn&#8217;t mean that I&#8217;m against private clouds or don&#8217;t think they exist, because $, FUD and internal politics are a fact of life that constrain what can be done.&#8221;</p></blockquote>
<p>Private clouds, whether hosted or self-hosted, can be useful as stepping stones for organizations that have existing applications that may not fit into the public cloud architecture. Some of these applications may require better performance SLA&#8217;s. Also, private cloud providers are more amenable to custom arrangements. Try hosting a specialized device like an IPS or IDS in a public cloud where all traffic is guaranteed to only be delivered to the target device.  Many enterprise organizations have decades of IT security policies that won&#8217;t and perhaps shouldn&#8217;t simply go away in favor of adopting a public cloud.  Public clouds are secure solutions, but some organizations will have additional requirements, like the ability to discern rogue traffic patterns from typical spikes in demand. You can build this into the individual instances and applications, but that isn&#8217;t what most companies have done.</p>
<p>We tend to work with a client to find out what their requirements are and stay away from radical statements. The cloud, public or private, is just one more tool and can&#8217;t be seen as a solution in and of itself.</p>
</div>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F17%2Fthe-publicprivate-debate%2F&amp;title=The+Public%2FPrivate+Debate">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F17%2Fthe-publicprivate-debate%2F&amp;t=The+Public%2FPrivate+Debate">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F17%2Fthe-publicprivate-debate%2F&amp;title=The+Public%2FPrivate+Debate">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F04%2F17%2Fthe-publicprivate-debate%2F&title=The+Public%2FPrivate+Debate&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/04/17/the-publicprivate-debate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventures with Enterprise Firewalls, Elastic IP&#8217;s and Auto Scaling</title>
		<link>http://blog.controlgroup.com/2011/03/31/adventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling/</link>
		<comments>http://blog.controlgroup.com/2011/03/31/adventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 18:23:44 +0000</pubDate>
		<dc:creator>Stephen Croll</dc:creator>
				<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[integration]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1529</guid>
		<description><![CDATA[One distinction between our startup and enterprise clients is that enterprise typically brings the baggage of legacy systems. While a startup is designing for a cloud architecture, a company that has a technology history sometimes needs to integrate new systems with existing services. In a recent engagement Control Group needed to work with a client [...]]]></description>
			<content:encoded><![CDATA[<p>One distinction between our startup and enterprise clients is that enterprise typically brings the baggage of legacy systems. While a startup is designing for a cloud architecture, a company that has a technology history sometimes needs to integrate new systems with existing services.</p>
<p>In a recent engagement Control Group needed to work with a client to have application instances on <a href="http://aws.amazon.com/ec2/">EC2</a> communicate with a secured web service in a traditional data center. Typically we would work with a client to move this service to EC2. In this case, because the service is considered to be shared infrastructure that is used and funded by existing applications we needed to design the infrastructure and application to make a call back to a traditional data center.</p>
<p>On a side note, mixed infrastructure approaches are not ideal, but common when migrating complex organizations to <a href="http://en.wikipedia.org/wiki/Infrastructure_as_a_service">IAAS</a> solutions. Most mature IT organizations will shy away from forklifting a company’s technology platforms wholesale into the cloud. The larger the migration, the bigger the bang when something is overlooked. Change too much in an environment and you won&#8217;t know where the problems are coming from, so a major part of moving an enterprise customer to the cloud is planning the roadmap of the migration carefully and not being greedy.</p>
<p>One of the technical challenges in this particular project was that the service that we were integrating with requires that traffic originate from a known and registered IP address. Although EC2 will provide an instance with a public IP address, there is no way to know what that address will be ahead of time. We decided to use Elastic IP (EIP) addresses to solve this problem. An EIP functions like a NAT on a traditional firewall. You can allocate the EIP and then associate it with an instance as needed.</p>
<p>EIP&#8217;s worked well until we implemented auto-scaling. Auto-scaling groups have no support for associating a pre-allocated EIP to an instance. To implement this we created some scripts that would make the API calls to determine a free EIP and associate it to the instance. (This means that the instance will have temporary access to execute API commands. We&#8217;ve designed a fairly secure take on temporarily providing AWS API tools to an instance, but that is a different blog post. Coming soon.)</p>
<p>Here is the real problem with the approach. The script to associate the EIP worked perfectly, so long as multiple machines weren&#8217;t executing it at once. The problem is that the Elastic IP API commands do not support a transactional assignment. Worse yet, at least in our use case, <strong>it is the last instance requesting the EIP and not the first that gets associated to the IP</strong>. This is a major problem if you want to associate EIP&#8217;s with members of an auto-scaling group that need to scale up by more than one instance at a time. It will leave you with members of the group that could possibly not have an Elastic IP.</p>
<p>There are a myriad of ways to tackle this issue. We considered options for programatically brokering the IP&#8217;s by building an application that would manage the EIP resources. The application would provide an IP on request and then return IP&#8217;s that were no longer in use back into the system through a background recovery process. Such a service is pretty easy to write, but it wasn&#8217;t in scope for the current project. Also, there are longer-term solutions that we can consider with the launch of the new and improved <a href="http://aws.typepad.com/aws/2011/03/new-approach-amazon-ec2-networking.html">VPC with NATing</a>.</p>
<div id="attachment_1553" class="wp-caption alignleft" style="width: 516px"><a href="http://blog.controlgroup.com/wp-content/uploads/2011/03/Blog-post2.jpg"><img class="size-full wp-image-1553" src="http://blog.controlgroup.com/wp-content/uploads/2011/03/Blog-post2.jpg" alt="Interim Solutions" width="506" height="224" /></a><p class="wp-caption-text">Interim Solutions</p></div>
<p>The current favored approach is to use a proxy server like <a href="http://www.squid-cache.org/">Squid</a> to limit the number of servers that require IP addresses. Two or more instances with Squid configured as a forward proxy distributed across multiple availability zones and traffic managed by an Elastic Load Balancer to provide HA would provide a redundant and fairly high performance solution. For now, as a work around we have implemented some staggering of the auto-scaling policies as a way to mitigate against multiple instances spinning up at the same time. Staggering is a serviceable solution for testing, but not for production where auto scaling multiple farms of servers that will need access to the client’s data center tier is a requirement. Eventually, we will move forward with the proxy or VPC solution.</p>
<p>In summary, enterprises with complex interdependent applications can lead to interesting challenges when migrating to the cloud. Resources, as simple as IP addresses, can function in a fundamentally different way than a typical IT organization is used to. Oftentimes this can lead to fear, uncertainty, and doubt, but the benefits of Infrastructure as a Service are clear: Ease of provisioning, demand-based resource allocation rather than over provisioning, etc.  As long as proper planning, system architecture, implementation, and testing are performed, a complex enterprise can begin making its way to the cloud and begin to eliminate the FUD on the ground.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F31%2Fadventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling%2F&amp;title=Adventures+with+Enterprise+Firewalls%2C+Elastic+IP%26%238217%3Bs+and+Auto+Scaling">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F31%2Fadventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling%2F&amp;t=Adventures+with+Enterprise+Firewalls%2C+Elastic+IP%26%238217%3Bs+and+Auto+Scaling">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F31%2Fadventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling%2F&amp;title=Adventures+with+Enterprise+Firewalls%2C+Elastic+IP%26%238217%3Bs+and+Auto+Scaling">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F31%2Fadventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling%2F&title=Adventures+with+Enterprise+Firewalls%2C+Elastic+IP%26%238217%3Bs+and+Auto+Scaling&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/03/31/adventures-with-enterprise-firewalls-elastic-ips-and-auto-scaling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Clients Continue To Warm To The Cloud</title>
		<link>http://blog.controlgroup.com/2011/03/23/enterprise-clients-continue-to-warm-to-the-cloud/</link>
		<comments>http://blog.controlgroup.com/2011/03/23/enterprise-clients-continue-to-warm-to-the-cloud/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 21:25:26 +0000</pubDate>
		<dc:creator>Stephen Croll</dc:creator>
				<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1523</guid>
		<description><![CDATA[Lately we&#8217;ve been working with clients that haven&#8217;t been the typical EC2 infrastructure consumer. Historically, it has been the startup companies that we work with that have been interested in AWS for all the expected reasons: flexibility, pay-for-what-you-need, access to higher end services like load balancing and HA database deployments, etc. Recently we have been noticing that our [...]]]></description>
			<content:encoded><![CDATA[<p>Lately we&#8217;ve been working with clients that haven&#8217;t been the typical <a href="http://aws.amazon.com/ec2/">EC2</a> infrastructure consumer. Historically, it has been the startup companies that we work with that have been interested in <a href="http://aws.amazon.com/">AWS</a> for all the expected reasons: flexibility, pay-for-what-you-need, access to higher end services like load balancing and HA database deployments, etc. Recently we have been noticing that our more established enterprise clients have taken interest in these capabilities and for largely the same reasons.</p>
<p>Large enterprises looking at cloud infrastructure bring their own requirements and challenges. We plan to write a series of blog posts about Control Group&#8217;s experiences with these types of clients and what we learned. Some of the posts will be about the projects and their politics, and some will be about technology approach. There are some interesting technology and organizational challenges that we will discuss, so stay tuned.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F23%2Fenterprise-clients-continue-to-warm-to-the-cloud%2F&amp;title=Enterprise+Clients+Continue+To+Warm+To+The+Cloud">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F23%2Fenterprise-clients-continue-to-warm-to-the-cloud%2F&amp;t=Enterprise+Clients+Continue+To+Warm+To+The+Cloud">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F23%2Fenterprise-clients-continue-to-warm-to-the-cloud%2F&amp;title=Enterprise+Clients+Continue+To+Warm+To+The+Cloud">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2011%2F03%2F23%2Fenterprise-clients-continue-to-warm-to-the-cloud%2F&title=Enterprise+Clients+Continue+To+Warm+To+The+Cloud&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2011/03/23/enterprise-clients-continue-to-warm-to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rapidly Prototyping Tagatag on Google App Engine</title>
		<link>http://blog.controlgroup.com/2010/12/06/rapidly-prototyping-tagatag-on-google-app-engine/</link>
		<comments>http://blog.controlgroup.com/2010/12/06/rapidly-prototyping-tagatag-on-google-app-engine/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 13:00:50 +0000</pubDate>
		<dc:creator>David Rocamora</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[QR code]]></category>
		<category><![CDATA[tagatag]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1254</guid>
		<description><![CDATA[Google App Engine is Google&#8217;s platform-as-a-service for developing web applications. There&#8217;s been some people saying goodbye to GAE, and perhaps in response Google has announced several enhancements to the service. In the midst of all of this, a few of us at Control Group have been developing Tagatag: an Android and iPhone application for commenting [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://appengine.google.com">Google App Engine</a> is Google&#8217;s platform-as-a-service for developing web applications. There&#8217;s been some people <a href="http://www.carlosble.com/?p=719">saying goodbye to GAE</a>, and perhaps in response <a href="http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html">Google has announced several enhancements to the service</a>.</p>
<p>In the midst of all of this, a few of us at Control Group have been developing <a href="http://www.tagatag.co">Tagatag</a>: an Android and iPhone application for commenting on barcodes that uses web services running on Google App Engine.</p>
<div class="wp-caption alignleft" style="width: 260px"><img class="      " title="Scan this QR code with Tagatag to join the conversation!" src="http://chart.apis.google.com/chart?chs=250x250&amp;cht=qr&amp;chl=http://www.tagatag.co/found/CGLovesTagatag&amp;chld=L|0" alt="" width="250" height="250" /><p class="wp-caption-text">Scan this QR code with Tagatag to join the conversation!</p></div>
<p>Barcodes are everywhere around us. You can find them on advertising, products, places and even people. Tagatag provides you with a virtual paint marker to let you make your mark on all of these codes anonymously. <a href="http://www.tagatag.co/found/GetTagatag">Download the Tagatag app</a> and give it a try. Scan a barcode to see comments people have left for you and then leave some for them.</p>
<p>We chose Google App Engine for the back end of Tagatag for a few reasons:</p>
<ul>
<li><strong>It&#8217;s quick</strong> &#8211; You sign up for an account, <a href="http://code.google.com/appengine/downloads.html">download the SDK</a> and you&#8217;re developing. The development server in the SDK lets me run the application on my desktop and interact with the code as I&#8217;m writing it.  Uploading new versions, rolling back old ones, or performing maintenance is a snap with the GAE dashboard.</li>
<li><strong>It&#8217;s simple</strong> &#8211; There&#8217;s not much to the web service. It&#8217;s small and simple. We used the <a href="http://code.google.com/appengine/docs/python/tools/webapp/">webapp framework</a> because we didn&#8217;t feel we needed anything else. It makes for a very concise application. Believe it or not, there are about 300 lines of code for the GAE part of Tagatag.</li>
<li><strong>It&#8217;s scalable</strong> &#8211; We don&#8217;t have to worry about what we do when Tagatag becomes popular. We&#8217;ll just raise our <a href="http://code.google.com/appengine/docs/billing.html">billing quotas in GAE</a> and let them handle spinning up new instances or expanding the datastore. Knowing that you don&#8217;t have to be concerned about scaling makes things a lot more fun.</li>
</ul>
<p>﻿﻿I&#8217;m happy that GAE let us bring Tagatag to you so quickly. So, when it&#8217;s available at the end of the week, be sure to <a href="http://www.tagatag.co/found/GetTagatag">download the app</a>, tag a tag and make your mark!</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F12%2F06%2Frapidly-prototyping-tagatag-on-google-app-engine%2F&amp;title=Rapidly+Prototyping+Tagatag+on+Google+App+Engine">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F12%2F06%2Frapidly-prototyping-tagatag-on-google-app-engine%2F&amp;t=Rapidly+Prototyping+Tagatag+on+Google+App+Engine">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2010%2F12%2F06%2Frapidly-prototyping-tagatag-on-google-app-engine%2F&amp;title=Rapidly+Prototyping+Tagatag+on+Google+App+Engine">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F12%2F06%2Frapidly-prototyping-tagatag-on-google-app-engine%2F&title=Rapidly+Prototyping+Tagatag+on+Google+App+Engine&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2010/12/06/rapidly-prototyping-tagatag-on-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Hadoop and Amazon Elastic MapReduce to Process Your Data More Efficiently</title>
		<link>http://blog.controlgroup.com/2010/10/13/hadoop-and-amazon-elastic-mapreduce-analyzing-log-files/</link>
		<comments>http://blog.controlgroup.com/2010/10/13/hadoop-and-amazon-elastic-mapreduce-analyzing-log-files/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 17:00:09 +0000</pubDate>
		<dc:creator>Ubin Malla</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[Amazon Elastic MapReduce]]></category>
		<category><![CDATA[Amazon RDS Database]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data processing]]></category>
		<category><![CDATA[distributed resources]]></category>
		<category><![CDATA[distributued computing]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Hadoop Distributed File System]]></category>
		<category><![CDATA[HashMap]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[parallel clusters]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pig]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[reduce]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Writable interface]]></category>

		<guid isPermaLink="false">http://blog.controlgroup.com/?p=1087</guid>
		<description><![CDATA[If the amount of data in your enterprise is overwhelming and/or you&#8217;re looking for ways to process said data more efficiently, then Hadoop and Amazon Elastic MapReduce may be your answer. MapReduce frameworks allow developers without much knowledge on distributed computing to write applications that take advantage of distributed resources. Hadoop MapReduce is an implementation [...]]]></description>
			<content:encoded><![CDATA[<p>If the amount of data in your enterprise is overwhelming and/or you&#8217;re looking for ways to process said data more efficiently, then <a title="Hadoop mapReduce" href="http://hadoop.apache.org/mapreduce/" target="_blank">Hadoop</a> and <a title="Amazon Elastic MapReduce" href="http://aws.amazon.com/elasticmapreduce/" target="_blank">Amazon Elastic MapReduce</a> may be your answer.</p>
<p>MapReduce frameworks allow developers without  much knowledge on distributed computing  to write applications that take  advantage of distributed resources. Hadoop MapReduce is an implementation of such a model.</p>
<p><strong>Background</strong>:</p>
<p>Recently, we developed a web asset delivery service for one of our clients that would allow businesses to display high quality assets from a CDN in their websites for a monthly fee. Users&#8217; accounts would be associated with bandwidth limits based on different account levels associated with a pricing model. This meant that we needed a way to provide users with information on monthly bandwidth utilization across their websites in order to defend the pricing model. The solution to this was to implement web log parsing using Hadoop’s MapReduce framework in conjunction with Amazon’s cloud-based Elastic MapReduce service.</p>
<p>Here&#8217;s how <strong>Hadoop MapReduce </strong>works:</p>
<p>Hadoop MapReduce is a Java-based framework that allows you to write applications that process high volumes of data in parallel clusters. Hadoop uses a distributed file storage system called <a title="HDFS" href="http://hadoop.apache.org/hdfs/docs/current/hdfs_design.html" target="_blank">Hadoop Distributed File System</a><img class="alignright size-medium wp-image-1098" style="margin: 10px;" title="mapreduce-logo" src="http://blog.controlgroup.com/wp-content/uploads/2010/09/mapreduce-logo-300x91.jpg" alt="" width="300" height="91" /> (HDFS) to store large amount of data across multiple nodes. It supports most major platforms and MapReduce programs can be written in Python, Ruby, php, Pig, etc., in addition to Java.  Using Hadoop, we were able to write a simple Java program that could easily parse through raw data in log files collected by the CDN and filter relevant bandwidth utilization information.</p>
<p>The basic idea around a map-reduce model is that you write two functions &#8212; map() and reduce() &#8212; to divide up your programming tasks and let the framework manage most of the crunching. Map and reduce functions take in key-value pairs (using data types that implement Hadoop’s Writable interface) as the input and output. When you start a map reduce process, you pass in a data file in HDFS as the input. Hadoop divides up the inputs into smaller pieces that the map function can consume. Likewise, the outputs of the map function are grouped together in logical chunks by Hadoop and sent to the reduce function for processing.  Both map and reduce functions can run in parallel &#8212; Hadoop can distribute the tasks across various clusters of nodes.</p>
<p>In our case, we simply pass the log file(s) (copied to HDFS) as input to the map reduce program.  Hadoop merges all log files specified and serializes each log entry to the datatype expected (Text) before passing them as inputs to the map reduce tasks. Our map function then parses each long entry individually and stores the relevant data (bandwidth info) in a HashMap type object (MapWritable) which is then sent as another key-value pair (&lt;asset path – MapWritable object&gt;) for the reduce function to work with. The reduce function then aggregates the data based on user accounts, date, user agent, etc. and saves it to a database (<a title="Amazon RDS" href="http://aws.amazon.com/rds/" target="_blank">Amazon RDS Database</a>). We can then query the database to pull all types of information around utilization and send out notifications to users, for example, if their account is over the monthly cap, etc.</p>
<p>Below is the structure of a sample map reduce program written in Java:</p>
<pre>public class LogProcessor {

  public static class LogMap
            extends Mapper&lt;LongWritable, Text, Text, MapWritable&gt; {
    public void map( LongWritable key, Text value, Context context ) {
      MapWritable logEntry = new MapWritable();
      //parse log file
      ...
      Text key = new Text();
      //key = resource-path;

      context.write( key, logEntry);
    }
  }

  public static class LogReduce
            extends Reducer&lt;Text, MapWritable, DBWritable, NullWritable&gt; {
    public void reduce( Text key, Iterable&lt;MapWritable&gt; values, Context context ) {
      while(values.iterator().hasNext()) {
        MapWritable entry = values.iterator().next();
        //process entry and write to db
        ...
      }
    }
  }

  public static void main(String[] args) {
    // Set up a new mapreduce job
    Job job = new Job();
    job.setJarByClass(LogProcessor.class);    //register the main class

    FileInputFormat.addInputPath( job, new Path(&lt;Input file path&gt;) );
    FileOutputFormat.setInputPath( job, new Path(&lt;output file path&gt; ) );

    job.setMapperClass( LogMap.class );
    job.setReducerClass( LogReduce.class );

    job.setOutputKeyClass( Text.class );
    job.setOutputValueClass( MapWritable.class );

    job.waitForCompletion(true) ? System.exit(0) : System.exit(1);
  }
}</pre>
<p>The program is packaged in a jar file (with dependencies) that Hadoop can run.</p>
<p><strong>And here&#8217;s how to utilize Amazon’s Elastic MapReduce service to run the program</strong>:</p>
<p>At Control Group, we leverage Amazon’s cloud based infrastructure <a href="http://blog.controlgroup.com/2009/09/14/were-now-amazon-web-services-partners/">heavily</a> in <a href="http://blog.controlgroup.com/2009/08/07/a-look-at-amazons-elastic-load-balancer/">lots</a> of <a href="http://blog.controlgroup.com/2010/07/29/automated-linux-server-deployment-with-amazon-ec2-and-puppet/">projects</a>. It basically allows us to cost effectively (pay by usage) deploy applications that need to scale up very easily. Amazon’s Elastic MapReduce service is the perfect fit for running our MapReduce application described above. It’s easy to set up, and it also shields off some of the infrastructure/maintenance issues around running Hadoop.</p>
<p>In a nutshell, the Elastic MapReduce service runs a hosted Hadoop instance on an EC2 instance (master), and it&#8217;s able to instantly provision other pre-configured EC2 instances (slave nodes) to distribute the MapReduce process, which are all terminated once the MapReduce tasks complete running. Amazon allows us to specify up to 20 EC2 instances for data intensive processing. It also provides the option to upgrade your Elastic MapReduce to increase EC2 instance count.</p>
<p>So to run the map reduce service, we create a new “Job Flow” via the AWS console, the command line utility (ruby based) or an API provided by Amazon. A job flow is a set of steps that Elastic MapReduce runs. You basically provide some configuration information (number of EC2 instances to use and bootstrap actions) and the location of your map reduce program ( usually an Amazon S3 bucket path). Job flow records/logs can be viewed at the AWS console. You can also explicitly instruct Elastic MapReduce to keep the master EC2 instance alive for debugging purposes – you can then <strong>ssh</strong> into the instance to check the log files created by Hadoop, etc.</p>
<p><img class="alignnone size-full wp-image-1104" title="Elastic MapReduce" src="http://blog.controlgroup.com/wp-content/uploads/2010/11/elasticMapReduce.png" alt="" width="567" height="467" /></p>
<p>In summary, Hadoop&#8217;s MapReduce framework allows us to write simple  applications that process high volumes of data in a distributed computing  environment while Amazon&#8217;s MapReduce service provides a cost-effective means of implementing such a solution.</p>

<div class="jwsharethis">
Share this: 
<a target="_blank" href="http://digg.com/submit?url=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F10%2F13%2Fhadoop-and-amazon-elastic-mapreduce-analyzing-log-files%2F&amp;title=Using+Hadoop+and+Amazon+Elastic+MapReduce+to+Process+Your+Data+More+Efficiently">
<img src="/wp-content/themes/journalist/images/share_icons/digg.png" alt="Share this page via Digg this" />
</a>
<a target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F10%2F13%2Fhadoop-and-amazon-elastic-mapreduce-analyzing-log-files%2F&amp;t=Using+Hadoop+and+Amazon+Elastic+MapReduce+to+Process+Your+Data+More+Efficiently">
<img src="/wp-content/themes/journalist/images/share_icons/facebook.png" alt="Share this page via Facebook" />
</a>
<a target="_blank" href="http://twitter.com/home?status=I+like+http%3A%2F%2Fblog.controlgroup.com%2F2010%2F10%2F13%2Fhadoop-and-amazon-elastic-mapreduce-analyzing-log-files%2F&amp;title=Using+Hadoop+and+Amazon+Elastic+MapReduce+to+Process+Your+Data+More+Efficiently">
<img src="/wp-content/themes/journalist/images/share_icons/twitter.png" alt="Share this page via Twitter" />
</a>
<a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.controlgroup.com%2F2010%2F10%2F13%2Fhadoop-and-amazon-elastic-mapreduce-analyzing-log-files%2F&title=Using+Hadoop+and+Amazon+Elastic+MapReduce+to+Process+Your+Data+More+Efficiently&source=Control+Group+Blog">
<img src="/wp-content/themes/journalist/images/share_icons/linkedin.png" alt="Share this with Linked in" />
</a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.controlgroup.com/2010/10/13/hadoop-and-amazon-elastic-mapreduce-analyzing-log-files/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

