<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>CloudFoundry.com Blog</title>
	
	<link>http://blog.cloudfoundry.com</link>
	<description>The Latest Cloud Foundry Updates</description>
	<lastBuildDate>Mon, 20 May 2013 18:57:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cloudfoundry/org" /><feedburner:info uri="cloudfoundry/org" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://superfeedr.com/hubbub" /><feedburner:emailServiceId>cloudfoundry/org</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Static.com Adds Hadoop Support for Cloud Foundry</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/b1TfTryQick/</link>
		<comments>http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/#comments</comments>
		<pubDate>Mon, 20 May 2013 18:57:46 +0000</pubDate>
		<dc:creator>Jake Farrell</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[cloud foundry]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[Static]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=5255</guid>
		<description><![CDATA[In this guest post, Jake Farrell, CTO for Static.com, explains how the major shift in the hosting industry towards platforms for high developer productivity and data-centric applications led them to build their Platform as a Service using Cloud Foundry with &#8230; <a href="http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><em>In this guest post, Jake Farrell, CTO for Static.com, explains how the major shift in the hosting industry towards platforms for high developer productivity and data-centric applications led them to build their Platform as a Service using Cloud Foundry with Hadoop support.</em></p>
<div class="series-box">
  Test Static.com for Cloud <br /> Foundry Core Compatibility <a href="http://core.cloudfoundry.org/?api_endpoint=api.static.me">here</a>.
</div>
<p>The hosting industry is undergoing a dramatic transformation due to increasing demand for self-service cloud based capabilities. To greet this shift, <a href="http://www.static.com/">Static.com</a>, a subsidiary of Catalog.com, is leveraging 19 years of hosting experience, and adopting Cloud Foundry as the foundation for its Platform as a Service (PaaS). This move demonstrates the company&#8217;s commitment to providing modern, easily-installed and managed cloud-based solutions to hosting companies and enterprises.</p>
<p>To address the demand for self-service cloud hosting, Static has designed the Static Cloud Manager, a robust yet easy-to-use interface. Static&#8217;s Cloud Manager leverages Cloud Foundry to allow end users and enterprises to configure, deploy and scale applications and services in seconds. Additionally, Static has expanded on Cloud Foundry’s core platform and developed a growing catalog of OSS applications, frameworks and services for end users to choose from.</p>
<p>With this growing array of options comes a greater need for insight into application metrics and usage patterns. Static has integrated Apache Hadoop with Cloud Foundry as one of the first steps in what it sees as the cloud&#8217;s next major offering: Analytics as a Service (AaaS). Thanks to the power and flexibility of Cloud Foundry, these robust new offerings are rapidly evolving the cloud.</p>
<p><strong>Static adds Apache Hadoop to Cloud Foundry</strong></p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/1KGT2fx0PxpqAHVcJmD8G7gxQw9kyMGOrNRYpnw.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/1KGT2fx0PxpqAHVcJmD8G7gxQw9kyMGOrNRYpnw.png?resize=242%2C300" alt="1KGT2fx0PxpqAHVcJmD8G7gxQw9kyMGOrNRYpnw" class="alignleft size-medium wp-image-5256" data-recalc-dims="1" /></a></p>
<p>As PaaS and Infrastructure as a Service (IaaS) become the new hosting standard, having the ability to gain insight into usage and the performance of sites and cloud-based applications is essential. Static believes that the AaaS offering will allow users to make educated decisions about their sites and applications based on usage patterns. The first step to achieving this is to be able to store and crunch large amounts of big data into usable metrics, and Apache Hadoop fits this need perfectly.</p>
<p><a href="https://github.com/staticcorp/vcap-services-hadoop">Adding services like Apache Hadoop to Cloud Foundry</a> allows Static’s users to easily add cost-effective big data solutions to address custom application needs. Adding Apache Hadoop as a pluggable service inside Cloud Foundry is the first step to automating AaaS to any site or application within the PaaS, enabling customizable metrics and immediate insight into usage patterns.</p>
<p><strong>The Shift in Hosting</strong></p>
<p>Traditional hosting offers minimal choices to the user, forcing them into shared pools where sites and applications are not guaranteed any dedicated resources. Shared hosting has worked for many users and hosting companies, but Static has seen an increase in demand from users who are switching to Virtual Private Servers (VPS) solely for the ability to have a dedicated set of resources and the freedom to choose what they run. This use case places the burden on the user to install, setup and administer the entire process, from start to finish.</p>
<p>Static’s goal was to rethink this approach and to allow for users to have the ability to choose:</p>
<p>• An expanding applications list ready to be installed with one click<br />• All the latest languages and version to choose from<br />• Latest frameworks ready to be use<br />• Full control over memory limits<br />• Ability to scale instances easily<br />• Choose from array of services<br />• Sync code between test and production environments<br />• Backup and rollback applications and services with ease</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/1gG0q_vq_MT7px9tHTWBvEikx0zGSHB1PHC0T.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/1gG0q_vq_MT7px9tHTWBvEikx0zGSHB1PHC0T.png?resize=584%2C420" alt="1gG0q_vq_MT7px9tHTWBvEikx0zGSHB1PHC0T" class="aligncenter size-large wp-image-5257" data-recalc-dims="1" /></a></p>
<p>Static has leveraged Cloud Foundry to help make this a reality with the Static Cloud Manager, an easy-to-use but robust interface which interacts with Cloud Foundry. Users are able to 1-click create a Platform as a Service application with a wide array of frameworks and services while taking advantage of integrated hosting features such as domain registration, DNS, billing, support, Virtual Private Servers (VPS), and email.</p>
<p><strong>The Cloud Network</strong></p>
<p>Having choices does not stop at applications and services. Static is working to create a unified cloud network of datacenters and hosting companies that will:</p>
<p>• Run your application in multiple data centers for high availability<br />• Migrate applications seamlessly from one datacenter to another while maintaining uptime<br />• Choose your application and services based on data centers capable of meeting your needs</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/11cHte9j7Z3fTOwqDaOSPyCfkgoRzEiZs8msL.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/05/11cHte9j7Z3fTOwqDaOSPyCfkgoRzEiZs8msL.png?resize=584%2C319" alt="11cHte9j7Z3fTOwqDaOSPyCfkgoRzEiZs8msL" class="aligncenter size-large wp-image-5258" data-recalc-dims="1" /></a></p>
<p><strong>Static’s Commitment to Open Source Development</strong></p>
<p>Static believes that open source software development drives innovation and leads to higher quality software. We are deeply committed to the open source ecosystem and being a leader in the Cloud Foundry community. Static is proud <a href="https://github.com/staticcorp">to contribute back to the Apache Hadoop project</a>, as well as Cloud Foundry, through services such as snapshot functionality to the file system service, chef cookbooks, bug fixes and enhancements. These contributions can also be found on our GitHub account at <a href="http://github.com/staticcorp">http://github.com/staticcorp</a>.</p>
<p><a name="bio-farrell"></a></p>
<p><em><strong>About the Author:</strong> Jake Farrell is the Chief Technical Officer for <a href="http://www.static.com/">Static Corporation</a>. He specializes in scalable distributed back end infrastructure systems. He is actively involved in numerous projects with the Apache Software Foundation and is the Project Management Committee Chair for the Apache Thrift project.</em></p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&text=Static.com+Adds+Hadoop+Support+for+Cloud+Foundry" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&title=Static.com+Adds+Hadoop+Support+for+Cloud+Foundry&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&title=Static.com+Adds+Hadoop+Support+for+Cloud+Foundry" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F20%2Fstatic-com-adds-hadoop-support-for-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/b1TfTryQick" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/05/20/static-com-adds-hadoop-support-for-cloud-foundry/</feedburner:origLink></item>
		<item>
		<title>Want to Contribute to Cloud Foundry? Come on in!</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/ooQCOc9-mns/</link>
		<comments>http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/#comments</comments>
		<pubDate>Thu, 16 May 2013 20:06:44 +0000</pubDate>
		<dc:creator>Andy Piper</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[bosh]]></category>
		<category><![CDATA[cla]]></category>
		<category><![CDATA[cloud controller]]></category>
		<category><![CDATA[cloud foundry]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[contribution]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[pull request]]></category>
		<category><![CDATA[vcap]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=5334</guid>
		<description><![CDATA[Cloud Foundry is an Open Platform-as-a-Service, and an Open Source project. It has attracted phenomenal interest from the community - including partners, companies using the code internally, and those individual developers with a passion for getting involved. You can find the source &#8230; <a href="http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Cloud Foundry is an Open Platform-as-a-Service, and an Open Source project. It <a href="http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/">has attracted phenomenal interest from the community</a> - including partners, companies using the code internally, and those individual developers with a passion for getting involved. You can find <a href="http://github.com/cloudfoundry">the source code on Github</a>. Community contributions are what help to make the platform so extensible. We are always happy when we receive a Github pull request to offer new functionality or fixes! We also appreciate bug reports submitted through Github Issues.</p>
<p>Looking at the Cloud Foundry project as a whole though&#8230; where should you start?</p>
<p>As you might imagine, there are a lot of moving parts in a PaaS. At Pivotal, we have teams working on the backend (the main runtime environment for Cloud Foundry, also known as ‘<a href="http://github.com/cloudfoundry/vcap">vcap</a>’); the frontend (the tools and APIs for deploying apps, such as the ‘cf’ gem); services (database, message queues, and related resources); and Cloud Foundry <a href="http://www.cloudfoundry.com/run">BOSH</a>, the installer and deployment tool, which has different plugins targeting infrastructures like AWS, OpenStack and vSphere. In the future, we would love to see even more Cloud Provider Interfaces (CPIs) for BOSH to allow Cloud Foundry to be deployed onto additional clouds.</p>
<p>One of the best ways to get involved with the community and the codebase is to start with the Github repositories and the mailing lists. If you are not sure where particular functionality resides within the project as a whole, and you’ve had a good look at Github already, then we have a number of mailing lists where you can ask for help. <a href="https://groups.google.com/a/cloudfoundry.org/group/vcap-dev‎">vcap-dev</a> is for those working on the PaaS itself; <a href="https://groups.google.com/a/cloudfoundry.org/group/bosh-users">bosh-users</a> is for those who want to understand how to use BOSH to deploy Cloud Foundry; and <a href="https://groups.google.com/a/cloudfoundry.org/group/bosh-dev/">bosh-dev</a> is for the elite hackers (like <a href="http://twitter.com/drnic">Dr Nic Williams</a>!) who want to help us make BOSH even more awesome. If you participate in the mailing lists you will also be able to keep up with what others are working on, and learn who some of the leading developers on the project are. If you want to get an idea of the general direction of development, you’ll find that <a href="http://docs.cloudfoundry.com/docs/roadmap.html">in our roadmap</a>.</p>
<p>Once you are up-and-running with Cloud Foundry, or if you know to which part of the project  you want to contribute, then consider the size of an initial contribution. If you are new to the project you might want to start with something small (some Open Source projects call these kind of small changes to smooth out any rough edges “paper cuts”). If you have something larger, we are always keen to work with you to understand how we can integrate your code. Before sending a pull request, take a look at our <a href="https://github.com/cloudfoundry/cf-release#oss-contributions">OSS contribution information in the project readme</a>, which includes details on the Contributor License Agreement for individuals and corporations.</p>
<p>We thought it would be good to highlight a recent pull request which was a superb example of a major addition to the project. Recently we received a contribution <a href="https://github.com/cloudfoundry/cloud_controller_ng/pull/44">via a detailed Github pull request</a>, adding Oracle support to some of the major components inside Cloud Foundry: the User Account and Authentication service (UAA) and the Cloud Controller. Originally, these components were built to use Postgres as a backend, and more recently MySQL support was added. Since many enterprises already use Oracle as their main relational data store, it is great to give them this additional storage option.</p>
<p>Taking a look at the specific request for the Cloud Controller, we were really struck by a few things. The first one is that the pull request itself is very detailed, and walks through the various changes required in order to replace the database with Oracle.</p>
<blockquote>
<p>This pull request is a lot to digest. If you want you can review the single feature PR that lead to this PR for some more concise context into some of the decisions I made in creating this PR. Here is a summary of the more notable changes I had to make and some context for why I made those changes:</p>
</blockquote>
<p>This level of detail is not always required with every patch, of course, but for something this extensive it was very welcome. Another aspect of this patch is that was was made of up several individual changes (things like tweaks to the database schema, differences between Oracle datatypes and those used by other databases, etc), and they were broken down into separate commits which made it easier to consume. It also helped that this set of changes was extensively discussed on the vcap-dev mailing list before this larger pull request was submitted, so the engineering team were aware of some of the other impacts it would have.</p>
<p>Although the resulting pull request was detailed and clear, it has taken a few days to make all of the changes, as the core code was still being worked on. This was actually one of the rarer cases where we had to do more work to get the patches integrated &#8211; and that shows how willing we are to work with contributions. Smaller changes are extremely welcome too, and often much quicker to digest. Don’t be put off by this larger example &#8211; come and start hacking with us!</p>
<p>We hope this post highlights some of the things that help to make it smoother to contribute to the project. To recap:</p>
<ol>
<li>review the <a href="https://github.com/cloudfoundry/cf-release#oss-contributions">contribution guidelines</a> and complete the CLA;</li>
<li>if you want to submit a major code change, discuss it on the relevant mailing list beforehand;</li>
<li>think about how the pull request is structured, and submit changes in separate consumable commits (rather than as one monolithic change) where appropriate;</li>
<li>the patch should be well-tested, should include tests if possible, and should pass our Travis CI process;</li>
<li>the changes should be clearly documented in the request, especially when the updates are more extensive than correcting a few typos.</li>
</ol>
<p>The past few months have seen the Cloud Foundry Open Source community grow hugely, and mailing list activity continues to be at an all-time high &#8211; so we’re really looking forward to continuing to work with other developers to make the platform even more awesome! Thanks for being on this journey with us.</p>
<p>Andy Piper <a href="http://twitter.com/andypiper">@andypiper</a></p>
<p>Developer Advocate, Cloud Foundry</p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&text=Want+to+Contribute+to+Cloud+Foundry%3F+Come+on+in%21" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&title=Want+to+Contribute+to+Cloud+Foundry%3F+Come+on+in%21&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&title=Want+to+Contribute+to+Cloud+Foundry%3F+Come+on+in%21" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F05%2F16%2Fwant-to-contribute-to-cloud-foundry-come-on-in%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/ooQCOc9-mns" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/05/16/want-to-contribute-to-cloud-foundry-come-on-in/</feedburner:origLink></item>
		<item>
		<title>UK Charity Raises Record Donations Powered by Cloud Foundry</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/W5GYethPJno/</link>
		<comments>http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 18:35:55 +0000</pubDate>
		<dc:creator>Colin Humphreys</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[agility]]></category>
		<category><![CDATA[cloud foundry]]></category>
		<category><![CDATA[CloudCredo]]></category>
		<category><![CDATA[CloudFoundry.com]]></category>
		<category><![CDATA[elasticity]]></category>
		<category><![CDATA[enterprise grade]]></category>
		<category><![CDATA[multi cloud]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=5159</guid>
		<description><![CDATA[For Comic Relief &#8211; a UK based charity, fifty minutes of downtime during peak fundraising hours could result in half their annual online donations income being lost. This blog describes how Cloud Foundry was used to provide an Enterprise grade &#8230; <a href="http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For <a href="http://www.comicrelief.com/">Comic Relief</a> &#8211; a UK based charity, fifty minutes of downtime during peak fundraising hours could result in half their annual online donations income being lost. This blog describes how <a href="http://www.cloudfoundry.com/">Cloud Foundry</a> was used to provide an Enterprise grade donations platform that helped Comic Relief raise a record £75million (about US $115 million) in funds for their humanitarian projects.</p>
<p><strong><em>Guest Blog by Colin Humphreys, CloudCredo, Inc.</em></strong></p>
<p>Comic Relief is a well known charity based in the UK which strives to create a just world free from poverty. They raise millions of pounds through two big fundraising campaigns – Red Nose Day and Sport Relief. The money raised is spent in the best possible way to tackle the root causes of poverty and social injustice. All the money raised by the public is spent by Comic Relief to help poor and disadvantaged people in the UK and the world&#8217;s poorest countries.</p>
<h3>Seven Hours to Maximise Funding For The Entire Year</h3>
<p>A year of planning for Red Nose Day 2013 resulted in a 6 week media campaign culminating in 7 hours of prime time television coverage on the 15th March. Their donations platform is required to process in the region of 600,000 transactions in this 7 hour period, handle in excess of 10,000 concurrent call centre operators, and handle peaks of 500 donations completing per second from web, mobile and call centers.</p>
<p>These requirements pose an operational nightmare. A fifty minute outage at peak traffic, allowed within an annual &#8220;four nines&#8221;(99.99%) uptime SLA, could result in 50% of the charity&#8217;s annual income being lost. Comic Relief require a platform delivered with no outages; there won&#8217;t be a second chance for another year. Feedback on the performance of the platform under high load from real users is only received on an annual basis. To demonstrate the difficulty of this challenge, JustGiving, one of the largest charity-orientated service providers, had a <a href="http://www.bbc.co.uk/news/technology-21798834">huge outage</a> beginning early on Red Nose Day 2013.</p>
<p>For the previous eight years the donations applications have been delivered via a monolithic Java application and RDBMS backend, deployed and scaled with the help of twelve partners. This setup suffered from single points of failure, high recovery times from potential failures, and a lack of consistency between environments in the deployment pipeline. Comic Relief were also looking to remove their reliance on any single third-party supplier so as to not be limited in their technology choices.</p>
<h3>Working Prototype Delivered in a Single Day on CloudFoundry.com</h3>
<p>Moving from traditional development methodologies to a lean, agile approach delivered by a small team required a leap of faith from Comic Relief. Their fears were allayed by delivering a working prototype via CloudFoundry.com on the first day of application development. This was critical to receiving constant feedback from Comic Relief, and gave a starting point from which to iterate on the applications and the platform.</p>
<p>The software that drives the ability to take donations is a series of small micro-applications decoupled via queuing technologies. The service-layer application generates events that are used to mutate an eventually consistent view of the donations domain, enabling failure handling and fault tolerance across the distributed architecture. The applications were all developed to the platform contract represented by Cloud Foundry.</p>
<h3>Vendor Neutrality and High Availability are Primary Architectural Goals</h3>
<p>Developing the applications to the Cloud Foundry contract brought vendor neutrality to Comic Relief&#8217;s donations deployment. Wherever Cloud Foundry ran the donations suite could run too. This commoditised the infrastructure vendors and freed Comic Relief from vendor-related constraints, allowing infrastructure choices to be based on price, performance and efficiency &#8211; rather than forced by vendor lock-in.</p>
<p>Developing on the operational capabilities of Cloud Foundry played a major role in meeting Comic Relief&#8217;s requirements. The data services were enhanced with redundancy and replication, intelligent connection load-balancing was added to each instance, and a distributed global load-balancing/fault tolerance service added to recover quickly from single or multiple instance outages. The service was distributed across multiple AWS EC2 regions and zones, and also London-based VMware vCloud/vSphere IaaS provider, <a href="http://carrenza.com/news/1220/">Carrenza</a> (See Figure).</p>
<div id="attachment_5165" class="wp-caption aligncenter" style="width: 594px"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/Picture1.jpg?resize=584%2C382" alt="Figure 1: Service distributed across multiple regions and zones" class="size-large wp-image-5165" data-recalc-dims="1" /><p class="wp-caption-text">Service distributed across multiple regions and zones</p></div>
<p>Enhancing Cloud Foundry&#8217;s capabilities involved the same Continuous Delivery-based patterns employed to develop the donations applications. The platform pipeline was based on Jenkins orchestrating Cloud Foundry BOSH, with automated testing using Cucumber and RSpec, automated load testing using Grinder, and automated security testing with Zed Attack Proxy in tandem with a custom suite. The platform pipeline for Cloud Foundry then formed part of a larger integration pipeline for continuous delivery of the donations service as a whole to production-like environments. Frequent and regular deployments following extensive automated testing generated the confidence required to make any necessary changes to such a mission critical system.</p>
<h3>Record Earnings With No Outage</h3>
<p>So how did it actually perform on the night? Shortly after 01:30 GMT, comedian Russell Brand announced the money raised stood at £75,107,851 &#8211; passing the previous high of £74.3m. The new record was delivered by a platform that suffered absolutely no outage in receiving donations &#8211; the first time this has ever been achieved by a donations platform for Red Nose Day.</p>
<p>I&#8217;ve been delivering platforms for nearly fifteen years; I can&#8217;t recall ever being more excited about a new technology than I was on the day Cloud Foundry was released. I&#8217;m exceptionally proud to have taken the promise of Cloud Foundry and delivered real value in a mission-critical scenario.</p>
<p><a name="bio"></a></p>
<p><em><strong>About the Author:</strong> Colin Humphreys is CEO of <a href="http://www.cloudcredo.com">CloudCredo</a>, a team of people with extensive knowledge in running and customizing Cloud Foundry. He led the installation of the first Cloud Foundry to deliver SLA-driven production services, delivers tooling to the Cloud Foundry community, and is a regular conference speaker on PaaS-related topics. He also organizes the London PaaS User Group.</em></p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&text=UK+Charity+Raises+Record+Donations+Powered+by+Cloud+Foundry" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&title=UK+Charity+Raises+Record+Donations+Powered+by+Cloud+Foundry&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&title=UK+Charity+Raises+Record+Donations+Powered+by+Cloud+Foundry" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F30%2Fuk-charity-raises-record-donations-powered-by-cloud-foundry%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/W5GYethPJno" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/04/30/uk-charity-raises-record-donations-powered-by-cloud-foundry/</feedburner:origLink></item>
		<item>
		<title>NTT Contributes Nise BOSH, a Tool to Speed Up BOSH Development</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/kHN8JvzkO1M/</link>
		<comments>http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 16:17:45 +0000</pubDate>
		<dc:creator>Matthew Kocher, Vikram Rana</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=5011</guid>
		<description><![CDATA[NTT, the world’s leading telecom, has been active in fostering the Cloud Foundry developer and user community in Japan. We&#8217;re excited about NTT Lab’s latest open source community contribution to Cloud Foundry &#8211; Nise BOSH, a lightweight BOSH emulator for &#8230; <a href="http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntt.com/">NTT</a>, the world’s leading telecom, has been active in fostering the <a href="http://blog.cloudfoundry.com/2013/02/13/ntt-communications-worlds-leading-telecom-joins-cloud-foundry-core/">Cloud Foundry developer and user community in Japan</a>. We&#8217;re excited about NTT Lab’s latest open source community contribution to Cloud Foundry &#8211; <a href="https://github.com/nttlabs/nise_bosh">Nise BOSH</a>, a lightweight BOSH emulator for locally compiling, releasing and testing services. <a href="https://github.com/cloudfoundry/bosh">BOSH</a> is an open source tool chain for release engineering, deployment and lifecycle management of large-scale distributed applications and services, such as Cloud Foundry. Nise BOSH allows developers and cloud operators who use BOSH to speed up the development feedback cycle while saving effort and money. In this post, we’ll explain how all this works and why it’s useful.</p>
<h2>Normal BOSH Deploy Cycle</h2>
<p>When you do a <code>bosh deploy</code> of a large scale distributed service such as Cloud Foundry to a cluster, BOSH does a number of things on your behalf:</p>
<ol>
<li>Prepares deployment</li>
<li>Compiles packages &#8211; Calculates all packages and their dependencies that need to be compiled. It then begins compiling the packages and storing their output in the blobstore. The number of <code>workers</code> specified in the deployment configuration determines how many VMs can be created at once for compiling.</li>
<li>Prepares DNS</li>
<li>Creates bound missing VMs &#8211; Creates new VMs, deletes extra VMs.</li>
<li>Binds instance VMs</li>
<li>Prepares configuration</li>
<li>Updates/deletes jobs &#8211; Deletes unneeded instances, creates needed instances, updates existing instances if they are not already updated. This is the step where things get pushed live.</li>
</ol>
<p>In step #2 BOSH spins up a number of worker VMs to compile your code packages, then installs your compiled code in one or more VMs called stemcells. Normally all of these VMs are running somewhere on an IaaS provider such as VMware vSphere or AWS EC2.</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/fig1.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/fig1.png?resize=532%2C609" alt="fig1" class="alignnone size-full wp-image-5097" data-recalc-dims="1" /></a></p>
<h2>Using Nise BOSH to Speed Up the Feedback Cycle</h2>
<p>This is great in production, but when iterating on a BOSH Package, spinning up multiple VMs for compilation and deployment makes for a slow feedback cycle and a lot of ssh’ing into servers. It can also be costly, as you may have to pay for development resources on an IaaS, e.g. on AWS. Nise BOSH is a great help when developing a BOSH package. A Package is a collection of source code along with a script that contains instruction how to compile it to binary format and install it, with optional dependencies on other pre-requisite packages. Without Internet access or an IaaS, Nise BOSH will compile the packages necessary to run the job and install them on the box that you&#8217;re on, saving you the time, expense and complexity of using remote resources on AWS or another IaaS. Let’s see how this works.</p>
<p>First, start on a machine that looks like your target Stemcell. A Stemcell is a VM template with an embedded BOSH Agent. The Stemcell used for Cloud Foundry is a standard Ubuntu distribution. For this you can use <a href="http://www.vagrantup.com/">Vagrant</a>, a handy tool to create easily reproducible environments on your local laptop. Install Vagrant and then in a terminal:</p>
<pre>$ vagrant init lucid64 http://files.vagrantup.com/lucid64.box 
$ vagrant up
$ vagrant ssh
</pre>
<p>You should now be in an Ubuntu lucid64 environment on your local machine. Now install Nise BOSH –</p>
<pre>$git clone git@github.com:nttlabs/nise_bosh.git
$cd nise_bosh
$bundle install
</pre>
<p>Next you need to get a BOSH Cloud Foundry release &#8211; a BOSH release is a collection of source code, configuration files and startup scripts used to run services, along with a version number that uniquely identifies the components.</p>
<pre>$git clone git@github.com:cloudfoundry/cf-release.git 
$cd cf-release 
$git submodule sync 
$git submodule update --init --recursive
</pre>
<p>You can now modify the Cloud Foundry open source code in cf-release/src as your project needs require. Once you are ready to test your changes, you need to create the release, but first install the BOSH CLI -</p>
<pre>$gem install bosh_cli 
$bosh create release
</pre>
<p>Before you can deploy your release you’ll need a BOSH manifest file we’ll call deploy.conf. An example of the contents for a Nise BOSH manifest can be found in the Nise BOSH <a href="https://github.com/nttlabs/nise_bosh#describe-a-deployment-manifest">doc</a>.</p>
<p>Now run Nise BOSH from the nise&#95;bosh directory to launch dea&#95;next. Without Internet access or an IaaS, Nise BOSH will compile the packages necessary to run the job and install them on the box that you&#8217;re on. Then just run <code>run-job start</code> to start the jobs in /var/vcap/bosh/etc/monitrc locally on your box.</p>
<pre>$sudo PATH=$PATH bundle exec ./bin/nise-bosh ~/cf-release ~/deploy.conf dea_next
$./bin/run-job start
</pre>
<p>Nise BOSH is all set up to help you play with dea_next all by itself, but eventually it might enable to you develop and run Cloud Foundry right on your local machine. We see the many community contributions like NTT Nise BOSH as proof of the power of an Open PaaS ecosystem to advance the project. Next time you&#8217;re working on a BOSH release, give it a try.</p>
<p><a name="bio"></a> &#8211;Matthew Kocher and Vikram Rana, Cloud Foundry Team</p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&text=NTT+Contributes+Nise+BOSH%2C+a+Tool+to+Speed+Up+BOSH+Development" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&title=NTT+Contributes+Nise+BOSH%2C+a+Tool+to+Speed+Up+BOSH+Development&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&title=NTT+Contributes+Nise+BOSH%2C+a+Tool+to+Speed+Up+BOSH+Development" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F15%2Fntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/kHN8JvzkO1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/04/15/ntt-contributes-nise-bosh-a-tool-to-speed-up-bosh-development/</feedburner:origLink></item>
		<item>
		<title>Use of Hybrid PaaS Now and In the Future</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/MgQslz23GaM/</link>
		<comments>http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 16:09:58 +0000</pubDate>
		<dc:creator>Jonas Partner</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4908</guid>
		<description><![CDATA[From its beginning, Cloud Foundry has been committed to providing developers and enterprises choice of deployment options spanning public and private clouds. In this post, Jonas Partner, CEO of CloudCredo and OpenCredo, shares how their enterprise customers are using PaaS &#8230; <a href="http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>From its beginning, Cloud Foundry has been committed to providing developers and enterprises choice of deployment options spanning public and private clouds. <em>In this post, Jonas Partner, CEO of <a href="http://www.cloudcredo.com/index.htm">CloudCredo</a> and <a href="http://opencredo.com/">OpenCredo</a>, shares how their enterprise customers are using PaaS to deploy applications that span public and private clouds to increase availability, add extra capacity and prevent lock-in.</em></p>
<p>As one of the co-founders of OpenCredo I have been actively working with Cloud Foundry since its early days. We were one of the first companies to launch a production application on Cloud Foundry with the help of our friends at <a href="http://blog.cloudfoundry.com/2012/03/22/how-opencredo-launched-three-new-products-in-seven-months-with-cloud-foundry/">Carrenza</a>. More recently we have established <a href="http://www.cloudcredo.com/index.htm">CloudCredo</a> to help both enterprise customers wishing to host Cloud Foundry on their own infrastructure and cloud service providers wishing to offer Platform as a Service. We helped <a href="http://www.realwire.com/releases/Ospero-Partners-With-VMware-And-CloudCredo-On-Cloud-Solutions-That-Accelerate-Developer-Productivity">Ospero</a> to bring a Cloud Foundry-based PaaS running on vCloud Director to market to better serve their customers.</p>
<p>With the growing availability of public Cloud Foundry instances, we are seeing an increase in interest from enterprise customers in hybrid cloud as a way to extract maximum value from their existing infrastructure while enabling capacity on demand through expansion into public cloud. In this blog we will discuss why hybrid PaaS with Cloud Foundry is gaining interest, some of the ways people are using it today and how we hope to be using it in the future.</p>
<h2>Why Cloud Foundry for Hybrid PaaS</h2>
<p>The availability of a PaaS that seamlessly spans in-house data centers and various public cloud offerings makes hybrid cloud a compelling commercial proposition. For example, it serves to drive competition among public cloud providers. Extra capacity can be bought from the most cost competitive provider, or spread across a number of providers, as determined by the best commercial fit for the need. To date the majority of public PaaS offerings have been closed source and can’t be run within the enterprise data center. Combine this form of lock-in with some well-publicized outages and most large enterprises simply aren’t willing to consider betting everything on a single instance cloud provider. We see the open, extensible nature of Cloud Foundry and the increasing number of companies offering hosted Cloud Foundry instances as key to making enterprises comfortable with PaaS.</p>
<p>For us the number of companies offering or intending to offer a Cloud Foundry instance is reaching a critical mass, giving enterprises a competitive set of choices of where to run their applications. The <a href="http://core.cloudfoundry.org">Cloud Foundry Core</a> initiative also means that customers can rely on public Cloud Foundry Core <a href="http://core.cloudfoundry.org/listings">compatible instances</a> to meet certain minimum requirements. Taken alongside improved support for running Cloud Foundry on public IaaS such as EC2, enterprises now have three real options for deploying cloud applications: 1) on a Cloud Foundry instance running in house on existing infrastructure, 2) on a Cloud Foundry instance running on large scale public IaaS such as EC2 or 3) on one of the increasing number of cloud providers offering Cloud Foundry as a service.</p>
<p>Being able to pick a company offering a PaaS hosted within national boundaries is already broadening the applicability of PaaS to regulated industries that have requirements on data sovereignty and how data is managed. There are still many other considerations around technology stacks and non-functional requirements that determine whether Cloud Foundry is suitable for a particular workload.</p>
<h2>Simple Hybrid Cloud Use Cases</h2>
<p>We are seeing significant interest in hybrid PaaS as a way of adding capacity in peak periods and increasing availability. Currently this only works out of the box for simpler cases where 1) there is no need to massively scale the persistence technology and 2) the application&#8217;s database does not need to be shared between services on either side of the public private cloud divide. Where enterprises employ SOA it can also be challenging to find a subset of the services that can be moved out to the public cloud. While services can span public and private cloud, this adds complexity, potential performance challenges and cost where data stored in the public cloud is separately billable.</p>
<p>The factors that determine the simplicity of an application for the purposes of a hybrid cloud scenario are primarily how coupled it is to the rest of the enterprise. This coupling can take the form of persisted data, messaging and application services. The simplest case is an application that has none of these forms of dependencies &#8211; with the increasing adoption of SOA it is increasingly rare to find these types of applications. When considering the potential use of hybrid cloud, the cost benefit versus the complexity due to connectedness to the rest of the enterprise will be one of the key trade-offs.</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig1.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig1.png?resize=584%2C328" alt="cloud credo fig1" class="alignnone size-full wp-image-4963" data-recalc-dims="1" /></a></p>
<p>Unless for some reason you have a large number of island-like applications then batch processing applications can often provide a fertile ground in the early days of adopting a hybrid cloud deployment strategy. Batch applications often combine minimum data connectivity to the rest of the application, often running on a data snapshot, with providing cost benefit from scaling up just for the batch run.</p>
<h2>Scalable Database Services</h2>
<p>The open source Cloud Foundry project provides a number of open data technologies that can be configured to “scale up” as single instance services out of the box. We see incorporation of scale-out, multi-instance database services as key to widening the use cases that can be addressed by Cloud Foundry and are currently working to address this opportunity for our customers.</p>
<p>At CloudCredo we recently open sourced a simple <a href="https://github.com/CloudCredo/vcap_cassandra">Cassandra service integration for Cloud Foundry</a> on GitHub. The initial implementation was targeted mainly at development and test usage since it was single instance and therefore didn’t provide any way to make the database scale out or highly available. We are now extending that out to a multi-node cluster and we intend that other services such as MongoDB will also follow.</p>
<p>Scalable Databases as a Service can be plugged in to Cloud Foundry very easily by leveraging the <a href="https://github.com/cloudfoundry/vcap-services/tree/master/service_broker">Service Broker</a>. This pattern allows the cluster to be managed from outside of Cloud Foundry but for the ‘external’ cluster service to be exposed to clients as a running Cloud Foundry service. The benefits of this model include Cloud Foundry features such as central configuration management and automatic service binding from applications.</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig2.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig2.png?resize=584%2C324" alt="cloud credo fig2" class="alignnone size-full wp-image-4983" data-recalc-dims="1" /></a></p>
<p>While horizontal scaling and clustering of open database services opens up new potential, what really excites us is the potential to use the multi-data center capabilities of persistence technologies in conjunction with hybrid PaaS. Cassandra and other open data technologies such as Riak make it possible to have a logical database which spans multiple data centers and therefore potentially both public and private cloud.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig3.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/cloud-credo-fig3.png?resize=584%2C330" alt="cloud credo fig3" class="alignnone size-full wp-image-4990" data-recalc-dims="1" /></a></p>
<p>A PaaS which integrates multi-data center databases that are easy to deploy and provide data synchronization would make solving problems such as disaster recovery and transparent scaling of both database and application code much easier. Disaster recovery currently relies on expensive low latency RPO systems that require manual, offsite back-ups be taken to mirror production. A multi-node, multi-data center data service would have the potential to automatically mirror data across data centers as part of the online transaction processing of the application. Having effectively the same database available within both public and private PaaS would also simplify the process of scaling out.</p>
<h2>Conclusion</h2>
<p>The growing popularity and increasing number of ways to consume Cloud Foundry is making hybrid PaaS an appealing reality for many enterprises. Cloud Foundry provides the Service Broker to facilitate integration of new, clustered open data technologies and legacy clustered databases, easing enterprise adoption in cases where the database services that come as part of the platform are not sufficient. The combination of reliable open source technologies that can deal with databases and the increasing availability of Cloud Foundry is an exciting option for those trying to use PaaS within the enterprise. Being able to solve these sorts of traditionally expensive problems with a PaaS will make PaaS even more compelling for large enterprises.</p>
<p><a name="jonas-bio"></a></p>
<p><em><strong>About the Author:</strong> Jonas Partner is CEO of OpenCredo, a software consultancy and delivery firm with offices in the United Kingdom and North America. Recently, Jonas co-founded CloudCredo, a company focused on helping businesses get Cloud Foundry up and running on the infrastructure of their choice. Before establishing OpenCredo in 2009, Jonas was a consultant with Spring Source where he contributed to the <a href="http://www.springsource.org/spring-integration">Spring Integration</a> project. Jonas maintains interests in Machine Learning and the scalability of highly concurrent enterprise systems.</em></p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&text=Use+of+Hybrid+PaaS+Now+and+In+the+Future" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&title=Use+of+Hybrid+PaaS+Now+and+In+the+Future&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&title=Use+of+Hybrid+PaaS+Now+and+In+the+Future" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F09%2Fuse-of-hybrid-paas-now-and-in-the-future%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/MgQslz23GaM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/04/09/use-of-hybrid-paas-now-and-in-the-future/</feedburner:origLink></item>
		<item>
		<title>Anchora Brings Cloud Foundry Core Instance to China</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/ElYTMcseh2k/</link>
		<comments>http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 16:00:45 +0000</pubDate>
		<dc:creator>Dr. Wei-Min Lu</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4723</guid>
		<description><![CDATA[A fast growing mobile apps market alongside the increasing need for a unified enterprise private cloud platform requires a new generation of open PaaS solutions in China. In this guest blog, Wei-Min Lu, founder and CEO of Anchora, explains why &#8230; <a href="http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A fast growing mobile apps market alongside the increasing need for a unified enterprise private cloud platform requires a new generation of open PaaS solutions in China.</p>
<p><em>In this guest blog, Wei-Min Lu, founder and CEO of Anchora, explains why Anchora selected <a href="http://www.cloudfoundry.com">Cloud Foundry</a> as the basis for its MoPaaS platform and why it chose to join <a href="http://core.cloudfoundry.org">Cloud Foundry Core</a>.</em></p>
<div class="series-box">
  Test MoPaaS for Cloud <br /> Foundry Core Compatibility <a href="http://core.cloudfoundry.org/?api_endpoint=api.mopaas.com">here</a>.
</div>
<p>Today we are excited to join Cloud Foundry Core as proof of our commitment to cloud application portability across a choice of public and private clouds. Here in China, there is growing demand for an open PaaS that enables developers to build mobile applications and enterprises to build private or dedicated clouds. We built <a href="http://eagle.mopaas.com/">MoPaaS</a>, a cloud application engine based on the Cloud Foundry service platform. Cloud Foundry gives us the flexibility to offer both a public cloud platform with extensions for mobile and data applications and a private/dedicated PaaS solution that integrates with enterprises’ existing infrastructure. We also provide services within Cloud Foundry applications allowing enterprises to take advantage of big data infrastructure for use cases like cloud storage and synchronization, analytics and search.</p>
<h2>The Need for Open PaaS in China</h2>
<p>It is projected that PaaS will grow at 30% annually over the next few years. Higher growth is expected to occur in China due to 1) a rapidly expanding mobile application market requiring an agile back-end services platform and 2) the need for cloud application portability and the rise of applications taking advantage of big data infrastructure in the enterprise.</p>
<p>China is now the world&#8217;s biggest smart phone market with 390 million units projected to be sold this year &#8211; more than 1/3 of smart phones to be sold globally in 2013. Businesses of all sizes are looking to take advantage of this trend, increasing the number of mobile apps by 35% annually. There is a growing need for an agile platform with additional services required for mobile applications, such as push notification, geospatial data storage and short message services. Due to the limited resources on the client device, mobile applications require a platform that is able to process large quantities of data in the cloud. A new generation of Open PaaS is needed to handle additional mobile-specific requirements.</p>
<p>With more than 70% of companies implementing PaaS over the next two years, we see emerging needs for PaaS solutions in the China enterprise IT market to consolidate existing applications and infrastructure while building an ecosystem of new enterprise applications in a consistent and unified manner. Enterprise application portability is increasingly becoming a critical need &#8211; businesses expect to be able to move their applications for optimal service, regulatory compliance, and data privacy requirements. As enterprises are realizing the impact and starting to build apps to take advantage of big data, there is an urgent need for more sophisticated platform services with big data infrastructure. This includes scalable services for log analysis, cloud storage and synchronization, information clustering, analytics, and customized search.</p>
<h2>Building a Public PaaS Using Cloud Foundry</h2>
<p>We built MoPaaS to serve developers’ needs to create applications and services without worrying about backend IT tasks. It helps them simplify and automate application lifecycle management, including development, deployment, and operation, significantly reducing IT infrastructure expenditures and devops costs and time. MoPaaS is built on an intelligent cloud service platform infrastructure that consists of two integrated parts:</p>
<ul>
<li><strong>Service platform:</strong> extends the Cloud Foundry service platform to provide better support for mobile applications, platform monitoring and management, and service extensibility.</li>
<li><strong>Data platform:</strong> based on innovative information chain management (ICM) technology. It offers a simple interface for developers to support data driven applications.</li>
</ul>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig01.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig01.png?resize=584%2C376" alt="CF_Core_Fig01" class="alignnone size-large wp-image-4852" data-recalc-dims="1" /></a></p>
<p><strong>Fig 1.</strong> MoPaaS Cloud Application Engine Architecture</p>
<p>MoPaaS provides necessary devops automation, masks complexities from developers and enhances usability by offering additional functions:</p>
<ul>
<li><strong>UI:</strong> providing ease of use for developers of various levels and a CLI providing more flexibility and control for experienced developers. Developers can use the MoPaaS UI for devops tasks like application deployment and performing resource allocation.</li>
<li><strong>MDSS (mass data storage service):</strong> a high performance distributed storage system that provides cloud storage for user data and application source code management.</li>
<li><strong>Application monitoring and management:</strong> a streamlined visual tool and web console for monitoring and managing applications, services, and environment variables.</li>
<li><strong>MoPaaS Services:</strong> Mobile specific services, such as notifications, short messages, and locations etc. Data services, such as scalable services for log analysis, cloud storage and synchronization, information clustering, and customized search.</li>
</ul>
<h2>Building an Enterprise PaaS Solution Using Cloud Foundry</h2>
<p>MoPaaS also provides an intelligent IaaS-PaaS solution for enterprises and service providers to build dedicated clouds to boost service agility, reduce IT expenditures and devops costs while increasing the portability, scalability and reliability of enterprise applications. This solution offers necessary granular controls and customer configuration flexibility provided by IaaS and the devops automation and ease of app creation provided by PaaS. The MoPaas architecture strictly separates PaaS from IaaS services.</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig02.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig02.png?resize=584%2C268" alt="CF_Core_Fig02" class="alignnone size-large wp-image-4859" data-recalc-dims="1" /></a></p>
<p><strong>Fig 2.</strong> MoPaaS Intelligent Cloud Platform</p>
<p>In addition to the services offered by Cloud Foundry, MoPaaS offers a comprehensive array of data services as native Cloud Foundry services and integrates various legacy services.</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig03.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/04/CF_Core_Fig03.png?resize=584%2C351" alt="CF_Core_Fig03" class="alignnone size-large wp-image-4864" data-recalc-dims="1" /></a></p>
<p><strong>Fig 3.</strong> MoPaaS Services</p>
<p>MoPaaS effectively addresses a wide range of the enterprise cloud platform requirements, including:</p>
<ul>
<li>
<p><strong>Application consolidation:</strong> there is a need for building and running an ecosystem of enterprise applications on a cloud-based platform in a consistent and unified manner. However, many of the applications in enterprises have been around for quite some time and were not designed for the cloud. Among the key requirements, legacy services used by those applications need to be integrated into the cloud platform or upgraded to new services of the cloud platform. MoPaaS addresses the application consolidation and migration issues effectively, as the MoPaaS platform not only supports basic services, but also adds new data services to meet enterprise big data requirements using Cloud Foundry service gateway and seamlessly integrates legacy services used by existing applications, such as Oracle Database, Microsoft SQL Server, and IBM DB2 using Cloud Foundry service broker (Figure 3).</p>
</li>
<li>
<p><strong>Data platform:</strong> Big data has increasingly become top of mind across organizations, from the data center to the boardroom. Companies are seeking systems and tools capable of tackling the challenges of massive data growth. Integrated with Hadoop-based Information Chain Management (ICM) data services, MoPaaS enables organizations to deploy a central platform to solve end-to-end data problems that involve any combination of information ingestion, processing, storage, exploration, analytics, and retrieval. With MoPaaS enterprise developers can easily integrate sophisticated big data services with their applications as native Cloud Foundry services. These include log analysis, cloud storage and synchronization, information clustering, and customized search. In addition, with ICM data services, MoPaaS provides new capability for monitoring and managing applications on the cloud platform.</p>
</li>
<li>
<p><strong>Application portability:</strong> MoPaas architecture strictly separates PaaS from IaaS services. MoPaaS furnishes applications with an infrastructure-agnostic execution method, standardizes the method of exposing services such as databases, messaging and queuing, runtime, and management, and standardizes service credentials across runtimes. Thus MoPaaS keeps the applications portable in case they need to move the PaaS layer and application services to another infrastructure provider. Additionally, MoPaaS ICM mechanism enables automatic application data transferring along with the associated applications via its data synchronization service. Developers don’t have to worry about infrastructure-specific requirements for their applications, because the MoPaaS platform takes care of these concerns for them.</p>
</li>
</ul>
<h2>Summary</h2>
<p>The initial success of Cloud Foundry-based PaaS providers demonstrates the strength of the Cloud Foundry open PaaS solution and the power of its open source ecosystem and community. This is a win for everyone invested in the success of Cloud Foundry.</p>
<p>We are excited to become the first company in China to join the Cloud Foundry Core community. By being a member of the Core ecosystem, Anchora is committed to the open PaaS concept and delivering cloud portability to Chinese application developers and service providers.</p>
<p><a name="bio"></a></p>
<p><em><strong>About the Author:</strong> Wei-Min Lu is the founder and CEO of Anchora. Anchora provides both MoPaaS, a public open cloud platform with extensions for mobile and data applications, and a dedicated PaaS solution that facilitates application consolidation and cloud platform portability for enterprises. Dr. Lu has over 15 years experience in product development and marketing. Before he founded Anchora in 2008, he served in key engineering and management positions at IBM and NASA-JPL. His background is in cloud computing, cybernetics, machine learning, information retrieval and storage technologies. Dr. Lu holds a Ph.D. in Electrical Engineering/Math from CalTech and a B.Sc. from Tsinghua University, China.</em></p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&text=Anchora+Brings+Cloud+Foundry+Core+Instance+to+China" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&title=Anchora+Brings+Cloud+Foundry+Core+Instance+to+China&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&title=Anchora+Brings+Cloud+Foundry+Core+Instance+to+China" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F04%2F03%2Fanchora-brings-cloud-foundry-core-instance-to-china%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/ElYTMcseh2k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/04/03/anchora-brings-cloud-foundry-core-instance-to-china/</feedburner:origLink></item>
		<item>
		<title>Cloud Foundry Integration for Eclipse Can Now Launch External Command-line Applications Using Service Tunnels</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/-_cCwC1py0c/</link>
		<comments>http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 17:58:11 +0000</pubDate>
		<dc:creator>Nieraj Singh</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4345</guid>
		<description><![CDATA[In the course of developing, testing and deploying cloud applications, developers sometimes need to directly access the application data. The Cloud Foundry Integration for Eclipse advances this capability and now features the ability to launch external command-line applications for Cloud &#8230; <a href="http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>In the course of developing, testing and deploying cloud applications, developers sometimes need to directly access the application data. The Cloud Foundry Integration for Eclipse advances this capability and now features the ability to launch external command-line applications for Cloud Foundry services like MySQL and PostgreSQL. The plugin offers Spring and Java developers using Eclipse or STS a way to manipulate, or port the data contained in their Cloud Foundry applications more easily.</p>
<p>An earlier release of the Cloud Foundry plugin (1.1.0) introduced tunneling support for data services, and the command-line application feature in 1.4.0 now extends the support by automatically resolving tunnel values when launching a command-line application for a Cloud Foundry service. In addition, a set of predefined commands for executing commonly used command-line applications are available by default, and ready to use if the external command-line application is installed and set in the operating system&#8217;s PATH environment variable.</p>
<p>These commands are launched from within Eclipse or STS, and executed in an external command-line terminal. New commands can be defined either through a new Eclipse preference page for Cloud Foundry, or by opening a <em>Service Tunnel Commands</em> wizard from the Services table in the Cloud Foundry Server editor. The commands are stored as Eclipse preferences and therefore persisted across Eclipse runtime sessions.</p>
<p>In this blog, we will describe the steps to define and launch a new <em>mysqldump</em> command that automatically generates a dump file for a Cloud Foundry MySQL service. This blog assumes the reader has basic understanding of how to create a Cloud Foundry server in Eclipse, as well as create services through the Cloud Foundry Server editor&#8217;s <em>Applications</em> tab.</p>
<p>The command-line application feature in 1.4.0 allows users to launch an external application by simply selecting a service in the Services table in the Cloud Foundry Server editor and right-clicking to execute a particular command from the Services table context menu (see Figure below). The launch process then automatically creates a tunnel if one was not already created and executes the command in the operating system&#8217;s default terminal application. Terminal applications can also be changed per command definition. For example, in Linux the default terminal used by the feature is <em>xterm</em>, yet a user can change a command to use a different terminal like <em>gnome-terminal</em>.</p>
<h2>Predefined Commands</h2>
<p>The Cloud Foundry Integration for Eclipse version 1.4.0 provides a list of predefined commands that are ready to use for MySQL, PostgreSQL, MongoDB, and Redis services, provided the corresponding applications are installed. The commands are accessible by right-clicking on a service in the Services table in the Cloud Foundry Server editor:</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_base_context_menus.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_base_context_menus.png?resize=584%2C215" alt="cf140_base_context_menus" class="alignnone size-full wp-image-4448" data-recalc-dims="1" /></a></p>
<p>The list of commands are:</p>
<p>MySQL:</p>
<ol>
<li>mysql </li>
<li>mysqldump</li>
</ol>
<p>MongoDB:</p>
<ol>
<li>mongo </li>
<li>mongodump </li>
<li>mongorestore</li>
</ol>
<p>PostgreSQL:</p>
<ol>
<li>psql</li>
</ol>
<p>Redis:</p>
<ol>
<li>redis-cli</li>
</ol>
<p>If these applications are already set in the operating system&#8217;s PATH environment variable, these commands can be executed right away without changes, and are launched in an external terminal like <em>Terminal.app</em> for Mac OS X, <em>cmd.exe</em> for Windows, and <em>xterm</em> for Linux.</p>
<p>For example, launching <em>mysql</em> for a MySQL service in the Cloud Foundry editor will automatically connect the <em>mysql</em> application to the MySQL service in the Cloud Foundry server through a tunnel, provided <em>mysql</em> is installed and set in the OS PATH environment variable. The end result is an external terminal window opening outside of Eclipse, displaying the <em>mysql</em> application prompt:</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_external_terminal_mysql.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_external_terminal_mysql.png?resize=584%2C392" alt="cf140_external_terminal_mysql" class="alignnone size-full wp-image-4450" data-recalc-dims="1" /></a></p>
<p>Since the tunnel credentials are resolved automatically for the external application by the Cloud Foundry plugin, the <em>mysql</em> application automatically connects to the data service and opens the <em>mysql</em> prompt without asking the user for credentials.</p>
<p>If new commands need to be added, or existing ones edited, they can be done so by either selecting <em>Command Definitions</em> in the Services table context menu, or by opening <em>Eclipse Preferences -> Cloud Foundry -> Service Tunnel External Application Commands</em></p>
<h2>Creating a New <em>mysqldump</em> Command</h2>
<p>In our example, we will be adding a new <em>mysqldump</em> command that creates a particular output dump file called <em>myoutputfile.txt</em>. Although a <em>mysqldump</em> command already exists by default as part of the set of predefined commands, we will create a separate one where a dump file is explicitly set.</p>
<p>Commands are associated per service vendor, so the new <em>mysqldump</em> command will apply to any MySQL service regardless of the Cloud Foundry server.</p>
<p>To add a new command, choose <em>Command Definitions</em> from the Services table context menu to open the <em>Service Tunnel Commands</em> wizard, select the desired service, and click &#8220;Add&#8221;.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_service_tunnel_commands_wizard.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_service_tunnel_commands_wizard.png?resize=584%2C460" alt="cf140_service_tunnel_commands_wizard" class="alignnone size-full wp-image-4674" data-recalc-dims="1" /></a></p>
<p>This will open the <em>Command Definition</em> wizard:</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt1_add_command.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt1_add_command.png?resize=584%2C902" alt="cf140_pt1_add_command" class="alignnone size-full wp-image-4453" data-recalc-dims="1" /></a></p>
<p>Two required properties are needed to define a command:</p>
<ol>
<li>A unique display name. Two or more commands with the same name cannot exist for a given service.</li>
<li>An executable location, or just the name of the application if already set in the OS PATH environment variable.</li>
</ol>
<p>Optionally, a user can also define command options that are passed to the application when it is being executed, and environment variables that are set by the Cloud Foundry plugin prior to launching the command. Option variables using the pattern <em>${variablename}</em> can be used in the options definition.</p>
<p>These variables are grouped into two types:</p>
<ol>
<li>Tunnel-specific variables that are reserved for tunnel values like username, password, port, and database name. These variables are automatically resolved by the Cloud Foundry plugin when the command is launched.</li>
<li>Additional variables that will be prompted to the user in a dialogue when the command is executed.</li>
</ol>
<p>Some applications like <em>psql</em> require that passwords be set as environment variables. As with command options, variables using the pattern <em>${variablename}</em> can be used in place of environment variable values.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_add_env_variables.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_add_env_variables.png?resize=546%2C163" alt="cf140_add_env_variables" class="alignnone size-full wp-image-4447" data-recalc-dims="1" /></a></p>
<p>In addition, the terminal definition can also be adjusted for that particular command, and optionally applied to all current and future commands by editing the terminal launch command value in the <em>External Command Line Terminal</em> section.</p>
<p>To facilitate creating custom commands, the list of predefined commands are available via a drop-down control, and can be used as templates for new definitions:</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt1b_predefined_mysql.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt1b_predefined_mysql.png?resize=331%2C167" alt="cf140_pt1b_predefined_mysql" class="alignnone size-full wp-image-4454" data-recalc-dims="1" /></a></p>
<p>Let&#8217;s select <em>mysqldump</em> from the list. It will now populate the wizard with the default definition for <em>myslqdump</em>, including the necessary options required to run the application. Since we already have a default <em>mysqldump</em> command, an error will appear asking the user to set a different display name:</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt2_name_already_exists.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt2_name_already_exists.png?resize=584%2C902" alt="cf140_pt2_name_already_exists" class="alignnone size-full wp-image-4455" data-recalc-dims="1" /></a></p>
<p>Now, we want to edit the display name and give it a unique name, and also set a specific name for the dump file: <em>myoutputfile.txt</em>. In addition, we are changing the location of the mysql executable as we do not have it set in the OS PATH environment variable.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt3_edited_command_definition.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt3_edited_command_definition.png?resize=584%2C902" alt="cf140_pt3_edited_command_definition" class="alignnone size-full wp-image-4581" data-recalc-dims="1" /></a></p>
<p>Clicking &#8220;Finish&#8221; in the <em>Command Definition</em> wizard will now add the command to the list of commands for the MySQL service:</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt4_commands_wizard_with_changed_name.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt4_commands_wizard_with_changed_name.png?resize=584%2C451" alt="cf140_pt4_commands_wizard_with_changed_name" class="alignnone size-full wp-image-4457" data-recalc-dims="1" /></a></p>
<p>Clicking &#8220;Finish&#8221; once more in the <em>Service Tunnel Commands</em> wizard will persist the changes. At this point, clicking &#8220;Cancel&#8221; will alternately cancel any changes made to any services.</p>
<p>Now let&#8217;s right-click on the MySQL service in the Services table, and we&#8217;ll see the newly added <em>mysqldump with outputfile</em> command in the context menu. Selecting this command will execute it, and if necessary, automatically create a tunnel connection if one wasn&#8217;t already present.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt5_context_menu_new_command.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt5_context_menu_new_command.png?resize=472%2C171" alt="cf140_pt5_context_menu_new_command" class="alignnone size-full wp-image-4593" data-recalc-dims="1" /></a></p>
<p>After the command executes, the following dump file is created in the user&#8217;s home directory:</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt6_mysql_dump.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt6_mysql_dump.png?resize=555%2C522" alt="cf140_pt6_mysql_dump" class="alignnone size-full wp-image-4459" data-recalc-dims="1" /></a></p>
<p>If instead of executing the custom <em>mysqldump with outputfile</em> that was created above, a user runs the default <em>mysqldump</em> command where the dump file is defined using an <em>${output file}</em> variable, a dialogue will open prompting the user for the name of the output file prior to executing the command. The file name can include an absolute path, or if just specifying a name, it will be created relative to the user&#8217;s home directory.</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt7_prompt_outputfile.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/cf140_pt7_prompt_outputfile.png?resize=584%2C478" alt="cf140_pt7_prompt_outputfile" class="alignnone size-full wp-image-4460" data-recalc-dims="1" /></a></p>
<h2>Variations in Terminal Launch</h2>
<p>The command-line feature for 1.4.0 is supported in Mac OS X, Linux and Windows. However, there are differences in how a command is launched in an external terminal. For Mac OS X, the default terminal is <em>Terminal.app</em>, and the Cloud Foundry plugin executes the command and sets any environment variables in a temporary .sh script file that it creates and then passes as an argument to <em>Terminal.app</em>. This temporary file is deleted after the process running the command is launched.</p>
<p>For Windows and Linux, no temporary script file is created, and instead the command and its options are passed directly to the external process as process arguments.</p>
<h2>Installing Cloud Foundry Integration for Eclipse 1.4.0</h2>
<p>To install version 1.4.0, follow the documented instructions to install <a href="http://docs.cloudfoundry.com/tools/STS/configuring-STS.html">Cloud Foundry Integration for Eclipse</a>. Earlier versions of the integration, starting from 1.0.0 can be updated from within Eclipse or STS. Note that updates for older Cloud Foundry plugins prior to 1.0.0 are not supported, and must first be uninstalled before installing 1.4.0.</p>
<p>Only Eclipse JEE Indigo and Juno, as well as STS 2.9.0 and GGTS 3.0.0 and higher are supported.</p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&text=Cloud+Foundry+Integration+for+Eclipse+Can+Now+Launch+External+Command-line+Applications+Using+Service+Tunnels" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&title=Cloud+Foundry+Integration+for+Eclipse+Can+Now+Launch+External+Command-line+Applications+Using+Service+Tunnels&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&title=Cloud+Foundry+Integration+for+Eclipse+Can+Now+Launch+External+Command-line+Applications+Using+Service+Tunnels" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F14%2Fcloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/-_cCwC1py0c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/03/14/cloud-foundry-integration-for-eclipse-can-now-launch-external-command-line-applications-using-service-tunnels/</feedburner:origLink></item>
		<item>
		<title>Cloud Foundry is Open and Pivotal</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/pLkqKXXvq_k/</link>
		<comments>http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 20:24:55 +0000</pubDate>
		<dc:creator>James Watters</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4619</guid>
		<description><![CDATA[For those who have not heard, Cloud Foundry, the open platform-as-a-service project, is now part of the recently announced Pivotal Initiative, an independent entity funded by VMware and EMC. (For a preview of our Paul Maritz-led Pivotal Initiative, check out &#8230; <a href="http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For those who have not heard, <a href="http://www.cloudfoundry.com">Cloud Foundry</a>, the open platform-as-a-service project, is now part of the recently announced Pivotal Initiative, an independent entity funded by VMware and EMC. (For a preview of our Paul Maritz-led Pivotal Initiative, check out <a href="http://www.wired.com/wiredenterprise/2013/02/pivotal/">this</a> Wired article).</p>
<p>Our independent status is quite meaningful and gives us the ability to engage with our large ecosystem in new ways. Adding full-time external committers has always been a goal of the team, and we are engaged with several organizations about putting dedicated resources on the extended engineering team &#8211;we believe this to be a very important step forward. The scale of these external investments is significant and a major milestone in our growth. The heart of Cloud Foundry, however, really comes from individual community contributions and users, so of course, we invite you to join us. All you need to do is send a <a href="http://github.com/cloudfoundry/cf-release/blob/master/README.md">pull-request</a>.</p>
<p>As more and more organizations contribute to Cloud Foundry a transparent roadmap to the community is paramount. In January we began publishing a <a href="http://cloudfoundry.github.com/docs/roadmap.html">quarterly plan</a> as part of our community documentation and since then our mailing list activity has hit an <a href="https://groups.google.com/a/cloudfoundry.org/forum/?fromgroups#!aboutgroup/vcap-dev">all-time high</a>. We will be prolific in communicating the updated roadmap and updates on new work including logging APIs, .NET support, Cloud Foundry BOSH enhancements and more.</p>
<p>Cloud independence and multi-cloud support are important beliefs for us and the broader Pivotal Initiative. Expect open interfaces and support for a variety of clouds, with continued development on <a href="https://github.com/cloudfoundry/bosh/tree/master/bosh_aws_cpi">AWS</a>, <a href="https://github.com/cloudfoundry/bosh/tree/master/bosh_openstack_cpi">Openstack</a>, <a href="https://github.com/cloudfoundry/bosh/tree/master/bosh_vcloud_cpi">vCloud</a> and <a href="https://github.com/cloudfoundry/bosh/tree/master/bosh_vsphere_cpi">vSphere</a> environments.</p>
<p><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/03/photo.jpg?resize=300%2C300" style="float:right;padding: 10px" alt="" class="alignnone size-medium wp-image-4627" data-recalc-dims="1" />Our own financial and human investment in the project continues to grow. Cloud Foundry is staffed with over forty full time internal engineers, augmented by an additional team of twenty five spread across PM, developer advocacy and community management.</p>
<p>Last week we began actively selling software update and support subscriptions to large customers, another important milestone. Enterprise interest in building large scale internal agile platforms with Cloud Foundry is tremendous and we expect an interesting new backlog of feature requests from these engagements. The only proprietary code in these subscriptions is our web console, so any new enhancements will immediately benefit the larger community.</p>
<p>Finally we have again weighed the best governance model for the project and believe the current corporate sponsored, Apache 2 licensed, pull request driven approach, remains the right one. Adding external committers will also enhance the diversity and strength of the team. That said, the massive growth of the community and ecosystem requires mediating a diverse set of needs and we will always be open to other governance models for the project in the future.</p>
<p>Our mission is to become the most popular platform for new applications and the services used to build them across public and private clouds. If your organization would like to join us in building something great please contact us <a href="http://cloudfoundry.com/partners">here</a>.</p>
<p>James Watters, Head of Product</p>
<p>The Cloud Foundry Team</p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&text=Cloud+Foundry+is+Open+and+Pivotal" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&title=Cloud+Foundry+is+Open+and+Pivotal&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&title=Cloud+Foundry+is+Open+and+Pivotal" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F03%2F07%2Fcloud-foundry-is-open-and-pivotal%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/pLkqKXXvq_k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/03/07/cloud-foundry-is-open-and-pivotal/</feedburner:origLink></item>
		<item>
		<title>Continuous Integration to Cloud Foundry.com Using Jenkins in the Cloud</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/ZDl_jfwools/</link>
		<comments>http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 13:50:12 +0000</pubDate>
		<dc:creator>Mark Prichard</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4199</guid>
		<description><![CDATA[Continuous integration using Jenkins is increasingly seen as an effective tool for reducing the cycle time from product backlog to receiving actual user feedback. This can result in real increases in developer and team productivity when combined with an Open &#8230; <a href="http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Continuous integration using Jenkins is increasingly seen as an effective tool for reducing the cycle time from product backlog to receiving actual user feedback. This can result in real increases in developer and team productivity when combined with an Open PaaS such as Cloud Foundry.</p>
<p><em>In this guest blog, Mark Prichard, Senior Director of Product Management for CloudBees®, explains how to create a fully automated environment for application build, test and deployment to Cloud Foundry.com using Jenkins in the Cloud via the CloudBees DEV@cloud™ build service.</em></p>
<p>Spring Framework is the most widely adopted development model for Java-based enterprise applications, used by millions of developers for its powerful abstractions and declarative support for crucial application infrastructure concepts. <a href="http://jenkins-ci.org">Jenkins</a> is the world&#8217;s number one open-source continuous integration (CI) platform, with deep roots in the Java community and 60,000 installations worldwide. These two technologies are part of the fabric that has made Java a highly productive, agile programming environment for business applications. With the rise of cloud computing and Platform as a Service (PaaS), developers want CI services to build, test and deploy their Spring applications entirely in the cloud, using elastic, on-demand resources. You can now use Jenkins via CloudBees DEV@cloud to continuously deploy to Cloud Foundry.com.</p>
<h2>Usage of Continuous Integration and Delivery for Release Management</h2>
<p>In our most recent annual Jenkins CI user survey, a couple of facts stood out: first, 74% of users are building Java applications with Jenkins (although we also see significant development in C/C++, Javascript, Python, C#, PHP, Ruby, Scala and Groovy); and second, we are seeing a really big up-tick in usage by large organizations, with 60% growth among the very largest group. Overall, the number of installations is up 66% in the last year, with over 83% of those surveyed using Jenkins for what they consider mission-critical development. Looking at those results, it seems very clear that many of those large, mission-critical applications are using Java with Spring Framework – with CI provided by Jenkins.</p>
<p>Another key trend that is growing in importance daily is Continuous Delivery. More and more organizations are looking to embrace an agile model in which stringent, automated testing allows enhancements or “micro-releases” to go live without the traditional waterfall release cycles. We are seeing a major shift in enterprise software development to cloud-based, continuous delivery, with fully automated quality, coverage, functional and performance tests gating live deployments. This is the new best practice, and it is now available for Cloud Foundry development.</p>
<p>In this blog post, I&#8217;m going to show you how easy it is to set up a CI job using Jenkins via CloudBees DEV@cloud service to automatically build, test and deploy a rich Spring Framework application to Cloud Foundry.com.</p>
<h2>Using Jenkins in the Cloud to Continuously Deploy Spring Apps to Cloud Foundry</h2>
<p>Here&#8217;s an overview of the process:</p>
<ol>
<li>Link your Cloud Foundry and CloudBees accounts using OAuth 2.0 for secure and automatic deployment</li>
<li>Clone a Git repo and set up a Jenkins job to build automatically when changes are pushed (we&#8217;ve provided ClickStarts™ that automatically do these tasks for you)</li>
<li>Set up and configure Jenkins Cloud Foundry deployment plugin to push your application to Cloud Foundry if your build succeeds</li>
</ol>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/CloudBees-Cloud-Foundry-Flow2.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/CloudBees-Cloud-Foundry-Flow2.png?resize=584%2C332" alt="CloudBees - Cloud Foundry Flow2" class="alignnone size-full wp-image-4347" data-recalc-dims="1" /></a></p>
<p>That&#8217;s it: your application and its services are now running live on Cloud Foundry!</p>
<p>Let&#8217;s take a quick look at all this cool stuff. First, we need a way to allow secure access from your CloudBees DEV@cloud account to the Cloud Foundry deployment services. CloudBees and Cloud Foundry both support the industry-standard <a href="http://oauth.net/2">OAuth 2.0</a> protocol, allowing you to establish a trust relationship between your accounts without the need for either party to store account details like passwords from the other service. Go to <a href="https://cloudfoundry.cloudbees.com">cloudfoundry.cloudbees.com</a>, which will redirect you to the Cloud Foundry log in. Log in and authorize your CloudBees account to deploy to your Cloud Foundry account.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig1.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig1.png?resize=584%2C296" alt="blog fig1" class="alignnone size-full wp-image-4236" data-recalc-dims="1" /></a></p>
<p>Next we want to set up a build job. That&#8217;s really easy, even if you&#8217;ve never used Jenkins before: we&#8217;ve set up ClickStarts that will clone private Git repositories with a couple of fully-featured Cloud Foundry/SpringSource examples from GitHub (<a href="https://github.com/cloudfoundry-samples/springmvc-hibernate-template">springmvc-hibernate</a> and <a href="https://github.com/SpringSource/cloudfoundry-samples/tree/master/petclinic-grails">petclinic-grails</a>) and then create Jenkins jobs for those builds. From the Cloud Foundry ClickStarts launch page all you need to do is click on the Spring icon, enter the name you want to use for your build and in a few seconds you’ll be taken to the Jenkins build job, which will start automatically as soon as the repository is available.</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/Cloud-Foundry-ClickStarts1.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/Cloud-Foundry-ClickStarts1.png?resize=584%2C468" alt="Cloud Foundry ClickStarts" class="alignnone size-full wp-image-4336" data-recalc-dims="1" /></a></p>
<p>At this point, you have everything set up: a private Git repo to use for development, a Jenkins CI build job and automatic deployment to Cloud Foundry. The build job has been configured to use your CloudBees account name as part of the Deployment Hostname (e.g. springmvc-hibernate-&lt; youraccount>.cloudfoundry.com), but of course you can change that if you like. You can now clone a local copy of the source code repository (click on the Repositories tab on the toolbar for full details) and you have a fully automated, cloud-based develop-build-test-deploy Continuous Delivery environment for your Spring/Grails applications. Every time you push an upstream commit, Jenkins will run a complete build/test and deploy to Cloud Foundry.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig2.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig2.png?resize=584%2C400" alt="blog fig2" class="alignnone size-full wp-image-4239" data-recalc-dims="1" /></a></p>
<p>As you can see by browsing the console output for the build job, this is a substantial application that uses many aspects of Spring Framework, including Hibernate for the mapping between the Java application and two data services, Redis and PostgreSQL, that also need to be provisioned on Cloud Foundry.com and bound to the application. That is all done as part of the deployment; you can see the details in the Services section of the host service configuration.</p>
<p><a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/Cloud-Foundry-ClickStarts-Java7.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/Cloud-Foundry-ClickStarts-Java7.png?resize=584%2C444" alt="Cloud Foundry ClickStarts Java7" class="alignnone size-full wp-image-4332" data-recalc-dims="1" /></a></p>
<p>Once the build and deployment are complete, you can go into the console output for the job and see all the details of the deployment. If you have vmc set up on your workstation, you can use vmc apps and vmc services to verify those deployments, like this:</p>
<p><a href="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig-vmc.png"><img src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/blog-fig-vmc.png?resize=584%2C176" alt="blog fig vmc" class="alignnone size-full wp-image-4281" data-recalc-dims="1" /></a></p>
<p>All you have to do now is browse to those URLs and you&#8217;re up and running with Spring/Grails and Jenkins in the cloud &#8211; enjoy!</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/petclinic.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/petclinic.png?resize=584%2C324" alt="petclinic" class="alignnone size-full wp-image-4284" data-recalc-dims="1" /></a></p>
<h2>Summary</h2>
<p>Cloud Foundry together with CloudBees Jenkins in the Cloud service give you a complete Continuous Deployment solution for your enterprise Spring Framework and Grails projects:</p>
<ul>
<li>You have access to all the capabilities of a fully managed Jenkins as a service &#8211; you don&#8217;t have to set up Jenkins or the build systems. </li>
<li>You can use Jenkins to deploy your Java Spring applications seamlessly to Cloud Foundry.</li>
<li>You always have enough build capacity &#8212; CloudBees dynamically adds more build machines as you need them.</li>
<li>It’s free to get started.</li>
</ul>
<p>Watch the video: <a href="http://youtu.be/jDHxZw1ay2c">Continuous Integration to Cloud Foundry.com Using Jenkins in the Cloud</a><br />Docs: <a href="https://developer.cloudbees.com/bin/view/DEV/DeployAppsToCloudFoundry">https://developer.cloudbees.com/bin/view/DEV/DeployAppsToCloudFoundry</a><br />Give it a try: <a href="http://cloudfoundry.cloudbees.com">cloudfoundry.cloudbees.com</a></p>
<p><a name="bio"></a></p>
<p><em><strong>About the Author:</strong> Mark Prichard, Senior Director of Product Management for CloudBees, speaks and blogs regularly as an evangelist for Platform as a Service. He came to CloudBees after 13 years at BEA Systems and Oracle, where he was product manager for the WebLogic Platform. A graduate of St John&#8217;s College, Cambridge and the Cambridge University Computer Laboratory, Mark works in Los Altos, CA.</em></p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&text=Continuous+Integration+to+Cloud+Foundry.com+Using+Jenkins+in+the+Cloud" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&title=Continuous+Integration+to+Cloud+Foundry.com+Using+Jenkins+in+the+Cloud&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&title=Continuous+Integration+to+Cloud+Foundry.com+Using+Jenkins+in+the+Cloud" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F28%2Fcontinuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/ZDl_jfwools" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/</feedburner:origLink></item>
		<item>
		<title>Open Standards in Cloud Foundry Identity Services</title>
		<link>http://feedproxy.google.com/~r/cloudfoundry/org/~3/Kdncq_T2Ges/</link>
		<comments>http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 19:25:04 +0000</pubDate>
		<dc:creator>Dale Olds</dc:creator>
				<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://blog.cloudfoundry.com/?p=4015</guid>
		<description><![CDATA[Cloud Foundry includes a component called the User Account and Authentication (UAA) service which was introduced about a year ago. It provides user account management and authentication for developers that push applications to cloudfoundry.com, including single signon with support.cloudfoundry.com, micro.cloudfoundry.com, &#8230; <a href="http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Cloud Foundry includes a component called the <a href="https://github.com/cloudfoundry/uaa">User Account and Authentication</a> (UAA) service which was introduced about a year ago. It provides user account management and authentication for developers that push applications to <a href="http://www.cloudfoundry.com">cloudfoundry.com</a>, including single signon with <a href="http://support.cloudfoundry.com/home">support.cloudfoundry.com</a>, <a href="http://micro.cloudfoundry.com">micro.cloudfoundry.com</a>, and more on the way. It also provides delegated authorization capabilities to partner sites so that they can interact with Cloud Foundry on a user&#8217;s behalf without access to user credentials.</p>
<p>An introduction and details of the UAA from a developer perspective <a href="http://blog.cloudfoundry.org/2012/07/23/uaa-intro/">can be</a> <a href="http://blog.cloudfoundry.org/2012/07/24/high-level-features-of-the-uaa/">found in</a> <a href="http://blog.cloudfoundry.org/2012/10/09/oauth-rest/">earlier blog</a> <a href="http://blog.cloudfoundry.org/2012/11/05/how-to-integrate-an-application-with-cloud-foundry-using-oauth2/">posts</a>. In this post I will focus on the UAA&#8217;s integration of three emerging identity standards and what that implies for some specific Cloud Foundry deployment patterns.</p>
<h2>Goals</h2>
<p>The goal of the UAA is to make it easier, simpler, more secure and more convenient for users to get to the features of Cloud Foundry. The value is in the open PaaS and the applications it enables. So the identity services provided by the UAA should not only be useful for cloudfoundry.com and applications on it, but for pure open source deployments, managed private clouds, and even the micro cloud running on a thumb drive.</p>
<p>To achieve this goal, we have implemented and integrated new standards in a way that supports various deployment scenarios, such as multiple identity providers and external authentication mechanisms.</p>
<h2>Fusing Identity Standards for a Stronger Platform</h2>
<p>We have woven identity services into the platform using three standard protocols: <a href="http://tools.ietf.org/html/rfc6749">OAuth2</a> for delegated authorization, <a href="http://openid.net/connect/">OpenID Connect</a> for session and authentication information, <a href="http://www.simplecloud.info/">SCIM</a> for user and group management. Of course we provide support for other standards as well, such as JSON Web tokens (JWT), SAML2, and OpenID 2.0. Even support for the legacy identity stalwart LDAP is in process. But what is particularly interesting is how we have combined the three primary protocols.</p>
<ol>
<li><a href="http://tools.ietf.org/html/rfc6749">OAuth2</a> &#8212; this is the foundational protocol and provides delegated authorization. It provides a way for web applications to ask users to allow access to cloudfoundry on the user&#8217;s behalf. It provides authentication and SSO as a side effect. The app gets one or more secure tokens &#8212; some that the app can use to identify the user, and some that it can present to the cloudfoundry API to act on behalf of the user. But OAuth2 does not specify the token format. We chose another standard, JWT, for that.</li>
<li><a href="http://openid.net/connect/">OpenID Connect</a> &#8212; provides identity information for the authenticated user. OAuth2 does not specify how the user&#8217;s information can be obtained by an app, just an opaque token. OpenID connect adds the ability for an app to efficiently and safely get authenticated user attributes like user name or email address. </li>
<li><a href="http://www.simplecloud.info/">SCIM</a> &#8212; User and group provisioning. User account management is out of scope for OAuth2, but SCIM specifies simple user provisioning as well as groups, and it&#8217;s extensible to new types. Since OAuth2 requires that web applications preregister with the authorization server (UAA), but does not specify how these registrations are done, we use a SCIM extension for that.</li>
</ol>
<p>Imagine two web applications: &#8211; one manages users and groups for access to cloudfoundry.com &#8211; one displays results of monitors a user&#8217;s running applications as a service &#8212; like our partner Appsecute provides.</p>
<p>You could diagram the interactions of the apps and three protocols like this: <a href="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/uaa-environ.png"><img src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/uaa-environ.png?resize=584%2C357" alt="uaa-environ" class="alignnone size-full wp-image-4016" data-recalc-dims="1" /></a></p>
<p>The three protocols complement each other well so far, but there is a piece still missing.</p>
<h2>Connecting the Missing Link</h2>
<p>For delegated authorization to work, the user needs a unit of delegation &#8212; some handle so they can say: I want to allow application X to read my application list on cloudfoundry.com, but not actually modify anything. This notion of specifying names for roles or permissions is called the token &#8216;scope&#8217; in OAuth2. We needed some way to support management of these scopes, their existence, what users have access to them, what web applications can ask for them &#8212; and do it all in a way that naturally supports their use in authorization decisions.</p>
<p>Therefore, we mapped SCIM groups to OAuth2 scopes. In other words, you can create a group in the UAA and register a web app with that group name as a scope. When a user logs into the web app, it&#8217;s redirected to the UAA. If the user is in the group and they choose to authorize the web app with that scope, the web app gets a signed token that contains that scope.</p>
<p>We use this in our own cloudfoundry dashboard application. The system reliability engineers access the dashboard app, which is a UAA client app and always requests a token with dashboard.user scope. The UAA denies the scope unless the user is in the dashboard.user group.</p>
<p><a href="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/uaa-dashboard.png"><img src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/uploads/2013/02/uaa-dashboard.png?resize=478%2C384" alt="uaa-dashboard" class="alignright size-full wp-image-4017" data-recalc-dims="1" /></a></p>
<p>What this gets us is that the dashboard app does not have any user account code, and it never gets the user&#8217;s credentials. It merely redirects to the UAA if there is no access token in the authorization header. If there is an access token it validates the token, and then checks if it has dashboard.user in the scope. For the system monitors, this means no need for shared accounts or passwords and better control of which users have access.</p>
<p>This is particularly useful when there are multiple such applications. Users get SSO among the applications, the applications are each more secure, access can be easily controlled by groups in the UAA.</p>
<h2>Extensible Authentication Services</h2>
<p>A somewhat recent addition is that we have separated the authentication service from the rest of the UAA. In OAuth2 terms this is separating the authorize and token endpoints. We can have different implementations of the authentication service for different needs. So far implementations are available for username and password (on cloudfoundry.com), for various flavors of openid2, and for SAML2 identity providers.</p>
<h2>Why this is Cool</h2>
<p>This is all quite useful, but how it can be used in a cloudfoundry deployment is best illustrated by some examples:</p>
<p>Suppose cloudfoundry is running in a managed instance for an enterprise. The enterprise has a suite of apps that can use the full advantage of the PaaS &#8212; easy deployment, scale up, scale down, with a myriad of frameworks and services. All the apps can use the UAA at the core for SSO and role (group) based authorization. Add a user to a group via SCIM, and the corresponding scope will be available at next login to all apps.</p>
<p>Cloudfoundry.com includes various web apps to help developers. Some of them only need to know who the user is for SSO. The openid scope is perfect for them. Suppose a new site wants to also provide personalized content based on the user&#8217;s running apps. We can create a registration for that app that restricts its scope to listing the user&#8217;s apps. If that app is compromised, nothing in the data of the user&#8217;s apps can be changed.</p>
<p>Suppose you are a developer running a private cloud in an enterprise. With Cloud Foundry you get these features:</p>
<ul>
<li>You can create and deploy applications exactly the same as apps on cloudfoundry.com with access to the multitude of frameworks and services, exactly the same as apps on cloudfoundry.com. </li>
<li>Your apps can register with the UAA in your cloudfoundry instance, which means they don&#8217;t have to manage users or authentication. All apps in your instance can have SSO and common groups for authorization. </li>
<li>Further, you can configure the UAA in your instance to include a SAML Login server, which gets user authentication from the corporate SAML IdP in front of an Active Directory instance. All apps now have SSO with the corporate IdP. </li>
<li>Eventually you&#8217;d like a user&#8217;s AD group membership for be available to your app as an OAuth2 scope. Put the group membership in the SAML assertion and it can be mapped to a scope by the SAML Login Server &#8212; this part isn&#8217;t actually implemented yet, but is here to show future possibilities.</li>
</ul>
<p>Cloud Foundry identity services are built on open standards and open source. They increase security and reduce friction so users can take advantage of the open PaaS.</p>
<div class="trackable_sharing"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F" style="text-decoration: none; white-space: nowrap;" title="Facebook" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Facebook','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//facebook.png?resize=36%2C36" alt="Facebook"  data-recalc-dims="1"></a> <a href="http://twitter.com/share?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&text=Open+Standards+in+Cloud+Foundry+Identity+Services" style="text-decoration: none; white-space: nowrap;" title="Twitter" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Twitter','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//twitter.png?resize=36%2C36" alt="Twitter"  data-recalc-dims="1"></a> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&ro=false&summary=&source=" style="text-decoration: none; white-space: nowrap;" title="Linkedin" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Linkedin','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i1.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//linkedin.png?resize=36%2C36" alt="Linkedin"  data-recalc-dims="1"></a> <a href="http://digg.com/submit?partner=addthis&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&title=Open+Standards+in+Cloud+Foundry+Identity+Services&bodytext=" style="text-decoration: none; white-space: nowrap;" title="Digg" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Digg','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//digg.png?resize=36%2C36" alt="Digg"  data-recalc-dims="1"></a> <a href="http://www.delicious.com/save?v=5&noui&jump=close&url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&title=Open+Standards+in+Cloud+Foundry+Identity+Services" style="text-decoration: none; white-space: nowrap;" title="Delicious" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Delicious','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//delicious.png?resize=36%2C36" alt="Delicious"  data-recalc-dims="1"></a> <a href="http://www.reddit.com/login?dest=%2Fsubmit%3Furl=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F" style="text-decoration: none; white-space: nowrap;" title="Reddit" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Reddit','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//reddit.png?resize=36%2C36" alt="Reddit"  data-recalc-dims="1"></a> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F&title=http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F" style="text-decoration: none; white-space: nowrap;" title="Stumbleupon" target="_blank" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Stumbleupon','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); _trackableshare_window = window.open(this.href,'share','menubar=0,resizable=1,,); _trackableshare_window.focus(); return false;"><img align="absmiddle" src="http://i0.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//stumbleupon.png?resize=36%2C36" alt="Stumbleupon"  data-recalc-dims="1"></a> <a href="mailto:?subject=Check out http%3A%2F%2Fblog.cloudfoundry.com%2F2013%2F02%2F19%2Fopen-standards-in-cloud-foundry-identity-services%2F" style="text-decoration: none; white-space: nowrap;" title="Email" onclick="that=this;_gaq.push(['_trackEvent','SocialSharing','Email','http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/']); "><img align="absmiddle" src="http://i2.wp.com/blog.cloudfoundry.com/wp-content/plugins/trackable-social-share-icons/buttons/a4//email.png?resize=36%2C36" alt="Email"  data-recalc-dims="1"></a> </div><img src="http://feeds.feedburner.com/~r/cloudfoundry/org/~4/Kdncq_T2Ges" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.cloudfoundry.com/2013/02/19/open-standards-in-cloud-foundry-identity-services/</feedburner:origLink></item>
	</channel>
</rss>
