Canonical Voiceshttp://voices.canonical.com2014-09-09T10:18:45ZDustin Kirkland: Dream a little dream (in a dream within another dream) with me!2014-09-09T10:18:45ZDustin Kirklandnoreply@blogger.comhttp://blog.dustinkirkland.com/2014/09/dream-little-dream-in-dream-within.html<blockquote class="tr_bq"></blockquote>What would you say if I told you, that you could continuously upload your own <b>Software-as-a-Service</b>&nbsp; (SaaS) web apps into an open source <b>Platform-as-a-Service</b>&nbsp;(PaaS) framework, running on top of an open source <b>Infrastructure-as-a-Service</b>&nbsp;(IaaS) cloud, deployed on an open source <b>Metal-as-a-Service</b> provisioning system, autonomically managed by an open source <b>Orchestration-Service</b>… right now, today?<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="163" src="https://lh6.googleusercontent.com/6U2-o_-Jq2x23ZBx9pn9CRBlmii2GVCAgpXrPCJZoQateheXZSi-7qCtauPvSgjTunDDfsj2JaQw90KtWZvbG8dOVz34O9EPtYLJc_p24QVkmtHghmMbjmVzTthPLszk4tfs" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>“An idea is resilient. Highly contagious. Once an idea has taken hold of the brain it's almost impossible to eradicate.”</b></span></i></div></i></td></tr></tbody></table><i><div><br /></div></i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="357" src="https://lh3.googleusercontent.com/fQakyTv-9JFHZHyZxlwQVUE6-zhYKYw7kCKWi78ZE0Td89GClOfoWOp1tk0_ofKOndnaja8uoi3u5PkxTk33IYQRrYzs03KK3Yna3_9M34GqfP8VcizUiM6mJrvX7G9W5VA_" width="400" /></td></tr><tr><td class="tr-caption"><span><span><b>“Now, before you bother telling me it's impossible…”</b></span></span></td></tr></tbody></table><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="330" src="https://lh5.googleusercontent.com/UthPKOrEuffRy7W_M6qCJdHua8YfOm2Bi_2j9zfM-nHfABUvSuypksVJ5KbyqO8Dc50HqZa35h41SVBNXJUh8BqZrhbbiYLXqNyXCcgP2J_tyOptyggbhnof2fQ26o_rRitb" width="400" /></td></tr><tr><td class="tr-caption"><span><span><b>“No, it's perfectly possible. It's just bloody difficult.”&nbsp;</b></span></span></td></tr></tbody></table><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><a href="http://3.bp.blogspot.com/-3gmWU-3osOw/VA8A1B38PeI/AAAAAAAA1AA/HAhLo5vfWiw/s1600/1.png"><img border="0" height="191" src="https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F3.bp.blogspot.com%2F-3gmWU-3osOw%2FVA8A1B38PeI%2FAAAAAAAA1AA%2FHAhLo5vfWiw%2Fs1600%2F1.png&container=blogger&gadget=a&rewriteMime=image%2F*" width="400" /></a></td></tr><tr><td class="tr-caption"><i><div><i><b>Perhaps something like this...</b></i></div></i></td></tr></tbody></table><i><div><br /></div></i><i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="240" src="https://lh6.googleusercontent.com/q226Ao-fcEyUJziL1-hqxfumwXNC3XRm3Ti1sBYIEISLnZz3kgydILAkscA3-cLC-IsbRsa7SYqwwoqDsykr15fB3g3-48uN3PmC6QFk5Xb_MVXezVAyvRvwU6hJ9SkiO6U8" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>“How could I ever acquire enough detail to make them think this is reality?”</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="197" src="https://lh6.googleusercontent.com/uW8DolqDRI_biFUqlGLMTjVHGZhRVApvxCG3408B34EfqkeKv5irqb_7gtKbtzMuAFTQkTjlByVSK1qDvj_CtFQgBsDX_137dbqKvmxYZzd-WNJRXrl1QtX8H1VsXaKylDAI" width="400" /></td></tr><tr><td class="tr-caption"><span><span><b>“Don’t you want to take a leap of faith???”</b></span></span></td></tr></tbody></table><div><span><b><i></i></b></span></div><div>Sure, let's take a look!</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="332" src="https://lh3.googleusercontent.com/MhJMgdD67_GpXRDAwou_YHQHKJYctseyUabU6cBHLSH8vHcEBRIEmtKXbT_ha1OEbVNbvZxs_i__jBMg4F0oOXO_vaKsQDkq6626k0abI_JbwJF72gLMdEiV6jtz28vZqLdl" width="400" /></td></tr><tr><td class="tr-caption"><span><span><b>Okay, this looks kinda neat, what is it?</b></span></span></td></tr></tbody></table><div><span><b><i></i></b></span></div><i><div><br /></div></i>This is an open source <a href="http://projects.spring.io/spring-framework/">Java Spring</a> web application, called <a href="https://github.com/cloudfoundry-samples/spring-music">Spring-Music</a>, deployed as an app, running inside of Linux containers in <a href="http://cloudfoundry.org/">CloudFoundry</a>.&nbsp;<div><div><br /></div><div><img height="53" src="https://lh6.googleusercontent.com/NCA7GX303P46W2Xf_OAayhq75WBmd1V7xUcJOFgxE_uP1gNF3jbtZnumz-e4Ra7ATqLUpT8mRROtbMg5xEofkFhNqO5Kwf0EDTtmRAmJ92snvfZ9t-LKhUoemu5eEHgp47yj" width="400" /></div><div><br /></div><i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="272" src="https://lh6.googleusercontent.com/wQy4Ie-EbGYmzp7hVAf34I9ukiHTfyQMvi2Cou0-7Jyics_H2jjV3Wup49gjbu78-TlO8bOzswYKnWcL0ivoSgwiBjIz-2vqQbDV3jJVXiXE89w6PpTElAJVCb0q3YOkuig8" width="400" /></td></tr><tr><td class="tr-caption"><span><span><b>Cloud Foundry?</b></span></span></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><a href="http://cloudfoundry.org/">CloudFoundry</a> is an open source Platform-as-a-Service (PAAS) cloud, deployed into Linux virtual machine instances in <a href="http://openstack.org/">OpenStack</a>, by <a href="http://juju.ubuntu.com/">Juju</a>.<br /><br /><div><i><img height="227" src="https://lh3.googleusercontent.com/DZIW_U5L2KUNbwAJr8S1KjhvUZ-Dq4zE4Q6Kdmn7YsF0aJdS2H10k-XSBjHjsaKs7ZJWaWXTtjtxCiW3u-01xuDEtwExsJFlsvmd4ylEJU659jtO39d2F-ZwzAvujIux3OSy" width="400" /></i></div><i><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="198" src="https://lh4.googleusercontent.com/csDvGO5VKjFH_1ApFc4UI1Sv3eVH-EjvUUzCwpATzihFYzhFct6ImIeaHZV8l5KPNKKGsj_wu7wNonPgPC9CWajlv_HqZTpErhA-kuXRbPf_LMHqKZTPRa7BZpr9eNITD41Q" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>OpenStack?</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="253" src="https://lh5.googleusercontent.com/WsOijZcmTtgHOzOxC1GTdFoRF7ctbwCpyGdgB0ItrPrA0FlAE4r62_u9jwo11qQi6r9Kkap069-eHrI6-cYizimoWHuma_2dPyb6tP4v_-Up-y8NNqz_JAAW2_HgFtD9cNCc" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>Juju?</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><a href="http://openstack.org/">OpenStack</a> is an open source Infrastructure-as-a-Service (IAAS) cloud, deployed by <a href="http://juju.ubuntu.com/">Juju</a> and <a href="http://landscape.canonical.com/">Landscape</a> on top of <a href="http://maas.ubuntu.com/">MAAS</a>. <br /><br /><a href="http://juju.ubuntu.com/">Juju</a> is an open source Orchestration System that deploys and scales complex services across many public clouds, private clouds, and bare metal servers. <br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="331" src="https://lh5.googleusercontent.com/Pq_dfCNOufT0bGCglTgC2gH54QV_8-mx8nAxWmC-vNpO66y9iZ4qZXvNBPvuzoaDD06w3QUS646_N0uVEeGk0lJtbIbMf1Q26MMM4FhdsgULxukls3p3pdsm9_aENLqMAEGH" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>Landscape?</b></span></i></div></i></td></tr></tbody></table><i><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="348" src="https://lh5.googleusercontent.com/4df-xAtHpk9IMzvzR9wNSERFJW2m7ojs9YAGSzoN0GZPjwHnOB1euZX9AOceeMbWEzycS5ZnJ9yw2mswIcVftJVnSF_mYu0z55AZf1D4CJgeM4DF_43kyOcacIRcTPIA5L48" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>MAAS?</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><a href="http://landscape.canonical.org/">Landscape</a> is a systems management tool that automates software installation, updates, and maintenance in both physical and virtual machines. Oh, and it too is deployed by <a href="http://juju.ubuntu.com/">Juju</a>.<br /><br /><a href="http://maas.ubuntu.com/">MAAS</a> is an open source bare metal provisioning system, providing a cloud-like API to physical servers. <a href="http://juju.ubuntu.com/">Juju</a> can deploy services to <a href="http://maas.ubuntu.com/">MAAS</a>, as well as public and private clouds.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="162" src="https://lh4.googleusercontent.com/-Aug6YksaMl0sykdqqPxNpfXal-iMpB9BwzS0hqtdf2GXReJaeA5ZAzmGrz1vc8EhrI_rFC8VW0ZUjYoqk82Li4rg830vjEZSS-eMoMzLQLjqYuAay6ClEe3hOZX7YkbjXyP" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>"Ready for the kick?"</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><i><div><br /></div></i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img border="0" height="191" src="https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F3.bp.blogspot.com%2F-3gmWU-3osOw%2FVA8A1B38PeI%2FAAAAAAAA1AA%2FHAhLo5vfWiw%2Fs1600%2F1.png&container=blogger&gadget=a&rewriteMime=image%2F*" width="400" /></td></tr><tr><td class="tr-caption"><div><i><span><b>If you recall these concepts of nesting cloud technologies...</b></span></i></div></td></tr></tbody></table><div><a href="http://3.bp.blogspot.com/-3gmWU-3osOw/VA8A1B38PeI/AAAAAAAA1AA/HAhLo5vfWiw/s1600/1.png"><span><b><i></i></b></span></a></div><div><br /></div><i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><a href="http://3.bp.blogspot.com/-pw1xXRnFSrg/VA8FEJjoBZI/AAAAAAAA1AI/X8Cl5WaW-WM/s1600/2.png"><img border="0" height="191" src="https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F3.bp.blogspot.com%2F-pw1xXRnFSrg%2FVA8FEJjoBZI%2FAAAAAAAA1AI%2FX8Cl5WaW-WM%2Fs1600%2F2.png&container=blogger&gadget=a&rewriteMime=image%2F*" width="400" /></a></td></tr><tr><td class="tr-caption"><i><div><i><span><b>These are real technologies, which exist today!</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><div>These are&nbsp;<b>Software-as-a-Service</b>&nbsp; (SaaS) web apps served by an open source&nbsp;<b>Platform-as-a-Service</b>&nbsp;(PaaS) framework, running on top of an open source&nbsp;<b>Infrastructure-as-a-Service</b>&nbsp;(IaaS) cloud, deployed on an open source&nbsp;<b>Metal-as-a-Service</b>&nbsp;provisioning system, managed by an open source&nbsp;<b>Orchestration-Service.</b></div><div><b><br /></b></div><div>Spring Music, served by CloudFoundry, running on top of OpenStack, deployed on MAAS, managed by Juju and Landscape!</div><div><br /></div><i><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="266" src="https://lh4.googleusercontent.com/44N09yz4YZ7laeOJxBXuSe0RixPFk2x2tG8SyriKIhFUDt21G59y0O-kbzmW1QzX_o85CRelpya7ZjqtQbPIM26-Mj8IFNmk4Txz7mqUr95UtWfFySAWrDrmomfZCg1xM3Ax" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>“The smallest seed of an idea can grow…”</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td><img height="183" src="https://lh4.googleusercontent.com/tCnrumYpbfyvc0ZpempL7je19XaRtkBWf9U5R2Yx6xJiQ-XHNucX5pRpzh4f47fr-TGhJ3vk9GutHHbHiSLxLvCKDd80E4PqD_GVPzyHjZeaAOjHVmJlYbOXZS_w4mRICZlU" width="400" /></td></tr><tr><td class="tr-caption"><i><div><i><span><b>Oh, and I won't leave you hanging...you're not dreaming!</b></span></i></div></i></td></tr></tbody></table><div><span><b><i></i></b></span></div><div><br /></div></i><br />:-Dustin<div dir="ltr"><span><span id="docs-internal-guid-1b18fa9b-5a9d-6d19-5dcc-fb73e445b918"></span></span></div></div>Mark Shuttleworth: Building clouds for fun and profit2011-09-19T11:07:21Zmarknospam@nospam.comhttp://www.markshuttleworth.com/archives/777<p>So you&#8217;d like to spin up an internal cloud for hadoop or general development, shifting workloads from AWS to your own infrastructure or prototyping some new cloud services?</p>
<p>Call Canonical&#8217;s <a title="Professional services and consulting for cloud infrastructure design and deployment" href="http://www.ubuntu.com/business/services/cloud">cloud infrastructure design and consulting team</a>.</p>
<p>There are a couple of scenarios that we&#8217;re focused on at the moment, where we can offer standardised engagements:</p>
<ul>
<li>Telco&#8217;s building out cloud infrastructures for public cloud services. These are aiming for specific markets based on geography or network topology &#8211; they have existing customers and existing networks and a competitive advantage in handling outsourced infrastructure for companies that are well connected to them, as well as a jurisdictional advantage over the global public cloud providers.</li>
<li>Cloud infrastructure prototypes at a division or department level. These are mostly folk who want the elasticity and dynamic provisioning of AWS in a private environment, often to work on products that will go public on Rackspace or AWS in due course, or to demonstrate and evaluate the benefits of this sort of architecture internally.</li>
<li>Cloud-style legacy deployments. These are folk building out HPC-type clusters running dedicated workloads that are horizontally scaled but not elastic. Big Hadoop deployments, or Condor deployments, fall into this category.</li>
</ul>
<p>Cloud has become something of a unifying theme in many of our enterprise and server-oriented conversations in the past six months. While not everyone is necessarily ready to shift their workloads to a dynamic substrate like Ubuntu Cloud Infrastructure (powered by OpenStack) it seems that most large-scale IT deployments are embracing cloud-style design and service architectures, even when they are deploying on the metal. So we&#8217;ve put some work into tools which can be used in both cloud and large-scale-metal environments, for provisioning and coordination.</p>
<p>With 12.04 LTS on the horizon, OpenStack exploding into the wider consciousness of cloud-savvy admins, and projects like Ceph and CloudFoundry growing in stature and capability, it&#8217;s proving to be a very dynamic time for IT managers and architects. Much as the early days of the web presented a great deal of hype and complexity and options, only to settle down into a few key standard practices and platforms, cloud infrastructure today presents a wealth of options and a paucity of clarity; from NoSQL choices, through IAAS choices, through PAAS choices. Over the next couple of months I&#8217;ll outline how we think the cloud stack will shape up. Our goal is to make that &#8220;clean, crisp, obvious&#8221; deployment Just Work, bringing simplicity to the cloud much as we strive to bring it on the desktop.</p>
<p>For the moment, though, it&#8217;s necessary to roll up sleeves and get hands a little dirty, so the team I mentioned previously has been busy bringing some distilled wisdom to customers embarking on their cloud adventures in a hurry. Most of these engagements started out as custom consulting and contract efforts, but there are now sufficient patterns that the team has identified a set of common practices and templates that help to accelerate the build-out for those typical scenarios, and packaged those up as a range of standard cloud building offerings.</p>
<p>&nbsp;</p>Dustin Kirkland: Howto: Install the CloudFoundry Server PaaS on Ubuntu 11.102011-08-08T09:46:12ZDustin Kirklandnoreply@blogger.comhttp://blog.dustinkirkland.com/2011/08/howto-install-cloudfoundry-server-paas.html<div class="separator"><a href="http://2.bp.blogspot.com/-DeDs6H5f6uo/Tjdjm4Ot4zI/AAAAAAAAEQk/z78S5sLy_xo/s1600/cloud_foundry_logo.png"><img border="0" height="41" src="http://2.bp.blogspot.com/-DeDs6H5f6uo/Tjdjm4Ot4zI/AAAAAAAAEQk/z78S5sLy_xo/s400/cloud_foundry_logo.png" width="320" /><br />(the server!)</a></div><br /><br />I recently gave <a href="http://blog.dustinkirkland.com/2011/07/getting-started-with-cloudfoundry.html">an introduction</a> to the CloudFoundry Client application (<a href="http://manpg.es/vmc"><i>vmc</i></a>),&nbsp; which is <a href="http://launchpad.net/+source/ubuntu/ruby-vmc">already</a> in Ubuntu 11.10's Universe archive.<br /><br />Here, I'd like to introduce the far more interesting server piece -- <b><i>how to run the CloudFoundry Server, on top of Ubuntu 11.10</i>!</b>&nbsp; As far as I'm aware, this is the most complete PaaS solution we've made available on top of Ubuntu Servers, to date.<br /><br />A big thanks to the VMWare CloudFoundry Team who has been helping us along with the deployment instructions.&nbsp; Also, all of the packaging credit goes straight to <a href="http://pad.lv/%7Ebrian-thomason">Brian Thomason</a>, <a href="http://pad.lv/%7Enegronjl">Juan Negron</a>, and <a href="http://pad.lv/%7Elynxman">Marc Cluet</a>. <br /><br />For testing purposes, I'm going to run this in Amazon's EC2 Cloud.&nbsp; I'll need a somewhat larger instance to handle all the services and dependencies (ie, Java) required by the platform.&nbsp; I find an <i>m1.large</i> seems to work pretty well, for $0.34/hour.&nbsp; I'm using the Oneiric (Ubuntu 11.10) AMI's listed at <a href="http://uec-images.ubuntu.com/oneiric/current/">http://uec-images.ubuntu.com/oneiric/current/</a>.<br /><br /><b>Installation</b><br /><br />To install CloudFoundry Server, add the PPA, update, and install:<br /><br /><pre>sudo apt-add-repository ppa:cloudfoundry/ppa
<br />sudo apt-get update</pre><pre>sudo apt-get install cloudfoundry-server
<br /></pre><br />During the installation, there are a couple of <i>debconf</i> prompts, including:<br /><ul><li>a mysql password</li>
<ul><li>required for configuration of the MySQL database (enter twice)</li>
</ul></ul>All in all, the install took me less than 7 minutes!<br /><br />Next, install the client tools, either on your local system, or even on the server, so that we can test our server:<br /><br /><pre>sudo apt-get install cloudfoundry-client
<br /></pre><br /><b>Configuration</b><br /><br />Now, you'll need to target your <i>vmc</i> client against your installed server, rather than <a href="http://cloudfoundry.com/">CloudFoundry.com</a>, as I demonstrated in <a href="http://blog.dustinkirkland.com/2011/07/getting-started-with-cloudfoundry.html">my last post</a>.<br /><br />In production, you're going to need access to a wildcard based DNS server, either your own, or a DynDNS service.&nbsp; If you have a <a href="http://dyndns.com/">DynDNS.com</a> standard account ($30/year), CloudFoundry actually supports dynamically adding DNS entries for your applications.&nbsp; We've added <i>debconf</i> hooks in the <i>cloudfoundry-server</i> Ubuntu packaging to set this up for you.&nbsp; So if you have a paid DynDNS account, just <i>sudo dpkg-reconfigure cloudfoundry-server</i>.<br /><br />For this example, though, we're going to take the poor man's approach, and just edit our <i>/etc/hosts</i> file, BOTH locally on our laptop and on our CloudFoundry server.<br /><br />First, look up your server's external IP address.&nbsp; If you're running <i>Byobu</i> in EC2, it'll be the lower right corner.<br /><div class="separator"><a href="http://3.bp.blogspot.com/-qENBp6Qc7h0/TjxTI7oNtGI/AAAAAAAAERI/GSXqTiYFZYA/s1600/byobu.png"><img border="0" height="36" src="http://3.bp.blogspot.com/-qENBp6Qc7h0/TjxTI7oNtGI/AAAAAAAAERI/GSXqTiYFZYA/s400/byobu.png" width="400" /></a></div><br />Otherwise, grab your IPv4 address from the metadata service.<br /><br /><pre>$ wget -q -O- http://169.254.169.254/latest/meta-data/public-ipv4
<br />174.129.119.101
<br /></pre><br />And you'll need to add an entry to your <i>/etc/hosts</i> for <i>api.vcap.me</i>, AND every application name you deploy.&nbsp; Make sure you do this <i>both</i> on your laptop, and the server!&nbsp; Our test application here will be called <i>testing123</i>. Don't forget to change my IP address to yours ;-)<br /><br /><pre>echo "174.129.119.101 api.vcap.me testing123.vcap.me" | sudo tee -a /etc/hosts
<br /></pre><br /><b>Target</b><br /><br />Now, let's target our <i>vmc</i> client at our <i>vcap</i> (CloudFoundry) server:<br /><br /><pre>$ vmc target api.vcap.me
<br />Succesfully targeted to [http://api.vcap.me]
<br /></pre><br /><b>Adding Users</b><br /><br />And add a user.<br /><br /><pre>$ vmc add-user
<br />Email: kirkland@example.com
<br />Password: ********
<br />Verify Password: ********
<br />Creating New User: OK
<br />Successfully logged into [http://api.vcap.me]
<br /></pre><br /><b>Logging In</b><br /><br />Now we can login.<br /><br /><pre>$ vmc login
<br />Email: kirkland@example.com
<br />Password: ********
<br />Successfully logged into [http://api.vcap.me]
<br /></pre><br /><b>Deploying an Application</b><br /><br /><br />At this point, you can jump over to <a href="http://blog.dustinkirkland.com/2011/07/getting-started-with-cloudfoundry.html">my last post</a> in the <i>vmc</i> client tool for a more comprehensive set of examples.&nbsp; I'll just give one very simple one here, the Ruby/Sinatra helloworld + environment example.<br /><br />Go to the examples directory, find an example, and push!<br /><br /><pre>$ cd /usr/share/doc/ruby-vmc/examples/ruby/hello_env
<br />$ vmc push
<br />Would you like to deploy from the current directory? [Yn]: y
<br />Application Name: testing123
<br />Application Deployed URL: 'testing123.vcap.me'?
<br />Detected a Sinatra Application, is this correct? [Yn]: y
<br />Memory Reservation [Default:128M] (64M, 128M, 256M, 512M, 1G or 2G)
<br />Creating Application: OK
<br />Would you like to bind any services to 'testing123'? [yN]: n
<br />Uploading Application:
<br />&nbsp; Checking for available resources: OK
<br />&nbsp; Packing application: OK
<br />&nbsp; Uploading (0K): OK
<br />Push Status: OK
<br />Staging Application: OK
<br />Starting Application: OK
<br />
<br /></pre>Again, make absolutely sure that you edit your local <i>/etc/hosts</i> and add the <i>testing123.vcap.me</i> to the right IP address, and then just point a browser to <a href="http://testing123.vcap.me/">http://testing123.vcap.me/</a><br /><br /><div class="separator"><a href="http://4.bp.blogspot.com/-z-fHdJ2xYM0/TjxZ0w8SSwI/AAAAAAAAERQ/IB3eybFinRk/s1600/browser.png"><img border="0" height="400" src="http://4.bp.blogspot.com/-z-fHdJ2xYM0/TjxZ0w8SSwI/AAAAAAAAERQ/IB3eybFinRk/s640/browser.png" width="640" /></a></div><br />And there you have it!&nbsp; An application pushed, and running on your CloudFoundry Server&nbsp; -- Ubuntu's first packaged PaaS!<br /><br /><b>What's Next?</b><br /><br />So the above setup is a package-based, all-in-one PaaS.&nbsp; That's perhaps useful for your first CloudFoundry Server, and your initial experimentation.&nbsp; But a production PaaS will probably involve multiple, decoupled servers, with clustered databases, highly available storage, and enterprise grade networking.<br /><br /><a href="https://launchpad.net/%7Ecanonical-sig/+members#active">The Team</a> is hard at work breaking CloudFoundry down to its fundamental components and creating a set of Ensemble formulas for deploying CloudFoundry itself as a scalable service.&nbsp; Look for more news on that front very soon!<br /><br />In the meantime, try the packages at <b><i>ppa:cloudfoundry/ppa</i></b> (or even the daily builds at <b><i>ppa:cloudfoundry/daily</i></b>) and let us know what you think!<br /><br />:-Dustin