<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.activestate.com/blog/rss.xml">
  <channel>
    <title>ActiveBlog: Insights on Open Source and Dynamic Languages</title>
    <link>http://www.activestate.com/blog/rss.xml</link>
    <description>A blog with insights on Open Source and Dynamic Languages (Perl, Python, Tcl and more) from the Dynamic Languages Experts.</description>
    <language>en</language>
          <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/activestate/blog" /><feedburner:info uri="activestate/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>activestate/blog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
    <title>Komodo IDE 7: The world's fiercest IDE has evolved!</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/YiSw28mX4DU/komodo-ide-7-worlds-fiercest-ide-has-evolved</link>
    <description>&lt;img title="Komodo IDE 7: The world's fiercest IDE has evolved" alt="Komodo IDE 7: The world's fiercest IDE has evolved"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/ins_komodo_ide_7_new.jpg" class="as_feature_img as_left"/&gt;

&lt;p&gt;&lt;strong&gt;Komodo IDE 7&lt;/strong&gt; has just been released! It offers groundbreaking new technologies and innovative enhancements. Here's an introduction to the most prominent features it includes.&lt;/p&gt;

&lt;ul style="clear:both"&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href="/komodo-ide/features#collaboration" title="Code Collaboration"&gt;Code Collaboration&lt;/a&gt;&lt;/strong&gt; is one of the coolest things to use in a team development environment. You can easily share your files and collaborate in real time with your colleagues and friends. Peer reviews and pair programming become a much more intuitive and interactive experience with Komodo's collaboration tools.&lt;/p&gt;
    
    &lt;a rel="shadowbox[Screenshots]"
   href="/sites/default/files/blog_import_images/ko7_collaboration.png"&gt;
     &lt;img title="Real-time Code Collaboration" alt="Real-time Code Collaboration"
	    style="width: 400px"
	    src="/sites/default/files/blog_import_images/ko7_collaboration.png"
	    class="as_feature_img as_left" /&gt;
&lt;/a&gt;

  &lt;/li&gt;

  &lt;li style="clear:both"&gt;
  &lt;img title="Komodo Sync" alt="Komodo Sync"
   style="width: 120px; float:right;"
   src="/sites/default/files/blog_import_images/ko7_sync.png"
   class="as_feature_img as_right" /&gt;
    &lt;p&gt;For those that use multiple machines, Komodo's &lt;strong&gt;&lt;a href="/komodo-ide/features#sync" title="Komodo Sync"&gt;Synchronization&lt;/a&gt;&lt;/strong&gt; feature gives you the ability to copy your Komodo settings (remote server accounts, toolbox, file templates...) between all the Komodo instances. So you can customize Komodo in one place and have the same setup appear in another!&lt;/p&gt;
  &lt;/li&gt;
    
    
  &lt;li style="clear:both"&gt;
    &lt;p&gt;The &lt;strong&gt;&lt;em&gt;cloud&lt;/em&gt;&lt;/strong&gt; is a new and exciting playground for developers. Komodo's &lt;strong&gt;&lt;a href="/komodo-ide/features#stackato" title="Stackato Integration"&gt;Stackato&lt;/a&gt;&lt;/strong&gt; interface provides the ability to quickly deploy web based applications onto cloud infrastructure - you can have your application running on the cloud within minutes! A slew of languages and frameworks are supported - such as &lt;em&gt;Python&lt;/em&gt;, &lt;em&gt;Django&lt;/em&gt;, &lt;em&gt;Ruby&lt;/em&gt;, &lt;em&gt;Rails&lt;/em&gt;, &lt;em&gt;PHP&lt;/em&gt;, &lt;em&gt;Drupal&lt;/em&gt;, &lt;em&gt;Perl&lt;/em&gt;, &lt;em&gt;Mojolicious&lt;/em&gt;, &lt;em&gt;Node.js&lt;/em&gt; and even &lt;em&gt;Java&lt;/em&gt;!&lt;/p&gt;

    
    &lt;a rel="shadowbox[Screenshots]"
   href="/sites/default/files/blog_import_images/ko7_stackato.png"&gt;
     &lt;img title="Komodo 7 - Stackato Integration" alt="Komodo 7 - Stackato Integration"
	    style="width: 400px"
	    src="/sites/default/files/blog_import_images/ko7_stackato.png"
	    class="as_feature_img as_left" /&gt;
&lt;/a&gt;

  &lt;/li&gt;
    
  &lt;li style="clear:both"&gt;
    &lt;p&gt;&lt;a href="/komodo-ide/features#node.js" title="Node.js support"&gt;&lt;strong&gt;Node.js support&lt;/strong&gt;&lt;/a&gt; - Komodo IDE brings in debugging, code intelligence, editor and syntax checking support for Node applications. As well as this, Komodo IDE 7 provides additional support for web and template languages like &lt;em&gt;CoffeeScript&lt;/em&gt;, &lt;em&gt;LESS&lt;/em&gt;, &lt;em&gt;SCSS&lt;/em&gt;, &lt;em&gt;EJS&lt;/em&gt; and &lt;em&gt;Mojolicious&lt;/em&gt;.&lt;/p&gt;

    
    &lt;div style="text-align: center"&gt;
    &lt;img src="/sites/default/files/blog_import_images/nodejs_logo.png" alt="nodejs_logo"&gt;
    &lt;img src="/sites/default/files/blog_import_images/coffeescript_logo.png" alt="coffeescript_logo"&gt;
    &lt;img src="/sites/default/files/blog_import_images/less_logo.png" alt="less_logo"&gt;
    &lt;img src="/sites/default/files/blog_import_images/mojolicious_logo.png" alt="mojolicious_logo"&gt;
    &lt;/div&gt;
  &lt;/li&gt;
    
  &lt;li&gt;
    &lt;p style="clear:both"&gt;With the ability to &lt;strong&gt;&lt;a href="/komodo-ide/features#profiling" title="Code Profiling for PHP and Python""&gt;Code Profile&lt;/a&gt;&lt;/strong&gt; your application - you can now find out why that &lt;em&gt;PHP&lt;/em&gt; or &lt;em&gt;Python&lt;/em&gt; code is taking so long to run! Komodo shows a graphical representation of the methods and calls made by your program, as well as outlining the CPU time spent executing your code. Automatic time sorting makes it easy to see the code hot-spots at a single glance.&lt;/p&gt;

  &lt;a rel="shadowbox[Screenshots]"
   href="/sites/default/files/blog_import_images/ko7_code_profiling.png"&gt;
     &lt;img title="Komodo Code Profiling Screenshot" alt="Komodo Code Profiling Screenshot"
	    style="width: 400"
	    src="/sites/default/files/blog_import_images/ko7_code_profiling.png"
	    class="as_feature_img as_left" /&gt;
&lt;/a&gt;

  &lt;/li&gt;
    
  &lt;li&gt;
    &lt;p&gt;Now, with every major Komodo IDE release we've aimed to make things work &lt;em&gt;smarter and faster&lt;/em&gt; than they were working before. Komodo IDE 7 is no exception to this rule and you'll notice a lot snappier Komodo &lt;strong&gt;startup time&lt;/strong&gt;, lower &lt;strong&gt;CPU utilization&lt;/strong&gt; - particularly when idle, and lower &lt;strong&gt;memory usage&lt;/strong&gt; for large projects. Additionally, tools like the &lt;strong&gt;fast-find&lt;/strong&gt; bar make it even quicker to do the common things you use the most.&lt;/p&gt;

     &lt;img title="Komodo - Fast Find Screenshot" alt="Komodo - Fast Find Screenshot"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/ko7_fast_find.png"
	    class="as_feature_img as_left" /&gt;

  &lt;/li&gt;
    
&lt;/ul&gt;

  &lt;p style="clear:both"&gt;There are way more features in Komodo IDE 7 than I can outline in a single blog post, so check out the &lt;a href="http://docs.activestate.com/komodo/7.0/releases/ide.html" target="_blank"&gt;full release notes&lt;/a&gt; to see other great enhancements like multi-language syntax checking, HTML end-tag completions, moveable side panes and much more.&lt;/p&gt;

&lt;p&gt;If you'd like to test out these features yourself, you can &lt;a href="/komodo-ide/downloads" title="Download Komodo IDE 7 Trial"&gt;download a 21-day free trial of Komodo IDE 7&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's also currently on sale, starting at &lt;font color="red"&gt;&lt;strong&gt;$245&lt;/strong&gt;&lt;/font&gt; (reg. $295) until March 15th. &lt;a href="http://store.activestate.com/komodo-ide" title="Buy Komodo IDE 7"&gt;Visit our store to purchase today&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A special thanks goes out to all the testing feedback provided by the Komodo 7 beta users during the Komodo 7 development process - you all rock!&lt;/p&gt;

&lt;p&gt;We hope you enjoy Komodo IDE 7!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/02/komodo-ide-7-worlds-fiercest-ide-has-evolved" dc:identifier="http://www.activestate.com/blog/2012/02/komodo-ide-7-worlds-fiercest-ide-has-evolved" dc:title="Komodo IDE 7: The world&amp;#039;s fiercest IDE has evolved!" trackback:ping="http://www.activestate.com/trackback/3295" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3295&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/YiSw28mX4DU" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/02/komodo-ide-7-worlds-fiercest-ide-has-evolved#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/coffeescript">coffeescript</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/komodo-7">komodo 7</category>
 <category domain="http://www.activestate.com/taxonomy/term/120">komodo ide</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/nodejs">node.js</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/profiling">profiling</category>
 <pubDate>Wed, 01 Feb 2012 10:02:56 +0000</pubDate>
 <dc:creator>toddw</dc:creator>
 <guid isPermaLink="false">3295 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/02/komodo-ide-7-worlds-fiercest-ide-has-evolved</feedburner:origLink></item>
  <item>
    <title>Smooth Scaling with Stackato and vSphere</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/iVsLmJgA4VQ/smooth-scaling-stackato-and-vsphere</link>
    <description>&lt;img title="Stackato Scaling on vSphere" alt="Stackato Scaling on vSphere"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/stackato_icon_alpha_sm.png"
	    class="as_feature_img as_left" /&gt;



&lt;p&gt;We have a number of Stackato deployments here at ActiveState, some larger than others, but one stands out as enticingly quick to get setup and scaling with little effort.&lt;/p&gt;

&lt;p&gt;Our Stackato vSphere cluster serves as one of our primary testing platforms and at any given time. It’s running at least 25 Stackato nodes, one 'cloud controller' and the rest mostly '&lt;a target="_new" href="http://blog.cloudfoundry.com/post/4754582920/cloud-foundry-open-paas-deep-dive"&gt;DEA&lt;/a&gt;' nodes.  &lt;/p&gt;

&lt;p&gt;In a real elastic cloud you wouldn’t want to waste the resources or expense of running these DEA’s perpetually, you would want them only when there is a current or trending resource demand for them. We mainly idle these VMs for QA testing and benchmarking, so we are ready to instantly scale up or down.&lt;/p&gt;

&lt;p&gt;Elasticity should be no stranger to those of us working on PaaS or IaaS products, and if you’re not already familiar with our &lt;a target="_new" title="Stackato Sandbox" href="http://community.activestate.com/stackato"&gt;Stackato Sandbox&lt;/a&gt;, it runs on Amazon EC2 with EBS backed storage. To meet user demand at any point in time, we can have the cloud controller automatically spin up new DEA instances taking into account projected load on resources and use the EC2 API to spin up a new DEA.&lt;/p&gt;

&lt;p&gt;vSphere can also serve your own privately managed cloud in this exact manner, and I’ll be giving a short summary on how we did this on our own vSphere setup.&lt;/p&gt;

&lt;h2&gt;Taming the vSphere API&lt;/h2&gt;

&lt;p&gt;It should come as no surprise to more experienced vSphere users that to achieve scaling we made use of the &lt;a target="_new" href="http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/index.html"&gt;vSphere API&lt;/a&gt;. As Cloud Foundry itself was conceived in Ruby,  we choose to use &lt;a target="_new" href="https://github.com/rlane/rbvmomi"&gt;RbVmomi&lt;/a&gt;, an open source Ruby interface to the vSphere API. If you’ve had previous dealings with the vSphere API, fear not - this Ruby interface actually makes the coalescence of the two a breeze.&lt;/p&gt;

&lt;p&gt;For the connecting vCenter user, I recommend &lt;a target="_new" href="http://pubs.vmware.com/vsphere-esx-4-1/wwhelp/wwhimpl/js/html/wwhelp.htm#href=datacenter_admin/c_host_users.html#1_10_8_7_8_1"&gt;creating a new user&lt;/a&gt; with the permissions to create, start, stop and deploy new VMs, and access to any of resource pools it might need.&lt;/p&gt;

&lt;h2&gt;Diving into the Cloud Controller&lt;/h2&gt;

&lt;p&gt;I reused existing modifications to the health monitor component from our EC2 (Sandbox) scaling code, to incorporate the ‘events’ necessary to trigger a scaling activity.&lt;/p&gt;

&lt;p&gt;These previous modifications to the health monitor are designed to probe all the available DEAs at runtime intervals and check their current resource capabilities and limits, including the DEA’s current RAM metrics. This, of course, can also include the condition when there are simply no DEAs available for deployment due to failure or full capacity.&lt;/p&gt;

&lt;p&gt;Using a small analysis of  past, current and projected app deployments, a ‘scale up’ event will be triggered and passed along the &lt;a target="_new" href="https://github.com/derekcollison/nats"&gt;NATS&lt;/a&gt; message bus, which is the default PubSub messaging mechanism used by Cloud Foundry.&lt;/p&gt;

&lt;p&gt;At the point of receiving the event message, the process flow follows something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Health Monitor component keeps track of the health of any deployed apps and the availability of DEAs&lt;/li&gt;
&lt;li&gt;If under load, the ‘scale up’ event is triggered from the Health Monitor to the cloud controller via NATS&lt;/li&gt;
&lt;li&gt;The cloud controller will load up the vCenter YAML configuration (more on this later) and connect to vCenter via the API&lt;/li&gt;
&lt;li&gt;It will round-robin all hypervisor hosts currently available for deployment, so no single one becomes overloaded.&lt;/li&gt;
&lt;li&gt;Upon finding an available host, the DEA is deployed from the template to the host and it’s corresponding resource pool and datastore.&lt;/li&gt;
&lt;li&gt;The MRU index of the last deployed to host is kept in the cloud controllers database.&lt;/li&gt;
&lt;li&gt;When the DEA starts up, it is already configured to register with your cloud controller and is instantly ready to start receiving new app deployments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Scaling from a pre-built template&lt;/h2&gt;

&lt;p&gt;On the ‘subscribing’ end of these event messages is the cloud controller itself, which upon receiving a ‘scaleup’ operation, will proceed to connect to vCenter, and deploy a new DEA from a pre-defined template. To make the template, we take a new Stackato VM and run:&lt;/p&gt;

&lt;pre&gt;
  stackato-admin become dea -m &amp;lt;cloud_controller_ip&amp;gt; -e &amp;lt;api_url&amp;gt; &lt;/pre&gt;

&lt;p&gt;This is the same step you would take when &lt;a target="_new" title="Setting up a Stackato Cluster" href="http://docs.stackato.com/server.html#cluster-setup"&gt;setting up a cluster manually&lt;/a&gt;.  Once you’ve run this, you can shut that VM down, then right click ‘Save as template’. Once converted into a template, it as available for instant deployment across all your ESXi’s / vHosts.&lt;/p&gt;

&lt;h2&gt;Balancing the VM load on your ESXi’s&lt;/h2&gt;

&lt;h3&gt;Checking the hosts status&lt;/h3&gt;

&lt;p&gt;A useful feature of the vSphere API is the ability to probe your hosts for their runtime metrics, so you can make an informed decision about where the next VM should be deployed to. We make  use of the &lt;a target="_new" href="http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.HostSystem.html"&gt;vSphere API’s HostSystem()&lt;/a&gt; object to get some information about which hosts are available, and which hosts are in good health.&lt;/p&gt;

&lt;p&gt;Using the API makes it easy to locate a new host to deploy to. You don’t need to supply any host configurations, the cloud controller will take care of keeping tabs of hosts in the CC Database. The scaling code automatically chooses the next available vSphere host at runtime, so you don’t need to manually specify your hosts in a config file.&lt;/p&gt;


&lt;h2&gt;Wrapping it up in a configuration file&lt;/h2&gt;

&lt;p&gt;To ease maintenance and provide flexibility, the scale-up control settings are in a simple YAML configuration file that you upload to the stackato user’s $HOME directory, which is then parsed by the cloud controller. This configuration contains parameters like vCenter server, authentication details and template information. It is quite straight forward:&lt;/p&gt;

&lt;pre&gt;
---
  server: vcenter.domain.com
  user: username
  password: password
  https: true
  port: 443
  insecure: true
  path: /sdk
  datacenter: DataCenter
  template: "Your-Template-Name"
&lt;/pre&gt;

&lt;p&gt;We use SSL to connect to vCenter (recommended), but I’m also connecting with ‘insecure’ set to true. That simply means we are using self-signed SSL certificates, and forces RbvMomi to accept them.&lt;/p&gt;

&lt;h2&gt;Expanding the featureset&lt;/h2&gt;

&lt;p&gt;With the abundance of documentation on the vSphere API we could take the scaling process even further when working with different setups of datastores architecture.&lt;/p&gt;

&lt;p&gt;Some items for consideration could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Limiting the maximum number of VMs on any single host&lt;/li&gt;
&lt;li&gt;    Allowing deployments from multiple/different templates&lt;/li&gt;
&lt;li&gt;    Allowing multiple vCenters in the configuration&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you have any thoughts or questions about how this could apply to your own vSphere setup please let us know, we’d love to hear them! If you’d like to try this Stackato auto-scaling on your own vSphere cluster, please contact us at &lt;a href="mailto:stackato-sales@activestate.com?subject=Stackato%20vSphere%20Auto-Scaling"&gt;stackato-sales@activestate.com&lt;/a&gt;, and we'll arrange access to a special VM of Stackato with this feature.&lt;/p&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/smooth-scaling-stackato-and-vsphere" dc:identifier="http://www.activestate.com/blog/2012/01/smooth-scaling-stackato-and-vsphere" dc:title="Smooth Scaling with Stackato and vSphere" trackback:ping="http://www.activestate.com/trackback/3285" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3285&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/iVsLmJgA4VQ" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/smooth-scaling-stackato-and-vsphere#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/api">API</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/scaling">scaling</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vcenter">vcenter</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmware">vmware</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vsphere">vsphere</category>
 <pubDate>Wed, 25 Jan 2012 00:59:21 +0000</pubDate>
 <dc:creator>jamiep</dc:creator>
 <guid isPermaLink="false">3285 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/smooth-scaling-stackato-and-vsphere</feedburner:origLink></item>
  <item>
    <title>Latest ActiveState Stackato Release Extends PaaS support to OpenStack Ecosystem</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/xGApQzCGwSM/adding-paas-openstack-kvm-xenserver-stackato</link>
    <description>&lt;p&gt;&lt;img alt="Stackato adds support for OpenStack, XenServer, KVM and More" src="/sites/default/files/images/blog/openstack.jpg" style="width: 100px; height: 100px; float: left; margin: 2px; border-width: 0px; border-style: solid;" /&gt;&lt;/p&gt;
&lt;p&gt;The ever-expanding OpenStack ecosystem now has an enterprise-ready PaaS. Stackato, built on Cloud Foundry and hardened for the enterprise, now supports vSphere, Amazon/AMI, HP Cloud Services, OpenStack, Citrix XenServer, and KVM infrastructure models.&lt;/p&gt;
&lt;p&gt;ActiveState &lt;a href="http://www.activestate.com/blog/2011/10/weve-joined-openstack-ecosystem" target="_blank"&gt;joined the OpenStack community&lt;/a&gt; in 2011, and committed publicly to making PaaS a reality for OpenStack deployments. As showcased with &lt;a href="http://www.activestate.com/blog/2012/01/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services" target="_blank"&gt;&amp;nbsp;Stackato&amp;rsquo;s successful deployment to HP&amp;rsquo;s OpenStack-based cloud&lt;/a&gt;, we&amp;rsquo;ve made good on this commitment, and are now pleased to offer OpenStack-ready Stackato for download with our &lt;a href="http://community.activestate.com/stackato" target="_blank"&gt;latest release of Stackato&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Stackato&amp;mdash;ActiveState&amp;rsquo;s commercial-ready, secure, multi-tenant platform for creating a private PaaS&amp;mdash;is now the linchpin connecting Cloud Foundry and OpenStack.&amp;nbsp; Stackato&amp;rsquo;s enterprise-ready OpenStack support ensures that these two important ecosystems can be securely deployed together.&lt;/p&gt;
&lt;p&gt;With Stackato, customers can deploy applications to either a private internal cloud (like ones powered by vSphere, XenServer, KVM, or OpenStack) or one hosted with a third-party cloud-hosting provider (like those powered by Amazon, RackSpace, or HP Cloud Services).&lt;/p&gt;
&lt;p&gt;Stackato also now has SSH support, so you can have a secure interactive shell in any of your application instances. (Personally, this is my favorite new feature in this latest Stackato release.) This is possible (and safe) because each application instance runs in it&amp;#39;s own para-virtualized container using LXC, providing more secure multi-tenancy.&lt;/p&gt;
&lt;p&gt;In addition to OpenStack deployment and ssh support, Stackato has a new Management Console that replaces the Admin Dashboard with a new, improved user interface:&lt;/p&gt;
&lt;p&gt;&lt;a href="/sites/default/files/stackato-overview.jpg" rel="shadowbox"&gt;&lt;img alt="Management Console displays status of applications and users along with a real-time view of the operations happening in the cloud." class="as_left" src="/sites/default/files/stackato-overview-small.jpg" style="width: 382px; height: 265px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The Management Console offers deep visibility into the activity and events in a private cloud to help administrators better manage usage. This view includes showing activities of developers who deployed an application, number of instances deployed, memory usage, data services deployed, and languages used.&lt;/p&gt;
&lt;p&gt;And there&amp;rsquo;s more: Additional updates in this latest release include improved application lifecycle management, improved Perl deployment speed, and new pre-staging setup hooks.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.activestate.com/stackato" target="_blank"&gt;Take a test drive with Stackato&lt;/a&gt; on a microcloud (VM) on your own desktop or deploy directly to the Stackato Sandbox today!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/adding-paas-openstack-kvm-xenserver-stackato" dc:identifier="http://www.activestate.com/blog/2012/01/adding-paas-openstack-kvm-xenserver-stackato" dc:title="Latest ActiveState Stackato Release Extends PaaS support to OpenStack Ecosystem" trackback:ping="http://www.activestate.com/trackback/3283" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3283&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/xGApQzCGwSM" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/adding-paas-openstack-kvm-xenserver-stackato#comments</comments>
 <category domain="http://www.activestate.com/blog/category/blog-categories/announcements">announcements</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/citrix-xenserver">citrix xenserver</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-computing">cloud computing</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-foundry">cloud foundry</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-security">cloud security</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/linux-kvm">linux kvm</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/lxc">lxc</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/mulit-tenancy">mulit-tenancy</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/open-source">open source</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/openstack">openstack</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 19 Jan 2012 18:14:38 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3283 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/adding-paas-openstack-kvm-xenserver-stackato</feedburner:origLink></item>
  <item>
    <title>Don't Step in the FUD: The Real World Demands Private Cloud </title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/1nm8sP8NH6o/dont-step-fud-real-world-demands-private-cloud</link>
    <description>&lt;p&gt;&lt;img alt="Private PaaS - Protect Your Sensitive Corporate Data" src="/sites/default/files/images/blog/private-sign-small.png" style="float: left; width: 120px; height: 80px;" /&gt;&lt;em&gt;This article originally appeared January 17, 2012 at VMBlog.com.&lt;/em&gt; &lt;a href="http://vmblog.com/archive/2012/01/17/don-t-step-in-the-fud-the-real-world-demands-private-cloud.aspx" target="_blank"&gt;You can read it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last week, SD Times contributor Alex Handy published an interesting article titled &lt;a href="http://www.sdtimes.com/link/36240" target="_blank"&gt;The PaaS market accelerates&lt;/a&gt;. The piece was noteworthy not just for its insight into the burgeoning PaaS market space and introduction to the major players, but for some bizarrely unfounded assertions made by one of the article&amp;#39;s subjects.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Really, Adam?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In his January 6&lt;sup&gt;th&lt;/sup&gt; SD Times article, Handy writes (emphases mine):&lt;/p&gt;
&lt;p&gt;&lt;i&gt;...&lt;/i&gt; &lt;i&gt;Adam Wiggins, CTO of Heroku, said that PaaS is about the public cloud only. Although he used harsher language to describe the private cloud and PaaS market, he indicated that &lt;b&gt;he and Heroku believe the private cloud to be entirely vapor&lt;/b&gt;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;quot;My opinion&amp;mdash;and this is not a widely held opinion&amp;mdash;is that &lt;b&gt;private cloud is total BS&lt;/b&gt;. If you make it private it is no longer cloud. You destroy all the value you get from cloud by making it something you have to run yourself. Anyone pursuing that path is advocating a false trail,&amp;quot; said Wiggins.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(At this point, the Enterprise IT Leads all do a &lt;a href="http://en.wikipedia.org/wiki/Spit-take" target="_blank"&gt;spit take&lt;/a&gt;. I&amp;#39;m just curious to know what the unmentioned &amp;quot;harsher language&amp;quot; was.)&lt;/p&gt;
&lt;p&gt;Really, Adam? &amp;quot;BS&amp;quot;? &amp;quot;Vapor&amp;quot;? &lt;i&gt;Really?&lt;/i&gt; Is that the best you can do for FUD? Your comments are at best puerile, and at worst naïve. Let&amp;#39;s focus on the naïve...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Save me, public cloud!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;What Heroku&amp;#39;s Wiggins is desperately trying to obscure is that in the real world, the enterprise demands private cloud and Private PaaS. Fortunately, he &lt;i&gt;is&lt;/i&gt; correct in observing that his is &amp;quot;not a widely held opinion.&amp;quot;&lt;/p&gt;
&lt;p&gt;Wiggins suggests that customers derive value from the self-service nature of the public cloud, and that making the cloud &amp;quot;something that you have to run yourself&amp;quot; defeats its purpose. Hmm. Do I really want control over my own platform? My data is &lt;i&gt;probably&lt;/i&gt; safe, I mean, it&amp;#39;s in the &lt;i&gt;cloud. &lt;/i&gt;And do I &lt;i&gt;really&lt;/i&gt; want to deal with all that pesky provisioning and applications management and infrastructure administration and oh, I&amp;#39;m overwhelmed-Save me, simple public cloud!&lt;/p&gt;
&lt;p&gt;If only it &lt;i&gt;were&lt;/i&gt; that simple. As my colleague ActiveState VP of Engineering Jeff Hobbs noted in Handy&amp;#39;s article, Public PaaS &lt;i&gt;can&lt;/i&gt; lift the burden of cloud-management responsibility, lightening IT load. And public clouds also deliver benefits like shared-resource efficiencies, utility computing, and scalability. But let&amp;#39;s be honest here: Every Public-PaaS developer promotes those same supposed advantages, and &lt;i&gt;whee!&lt;/i&gt; The race towards commoditization is on. Indistinguishable public-cloud services foster desperate competition, which drives down price, which ultimately benefits the consumer...at least the one looking for the cheap solution.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Public PaaS: Slumlord of the cloud&amp;#39;s low-rent district&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In contrast with Private PaaS, the very nature of the Public PaaS&amp;#39; shared-services model enforces a lowest-common-denominator architectural approach. You&amp;#39;re entering the low-rent district: You get what you pay for with public cloud (&amp;quot;First month free!&amp;quot;), and that means the same setup as the tenant sharing your virtual apartment building. (&amp;quot;Matching floor plans!&amp;quot;) Does your company have unique data needs? Public PaaS may impose restrictive limitations on the way you manage your data. (&amp;quot;No pets!&amp;quot;) Prefer a cookie-cutter approach, okay with limiting application portability, and don&amp;#39;t mind sharing a multi-tenant virtual hallway? (&amp;quot;It&amp;#39;s just like a hostel!&amp;quot;) Then Public PaaS-at least as Adam Wiggins envisions it-might be right for you.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The real world demands Private PaaS&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Recall those Enterprise IT leads? (I hope they&amp;#39;ve regained their composure.) They are the ones who are investing in private cloud and Private PaaS because it provides better &lt;a href="http://www.readwriteweb.com/enterprise/2011/01/herokus-security-slip-up---is.php" target="_blank"&gt;security&lt;/a&gt;, better &lt;a href="http://pages.engineyard.com/BestPracticesforSurvivingOutagesWebcast.html" target="_blank"&gt;control&lt;/a&gt;, and-believe it or not, Adam-greater flexibility than public-cloud alternatives. Oh, and with &lt;a href="http://www.activestate.com/cloud" target="_blank"&gt;the right technology&lt;/a&gt;, those Enterprise IT Leads can also realize those public-cloudy benefits like shared-resource efficiencies, utility computing, scalability, and even multi-tenancy.&lt;/p&gt;
&lt;p&gt;But don&amp;#39;t take my word for it. The U.S. Army &lt;a href="http://www.informationweek.com/news/government/cloud-saas/232301444" target="_blank"&gt;recently invested a quarter billion dollars&lt;/a&gt; in private-cloud technology. Sure, you could argue that the military has special security needs that would never be well served by a public cloud. But so do very-much-not-like-the-military companies such as Federal Express. The package-delivery logistics giant &lt;a href="http://www.informationweek.com/news/global-cio/interviews/229100022" target="_blank"&gt;has leveraged a private-cloud architecture in its newest data center&lt;/a&gt;, and even retrofitted an old data center to match. Even SD Times contributor Alex Handy noted in a &lt;a href="http://www.sdtimes.com/blog/post/2011/11/23/Always-bet-on-black.aspx" target="_blank"&gt;November 2011 blog post&lt;/a&gt; that-despite Heroku&amp;#39;s contention that private cloud is just &amp;quot;a myth and snake oil&amp;quot;-he could &amp;quot;entirely understand the need for an internal private cloud inside the major retailers [on Black Friday and Cyber Monday].&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thanks Adam!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t get me wrong-I have long admired Heroku&amp;#39;s accomplishments (particularly its carefully cultivated developer community), and Wiggins and team have produced some great technology. Let&amp;#39;s face it, there will always be market segments that can settle for implementing a public-cloud solution. (&lt;a href="http://www.microsoft.com/en-us/office365/plans/small-business/email-calendar.aspx#fbid=xqmkf5g_82H" target="_blank"&gt;Small business&lt;/a&gt; and &lt;a href="http://www.gsnmagazine.com/article/24302/public_or_private_cloud_balancing_security_cost_sa" target="_blank"&gt;municipal public sector&lt;/a&gt; are just two that immediately come to mind.) But ultimately, Wiggins&amp;#39; comments ignore (and even denigrate) the needs and priorities of the vast majority of the enterprise cloud market.&lt;/p&gt;
&lt;p&gt;But you know what, the more I think about it, maybe that&amp;#39;s not so bad. Who knows? Maybe Wiggins is right. Not that Heroku and Wiggins need my validation, but it&amp;#39;s okay with me if they want to believe there&amp;#39;s no future in private cloud and Private PaaS. Adam, you and Heroku can go play in your public-cloud-only sandbox. The rest of us will be just fine over here providing solutions for the real world.&lt;/p&gt;
&lt;p&gt;###&lt;/p&gt;
&lt;p&gt;&lt;b&gt;About the Author&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT:15px;BORDER-COLLAPSE:collapse;FONT-FAMILY:Arial,sans-serif;FONT-SIZE:12px;"&gt;As President &amp;amp; CEO of ActiveState Software, Bart Copeland brings more than twenty years of management, finance, and technology business experience to his role. With a passion for technologies that help people lead more productive and enjoyable lives, Bart is currently focused on ActiveState&amp;rsquo;s private platform-as-a-service (PaaS) offering, Stackato. With his vision for PaaS as an enabler to accelerate cloud adoption and value in enterprises, Bart is actively involved in the strategy, roadmap, business development and evangelism of Stackato. Bart is also an active angel investor and serves as a director on a number of other tech companies. He holds an MBA in Technology Management from the University of Phoenix and a Mechanical Engineering degree from the University of British Columbia.&lt;/span&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;/div&gt;
&lt;p&gt;Originally published Tuesday, January 17, 2012 7:16 AM by David Marshallon &lt;a href="http://vmblog.com/archive/2012/01/17/don-t-step-in-the-fud-the-real-world-demands-private-cloud.aspx" target="_blank"&gt;VMBlog&lt;/a&gt;.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/dont-step-fud-real-world-demands-private-cloud" dc:identifier="http://www.activestate.com/blog/2012/01/dont-step-fud-real-world-demands-private-cloud" dc:title="Don&amp;#039;t Step in the FUD: The Real World Demands Private Cloud " trackback:ping="http://www.activestate.com/trackback/3272" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3272&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/1nm8sP8NH6o" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/dont-step-fud-real-world-demands-private-cloud#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/dynamic-languages">dynamic languages</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/heroku">heroku</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas-options">paas options</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/private-paas">private paas</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Wed, 18 Jan 2012 19:28:59 +0000</pubDate>
 <dc:creator>bartc</dc:creator>
 <guid isPermaLink="false">3272 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/dont-step-fud-real-world-demands-private-cloud</feedburner:origLink></item>
  <item>
    <title>Stackato delivers PaaS with a punch: Secure Multi-tenancy on HP Cloud Services</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/hEYB8MBqAMc/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services</link>
    <description>&lt;p&gt;&lt;img alt="" class="as_left" src="/sites/default/files/everlast-boxing-gloves.jpg" style="height: 125px; width: 125px; border-width: 0px; border-style: solid; margin: 2px 3px; float: left;" /&gt;ActiveState is pleased to offer &lt;a href="http://activestate.com/cloud" target="_blank"&gt;Stackato&amp;#39;s&lt;/a&gt; secure multi-tenancy capabilities for those of you deploying to the HP Cloud. HP Cloud Services&amp;ndash;currently in private beta&amp;ndash;is HP&amp;rsquo;s next generation of cloud infrastructure, platform services and cloud solutions for developers, ISVs&lt;a href="#_msocom_2" id="_anchor_2" name="_msoanchor_2"&gt;&lt;/a&gt; and businesses. The HP Cloud is based on HP&amp;#39;s Converged Infrastructure, a combination of HP hardware, software, services, and OpenStack technology. Stackato&amp;rsquo;s support for HP Cloud Services gives enterprise developers a more secure PaaS option.&lt;/p&gt;
&lt;p&gt;Built on &lt;a href="http://cloudfoundry.org/" target="_blank"&gt;VMWare&amp;#39;s Cloud Foundry Open Source project&lt;/a&gt; and hardened for the enterprise, ActiveState Stackato works on vSphere, Amazon EC2, and OpenStack, and will also support other infrastructure platforms.&lt;/p&gt;
&lt;p&gt;While some PaaS offerings are content to rely on user-based Unix security, but ActiveState&amp;rsquo;s &lt;a href="http://www.activestate.com/blog/2011/11/security-cloud-stackato-and-lxc" target="_blank"&gt;Stackato takes security a big step further, and is the first PaaS to bring lxc-based containerization&lt;/a&gt; to the HP Cloud, creating a more-trusted, commercial-grade level of security to private PaaS deployments.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;So what&amp;rsquo;s the big deal about deploying a secure multi-tenant PaaS on HPCS, rather than on one that relies on Unix-based user level security, or one that shares resources amongst its tenants? &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Why does multi-tenancy matter? (Hint: It&amp;rsquo;s more efficient.)&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;True multi-tenancy enables your organization to squeeze efficiencies out of a shared IaaS-level resource pool by running multiple applications on the same cloud servers. Multi-tenancy is what distinguishes PaaS offerings from Orchestration tools that do not manage multiple guest applications, but rather act as simple installers onto bare IaaS instances.&lt;/p&gt;
&lt;p&gt;While multi-tenancy allows you to maximize usage of your allotment of cloud servers, having multiple applications running on the same server can be tricky (if not impractical) to secure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Playing well with others in the PaaS playground&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you deploy a Platform as a Service, you provide a shared &amp;ldquo;playground&amp;rdquo; for a number of guest applications (tenants). The resource pool is presented as a single logical layer to those guest applications--The PaaS manages pools of OS resources and co-habits applications on shared instances.. Those guest apps should not have to be aware of the details of components that lie beneath the PaaS at the infrastructure level, nor should they have to be designed to play nicely with others. The PaaS layer should insulate both infrastructure and application from each other, and ensure that guest applications are not forced to be aware of other guest applications running on the same resource pool.&lt;/p&gt;
&lt;p&gt;Some PaaS offerings manage the boundary between infrastructure and the application, But most do not, and PaaS solutions that offer only Unix user-level security leave openings for untrusted applications or users to exploit, and do not provide adequate security guarantees for the enterprise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Securing the PaaS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Early on in the development of Stackato, ActiveState made the decision to extend Cloud Foundry, and take advantage of Linux technologies to provide better security. ActiveState&amp;#39;s Stackato creates &lt;em&gt;isolated, lightweight containers&lt;/em&gt; known as &amp;ldquo;lxc containers,&amp;rdquo;, Virtual Private Servers (VPS), or Jails. Conceptually, the containers are built atop several Linux technologies which provide each guest-application container with a segregated file system with web and ssh services.&lt;/p&gt;
&lt;p&gt;The containers are protected from each other: a guest application in one container cannot read files owned by another container, or kill its tasks. With the Stackato-container approach, the outside world can still reach web servers and ssh servers on the containers and, more importantly, the hosting PaaS can protect its key files from guest applications and users in the containers.&lt;/p&gt;
&lt;p&gt;The containers effectively allow Stackato to partition the resources into isolated groups to &lt;a&gt;better &lt;/a&gt;balance conflicting demands on resource usage between the isolated groups. Stackato&amp;#39;s innovative containerization approach has the dual benefits of running applications on a seemingly separate machine while still leveraging many of the underlying resources. As far as the guest application is aware, the PaaS has provided a private Playground. The architecture makes Private Cloud even more &amp;quot;private.&amp;quot; For enterprises, the operational and security advantages of sharing these resources while isolating the guest applications can also lead to significantly lower overhead than true virtualization.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Implications for the HP Cloud Services platform&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Adding support for HP Cloud Services to Stackato reinforces ActiveState&amp;rsquo;s commitment to providing the best-of-breed secure Private PaaS layer in the cloud that runs on HP&amp;#39;s world-class hardware and software on OpenStack&amp;trade; technology - giving your organization a clear alternative to Amazon Web Services.&lt;/p&gt;
&lt;p&gt;The end result is a highly flexible, secure, multi-tenant PaaS layer that can be run in any environment (on-premises or in the cloud) helping your organization deliver a knock-out punch when if comes to securing your Cloud.&lt;/p&gt;
&lt;p&gt;Stackato is a private PaaS that enables deployment, scaling, and management of Java, Python, Ruby, PHP, Perl, Node.js, Scala, and Clojure applications to any cloud. Stackato delivers the power of PaaS on-premise with the security, privacy, and control behind a corporate firewall. With Stackato, customers can deploy an application to either a private internal cloud (like one powered by VMWare vSphere&amp;trade;, Citrix XenServer, Linux KVM, or OpenStack&amp;trade;) or one hosted by a third-party cloud-hosting provider (such as Amazon or HP Cloud Services).&lt;/p&gt;
&lt;p&gt;To see Stackato working with HP Cloud Services, we&amp;#39;ve provided this &lt;a href="http://www.activestate.com/blog/2012/01/screencast-stackato-hp-cloud-services" target="_blank"&gt;short screencast&lt;/a&gt;.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Developers and cloud administrators can download Stackato, currently in open beta including the free Stackato Micro Cloud, at: &lt;a href="http://www.activestate.com/cloud" target="_blank" title="http://www.activestate.com/cloud"&gt;http://www.activestate.com/cloud&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;
&lt;hr align="left" size="1" width="33%" /&gt;&lt;/div&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services" dc:identifier="http://www.activestate.com/blog/2012/01/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services" dc:title="Stackato delivers PaaS with a punch: Secure Multi-tenancy on HP Cloud Services" trackback:ping="http://www.activestate.com/trackback/3269" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3269&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/hEYB8MBqAMc" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/amazon">Amazon</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-computing">cloud computing</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-foundry">cloud foundry</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/hp-0">HP</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/multitenant">multitenant</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/openstack">openstack</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/private-paas">private paas</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmware">vmware</category>
 <pubDate>Thu, 12 Jan 2012 19:28:59 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3269 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/stackato-delivers-paas-punch-secure-multi-tenancy-hp-cloud-services</feedburner:origLink></item>
  <item>
    <title>Screencast: Stackato on HP Cloud Services</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/MnZh-hi6su0/screencast-stackato-hp-cloud-services</link>
    <description>&lt;p&gt;&lt;a href="http://www.youtube.com/v/uDJfYidqGkI"
  rel="shadowbox;width=640;height=530" title="Stackato on HP Cloud Services"&gt;
	&lt;img class="as_left" style="float:left" alt="Stackato PaaS on HP Cloud Services"
	src="/sites/default/files/blog_import_images/komodo-stackato-thumb.png"
	style="width: 135px; height: 100px;" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;We had the opportunity to take &lt;a alt="HP Cloud Services Beta" title="HP Cloud Services Beta (IaaS)" href="http://hpcloud.com/" target="_new"&gt;HP Cloud Services&lt;/a&gt; (currently Beta) for a spin and get a &lt;a alt="Stackato: Cloud Application Platform" title="Stackato - Private PaaS" href="/cloud" target="new"&gt;Stackato&lt;/a&gt; cluster running there.&lt;/p&gt;

&lt;p&gt;We were happy to take advantage of the computing horsepower HP made available to us to put Stackato through it's paces and to try out a build running on Ubuntu 11.04, and we're equally happy to report that it worked just as well as it did on EC2 and our internal VSphere testing cluster.&lt;/p&gt;

&lt;p&gt;The video shows me deploying Wordpress, as I did the recent Komodo video, but also talks a bit about how we got &lt;a alt="Running Bugzilla in the Cloud" title="Jan Dubois: Perl: Bugzilla in the Cloud" href="http://www.activestate.com/blog/2011/12/running-bugzilla-cloud"&gt;Bugzilla running in the cloud&lt;/a&gt;.&lt;/p&gt;


&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/screencast-stackato-hp-cloud-services" dc:identifier="http://www.activestate.com/blog/2012/01/screencast-stackato-hp-cloud-services" dc:title="Screencast: Stackato on HP Cloud Services" trackback:ping="http://www.activestate.com/trackback/3267" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3267&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/MnZh-hi6su0" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/screencast-stackato-hp-cloud-services#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/deployment">deployment</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/hp-0">HP</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/iaas">IaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 12 Jan 2012 00:23:47 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3267 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/screencast-stackato-hp-cloud-services</feedburner:origLink></item>
  <item>
    <title>Komodo IDE and Stackato: Deploying Apps and Accessing Data</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/SCf_bAOYFEo/komodo-ide-and-stackato-deploying-apps-and-accessing-data</link>
    <description>&lt;a href="http://www.youtube.com/v/OmFv19JzreI"
  rel="shadowbox;width=640;height=530" title="Komodo IDE and Stackato"&gt;
	&lt;img class="as_left" style="float:left" alt="Komodo IDE and Stackato"
	src="/sites/default/files/blog_import_images/komodo-stackato-thumb.png"
	width: 135px; height: 100px;" /&gt;&lt;/a&gt;

&lt;p&gt;I've been doing a lot of demos of &lt;a href="http://www.activestate.com/cloud"&gt;Stackato&lt;/a&gt; lately and starting to incorporate the new &lt;a href="http://www.activestate.com/komodo-ide/downloads"&gt;Komodo IDE 7&lt;/a&gt; client interface (currently RC). Without further ado, &lt;a href="http://www.youtube.com/v/OmFv19JzreI"
  rel="shadowbox;width=640;height=530" title="Komodo IDE and Stackato"&gt;here's the screencast&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;It was tough to decide what to show. Debugging applications running on the micro cloud is pretty cool but it's better demonstrated in a written tutorial (which I'll be writing up soon). Showing off the DB Explorer is a little more visually interesting.&lt;/p&gt;

&lt;h2 style="clear:both"&gt;DB Explorer, dbshell, and tunnel&lt;/h2&gt;

&lt;p&gt;As the screencast shows, it's extremely simple to connect to a locally running micro cloud from Komodo. That's because Komodo has integration with the &lt;a href="/blog/2011/11/connecting-database-services-stackato"&gt;'stackato dbshell' command&lt;/a&gt;, which has been part of the client for a while longer than the newer &lt;a href="/blog/2011/12/new-stackato-client-tunneling-and-https"&gt;'tunnel' command&lt;/a&gt;. Komodo will have better hooks into 'tunnel' in future releases, but for now, it's fairly trivial to set up a connection to the database manually as shown.&lt;/p&gt;

&lt;h2 style="clear:both"&gt;What you'll need to follow along&lt;/h2&gt;

&lt;p&gt;If you'd like to try this all out for yourself, you'll need:&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://community.activestate.com/stackato/download"&gt;Stackato micro cloud VM&lt;/a&gt;: There's &lt;a href="http://www.youtube.com/watch?v=CunjLaS7Rzo"&gt;another screencast&lt;/a&gt; that shows how to get this set up. If your local system doesn't have the resources to run a VM, feel free to use the Stackato Sandbox instead.&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://community.activestate.com/stackato/download"&gt;Stackato client&lt;/a&gt;: Komodo uses this stand-alone executable in the background. You may need to do some minor &lt;a href="http://docs.stackato.com/quick-start.html#stackato-client-setup"&gt;client setup&lt;/a&gt; after download.&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.activestate.com/komodo-ide/downloads"&gt;Komodo IDE 7&lt;/a&gt;: Download an RC build (or a trial of the release, depending on when you're reading this) and set the path to the 'stackato' executable in Komodo's Stackato preferences if it's not in your system $PATH.&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://community.activestate.com/stackato/demos"&gt;Sample apps&lt;/a&gt;: We've put together a &lt;a href="https://github.com/ActiveState/stackato-samples"&gt;Github repo&lt;/a&gt; full of sample applications in a variety of languages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Let us know what you think!&lt;/h2&gt;

&lt;p&gt;As always, we would like to hear your feedback on how this works for you, and what you would like to see in future releases. You can do that in the &lt;a href="http://community.activestate.com/forum/stackato/feedback"&gt;Stackato Feedback&lt;/a&gt; and &lt;a href="http://community.activestate.com/forums/komodo/komodo-beta"&gt;Komodo Beta&lt;/a&gt; forums.&lt;/p&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/komodo-ide-and-stackato-deploying-apps-and-accessing-data" dc:identifier="http://www.activestate.com/blog/2012/01/komodo-ide-and-stackato-deploying-apps-and-accessing-data" dc:title="Komodo IDE and Stackato: Deploying Apps and Accessing Data" trackback:ping="http://www.activestate.com/trackback/3263" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3263&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/SCf_bAOYFEo" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/komodo-ide-and-stackato-deploying-apps-and-accessing-data#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/database">database</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/deployment">deployment</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/mysql">mysql</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/php">php</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Mon, 09 Jan 2012 22:49:38 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3263 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/komodo-ide-and-stackato-deploying-apps-and-accessing-data</feedburner:origLink></item>
  <item>
    <title>Webcast: Application Portability in the Cloud - PaaS Delivers Holy Grail</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/FtVS5eYthnk/webcast-application-portability-cloud-paas-delivers-holy-grail</link>
    <description>&lt;p&gt;&lt;img alt="New webcast from ActiveState: Cloud Portability" src="/sites/default/files/ins_new-webinar.jpg" style="width: 118px; height: 206px; float: left;" /&gt;Join us for this great upcoming webcast about cloud portability! &lt;a alt="webcast: cloud portability with PaaS" href="https://www1.gotomeeting.com/register/314985073" target="_blank"&gt;&lt;font color="#000000" face="arial,verdana,helvetica" style="font-size: 13px; font-weight: normal"&gt;&lt;b&gt;Space is limited.&lt;/b&gt;&lt;/font&gt; Reserve your seat now.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Date: &amp;nbsp;&amp;nbsp; &amp;nbsp;Wednesday, February 8, 2012&lt;br /&gt; Time: &amp;nbsp;&amp;nbsp; &amp;nbsp;10:00 AM PST/ 1:00 PM EST&lt;/p&gt;
&lt;p&gt;The ability to move applications--for instance, from a private to a public cloud, or from one hosting provider to another--is a holy grail of cloud computing. But with a little planning, application portability in the cloud can be attained.&lt;/p&gt;
&lt;p&gt;Cloud-vendor solutions deliver cloud technologies, but at a price, and typically impose inflexible limitations, forcing IT leaders to commit to specific hypervisors, infrastructure, and APIs. That reliance on vendor-specific technology&amp;ndash;coupled with application-specific code dependencies, configuration/provisioning requirements, and data-security mandates&amp;ndash;can prevent organizations from realizing the idealized benefits of the cloud: reduced costs, greater efficiency, on-demand scaling, disaster recovery, and deployment flexibility.&lt;/p&gt;
&lt;p&gt;So how do you&lt;strong&gt; ensure portability, avoid vendor-lock-in, and reap the rewards of the cloud&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;The answer is clear: Implement a cloud strategy that includes a Platform-as-a-Service (PaaS) layer. PaaS provides the interoperability of application and infrastructure cloud services across cloud providers or hosting technology. And you realize the benefits of true cloud-application portability.&lt;/p&gt;
&lt;p&gt;In this webinar, we&amp;rsquo;ll share insights and trends to help your organization avoid vendor lock-in and easily move applications from one cloud to another without major re-engineering of your application or deployment scripts.&lt;/p&gt;
&lt;p&gt;Join us for a free and informative webinar where we will highlight:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why Portability Matters in Private &amp;amp; Public Clouds&lt;/li&gt;
&lt;li&gt;Understanding &amp;amp; Identifying Your Applications&amp;rsquo; Cloud Dependencies&lt;/li&gt;
&lt;li&gt;Emerging Trends &amp;amp; Issues effecting Cloud Application Portability&lt;/li&gt;
&lt;li&gt;Creating a Cloud Strategy optimized for Portability&lt;/li&gt;
&lt;li&gt;Choosing a Technology Stack for Portability&lt;/li&gt;
&lt;li&gt;Implementing a Portable Cloud Strategy with PaaS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a alt="webcast: cloud portability with PaaS" href="https://www1.gotomeeting.com/register/314985073" target="_blank"&gt;Sign up today to reserve your spot&lt;/a&gt;. &lt;/strong&gt;Space is limited!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/webcast-application-portability-cloud-paas-delivers-holy-grail" dc:identifier="http://www.activestate.com/blog/2012/01/webcast-application-portability-cloud-paas-delivers-holy-grail" dc:title="Webcast: Application Portability in the Cloud - PaaS Delivers Holy Grail" trackback:ping="http://www.activestate.com/trackback/3262" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3262&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/FtVS5eYthnk" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/webcast-application-portability-cloud-paas-delivers-holy-grail#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-portability">cloud portability</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-strategy">cloud strategy</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/dynamic-languages">dynamic languages</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/platform">platform</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/portability">Portability</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/portable">portable</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/webcast">webcast</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/webinar">webinar</category>
 <pubDate>Mon, 09 Jan 2012 19:35:26 +0000</pubDate>
 <dc:creator>sheilar</dc:creator>
 <guid isPermaLink="false">3262 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/webcast-application-portability-cloud-paas-delivers-holy-grail</feedburner:origLink></item>
  <item>
    <title>Bentframe: Developed with Komodo, deployed to Stackato</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/od57GeJrUIw/bentframe-developed-komodo-deployed-stackato</link>
    <description>&lt;a rel="shadowbox[Screenshots]"
 href="/sites/default/files/blog_import_images/bentframe01.png"&gt;
  &lt;img title="Bent Frame running on Stackato Sandbox" alt="Bent Frame: bike collision data"
	 style="width: 600px"
	 src="/sites/default/files/blog_import_images/bentframe01.png"
	 class="as_feature_img as_left" /&gt;
&lt;/a&gt;

&lt;p&gt;For years now I've been working on tools that help build and debug Rails applications, but other than the &lt;a target="_new" title="Candidate Buzz on Stackato" href="http://buzz.stackato.com/"&gt;Candidate Buzz&lt;/a&gt; demo application, I haven't actually created many myself. I've started many apps as weekend projects over the years. I enjoy building tools to solve common problems I run into when working on these apps, and enjoy using those tools for future projects.&lt;/p&gt;

&lt;p&gt;But when it came time to actually launch one, I would ask myself if it was worth the trouble of spending weekends and late nights trying to placate angry or confused users. Shouldn't I spent my off-work time doing something other than... work? So yet another project would be consigned to a remote corner of my repository. &lt;/p&gt;

&lt;h2&gt;Bentframe: Visualizing Bicycle/Car Collision Data with Google Maps&lt;/h2&gt;

&lt;p&gt;In early December word got out that the indefatigable &lt;a href="eaves.ca"&gt;David Eaves&lt;/a&gt; had managed to get ICBC, the provincial automobile insurance company in British Columbia, to release a &lt;a target="_new" href="http://buzzdata.com/deaves/bc-bike-accident-data-2006-10-icbc"&gt;dataset of collision reports&lt;/a&gt; involving a car and bicycle for the years 2006-2010. Each record in the data contained a year, month, and location as a latitude, longitude pair.&lt;/p&gt;

&lt;p&gt;I figured I could whip up a visualization of this data relatively quickly, seeing how one of those web sites I never launched was a Google Map visualization I wrote in late 2007 that showed a database of foreclosed houses for sale in the U.S. I was struck by how large the database was: about 70,000 properties scattered over all fifty states, but didn't consider the economic implications. Had I not been focusing on the technical aspects of how to display tens of thousands of data points in a 600x300px window, and instead dipped into the financial press to learn about credit default swaps, short sales, and predicting the future, I might be writing this from a Caribbean island. But fortunately for fans of visualizations, I had focused on writing efficient clustering engines, and figured I could whip up something useful during the &lt;a target="_new" href="https://www.socialtext.net/vandata/open_data_hackathon_january_2010"&gt;single-day hackathon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Within the first hour I wrote a quick Ruby program to read in the data, fired up &lt;a href="/komodo-ide"&gt;Komodo&lt;/a&gt; to create a new Rails app, copied over the relevant bits of the old "Closing Town" foreclosure code, and was back in Rails development (as opposed to deployment) mode.&lt;/p&gt;

&lt;h2&gt;Debugging the Initial App in Komodo&lt;/h2&gt;

&lt;p&gt;The 4-year-old foreclosure app didn't need much changing to handle the new data set. Change mentions of "properties" to "collisions". Change the default view from central Florida to Vancouver, BC.&lt;/p&gt;

&lt;p&gt;By noon, I felt ready to go. I started the server, pointed Firefox at good old http://localhost:3000/spots, and found... an empty Google map of Vancouver. Komodo's &lt;a target="_new" href="/blog/2010/10/introducing-komodo-ides-database-explorer"&gt;DB Explorer&lt;/a&gt; showed the database was populated with over 5,000 locations, as expected. Log statements on the server side showed that it was reading the locations from the database, and returning a non-empty JSON packet. On the front end, Firebug was showing that my Ajax callbacks were firing, and creating markers at the correct locations. The problem was, they weren't showing up.&lt;/p&gt;

&lt;p&gt;Meanwhile, my colleague for the day, &lt;a href="http://datahustler.com/"&gt;Nathan Griffiths&lt;/a&gt;, had taken a different approach, pouring the raw CSV file into a new app at geocommons.com. While I was dealing with updating code from Rails 1.2 to 3, and pouring the usual combination of HTML, JavaScript, and CSS together into a coherent whole, Nathan had quickly mapped all the collisions, added city bike route data for the city of Vancouver to the mix, and quickly had built &lt;a target="_new" href="http://geocommons.com/maps/122432"&gt;an impressive working app&lt;/a&gt;. The provincial minister for Labour, Citizens' Services and Open Government, Margaret MacDiarmid, had spent most of that Saturday morning at the hackathon talking to people. When she came by to see what we were working on, Nathan's app had locations marked as points, overlays, animations, and heat maps. I didn't think she'd be as impressed that I could debug Rails on the server and JavaScript on the client side at the same time, with a log window open as well. The minister was a family physician before she entered politics, not a retired Cobol programmer. I stayed quiet while Nathan demoed his app, wondering if I was reinventing yet another wheel.&lt;/p&gt;

&lt;p&gt;It turns out that the markers weren't showing up because my code was using custom images provided by the authors of the Google Maps book I used in late 2007. Attempts to &lt;code&gt;wget&lt;/code&gt; the images gave me silent 404s instead. I pulled out the code that was setting the custom images, reran the app, and my map filled with hundreds of the stock Google Map red pin images. Yay. Time to solve a few more problems, wondering if maybe I should take another look at using Geocommons instead.&lt;/p&gt;

&lt;p&gt;But the rest went quickly. I found a source of images with digits so I could display the number of collisions in the marker, and used reverse geocoding to translate latitudes and longitudes back into street addresses.&lt;/p&gt;

&lt;p&gt;I showed the app to a journalist, and she asked me what the top 10 spots were. I'm not displaying them yet, but I have the flexibility to add that. Vancouver added a couple of controversial bike lanes downtown during 2009 and 2010. Once I pour in the 2011 data, I hope to provide some charts that show how collision frequencies are dropping near those areas. That's why in 2012 we're still writing our own code -- to create something new without
being constrained by existing tools.&lt;/p&gt;

&lt;h2&gt;Painless Deployment to Stackato&lt;/h2&gt;

&lt;p&gt;Unlike the foreclosure data app, word got out, and the aforementioned journalist was asking when my web site would be up. Four years ago there weren't any single-button deployment solutions. Today there are a few, including &lt;a target="_new" href="/cloud"&gt;Stackato&lt;/a&gt; by ActiveState. Deploying Rails apps used to be a major pain point, and the subject of many conference sessions. Now it took one evening after work to deploy the app on Stackato.&lt;/p&gt;

&lt;p&gt;New features of Rails 3 makes deploying on a system like Stackato easier. For example, I added a &lt;code&gt;data_loader.rb&lt;/code&gt; file to the &lt;code&gt;config/initializers&lt;/code&gt; directory that checked to see if the database was empty. If it was, the single line &lt;code&gt;Rake::Task['db:seed'].invoke&lt;/code&gt; would run &lt;code&gt;db/seeds.rb&lt;/code&gt;, which was nothing more than the program I used during the hackathon to populate the database from the CSV file. I added the CSV file to git, and the next time the app was restarted it rebuilt the database automatically.&lt;/p&gt;

&lt;p&gt;Now that I was actually deploying the code, I had to make sure the code behaved differently depending on whether I was testing the code in development or test mode, or deploying it. For example, I was juggling two Google Map API keys, one for localhost, and one for the target URL.
There was an easy fix for this, in &lt;code&gt;config/environment.rb&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
GOOGLE_MAPS_KEY = (Rails.env == "production" ?
                   [key for sandbox.activestate.com] :
                   [key for localhost]);
&lt;/pre&gt;

&lt;p&gt;I pushed the app to the Stackato sandbox, tested it out manually and found it worked fine, notified the local cycling advocates, and watched the hits come in. The map helped me meet one of my goals, an increase in awareness that the designated routes were not 100% safe. In particular, one intersection, where the 10th Avenue bike route crossed Clark Drive, a 6-lane truck route through the city, was showing 16 collisions over the five-year period, easily one of the top ten intersections. Apparently people at city hall are discussing possible improvements.&lt;/p&gt;

&lt;h2&gt;Improving Performance&lt;/h2&gt;

&lt;p&gt;I was happy that I could release the app without any work at all, but was less pleased with the performance. When you zoomed out to a level that contained all of Vancouver, the server was taking up to 20 seconds to respond -- it was spending most of that time converting over 2,000 locations into about 200 locations that Google Maps could quickly render. This hadn't been as much of a factor with the foreclosure data, because there were few blocks that had more than one bank-owned house on them. But the ICBC data was revealing more than one collision along each block along designated routes and main streets. Quick profiling revealed that 10% of that time was spent converting rows from the data base into ActiveRecord objects, and most of the balance spent clustering those items.&lt;/p&gt;

&lt;p&gt;I spent the next Saturday rewriting the clustering code in C. I had worked out the subtleties of the clustering algorithm in Ruby, so this was essentially a rewrite into C. I made sure the core code was independent of any scripting language API, and then wrote an interface layer between C and Ruby (so this library could be easily ported to any other language with a C interface). It went amazingly quickly, with benchmarking showing a drop in processing time of over 90%. The advantage of the C code, besides the speedup in executing machine code over interpreted Ruby bytecode, is that I knew the code's memory requirements in advance, allocated it all in one shot, freed it at the end, and could structure the code to minimize sloshing bits around. With Ruby that was out of my control. And writing a layer of C code to interface with Ruby is actually surprisingly fun.&lt;/p&gt;

&lt;p&gt;I built a gem for the C code, added an entry for it in the app's Gemfile, ran &lt;code&gt;bundle package&lt;/code&gt; (side note: use &lt;code&gt;bundle install&lt;/code&gt; for gems registered with rubygems, &lt;code&gt;bundle package&lt;/code&gt; if your app uses private gems), pushed the app to Stackato, and it worked much faster. As I zoomed out, the server was taking less than a second to process a large set of points. You can see the result at &lt;a target="_new" href="http://bentframe.sandbox.activestate.com"&gt;http://bentframe.sandbox.activestate.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note that while I developed the C library on OSX, it didn't matter that I was deploying to Linux. Stackato compiled the gems for me during staging.&lt;/p&gt;


&lt;h2&gt;Handling Cars&lt;/h2&gt;

&lt;a rel="shadowbox[Screenshots]"
 href="/sites/default/files/blog_import_images/carcrash.png"&gt;
  &lt;img title="Car Collision Data on Stackato" alt="Car Collisions"
	 style="width: 600px"
	 src="/sites/default/files/blog_import_images/carcrash.png"
	 class="as_feature_img as_left" /&gt;
&lt;/a&gt;


&lt;p&gt;Just in time for Christmas, I received an Open Office Calc .xmlx file from ICBC containing about 110,000 rows of data representing car collisions at intersections in the province for the same years, 2006 through 2010. It took about a day to modify the bike app to handle the slight differences in the car data, and the clustering C module was performing fine. However the numbers were larger, compared to the 5500 rows for the bike data. If I zoomed out long enough, the server would take over 20 seconds to respond. Benchmarking showed that most of that time was spent simply reading data from the database (using a pure SQL call to bypass Rails' ActiveRecord). But a call to determine how many rows matched a given query took no time, so I modified the JavaScript side to show a warning when there would be too much data to look at when you zoomed out too far, and left it at that. You can see the car crash map at &lt;a target="_new" href="http://carcrash.sandbox.activestate.com"&gt;http://carcrash.sandbox.activestate.com&lt;/a&gt;.&lt;/p&gt;


&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/bentframe-developed-komodo-deployed-stackato" dc:identifier="http://www.activestate.com/blog/2012/01/bentframe-developed-komodo-deployed-stackato" dc:title="Bentframe: Developed with Komodo, deployed to Stackato" trackback:ping="http://www.activestate.com/trackback/3261" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3261&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/od57GeJrUIw" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/bentframe-developed-komodo-deployed-stackato#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/open-data">open data</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ruby">ruby</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 05 Jan 2012 00:15:20 +0000</pubDate>
 <dc:creator>ericp</dc:creator>
 <guid isPermaLink="false">3261 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/bentframe-developed-komodo-deployed-stackato</feedburner:origLink></item>
  <item>
    <title>Private PaaS: More than Java for Implementation Success?</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/vsOLcV2zS_I/private-paas-more-java-implementation-success</link>
    <description>&lt;p&gt;&lt;img alt="Java private PaaS" src="/sites/default/files/images/blog/java.png" style="width: 55px; height: 100px;" /&gt;For the past few months, as we&amp;#39;ve been talking to large enterprises about &lt;a href="/cloud" title="Stackato private PaaS"&gt;Stackato&lt;/a&gt; and their private PaaS plans, some interesting IT strategies have emerged around the role of languages like Python, Ruby, and PHP play in the mix with Java.&lt;/p&gt;
&lt;p&gt;As most people know, Java applications dominate the landscape in large enterprise. But as corporate IT departments are planning private PaaS implementations, what strategy are they taking regarding languages and data services?&lt;/p&gt;
&lt;h3&gt;Option 1: Java First&lt;/h3&gt;
&lt;p&gt;On the one hand, some are focusing first on Java to support the primary language amongst their developers. In these companies, Java is the primary language for legacy mission-critical applications. Often, other languages like Python and Perl were not used as much in legacy applications, or not viewed to be strategic languages for mission-critical languages. So in some large organizations, even if up to 25% of their applications use another language like Python or Perl, these organizations are implementing a PaaS for Java first with the idea of getting the majority at the first stage.&lt;/p&gt;
&lt;h3&gt;Option 2: Next-Gen Languages to Get Buy-In&lt;/h3&gt;
&lt;p&gt;However, some companies are taking a different strategy in order to get greater internal buy-in and adoption of their private PaaS. Even though most current applications may be written in Java, they feel that the younger generation of developers are using, or prefer to use, other languages like Python, Ruby, and PHP, and are demanding that IT support these options. Since the younger developers are also the ones that are more likely to try a new internal service like a PaaS for deploying and managing their applications, corporate IT groups are focusing on getting their adoption first. And the Java crowd will follow. Likewise, in addition to supporting traditional databases like Oracle and DB2, these corporate IT groups want to be able to offer next-generation data services like MongoDB to show the flexibility and options that an internal PaaS can provide. This puts corporate IT in a position of giving the customer (internal developers) what they want in order to satisfy their demands today, get early buy-in, and set-up for success tomorrow.&lt;/p&gt;
&lt;p&gt;So which strategy are you taking, and why? Share your comments!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2012/01/private-paas-more-java-implementation-success" dc:identifier="http://www.activestate.com/blog/2012/01/private-paas-more-java-implementation-success" dc:title="Private PaaS: More than Java for Implementation Success?" trackback:ping="http://www.activestate.com/trackback/3260" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3260&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/vsOLcV2zS_I" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2012/01/private-paas-more-java-implementation-success#comments</comments>
 <category domain="http://www.activestate.com/blog/category/blog-categories/dynamic-languages">dynamic languages</category>
 <category domain="http://www.activestate.com/taxonomy/term/103">enterprise</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/perl">perl</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/perl-0">perl</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/perl">perl</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/php">php</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/python">python</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/python">python</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ruby">ruby</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Tue, 03 Jan 2012 15:06:34 +0000</pubDate>
 <dc:creator>angieh</dc:creator>
 <guid isPermaLink="false">3260 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2012/01/private-paas-more-java-implementation-success</feedburner:origLink></item>
  <item>
    <title>Three ways Stackato makes web development easier</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/dRn6Eovg0tA/three-ways-stackato-makes-web-development-easier</link>
    <description>&lt;div id="cke_pastebin"&gt;I&amp;#39;m going to show you three ways that Stackato makes developing, testing and deploying web applications easier.&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&lt;strong&gt;1. Stackato solves the &amp;quot;It worked on my box&amp;quot; problem&lt;/strong&gt;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;If you&amp;#39;re running a Stackato cluster in production and staging and a Stackato Micro Cloud locally for development, you&amp;#39;ll have a consistent environment across the board. &amp;nbsp;What works on the Stackato Micro Cloud will work on a Stackato cluster.&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&lt;strong&gt;2. Easy cross-browser and cross-device testing from your development environment&lt;/strong&gt;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;Run your local Stackato MicroCloud in Bridged Networking mode, and you&amp;#39;ll be able to access it from any device on your network.You can even test your responsive layouts on your phone or tablet. &amp;nbsp;Find a bug in your CSS? &amp;nbsp;Fix it locally, push it to your development microcloud and reload the page on your device.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Sample app in Chrome:&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="/sites/default/files/chrome.png" style="width: 460px; height: 334px; " /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;And the same sample app in mobile Safari:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="/sites/default/files/mobile-safari.png" style="width: 460px; height: 306px; " /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;(Note: you&amp;#39;ll need to change the hostname to something other than stackato.local if there are other folks running a microcloud on your network to avoid collisions.)&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&lt;strong&gt;3. Share your changes without staging them&lt;/strong&gt;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;Bridged networking provides another benefit: you can send your team members a link to an app running on your local Stackato Micro Cloud instead of pushing your changes to staging. &amp;nbsp;This can be helpful when you want feedback on a front-end feature that isn&amp;#39;t ready for everyone to see.&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="cke_pastebin"&gt;Ready to try Stackato? &amp;nbsp;&lt;a href="http://community.activestate.com/stackato"&gt;Get the free Stackato Micro Cloud now.&lt;/a&gt;&lt;/div&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/three-ways-stackato-makes-web-development-easier" dc:identifier="http://www.activestate.com/blog/2011/12/three-ways-stackato-makes-web-development-easier" dc:title="Three ways Stackato makes web development easier" trackback:ping="http://www.activestate.com/trackback/3259" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3259&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/dRn6Eovg0tA" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/three-ways-stackato-makes-web-development-easier#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Tue, 20 Dec 2011 23:44:53 +0000</pubDate>
 <dc:creator>tarag</dc:creator>
 <guid isPermaLink="false">3259 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/three-ways-stackato-makes-web-development-easier</feedburner:origLink></item>
  <item>
    <title>Cloud Application Portability: The Holy Grail of Cloud Computing</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/5DSUd9ztOOs/cloud-application-portability-holy-grail-cloud-computing</link>
    <description>&lt;p&gt;&lt;img alt="" src="/sites/default/files/medium_holy_grail_cloud_portablity.jpg" style="width: 120px; height: 120px; border-width: 1px; border-style: solid; margin: 1px; float: left;" /&gt;Portable application deployment to any cloud hosting provider is the Holy Grail of cloud computing. When cloud portability depends upon the supplier creating the cloud service, the cloud provider, or the hosting technology, applications have provisioning and configuration dependencies that create vendor lock-in, preventing organizations from realizing cloud benefits like reduced costs and deployment flexibility.&lt;/p&gt;
&lt;p&gt;Want to migrate some or all of your private cloud to a community or public cloud? You need cloud portability. Want cloud portability now? You need private PaaS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conflicting (or absent) cloud-interoperability standards complicate application portability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cloud service providers frequently toss around terms like &amp;ldquo;service,&amp;rdquo; &amp;ldquo;application composition,&amp;rdquo; &amp;ldquo;orchestration,&amp;rdquo; and &amp;ldquo;platform.&amp;rdquo; But those terms often have differing meanings depending on the source. It should come as no surprise that re-deploying your application to a different cloud will require some reengineering, particularly to ensure configuration of required cloud services like databases or web servers. Unclear or conflicting terminology can make it difficult to switch between cloud platforms, and can obscure a cloud hosting provider&amp;rsquo;s basic capabilities (and/or limitations). When an application is pushed to a new cloud, interdependencies must be identified and reevaluated, with details and values reentered and checked at each stage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Understanding your application`s cloud requirements&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are no formal standards describing cloud interoperability&amp;mdash;specifically, your application&amp;rsquo;s migration requirements. There are some standard practices (like adding a &amp;ldquo;requirements.txt&amp;rdquo; file containing modules and packages lists to the app root), but they do not offer enough detail about data services and cloud-configuration dependencies that your app will require to scale securely and run on the (new) cloud. Several cloud-orchestration and scripting approaches&amp;mdash;such as Right Scale, Enstratus, Dell Crowbar, Puppet, Chef&amp;mdash;ease the burden of repeat deployment to the same cloud, but no equivalent models exist for porting an application to a new cloud model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standards are emerging slowly&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In lieu of fully-defined cloud-computing migration standards, some vendors make their APIs public, and push their own implementation models. These vendors understandably act in their own self-interest, creating vendor lock-in to drive revenue and market share in the hope their implementation becomes a de facto standard.&lt;/p&gt;
&lt;p&gt;However, cloud-portability standardization discussions are starting to happen. &lt;a href="http://www.oasis-open.org/"&gt;OASIS&lt;/a&gt; has recently brought together enterprise cloud vendors to form the &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca"&gt;TOSCA technical committee&lt;/a&gt;, an org tasked with defining application and infrastructure cloud services interoperability standards, relationships between parts of the service, and specific service operational behavior (e.g., deploy, patch, shutdown). But getting industry competitors (TOSCA participants include heavy lifters like IBM, CA, SAP, Citrix, RedHat, and ActiveState) to agree on interoperability standards is a daunting&amp;mdash;and laborious&amp;mdash;process, and market adoption is not guaranteed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want cloud portability? Only Platform-as-a-Service delivers it now&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Platform-as-a-Services (PaaS) solutions like &lt;a href="http://www.activestate.com/cloud"&gt;ActiveState Stackato&lt;/a&gt; can be deployed on multiple hypervisors or on different flavors of IaaS, and offer another way forward to cloud portability. A PaaS provides a computing platform and a solution stack as a service. In the three-tiered cloud-computing model, the PaaS layer lies between the SaaS and the IaaS layers.&lt;/p&gt;
&lt;p&gt;A PaaS such as Stackato can be deployed on either a Public or Private Cloud running on VMWare&amp;rsquo;s vSphere, Amazon&amp;rsquo;s EC2, or OpenStack. Stackato provides a layer of abstraction on top of the IaaS layer.&lt;/p&gt;
&lt;p&gt;Applications deployed on a Stackato-enabled cloud platform can be moved to a different cloud model easily and painlessly, with little to no reengineering. This keeps your application (and your business) from being locked into a single cloud-hosting provider, and gives you the flexibility of choosing the right provider to meet your organization&amp;rsquo;s needs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How does Stackato&amp;rsquo;s cloud-portability approach work?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Stackato automatically reads your application&amp;rsquo;s top-level &amp;ldquo;requirements.txt&amp;rdquo; file, and installs any packages you&amp;#39;ve defined&amp;mdash;Handling dependencies is completely transparent during the staging process.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Stackato goes one step further and encapsulates your application&amp;#39;s cloud configuration. Your application&amp;rsquo;s cloud configuration is persisted using YAML in the top-level &amp;ldquo;stackato.yml&amp;ldquo; file. The &amp;ldquo;stackato.yml&amp;ldquo; file holds various installation details for your app, removing the need to enter those details each time the app is pushed, and ensuring values are the same each time.&lt;/p&gt;
&lt;p&gt;When you use Stackato&amp;rsquo;s database services, your application&amp;rsquo;s code uses connection details provided as environment variables. These environment variables give your application the flexibility to point to database services wherever they reside.&lt;/p&gt;
&lt;p&gt;Deploying Stackato as the PaaS layer on your choice of cloud enables portable deployment to any Stackato-enabled cloud. Stackato&amp;rsquo;s approach to application deployment and wealth of enterprise-class languages, frameworks, and services ease the migration of your existing applications to the cloud, and ensure that your organization can take advantage of lower costs as the competition among cloud hosting providers ramps up in the coming year and drives down pricing.&lt;/p&gt;
&lt;p&gt;Platform-as-a-Service may be not the holy grail of cloud application portablity, but the PaaS&amp;#39;s ability to abstract away the differences between cloud computing infrastructure providers and an enterprise solution stack makes it easier to port applications between cloud platforms, enables more-flexible application management, and helps you avoid vendor lock-in (today, not tomorrow).&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/cloud-application-portability-holy-grail-cloud-computing" dc:identifier="http://www.activestate.com/blog/2011/12/cloud-application-portability-holy-grail-cloud-computing" dc:title="Cloud Application Portability: The Holy Grail of Cloud Computing" trackback:ping="http://www.activestate.com/trackback/3253" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3253&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/5DSUd9ztOOs" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/cloud-application-portability-holy-grail-cloud-computing#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/oasis">OASIS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/portability">Portability</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/standards">Standards</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/yaml">yaml</category>
 <pubDate>Tue, 20 Dec 2011 21:09:43 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3253 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/cloud-application-portability-holy-grail-cloud-computing</feedburner:origLink></item>
  <item>
    <title>Running Bugzilla in the Cloud</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/lOtCNEqXq_M/running-bugzilla-cloud</link>
    <description>&lt;img title="Bugzilla Logo by Dave Shea" alt="Bugzilla Logo by Dave Shea"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/buggie.png"
	    class="as_feature_img as_left" /&gt;

&lt;p&gt;&lt;a href="http://www.bugzilla.org/"&gt;Bugzilla&lt;/a&gt; is the most popular open source bug tracker, and the one we use at ActiveState for both public and private issue tracking. As such, and in the interest of &lt;a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food"&gt;dogfooding&lt;/a&gt; our own software, we wanted to see what it would take to deploy it to our &lt;a href="/cloud"&gt;Stackato&lt;/a&gt; cloud platform.&lt;/p&gt;

&lt;p&gt;With a little investigation and reconfiguration, and with the use of Stackato's post-staging hooks, I was able to get a functional instance of Bugzilla running on Stackato.&lt;/p&gt;

&lt;h2 style="clear:both"&gt;Getting Bugzilla 4.0.2 talking  PSGI on ActivePerl 5.14.2&lt;/h2&gt;

&lt;p&gt;I started off with the latest stable release of Bugzilla, which is version 4.0.2 right now.  Testing that version locally with ActivePerl 5.14.2 showed that it had a conflict with the latest release of &lt;a href="http://search.cpan.org/~jpeacock/version-0.95/lib/version.pod"&gt;version.pm&lt;/a&gt;. Fortunately, this is a &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=678772"&gt;known issue&lt;/a&gt; and already has a patch in the development branch that can be applied to 4.0.2 as well.&lt;/p&gt;

&lt;p&gt;Bugzilla is a bunch of CGI scripts, whereas Stackato prefers to run applications via the PSGI protocol.  CGI scripts can be wrapped with the CGI::Emulate::PSGI module, but before attempting to do so on my own, I did a quick Google search and fortunately found that one of the Bugzilla core developers has &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=316665#c18"&gt;already started this work&lt;/a&gt; in order too ease deployment of Bugzilla under FastCGI.  The patch needed some manual tweaking to get it to apply to Bugzilla 4.0.2, but once that was done I had a version of Bugzilla that I could run under ActivePerl with '&lt;a href="http://advent.plackperl.org/2009/12/day-3-using-plackup.html"&gt;plackup&lt;/a&gt;', the development PSGI server included in the Plack distribution.&lt;/p&gt;

&lt;h2&gt;Deploying Bugzilla to Stackato&lt;/h2&gt;

&lt;p&gt;Now it was time to try to deploy Bugzilla to Stackato.  The first step is to create a requirements.txt file that lists all the prerequisite modules for Bugzilla from the &lt;a href="http://www.bugzilla.org/docs/4.0/en/html/installation.html#install-perlmodules"&gt;documentation&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;
CGI
Date::Format
DateTime
DateTime::TimeZone
DBI
DBD::mysql
Digest::SHA
Email::Send
Email::MIME
Template::
URI
&lt;/pre&gt;

&lt;p&gt;Most of them are already included in ActivePerl, but it doesn't hurt to list them again.  For PSGI and CGI::Emulate::PSGI support I needed to add a couple more modules:&lt;/p&gt;

&lt;pre&gt;
Plack::App::WrapCGI
Plack::App::URLMap
CGI::Emulate::PSGI
CGI::Compile
&lt;/pre&gt;

&lt;p&gt;Configuring Bugzilla requires access to a database, so I decided to do this all with a little Perl script as a post-staging hook.  The &lt;a href="/blog/using-yaml-to-drive-app-deployment"&gt;stackato.yml file&lt;/a&gt; that describes the application looks like this:&lt;/p&gt;

&lt;pre&gt;
name: bugzilla

# Need to specify the framework explicitly because we don't have
# an app.psgi file.  It is called bugzilla/app.psgi, and it will only
# be created during post-staging.
framework:
  type: perl

processes:
  web: (cd bugzilla &amp;&amp; $PROCESSES_WEB)

hooks:
  post-staging: perl setup.pl
  # for debugging purposes only
  pre-running: env

services:
  mysql: mysql-bugzilla

mem: 128M
&lt;/pre&gt;

&lt;p&gt;Notice the 'processes: web:' line. This is used to customize the command that launches the application, in this case to run the default uwsgi command (stored in the $PROCESSES_WEB variable) in the 'bugzilla' directory rather than the application root.&lt;/p&gt;

&lt;p&gt;The setup.pl script basically does the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download Bugzilla 4.0.2. Bugzilla is not distributed via CPAN, so it cannot be installed by the requirements.txt mechanism but needs to be downloaded and unpacked explicitly.&lt;/li&gt;
  
&lt;li&gt;Apply patches for the version.pm issue and PSGI support.&lt;/li&gt;
  
&lt;li&gt;Create an automatic configuration file containing the database credentials as well as default admin information.&lt;/li&gt;
  
&lt;li&gt;Run checksetup.pl multiple times to create the initial configuration files and set up the database schema.&lt;/ol&gt;
&lt;/li&gt;


&lt;p&gt;I've factored out a myconfig.pl file that allows end-user customization of the initial setup without having to edit setup.pl itself:&lt;/p&gt;

&lt;pre&gt;
# Sample Bugzilla configuration
%answer = (
    ADMIN_EMAIL    =&gt; 'admin@stackato.local',
    ADMIN_PASSWORD =&gt; 'changeme',
    ADMIN_REALNAME =&gt; 'Sample Admin',
    mailfrom       =&gt; "bugzilla-daemon\@stackato.local",
    smtpserver     =&gt; "stackato.local",
    urlbase        =&gt; 'http://bugzilla.stackato.local',
); &lt;/pre&gt;

&lt;p&gt;It is not strictly necessary to change this file at all, as the settings can also be modified through the Bugzilla web interface.  Just make sure you rename the admin user and change the password before making the app accessible to the outside world!&lt;/p&gt;

&lt;h2&gt;Working around one more obstacle&lt;/h2&gt;

&lt;p&gt;Unfortunately this setup doesn't quite work yet: It is not possible to log into the app with the administrator name and password.  Further debugging showed that none of the HTTP POST requests would deliver the actual query data.  This turns out to be an incompatibility between the CGI::Emulate::PSGI module and the uWSGI server software that Stackato uses by default to serve up PSGI applications.&lt;/p&gt;

&lt;p&gt;I've filed this as &lt;a href="https://rt.cpan.org/Ticket/Display.html?id=72684"&gt;a bug&lt;/a&gt; against the CGI::Emulate::PSGI module and changed the custom application start command in stackato.yml to use plackup instead of the default uwsgi command:&lt;/p&gt;

&lt;pre&gt;
processes:
  web: (cd bugzilla &amp;&amp; plackup --port $VCAP_APP_PORT)&lt;/pre&gt;

&lt;p&gt;As with the post-staging hooks and the run command, Stackato is the only Cloud Foundry-based platform that allows this kind of customization.&lt;/p&gt;

&lt;h2&gt;Enough talking, let's just do it&lt;/h2&gt;

&lt;p&gt;All files needed to deploy Bugzilla to your Stackato cloud are &lt;a href="https://github.com/ActiveState/stackato-samples/tree/master/perl/bugzilla"&gt;available from github&lt;/a&gt;.  The commands needed to deploy your own instance are:&lt;/p&gt;

&lt;pre&gt;
$ git clone git@github.com:ActiveState/stackato-samples.git
$ cd stackato-samples/perl/bugzilla
  (update myconfig.pl with your email settings)
$ stackato push --no-prompt&lt;/pre&gt;

&lt;br/&gt;

&lt;h2&gt;What's next?&lt;/h2&gt;

&lt;p&gt;There are a number of additional prerequisites to enable optional functionality.  They can be added to requirements.txt to enable the additional features.  XMLRPC and JSONRPC have already been identified as being problematic under PSGI with FastCGI; I didn't check if they work with the regular setup.&lt;/p&gt;

&lt;p&gt;Several optional features also require a background process to periodically collect stats or process inbound email.  This functionality can be simulated by running the required commands externally using the `stackato run` command for now. Stackato will soon support background processes and scheduling on its own.&lt;/p&gt;


&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/running-bugzilla-cloud" dc:identifier="http://www.activestate.com/blog/2011/12/running-bugzilla-cloud" dc:title="Running Bugzilla in the Cloud" trackback:ping="http://www.activestate.com/trackback/3250" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3250&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/lOtCNEqXq_M" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/running-bugzilla-cloud#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/bugzilla">bugzilla</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cgi">cgi</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/perl">perl</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/psgi">psgi</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 15 Dec 2011 00:26:29 +0000</pubDate>
 <dc:creator>jand</dc:creator>
 <guid isPermaLink="false">3250 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/running-bugzilla-cloud</feedburner:origLink></item>
  <item>
    <title>We're Hiring a Developer Community Manager!</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/VBuYXNl5WCs/were-hiring-developer-community-manager</link>
    <description>&lt;a href="/company/careers" target="_blank"&gt;&lt;img alt="ActiveState Developer Community Manager" class="as_feature_img as_left" src="/sites/default/files/blog_import_images/community.jpg" style="width: 120px" title="Developer Community Manager"&gt;&lt;/a&gt;

&lt;p&gt;ActiveState is searching for a Developer Community Manager to support our growing Stackato Community and lead our Stackato Developer Community Relations initiatives at ActiveState. The position will be based in our Vancouver office. The application deadline is January 31st. If you are excited about this possibility, or know someone who would be, please &lt;a href="http://www.activestate.com/company/careers" target="_blank"&gt;check out the job listing&lt;/a&gt; and feel free to spread the word. Thanks!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/were-hiring-developer-community-manager" dc:identifier="http://www.activestate.com/blog/2011/12/were-hiring-developer-community-manager" dc:title="We&amp;#039;re Hiring a Developer Community Manager!" trackback:ping="http://www.activestate.com/trackback/3249" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3249&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/VBuYXNl5WCs" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/were-hiring-developer-community-manager#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/career">career</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/community">community</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/developer">developer</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/hiring">hiring</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/jobs">jobs</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/manager">manager</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Mon, 12 Dec 2011 22:41:48 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3249 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/were-hiring-developer-community-manager</feedburner:origLink></item>
  <item>
    <title>Application Portablity in the Cloud: Standards &amp; OASIS</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/JLvhd6Bbozg/application-portablity-cloud-standards-oasis</link>
    <description>&lt;p&gt;&lt;a href="http://www.oasis-open.org/committees/membership.php?wg_abbrev=tosca" target="_blank"&gt;&lt;img alt="OASIS" src="http://www.oasis-open.org/sites/www.oasis-open.org/files/logo.png" style="width: 306px; height: 52px; border-width: 0px; border-style: solid; float: left;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The ability to migrate applications from one cloud to another and&amp;nbsp; give customers a way to avoid being locked in to a single cloud provider is key to a healthy cloud eco-system.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At ActiveState, we believe that standards can and will help, which is why we&amp;#39;re pleased to &lt;a href="/press-releases/leading-private-paas-platform-provider-activestate-joins-oasis"&gt;announce our support for the OASIS (Advancing Open Standards for the Information Society) TOSCA&lt;/a&gt; initiatives. By increasing service and application portability in a vendor-neutral ecosystem, the &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca" target="_blank"&gt;OASIS TOSCA (Topology and Orchestration Specification for Cloud Applications) Technical Committee&lt;/a&gt; will be working to enhance the portability of cloud applications and services, ensure smoother migration of existing applications to the cloud and more consumer choice.&lt;/p&gt;
&lt;p&gt;While we continue to grow &lt;a href="http://www.activestate.com/cloud"&gt;ActiveState Stackato&lt;/a&gt;, every day we are seeing more and more applications and their workloads deployed to clouds, taking advantage of the promise of cloud computing&amp;#39;s elasticty and usage-based cost structure. And this is a wonderful thing.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, with each cloud provider choosing a specific hypervisor, cloud infrastrucure and their own set of resources, it becomes difficult to move from one cloud to another.&amp;nbsp; Moving your application from one to the other means reinstalling, re-testing, and, in some cases, reengineering the application, because the underlying cloud infrastructures and their APIs aren&amp;#39;t always compatible.&amp;nbsp; Even moving between two providers using the same infrastructure provisioning layer such as OpenStack can be difficult because the application will be looking for databases, middleware and other services that are specific to each cloud.&lt;/p&gt;
&lt;p&gt;We at ActiveState believe that Platform-as-a-Service (PaaS) will play an important role in enabling the portability of cloud applications and services. Standards such as those under discussion on the TOSCA technical committee will enable the interoperable description of application and infrastructure cloud services, the relationships between parts of the service, and the operational behavior of these services&amp;nbsp; independent of the supplier creating the service, and any particular cloud provider or hosting technology.&lt;/p&gt;
&lt;p&gt;ActiveState is please to bring our experiences with ActiveState Stackato, the private PaaS solution, to add to the conversation and &amp;nbsp; work alongside vendores such as CA, IBM, EMC, Citrix, Red Hat and SAP AG to ensure portability of cloud applications and services.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cloud"&gt;Try Stackato today&lt;/a&gt; and get started creating your own private PaaS, or read the full &lt;a href="/press-releases/leading-private-paas-platform-provider-activestate-joins-oasis"&gt;press release&lt;/a&gt;.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/application-portablity-cloud-standards-oasis" dc:identifier="http://www.activestate.com/blog/2011/12/application-portablity-cloud-standards-oasis" dc:title="Application Portablity in the Cloud: Standards &amp;amp; OASIS" trackback:ping="http://www.activestate.com/trackback/3247" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3247&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/JLvhd6Bbozg" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/application-portablity-cloud-standards-oasis#comments</comments>
 <category domain="http://www.activestate.com/blog/category/blog-categories/announcements">announcements</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/oasis">OASIS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/portable-cloud">portable cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/portablity">portablity</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/private-paas">private paas</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Wed, 07 Dec 2011 00:03:23 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3247 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/application-portablity-cloud-standards-oasis</feedburner:origLink></item>
  <item>
    <title>New Stackato Client: Tunneling and HTTPS</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/TT5y8-zeFVA/new-stackato-client-tunneling-and-https</link>
    <description>&lt;img title="Stackato Tunnel" alt="Stackato Tunnel"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/tunnel.jpg"
	    class="as_feature_img as_left" /&gt;

&lt;p&gt;I'm very happy to provide an update to Troy's post from last week about &lt;a href="/blog/2011/11/connecting-database-services-stackato"&gt;connecting to database services in stackato&lt;/a&gt;. In that post, he said:&lt;/p&gt;

&lt;blockquote&gt;Since we are maintaining API compatibility with Cloud Foundry, we'll be adding an equivalent 'stackato tunnel' command to emulate 'vmc tunnel'.
&lt;/blockquote&gt;

&lt;p&gt;Well, we've just released &lt;a href="http://community.activestate.com/stackato/download"&gt;a new version of the &lt;code&gt;stackato&lt;/code&gt; client&lt;/a&gt; which implements the 'tunnel' command. In doing this, we evaluated how the client communicated and otherwise operated, and found a few places we felt should be improved.&lt;/p&gt;

&lt;h2&gt;Password? What password?&lt;/h2&gt;

&lt;p&gt;For example, the vmc client requires you specify a password when pushing the tunnel initially, to authenticate future tunnel connections. However, if you subsequently type an incorrect password it doesn't deny access.  It interprets that as if the tunnel hadn't been deployed, deletes any existing tunnel, and redeploys using the new password.&lt;/p&gt;

&lt;pre&gt;
$ vmc tunnel
1: mysql-d05c5
Which service to tunnel to?: 1
Password: *****
Redeploying tunnel application 'caldecott'.
Uploading Application:
  Checking for available resources: OK
  Packing application: OK
  Uploading (1K): OK   
Push Status: OK
Binding Service [mysql-d05c5]: OK
...
&lt;/pre&gt;

&lt;p&gt;Not a critical security hole, since the vmc user has been previously authenticated, but it's likely unintentional behavior. The 'stackato tunnel' command doesn't do this:&lt;/p&gt;

&lt;pre&gt;
$ stackato tunnel
1. postgresql-gtd
Which service to tunnel to: 1
Password: *****
Getting tunnel url: OK, at https://tunnel-4r0b6.sandbox.activestate.com
Error: Bad password, authentication to tunnel failed
&lt;/pre&gt;

&lt;br/&gt;

&lt;h2&gt;HTTPS by default...&lt;/h2&gt;

&lt;p&gt;Another aspect is that &lt;code&gt;vmc tunnel&lt;/code&gt; operates by default over HTTP, and we have moved that to HTTPS. We have now made this the default protocol for targets, to ensure more secure operation. We went one step further and now require an explicit '--allow-http' to make an insecure HTTP connection.&lt;/p&gt;

&lt;pre&gt;
$ stackato target api.sandbox.activestate.com
Successfully targeted to [https://api.sandbox.activestate.com]
&lt;/pre&gt;

&lt;br/&gt;

&lt;h2&gt;and other conveniences...&lt;/h2&gt;

&lt;p&gt;On the server side, we generalized the application name 'caldecott' to just 'tunnel', as well as providing a '--url' option when first creating a tunnel to specify the mapped url. This is more for convenience, but is handy when you want to fix a name in cases where you have inflexible DNS handling.&lt;/p&gt;

&lt;p&gt;An option to specify the password on the command line was added to support batch mode testing, as we have a growing code base of tests for our system that leverage the client and REST APIs directly.&lt;/p&gt;

&lt;p&gt;So if you're already in the &lt;a href="http://community.activestate.com/stackato"&gt;Stackato Beta&lt;/a&gt; program, please &lt;a href="http://community.activestate.com/stackato/download"&gt;download the new client&lt;/a&gt; and try out the improvements. If you're not in the program yet, by all means &lt;a href="http://www.activestate.com/cloud"&gt;sign up&lt;/a&gt;. We'd love to get your feedback.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/12/new-stackato-client-tunneling-and-https" dc:identifier="http://www.activestate.com/blog/2011/12/new-stackato-client-tunneling-and-https" dc:title="New Stackato Client: Tunneling and HTTPS" trackback:ping="http://www.activestate.com/trackback/3246" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3246&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/TT5y8-zeFVA" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/12/new-stackato-client-tunneling-and-https#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/caldecott">caldecott</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/client">client</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/https">https</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/security">security</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/tcp">tcp</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/tunnel">tunnel</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmc">vmc</category>
 <pubDate>Fri, 02 Dec 2011 00:03:03 +0000</pubDate>
 <dc:creator>jeffh</dc:creator>
 <guid isPermaLink="false">3246 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/12/new-stackato-client-tunneling-and-https</feedburner:origLink></item>
  <item>
    <title>Using YAML to Drive App Deployment</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/NvmZt2PNqLk/using-yaml-drive-app-deployment</link>
    <description>&lt;img title="stackato.yml config - Automated Deployment" alt="stackato.yml config - Automated Deployment"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/stackato-yml.png"
	    class="as_feature_img as_left" /&gt;

&lt;p&gt;There's a very handy but sometimes overlooked feature of the &lt;code&gt;stackato&lt;/code&gt; client that we'd like to let you know more about. I often have to remind myself to point it out when I'm &lt;a href="http://www.youtube.com/watch?v=CunjLaS7Rzo"&gt;doing demos&lt;/a&gt; for people, as it's something that I've quickly come to take for granted. It's the &lt;em&gt;stackato.yml&lt;/em&gt; config file.&lt;/p&gt;

&lt;p&gt;It's a small addition to base vmc functionality, but it really helps with consistent, automated application deployment. You see, the &lt;code&gt;stackato&lt;/code&gt; and &lt;code&gt;vmc&lt;/code&gt; command-line clients are normally interactive. You are prompted for confirmation of the URL...&lt;/p&gt;

&lt;pre&gt;
$ vmc push wordpress
Would you like to deploy from the current directory? [Yn]: 
Application Deployed URL [wordpress.stackato.local]: &lt;/pre&gt;

&lt;p&gt;...confirmation of the detected runtime or framework...&lt;/p&gt;

&lt;pre&gt;
Detected a PHP Application, is this correct? [Yn]:&lt;/pre&gt;

&lt;p&gt;...memory allocation...&lt;/p&gt;

&lt;pre&gt;
Memory Reservation (64M, 128M, 256M, 512M) [128M]: 64M&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;You are asked if you want to create a new data service or bind to a new one, and you are prompted for a name...&lt;/p&gt;

&lt;pre&gt;
Would you like to bind any services to 'wordpress'? [yN]: y
Would you like to use an existing provisioned service? [yN]: n
The following system services are available
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
Please select one you wish to provision: 2
Specify the name of the service [mysql-33b93]: mysql-wordpress
Creating Service: OK
...
&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;Both clients have a --no-prompt option for the 'push' command, but to specify non-default values with &lt;code&gt;vmc&lt;/code&gt; you have to add them as command line arguments. Wouldn't it be handy to specify these things in a config file?&lt;/p&gt;

&lt;p&gt;Since a lot of Stackato configuration files on the server side are done in &lt;a href="http://www.yaml.org/"&gt;YAML&lt;/a&gt;, we chose that as the data serialization format. We made the stackato client check for a 'stackato.yml' file and use the options specified there. This bypasses all of the prompting during a 'push' or 'update' and gives you a place to see all of your configuration at a glance in a &lt;a href="http://docs.stackato.com/deploy.html#stackato-yml-options"&gt;human readable format&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;
$ cat stackato.yml 
name: mywordpress
mem: 64M
instances: 1
services:
    mysql: mysql-wordpress
hooks:
  post-staging:
    - sh salt.sh
&lt;/pre&gt;

&lt;p&gt;When it comes time to push or update the app, you can use the '-n' or '--no-prompt' switch:&lt;/p&gt;

&lt;pre&gt;
$ stackato push -n
Application Url: mywordpress.stackato.local
Creating Application [mywordpress]: OK
Creating mysql Service [mysql-wordpress]: OK
Binding Service [mysql-wordpress]: OK
Uploading Application [mywordpress]:
  Ignoring path [.git]
  Checking for available resources: OK
  Processing resources: OK
  Packing application: OK
  Uploading (16K): 100% OK
Push Status: OK
Staging Application [mywordpress]: OK                                             
Starting Application [mywordpress]: OK
&lt;/pre&gt;

&lt;br/&gt;

&lt;h2&gt;What else can you do with stackato.yml?&lt;/h2&gt;

&lt;p&gt;In addition to driving the basic push operations, &lt;em&gt;stackato.yml&lt;/em&gt; can be used for additional server-side setup operations, as you might do with the '&lt;code&gt;stackato run&lt;/code&gt;' and '&lt;code&gt;stackato env&lt;/code&gt;' commands.&lt;/p&gt;

&lt;p&gt;You can specify the commands in a 'post-staging' or 'pre-running' hooks section. For example, the &lt;a href="https://github.com/ActiveState/af-sample-wordpress"&gt;Wordpress demo&lt;/a&gt; suggests creating a &lt;em&gt;salt.php&lt;/em&gt; file before pushing. I've wrapped those commands in a &lt;em&gt;salt.sh&lt;/em&gt; bash script (see above) and run it as a post-staging hook instead.&lt;/p&gt;

&lt;p&gt;You can set environment variables in an 'env' section. For example, if you want to set up New Relic monitoring for a Django app, file you can set the environment variables in &lt;em&gt;stackato.yml&lt;/em&gt; instead of creating a separate &lt;em&gt;newrelic.ini&lt;/em&gt;file:&lt;/p&gt;

&lt;pre&gt;
env:
  DJANGO_SETTINGS_MODULE: settings
  NEW_RELIC_LICENSE_KEY: gg070c96385e870xxthisisnotarealkey5a12xx
  NEW_RELIC_APP_NAME: DJANGO GTD
  NEW_RELIC_LOG: stderr&lt;/pre&gt;

&lt;p&gt;You can even specify a different web server process to run your application, as in this example from the &lt;a href="https://github.com/ActiveState/stackato-samples/tree/master/perl/starman"&gt;Starman demo&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;
processes:
  web: starman --listen $VCAP_APP_HOST:$VCAP_APP_PORT --workers 2 app.psgi&lt;/pre&gt;



&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/using-yaml-drive-app-deployment" dc:identifier="http://www.activestate.com/blog/2011/11/using-yaml-drive-app-deployment" dc:title="Using YAML to Drive App Deployment" trackback:ping="http://www.activestate.com/trackback/3242" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3242&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/NvmZt2PNqLk" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/using-yaml-drive-app-deployment#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-foundry">cloud foundry</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/deployment">deployment</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/push">push</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ruby">ruby</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmc">vmc</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/yaml">yaml</category>
 <pubDate>Thu, 01 Dec 2011 00:42:33 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3242 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/using-yaml-drive-app-deployment</feedburner:origLink></item>
  <item>
    <title>Packaging Perl for Windows with PDK - Patriot NG</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/8tK4yu0UNeQ/packaging-perl-windows-pdk-patriot-ng</link>
    <description>&lt;img title="PDK and Patriot NG" alt="Patriot NG - Perl Dev Kit"
 style="width: auto"
 src="/sites/default/files/blog_import_images/patriot-ng.png"
 class="as_feature_img as_left"/&gt;

&lt;p&gt;We love fan mail, especially when it's on Twitter where everyone can see it. &lt;a href="http://twitter.com/#!/yjesus" target="_blank"&gt;Yago Jesus&lt;/a&gt;, a PDK and Komodo user, let us know how much he enjoyed using our software, and pointed out some software he's created for intrusion detection on Windows.&lt;/p&gt;

&lt;p&gt;Since we haven't made much noise lately about the &lt;a href="/perl-dev-kit"&gt;Perl Dev Kit&lt;/a&gt; and all its handy tools, let's have a look at &lt;a href="http://www.security-projects.com/?Patriot_NG" target="_blank"&gt;Patriot NG&lt;/a&gt; and how PerlApp can be used to deploy seriously useful Windows software.&lt;/p&gt;

&lt;p&gt;But first, some back-story.&lt;/p&gt;

&lt;h2&gt;Perl on Windows&lt;/h2&gt;

&lt;p&gt;ActiveState was founded on the premise that dynamic languages like Perl are useful tools no matter what platform you're running on. Porting Perl to Windows was one of our first steps towards delivering "Programming for the People", and indeed &lt;a href="http://www.activestate.com/activeperl"&gt;ActivePerl&lt;/a&gt; has introduced Perl to millions of Windows users over the years. These users can take advantage of the wealth of freely available modules from CPAN and build their own applications.&lt;/p&gt;

&lt;p&gt;However, when it comes time to deliver these applications to end users, they will need an interpreter installed on their system to run your code. It's a lot to ask of someone to install ActivePerl when they only want to run your 20 line script, and won't be doing any programming themselves. This is less of a problem on Linux and UNIX-based systems because Perl is often installed by default, but on Windows it's an annoying extra step.&lt;/p&gt;

&lt;p&gt;The PDK deployment tools solve this problem by packaging Perl programs as stand-alone executables, Windows services, ActiveX components or .NET assemblies. Jago used the PDK to package a real-time system monitoring utility built in Perl.&lt;/p&gt;

&lt;h2&gt;Patriot NG&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.security-projects.com/?Patriot_NG" target="_blank"&gt;Patriot NG&lt;/a&gt; is an intrusion detection system for Windows which monitors registry key changes, new service installation, file changes and a number of other system events.&lt;/p&gt;

&lt;p&gt;I asked Yago a few questions about his software:&lt;/p&gt;


&lt;style type="text/css"&gt;
dl.q_and_a dt {
    margin: 10px 0 10px 0;
    font-style: italic;
}
dl.q_and_a dd {
    margin-left: 10px;
}
&lt;/style&gt;
&lt;dl class="q_and_a"&gt;
  &lt;dt&gt;Why did you chose Perl for this application?&lt;/dt&gt;
  &lt;dd&gt;Well, probably many people think that Perl is a language for parsing files or web-CGIs only, but Perl is a great language for writing Windows applications because it has many Windows-specific libraries for Windows internals. I recommend looking at the Win32-* modules in CPAN. Pretty impressive.&lt;/dd&gt;
  
  &lt;dt&gt;Which CPAN modules were most useful to you?&lt;/dt&gt;
  &lt;dd&gt;&lt;p&gt;I'm using a lot of the Win32 modules, for example:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Win32/"&gt;Win32&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Win32-TieRegistry/"&gt;Win32::TieRegistry&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Win32-TaskScheduler/"&gt;Win32::TaskScheduler&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://mirror.its.dal.ca/cpan/authors/id/J/JH/JHELBERG/"&gt;Win32::Lanman&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Win32-API-Prototype/"&gt;Win32::API::Prototype&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Win32-IPConfig/"&gt;Win32::IPConfig&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://search.cpan.org/dist/Net-PcapUtils/"&gt;Net::PcapUtils&lt;/a&gt; (to read and parse network packets) and&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://prima.eu.org"&gt;Prima&lt;/a&gt; for the graphic toolkit, because it has a very very good IDE that allows you to do interfaces in a few minutes.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;/dd&gt;
  
  &lt;dt&gt;Which of the PDK tools did you use to package Patriot NG?&lt;/dt&gt;
  &lt;dd&gt;I'm using &lt;a href="http://docs.activestate.com/pdk/9.1/PerlApp_overview.html"&gt;PerlApp&lt;/a&gt; and &lt;a href="http://docs.activestate.com/pdk/9.1/PerlTray_overview.html"&gt;PerlTray&lt;/a&gt;.&lt;/dd&gt;
  
  &lt;dt&gt;I noticed the software installs a few different executables. How do they work
together?&lt;/dt&gt;
  &lt;dd&gt;&lt;p&gt;The architecture is simple. A main .exe called 'patriot.exe' runs in the tray. It starts and stops, updates NIDS rules and launches the configurator. Also there are three programs, one for general activities, one for network and another for file monitoring. Moreover, there are two graphic programs, one for configurate settings and other for draw and process alerts.&lt;/p&gt;

  &lt;p&gt;I have come to Windows from Unix, so I made Patriot modular, the Unix way.&lt;/p&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2&gt;Try it out&lt;/h2&gt;

&lt;p&gt;The Perl Dev Kit has a 21 day trial license, so you can try out these deployment tools on your own code, or with the some of the sample Perl programs. If you find it useful, now is an excellent time to buy. Our Thanksgiving Weekend Sale is running through Nov. 28. You can save $50 on single licenses (or $250 off 5-packs) of &lt;a href="https://store.activestate.com/perl-dev-kit"&gt;Perl Dev Kit&lt;/a&gt;, &lt;a href="https://store.activestate.com/tcl-dev-kit"&gt;Tcl Dev Kit&lt;/a&gt;, or &lt;a href="https://store.activestate.com/komodo-ide"&gt;Komodo IDE&lt;/a&gt;.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/packaging-perl-windows-pdk-patriot-ng" dc:identifier="http://www.activestate.com/blog/2011/11/packaging-perl-windows-pdk-patriot-ng" dc:title="Packaging Perl for Windows with PDK - Patriot NG" trackback:ping="http://www.activestate.com/trackback/3236" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3236&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/8tK4yu0UNeQ" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/packaging-perl-windows-pdk-patriot-ng#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/pdk">pdk</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/perl">perl</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/perl">perl</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/perlsvc">perlsvc</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/security">security</category>
 <pubDate>Thu, 24 Nov 2011 22:10:46 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3236 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/packaging-perl-windows-pdk-patriot-ng</feedburner:origLink></item>
  <item>
    <title>Thanksgiving Weekend Sale! Save $50 or More on Komodo IDE, Perl and Tcl Dev Tools</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/5UMBYIRIYWE/dev-tools-ide-sale-thanksgiving-2011</link>
    <description>&lt;p&gt;&lt;a href="https://store.activestate.com/"&gt;&lt;img alt="Dev Tools Sale - Komodo IDE, PDK, TDK, Pro Studio" src="/sites/default/files/blog_import_images/sale.jpg" style="width: 118px; height: 206px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Like most people, we here at ActiveState like to loosen our belts around the holidays. This year, with our Sales Director away, we&amp;#39;ve decided to let loose with a good old-fashioned Thanksgiving / Black Friday / Cyber Whatever dev tools sale!&lt;/p&gt;
&lt;p&gt;From Thursday through Monday (Nov. 24 - 28):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;font color="red"&gt;$50 off&lt;/font&gt; &lt;a href="https://store.activestate.com/komodo-ide" target="_blank"&gt;Komodo IDE&lt;/a&gt;&lt;/strong&gt;:&lt;br /&gt;5-packs $&lt;strike&gt;$1615&lt;/strike&gt;&lt;font color="red"&gt; $1365 &lt;/font&gt;/ single license from &lt;strike&gt;$295&lt;/strike&gt; &lt;font color="red"&gt;$245&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;font color="red"&gt;$50 off &lt;/font&gt;&lt;a href="https://store.activestate.com/perl-dev-kit" target="_blank"&gt;Perl Dev Kit&lt;/a&gt; &lt;/strong&gt;(PDK) and &lt;a href="https://store.activestate.com/tcl-dev-kit" target="_blank"&gt;&lt;strong&gt;Tcl Dev Kit&lt;/strong&gt;&lt;/a&gt; (TDK):&lt;br /&gt;5-packs &lt;strike&gt;$1615&lt;/strike&gt; &lt;font color="red"&gt;$1365&lt;/font&gt; / single license from &lt;strike&gt;$295&lt;/strike&gt; &lt;font color="red"&gt;$245&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;font color="red"&gt;$100 off &lt;/font&gt;&lt;a href="https://store.activestate.com/activeperl-pro-studio" target="_blank"&gt;ActivePerl Pro Studio&lt;/a&gt;&lt;/strong&gt; and &lt;a href="https://store.activestate.com/activetcl-pro-studio" target="_blank"&gt;&lt;strong&gt;ActiveTcl Pro Studio&lt;/strong&gt;&lt;/a&gt;:&lt;br /&gt;5-packs &lt;strike&gt;$2390&lt;/strike&gt; &lt;font color="red"&gt;$1890&lt;/font&gt; / single license &lt;strike&gt;$595&lt;/strike&gt; &lt;font color="red"&gt;$495&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus, if you buy Komodo IDE with Upgrades and Support, you&amp;#39;ll get access to our support team &lt;em&gt;and&lt;/em&gt;&amp;nbsp; &lt;strong&gt;Komodo IDE 7&lt;/strong&gt; on release.&lt;/p&gt;
&lt;p&gt;So, have a productive long weekend or gear up for the week ahead with the professional IDE for Python, Perl, PHP, Ruby, Tcl, Java and more, and the essential toolkits for Perl and Tcl.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://store.activestate.com/" target="_blank"&gt;Visit our store and save.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Happy long weekend!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/dev-tools-ide-sale-thanksgiving-2011" dc:identifier="http://www.activestate.com/blog/2011/11/dev-tools-ide-sale-thanksgiving-2011" dc:title="Thanksgiving Weekend Sale! Save $50 or More on Komodo IDE, Perl and Tcl Dev Tools" trackback:ping="http://www.activestate.com/trackback/3235" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3235&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/5UMBYIRIYWE" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/dev-tools-ide-sale-thanksgiving-2011#comments</comments>
 <category domain="http://www.activestate.com/blog/category/blog-categories/dynamic-languages">dynamic languages</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/komodo">komodo</category>
 <category domain="http://www.activestate.com/taxonomy/term/120">komodo ide</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/perl-0">perl</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/perl-dev-kit">perl dev kit</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/pro-studio">pro studio</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/promotions">promotions</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/tcl">tcl</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/tcl-dev-kit">tcl dev kit</category>
 <pubDate>Tue, 22 Nov 2011 18:03:46 +0000</pubDate>
 <dc:creator>mikek</dc:creator>
 <guid isPermaLink="false">3235 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/dev-tools-ide-sale-thanksgiving-2011</feedburner:origLink></item>
  <item>
    <title>Little Clouds for Free: ActiveState commits to a free Stackato Micro Cloud</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/-rob5j76nRA/little-clouds-free-activestate-commits-free-stackato-micro-cloud</link>
    <description>&lt;img title="Stackato Micro Cloud" alt="Stackato Micro Cloud"
 style="width: 150px"
 src="/sites/default/files/blog_import_images/micro-cloud-globe.png"
 class="as_feature_img as_left" alt="Stackato Micro Cloud Free for Developers"/&gt;

&lt;p&gt;ActiveState is proud to announce that &lt;a href="/cloud"&gt;Stackato&lt;/a&gt; will continue to be free of charge for you to use as a single node. Stackato will ship with a "micro cloud" license option. This means that you can always have your very own private Platform-as-a-Service (PaaS) for free.&lt;/p&gt;

&lt;p&gt;During the beta period for Stackato, we were asked to clarify the usage policy for micro cloud usage when Stackato has its general availability (GA) release. We want to assure the developer community that Stackato will remain free for use as a single node for non-commercial or internal commercial use.&lt;/p&gt;

&lt;p&gt;At ActiveState, our products all leverage community-driven open source projects, and Stackato is yet another example of our commitment to support the community. Stackato is ActiveState's commercial distribution of the open source &lt;a href="http://cloudfoundry.org/"&gt;Cloud Foundry&lt;/a&gt; PaaS project. We've extended it with additional languages, services and features, and hardened it for enterprise use with enhanced security.&lt;/p&gt;

&lt;p&gt;We want to ensure that developers have the freedom to continue to develop, test and deploy using Stackato. You can expect a license similar to the Community Edition licenses for ActivePerl, ActivePython, and ActiveTcl for Stackato Micro Cloud.&lt;/p&gt;

&lt;p&gt;Our Stackato VM download boots as a running Stackato server instance. It is able to function as a stand-alone server with all of the necessary components (router, cloud controller, DEA, etc.) for staging and running applications. This single Stackato server instance is considered a "single node" of Stackato and is commonly referred to as a "micro cloud".&lt;/p&gt;

&lt;p&gt;After GA, the Stackato micro cloud will continue to be available to download, install and use for free for your personal projects and internal deployments.&lt;/p&gt;

&lt;p&gt;Technical support will not be included with the Stackato micro cloud license, however developers can still participate in our community forums and access all documentation. If you require guaranteed production-level support, plan to deploy Stackato in a multi-node deployment, or wish to deploy Stackato for external commercial purposes, we will be offering different licensing and support packages with the GA release.&lt;/p&gt;

&lt;p&gt;As part of our commitment to the developer community, we will continue to develop a hypervisor- and IaaS-agnostic PaaS platform, helping remove vendor lock-in and enabling true portability of your applications across the cloud.&lt;/p&gt;

&lt;p&gt;For more information please &lt;a href="/company/contact-us"&gt;contact us&lt;/a&gt; directly or &lt;a href="/cloud"&gt;get started with the Stackato micro cloud&lt;/a&gt; today!&lt;/p&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/little-clouds-free-activestate-commits-free-stackato-micro-cloud" dc:identifier="http://www.activestate.com/blog/2011/11/little-clouds-free-activestate-commits-free-stackato-micro-cloud" dc:title="Little Clouds for Free: ActiveState commits to a free Stackato Micro Cloud" trackback:ping="http://www.activestate.com/trackback/3233" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3233&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/-rob5j76nRA" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/little-clouds-free-activestate-commits-free-stackato-micro-cloud#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/free">free</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/micro-cloud-0">micro cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vm">vm</category>
 <pubDate>Tue, 22 Nov 2011 14:52:20 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3233 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/little-clouds-free-activestate-commits-free-stackato-micro-cloud</feedburner:origLink></item>
  <item>
    <title>Connecting to Database Services in Stackato</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/xoBmIxiL9IM/connecting-database-services-stackato</link>
    <description>&lt;p&gt;I was going to write a fairly straightforward post about Stackato's 'dbshell' command, demonstrating how you can use it to access the databases provisioned by &lt;a href="/cloud"&gt;Stackato&lt;/a&gt;. However, a few days ago Cloud Foundry &lt;a href="http://blog.cloudfoundry.com/post/12928974099/now-you-can-tunnel-into-any-cloud-foundry-data-service"&gt;blogged about Caldecott&lt;/a&gt;, demonstrating how to connect to database services on cloudfoundry.com, so the scope of this article has changed a bit.&lt;/p&gt;

&lt;p&gt;We were eagerly awaiting news on Caldecott and were watching the Cloud Foundry &lt;a href="https://github.com/cloudfoundry/vcap"&gt;vcap repo&lt;/a&gt; like hawks to see when it would land in the open source project. It turns out we were looking in the wrong place. All the magic is in the client, and I'm happy to report that Stackato is compatible with this new access method without requiring any server-side changes.&lt;/p&gt;

&lt;h2&gt;Stackato's 'dbshell'&lt;/h2&gt;

&lt;p&gt;Before I get into this new way of doing things, let's look at Stackato's 'dbshell' command.&lt;/p&gt;

&lt;p&gt;To connect to one of your database services running on Stackato, you simply run 'stackato dbshell [appname]'. It opens a database port on the micro cloud or database service VM and returns either the connection credentials or automatically launches a local database client to connect with those credentials.&lt;/p&gt;

&lt;p&gt;For example, I have a MySQL database connected to Spring application on my local micro cloud. To get the credentials:&lt;/p&gt;

&lt;pre&gt;
$ stackato dbshell --json ttspring
{
    "args"  : ["-h","172.16.34.155","--port","3306","-pps7wxzfr8aSPc","-u","uJIBwrW0E8jbi","d8f4cd7772c8e4x90af7bc216310a253d"],
    "env"   : {},
    "shell" : "mysql"
}
&lt;/pre&gt;

&lt;p&gt;This returns a JSON object with everything I need to connect using an external MySQL client, like the DB Explorer in Komodo IDE.&lt;/p&gt;
&lt;a rel="shadowbox[Screenshots]"
   href="/sites/default/files/blog_import_images/komodo-stackato-db.png"&gt;
     &lt;img title="Accessing a Stackato DB in Komodo 7" alt="Accessing a Stackato DB in Komodo 7"
	    style="width: 200px"
	    src="/sites/default/files/blog_import_images/komodo-stackato-db.png"
	    class="as_feature_img as_left" /&gt;
&lt;/a&gt;

&lt;p&gt;In fact, this is what Komodo 7 (Beta) does behind the scenes to automatically configure the database connection with "View Database in DB Explorer" in the Stackato interface:&lt;/p&gt;


&lt;p&gt;If you want to connect directly with a command-line database client, you can do that too:&lt;/p&gt;

&lt;pre&gt;
$ stackato dbshell ttspring
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 644
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql&amp;gt; show tables;
+---------------------------------------------+
| Tables_in_d8f4cd7772c8e4b90af7bc216310a253d |
+---------------------------------------------+
| current_states                              |
+---------------------------------------------+
1 row in set (0.00 sec)

mysql&amp;gt;&lt;/pre&gt;

&lt;p&gt;This is great if you're working with the micro cloud, or if you are connected to a Stackato cluster where the database service VM allows external database connections. But if you are trying to connect to an installation which is more locked down, which doesn't allow you to route directly to the data service VM(s), you can't connect.&lt;/p&gt;

&lt;p&gt;The Cloud Foundry team has covered this scenario in their implementation by using TCP over HTTP tunneling, so let's take a look at how they've done that.&lt;/p&gt;

&lt;h2&gt;Caldecott: VMC's tunnel&lt;/h2&gt;

&lt;p&gt;Instead of making changes in the VCAP codebase (the server-side parts of the system), Cloud Foundry has bundled a small Ruby Sinatra appplication in the vmc client which is automatically pushed to the targeted system when you run 'vmc tunnel'. The app, in conjunction with the client, creates a tunnel from the data service to the local machine using the &lt;a href="http://rubydoc.info/gems/caldecott/0.0.3/frames"&gt;Caldecott&lt;/a&gt; gem. You can see this app by running 'vmc apps' once the tunnel has been created, and you can even check out the code with 'vmc files' if you want to see how it works.&lt;/p&gt;

&lt;p&gt;The good news for Stackato users is that this works just as well on a Stackato PaaS as it does on cloudfoundry.com, you just have to use the vmc client (vmc 0.3.14.beta.4) instead of the stackato client to take advantage of it.&lt;/p&gt;

&lt;h2&gt;Next steps for Stackato&lt;/h2&gt;

&lt;p&gt;Obviously, we don't expect Stackato users to keep switching back and forth between 'vmc' and 'stackato' to get their work done. Since we are maintaining API compatibility with Cloud Foundry, we'll be adding an equivalent 'stackato tunnel' command to emulate 'vmc tunnel'. We might implement it slightly differently (perhaps a lightweight Node.js application instead of Sinatra, perhaps offering HTTPS rather than just HTTP), but the goal is to ensure maximum portability and compatibility between Stackato or Cloud Foundry.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/connecting-database-services-stackato" dc:identifier="http://www.activestate.com/blog/2011/11/connecting-database-services-stackato" dc:title="Connecting to Database Services in Stackato" trackback:ping="http://www.activestate.com/trackback/3232" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3232&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/xoBmIxiL9IM" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/connecting-database-services-stackato#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/caldecott">caldecott</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/database">database</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/dbshell">dbshell</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/mysql">mysql</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/postgresql">postgresql</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmc">vmc</category>
 <pubDate>Mon, 21 Nov 2011 19:34:59 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3232 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/connecting-database-services-stackato</feedburner:origLink></item>
  <item>
    <title>Security in the cloud with Stackato and LXC</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/QBdhMxwP4Bs/security-cloud-stackato-and-lxc</link>
    <description>&lt;img title="Stackato and LXC" alt="Stackato and LXC"
 style="width: auto"
 src="/sites/default/files/blog_import_images/linux-containers-sm.png"
 class="as_feature_img as_left" /&gt;

&lt;p&gt;&lt;a href="http://activestate.com/cloud"&gt;Stackato&lt;/a&gt;, our private PaaS platform, makes heavy use of &lt;a href="http://lxc.sourceforge.net/"&gt;LXC&lt;/a&gt; (Linux Containers) to provide a secure, isolated environment for your apps in the cloud. In the age where data security is vital and business-damaging hacks are commonplace, it's becoming increasingly more important to properly secure web applications from malicious attacks.&lt;/p&gt;

&lt;p&gt;Each of your apps running with Stackato gets its own partitioned space on your server. What does this mean? From the perspective of your web app, all that is visible of the server is your app's files and processes, and nothing else. The apps can't access other apps running on the same server; can't tamper with your server's configuration; can't mess with hardware, install rogue software, stop other processes, or hack your mail server to send spam to your colleagues (or worse, users!). You get the picture. Stackato ensures that each app has access to everything it needs to operate, and nothing else. Naturally, this means that if someone does manage to hack your app, they won't get far.&lt;/p&gt;

&lt;p&gt;At the same time, the LXC infrastructure ensures that all of your apps get a fair share of CPU, and that no one app can grab the entire processor for itself. Also, to prevent an app from going rogue and taking up all of your server's RAM, the Stackato client allows you to set a RAM allocation per-app, ensuring that your server (and your other apps) stay running even if one app is misconfigured. Stackato uses LXC to ensure that no app will go over the RAM limit you set.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(If you're interested in the low-level details of how LXC allows you to keep tight control over your apps, I recommend our &lt;a href="http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc"&gt;article exploring the technical side of setting up LXC&lt;/a&gt;, specifically the "Setting resource limits" section.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Deploy your apps with &lt;a href="http://activestate.com/cloud"&gt;Stackato&lt;/a&gt; and rest easy knowing that your servers and apps are protected from both malicious activity as well as accidental resource-hogging bugs that would otherwise cripple your servers and potentially cause costly downtime and user frustration.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/security-cloud-stackato-and-lxc" dc:identifier="http://www.activestate.com/blog/2011/11/security-cloud-stackato-and-lxc" dc:title="Security in the cloud with Stackato and LXC" trackback:ping="http://www.activestate.com/trackback/3231" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3231&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/QBdhMxwP4Bs" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/security-cloud-stackato-and-lxc#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/lxc">lxc</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/security">security</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 17 Nov 2011 19:48:47 +0000</pubDate>
 <dc:creator>daniilk</dc:creator>
 <guid isPermaLink="false">3231 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/security-cloud-stackato-and-lxc</feedburner:origLink></item>
  <item>
    <title>CloudCamp Vancouver Round-up!</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/MZV-iHVPcqk/cloudcamp-vancouver-round</link>
    <description>&lt;img alt="CloudCamp Vancouver" class="as_feature_img as_left" src="/sites/default/files/blog_import_images/cloudcamp.png" style="width: auto" title="CloudCamp Vancouver"&gt;

&lt;p&gt;I was very honored to be invited to present a lighting talk at this week's &lt;a href="http://cloudcamp.org/vancouver"&gt;CloudCamp Vancouver&lt;/a&gt;.  CloudCamp's unconference phenomena landed in Vancouver this week at the Vancouver Convention Centre as part of the &lt;a href="http://www.microsoft.com/canada/techdays/2011/"&gt;Microsoft's Tech Days Roadshow&lt;/a&gt; who sponsored the room and the coffee.&lt;/p&gt;


&lt;p style="clear:both"&gt;Attendees came in all shapes and sizes, from large telcos (&lt;a href="http://www.telus.com"&gt;Telus&lt;/a&gt;) to mobile web app developers (&lt;a href="http://dynamic-leap.com/"&gt;Dynamic Leap&lt;/a&gt;) and a number of Government agencies including &lt;a href="http://www.district.sechelt.bc.ca"&gt;my hometown's District of Sechelt's IT manager&lt;/a&gt; !&lt;/p&gt;

&lt;p&gt;Patrick Pushor of &lt;a href="http://www.cloudchronicle.com/" target="_blank"&gt;Cloud Chronicle&lt;/a&gt; and Jenny Yang of &lt;a href="http://www.metaforsoftware.com/" target="_blank"&gt;Metafor Software&lt;/a&gt; hosted the event and tutored us local cloud affectionados in the ways of unconferences and unpanels. If you haven't been to a Cloud Camp before it can sound a bit unstructured at first,  no pre-planned tracks or sessions, just a few preliminary introductory words from the organizers, followed by 4-5  lighting talks (5 minutes long) on a range of topics meant to spur discussion and set the stage for for open discussions that follow setting the agenda as you go.&lt;/p&gt;

&lt;p&gt; I was corralled into reprising my recent Cloud Expo 45 minute presentation on &lt;a href="https://www1.gotomeeting.com/register/450696544"&gt;US Patriot Act &amp;amp; it's Implications for Cloud Computing&lt;/a&gt; as a 5 minute lighting talk - which made for some speedy slide transistions (I'm giving a &lt;a href="https://www1.gotomeeting.com/register/450696544"&gt;webinar on the topic on 12/01/11&lt;/a&gt; in which I will go into more detail and promise to talk slower).&lt;/p&gt;

&lt;p&gt;The other lighting talks ranged from an overview of the Microsoft Azure Cloud by Jamie Wakeam, Microsoft Canada,  Lynn Sutherland on &lt;a href="http://www.canarie.ca/"&gt;Canarie&lt;/a&gt; a very Canadian cloud network, an intriguing Cloud-based de-Centralized Storage by Margaret Dawson of &lt;a href="http://www.symform.com/"&gt;Symform&lt;/a&gt; and a thoughtful presentation by &lt;a href="http://amorphousprojects.com/blog/"&gt;Simon Le Pine&lt;/a&gt; on taking a more holistic, all-encompassing approach to risk management in the cloud.&lt;/p&gt;

&lt;p&gt;It was a very good turnout for a Monday night, and the break out discussions left me wanting more time, and looking forward to the next CloudCamp Vancouver event!&lt;/p&gt;

&lt;p&gt;For more information: &lt;a href="http://cloudcamp.org/vancouver"&gt;http://cloudcamp.org/vancouver&lt;/a&gt;&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/cloudcamp-vancouver-round" dc:identifier="http://www.activestate.com/blog/2011/11/cloudcamp-vancouver-round" dc:title="CloudCamp Vancouver Round-up!" trackback:ping="http://www.activestate.com/trackback/3229" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3229&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/MZV-iHVPcqk" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/cloudcamp-vancouver-round#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloudcamp">cloudcamp</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/events">events</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/events">events</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/unconference">unconference</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vancouver">vancouver</category>
 <pubDate>Wed, 16 Nov 2011 23:27:31 +0000</pubDate>
 <dc:creator>dianem</dc:creator>
 <guid isPermaLink="false">3229 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/cloudcamp-vancouver-round</feedburner:origLink></item>
  <item>
    <title>Setting Up the New Relic Python Agent on Stackato</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/X8xQ9hKkIAM/setting-new-relic-python-agent-stackato</link>
    <description>&lt;h2&gt;Guest post: &lt;a href="http://blog.dscpl.com.au/"&gt;Graham Dumpleton&lt;/a&gt;, author of &lt;a href="http://code.google.com/p/modwsgi/"&gt;mod_wsgi for Apache&lt;/a&gt; and software developer at &lt;a href="http://newrelic.com/"&gt;New Relic&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;With the recent official release of the Python agent for New Relic (our
application monitoring partner) we're featuring this guest post by Graham Dumpleton. I had the pleasure of working with Graham as we tested the Python agent and the New Relic service with Stackato in recent weeks. --TT&lt;/em&gt;&lt;/p&gt;

&lt;img title="Graham Dumpleton, New Relic" alt="Graham Dumpleton, New Relic"
 style="width: auto"
 src="/sites/default/files/blog_import_images/graham_dumpleton.png"
 class="as_feature_img as_left" /&gt;

&lt;p&gt;Back in January, I could see that it was going to be an important year for Python web hosting. A number of new Python web hosting services had sprung up promising an easier way of pushing up Python web applications for hosting.&lt;/p&gt;

&lt;p&gt;At &lt;a href="http://us.pycon.org/2011/home/"&gt;PyCon US&lt;/a&gt; in March I got wind that ActiveState was looking into this area as well. Based on what I was hearing it was clear that they were approaching it in a different way, but I had no real idea what they were up to. I had thought they might just be another option amongst the public PaaS offerings. When they ﬁnally revealed &lt;a href="http://www.activestate.com/cloud"&gt;Stackato&lt;/a&gt; it was actually a pleasant surprise and not what I had been expecting.&lt;/p&gt;

&lt;p&gt;As I looked more closely at Stackato and actually worked out how it differed, the solution grew on me very quickly.&lt;/p&gt;

&lt;p&gt;The primary reason Stackato was appealing was that when it comes to web application deployment I like to feel that I am in control of the environment. I am also very wary of shared hosting environments, my work on Apache and mod_wsgi making me appreciate the security issues with that style of hosting.&lt;/p&gt;

&lt;p&gt;At the same time I can be quite lazy and don't like doing all the hard work of building a complete system from scratch each time one is required. The idea of a prepackaged private PaaS environment where I could decide where it got deployed was thus very enticing. Especially since I could also deploy it to my local system as well, allowing me to deploy during development to the same environment using the same mechanisms as I would when moving to a production setting.&lt;/p&gt;

&lt;p&gt;The concept of a private PaaS also held interest due to my residing in Australia. The problem is that the legal and regulatory regime in Australia is such that if you were doing web application development for government organizations, you would in many cases be prohibited from deploying a web site you had developed for them outside of Australia. This would immediately rule out using any of the main Python web hosting services available as they are located overseas.&lt;/p&gt;

&lt;p&gt;Even large private corporations here in Australia can be hesitant about overseas hosting, sometimes for legal and regulatory reasons, but also simply because of the preference for hosting the web site locally, be that internally to the organization or with a local web hosting service. Australia doesn't exactly have the best pipes out to the rest of the Internet and as a result you don't want to be running a high trafﬁc site on the other side of the world for a local market.&lt;/p&gt;

&lt;p&gt;As far as ease of deployment, local Python web hosting services still have some way to go though. There are however local companies which offer to host any virtual machine image you want as long as you supply it. Stackato therefore provided the best of both worlds. An easy way of deploying your web applications and an ability to deploy it where you wanted. So Stackato had certainly got my interest personally. I have as a result obviously been keen to try out the &lt;a href="http://newrelic.com/docs/python/new-relic-for-python"&gt;New Relic Python agent&lt;/a&gt; with Stackato and ensure that it works as seamlessly as possible. The remainder of this post describes doing just that, providing a mini tutorial on how to get started with the New Relic Python agent on Stackato.&lt;/p&gt;

&lt;h2&gt;Step 1: Getting your application working.&lt;/h2&gt;

&lt;p&gt;The ﬁrst step is to get your Python WSGI application working on Stackato. ActiveState provides &lt;a href="http://docs.stackato.com/newrelic.html#new-relic-for-python"&gt;documentation&lt;/a&gt; and a set of &lt;a href="https://github.com/ActiveState/stackato-samples"&gt;samples on github&lt;/a&gt; to get you going.&lt;/p&gt;

&lt;p&gt;The steps outlined here assume that you are relying on the default WSGI hosting mechanism provided by Stackato. This is using &lt;a href="http://projects.unbit.it/uwsgi/"&gt;uWSGI&lt;/a&gt; as the WSGI hosting container. Further, the speciﬁc examples provided here are based on using the &lt;a href="https://github.com/ActiveState/stackato-samples/tree/master/python/django-gtd"&gt;'django-gtd' sample&lt;/a&gt; application provided by ActiveState on github. Where 'gtd' is used as the application name argument to the 'stackato' command, replace this with the name of your application.&lt;/p&gt;

&lt;h2&gt;Step 2: Installing the New Relic Python agent package.&lt;/h2&gt;

&lt;p&gt;To install the Python package for the New Relic agent you should add into the 'requirements.txt' ﬁle in the local project directory:&lt;/p&gt;

&lt;pre&gt;
newrelic&lt;/pre&gt;
  
&lt;p&gt;Push up this change by running:&lt;/p&gt;

&lt;pre&gt;
stackato update -n&lt;/pre&gt;
  
&lt;p&gt;This will cause the 'newrelic' package to be installed into the Python virtual environment on your Stackato instance.&lt;/p&gt;


&lt;blockquote&gt;
 &lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; An alternative way to configure the New Relic Python agent using environment variables in the 'stackato.yml' file is outlined in the &lt;a href="http://docs.stackato.com/newrelic.html#new-relic-for-python"&gt;Stackato documentation&lt;/a&gt;. The procedure below shows off Stackato's 'run' command, which can be useful in some scenarios. There are no Python or New Relic dependencies on the local system - all the config generation is done on the server. --TT&lt;/em&gt; 
&lt;/blockquote&gt;


&lt;h2&gt;Step 3: Generating the Python agent conﬁguration ﬁle.&lt;/h2&gt;

&lt;p&gt;Now generate the Python agent conﬁguration ﬁle. We will initially do this on the target Stackato instance rather than into the local project directory by running the command:&lt;/p&gt;

&lt;pre&gt;
stackato run gtd newrelic-admin generate-config KEY newrelic.ini&lt;/pre&gt;
  
&lt;p&gt;Replace 'KEY' with the license key for your New Relic account. You can obtain the license key from the 'Support' page when logged into your New Relic account. The license key should be a 40 character alpha numeric string.&lt;/p&gt;

&lt;p&gt;The 'newrelic-admin' command is a script which was installed along with the Python agent into the 'bin' directory of the Python virtual environment on your Stackato instance. When the command is run with the 'generate-conﬁg' option it will create the ﬁle 'newrelic.ini' in the 'app' project directory on the Stackato instance.&lt;/p&gt;

&lt;h2&gt;Step 4: Validate the agent conﬁguration and test the Python agent.&lt;/h2&gt;

&lt;p&gt;To test that the license key is correct and that an application running on your Stackato instance is able to contact the New Relic servers, run the command:&lt;/p&gt;

&lt;pre&gt;
stackato run gtd newrelic-admin validate-config newrelic.ini newrelic.log&lt;/pre&gt;
  
&lt;p&gt;The 'validate-conﬁg' option to 'newrelic-admin' will read the agent conﬁguration ﬁle saved above as 'newrelic.ini' to obtain the license key and other settings. It will then attempt to contact the New Relic servers and will report some test metric data. If this succeeds, after a few minutes you should ﬁnd that the application 'Python Agent Test' now appears in the application list in your New Relic account. This should show the test web transaction.&lt;/p&gt;

&lt;p&gt;If no data gets through for the agent test, retrieve the 'newrelic.log' ﬁle created by the test to look for errors using the command:&lt;/p&gt;

&lt;pre&gt;
stackato files gtd app/newrelic.log&lt;/pre&gt;

&lt;br/&gt;
&lt;h2&gt;Step 5: Retrieve the agent conﬁguration ﬁle and customize it.&lt;/h2&gt;

&lt;p&gt;The agent conﬁguration ﬁle was initially created on the Stackato instance. You now need to pull back that ﬁle so that you have a persistent copy in your local project directory which will be pushed up with each update. To pull back a copy of the 'newrelic.ini' ﬁle run:&lt;/p&gt;

&lt;pre&gt;
stackato files gtd app/newrelic.ini &gt; newrelic.ini&lt;/pre&gt;
   
&lt;p&gt;Now edit the local copy of the 'newrelic.ini' ﬁle.&lt;/p&gt;

&lt;p&gt;The ﬁrst change you need to make to the ﬁle is to uncomment and modify the value of the 'log_ﬁle' setting. You should set this to:&lt;/p&gt;

&lt;pre&gt;
log_file = stderr&lt;/pre&gt;
   
&lt;p&gt;By setting this to 'stderr', any logging output from the Python agent will be directed to standard error output for the web process and recorded in the web process log ﬁle. You can later retrieve the log ﬁle for the web process using the command:&lt;/p&gt;

&lt;pre&gt;
stackato logs gtd&lt;/pre&gt;
   
&lt;p&gt;While editing the agent conﬁguration ﬁle, you can also optionally change the 'app_name' setting to be an alternate name under which the Python agent should report data. By default this name is 'Python Application' and that will be the name used for the application in the New Relic UI.&lt;/p&gt;

&lt;h2&gt;Step 6: Specifying the location of the agent conﬁguration ﬁle.&lt;/h2&gt;

&lt;p&gt;When the agent test was run the name of the agent conﬁguration ﬁle was listed explicitly as a command line option. When your web process is run, we instead need to use an environment variable to tell it where it is located. To set additional environment variables for the web process, you need to add them to the 'env' section of your 'stackato.yml' ﬁle.&lt;/p&gt;

&lt;p&gt;The name of the environment variable to add is 'NEW_RELIC_CONFIG_FILE'.&lt;/p&gt;

&lt;pre&gt;
env:
  NEW_RELIC_CONFIG_FILE: newrelic.ini&lt;/pre&gt;

&lt;/br&gt;

&lt;h2&gt;Step 7: Running the web processes with the Python agent.&lt;/h2&gt;

&lt;p&gt;So long as you provide a 'wsgi.py' ﬁle containing a WSGI application entry point called 'application', the Stackato instance will automatically pick that up and use it. To perform the actual hosting of your WSGI application it will default to using uWSGI.&lt;/p&gt;

&lt;p&gt;To have the resulting web process use the Python agent you will need to add a new 'processes' section to your 'stackato.yml' ﬁle. This section should deﬁne the 'web' command, which is how your web process will be started.&lt;/p&gt;

&lt;p&gt;It is when the 'web' command is not provided that uWSGI will be automatically used. We want to override that command in order to wrap it, instead starting it up from the 'newrelic-admin' command with the 'run-program' option.&lt;/p&gt;

&lt;p&gt;In overriding the command we don't want to have to replicate the original command that Stackato used by default. So that we don't need to, Stackato keeps a copy of the original command in the 'PROCESSES_WEB' environment variable and we can use that. The overridden 'web' command should therefore read:&lt;/p&gt;

&lt;pre&gt;
processes:
  web: newrelic-admin run-program $PROCESSES_WEB&lt;/pre&gt;
      
&lt;p&gt;We are now ready to push all these changes up to the Stackato instance and try it out. To do that, again run:&lt;/p&gt;

&lt;pre&gt;
stackato update -n&lt;/pre&gt;
    
&lt;p&gt;Access your web application and click around in the application for a while. Like with the agent test, the resulting web transactions should start showing up in the New Relic UI after a few minutes. This time the data will show up under whatever application you speciﬁed in the 'app_name' setting in the agent conﬁguration ﬁle.&lt;/p&gt;

&lt;p&gt;If you don't see any data after ﬁve minutes, try clicking around in your application some more. The Python agent will only attempt to register with the New Relic servers on the ﬁrst request and depending on the network that may take a moment. It is only once it has been able to successfully register that it will start collecting data.&lt;/p&gt;

&lt;p&gt;If you still have issues, then check the web process log output for any errors indicating that there is a problem.&lt;/p&gt;

&lt;h2&gt;Getting more information.&lt;/h2&gt;

&lt;p&gt;For further information on the Python agent and how to set it up for different Python WSGI applications, see the &lt;a href="http://newrelic.com/docs/python/new-relic-for-python"&gt;New Relic documentation on the Python agent&lt;/a&gt; and speciﬁcally that for &lt;a href="http://newrelic.com/docs/python/python-agent-and-stackato"&gt;using the Python agent with Stackato&lt;/a&gt;.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/setting-new-relic-python-agent-stackato" dc:identifier="http://www.activestate.com/blog/2011/11/setting-new-relic-python-agent-stackato" dc:title="Setting Up the New Relic Python Agent on Stackato" trackback:ping="http://www.activestate.com/trackback/3224" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3224&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/X8xQ9hKkIAM" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/setting-new-relic-python-agent-stackato#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/django">django</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/monitoring">monitoring</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/new-relic">New Relic</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/python">python</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/python">python</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Tue, 15 Nov 2011 23:20:28 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3224 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/setting-new-relic-python-agent-stackato</feedburner:origLink></item>
  <item>
    <title>Cloud Expo Wrap-Up: Building Private Clouds, Private PaaS</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/rF2z0OGcUvU/cloud-expo-wrap-building-private-clouds-private-paas</link>
    <description>&lt;p&gt;Fresh back from &lt;a href="http://cloudcomputingexpo.com/" target="_blank"&gt;Cloud Expo West&lt;/a&gt;, it was a great event to further educate, evangelize, and promote private Platform-as-a-Service (PaaS) and &lt;a href="/cloud" target="_blank" title="private PaaS Stackato"&gt;Stackato&lt;/a&gt;. Being that Stackato (our private PaaS cloud platform) is new for us in 2011, it was the first Cloud Expo we've participated in. And participate we did! We were busy the entire week giving talks, sitting on panels, attending sessions, meeting with partners, and talking to lots of people at our booth. Phew!&lt;/p&gt;

&lt;p&gt;For the most part, exhibitors at the conference generally fell into two camps: those providing private cloud hosting services, and vendors providing various technologies to build, enable, or manage clouds. Attendees at the conference were keen to learn more about ways to build or use a private cloud to get all the benefits of "cloud" (public cloud), but internally and securely within their companies. Overall, private clouds was a big theme. So the "private PaaS" topic fit into this theme quite well as the layer on top of "private IaaS" that enables IT/Devs to deploy and manage their applications in a private cloud.&lt;/p&gt;

&lt;p&gt;If you missed the event, here are some pictorial highlights and links to webinars so you can hear the talks that you missed!&lt;/p&gt;


&lt;p style="clear:both"&gt;
&lt;a rel="shadowbox[Screenshots]" href="/sites/default/files/blog_import_images/dianem_uspatriotact.jpg"&gt;
  &lt;img alt="US Patriot Act case for private cloud - Diane Mueller" src="/sites/default/files/blog_import_images/dianem_uspatriotact.jpg" style="width: 180px" class="as_feature_img as_left" /&gt;
&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Here, Diane Mueller is giving a talk on the US Patriot Act (and other jurisdictional regulations) and its implications or drivers for going with an enterprise private cloud. She definitely had some great interactions and questions after this session! If you missed it, &lt;a href="/webinars" title="Enterprise private cloud webinar"&gt;register for the webinar she's giving on this exact same topic on Thurs. Dec. 1 &amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;


&lt;p style="clear:both"&gt;
&lt;a rel="shadowbox[Screenshots]" href="/sites/default/files/blog_import_images/paas_panel.jpg"&gt;
  &lt;img alt="PaaS panel at Cloud Expo: ActiveState (Stackato), Cloud Foundry, RedHat, and more"
  src="/sites/default/files/blog_import_images/paas_panel.jpg"
  style="width: 180px; float: right;"
  class="as_feature_img as_right" /&gt;
&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;On Wed. night, &lt;a href="http://www.thearmadagroup.com/" target="_blank"&gt;The Armada Group's&lt;/a&gt; Brad Vaughan hosted a panel on Platform-as-a-Service (PaaS) where Diane Mueller participated alongside James Watters from VMware/Cloud Foundry, Tobias Kunze from Red Hat, Will Shulman from Mongo Lab, and Dave Nielsen from Cloud Camp. Unfortunately, this one won't be hosted by a webinar, but if you want to learn more about why you'd want a private PaaS, &lt;a href="/webinars" title="Private PaaS webinar with ActiveState, Cloud Foundry"&gt;register for our webinar on Nov. 16 featuring Cloud Foundry and ActiveState.&lt;/a&gt;&lt;/p&gt;

&lt;p style="clear:both"&gt;
&lt;a rel="shadowbox[Screenshots]" href="/sites/default/files/blog_import_images/stackatodemotheater_troy.jpg"&gt;
  &lt;img alt="Stackato private PaaS demo theater"
  src="/sites/default/files/blog_import_images/stackatodemotheater_troy.jpg"
  style="width: 180px"
  class="as_feature_img as_left" /&gt;
&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;And here's Troy Topnik, giving a demonstration of Stackato in the Demo Theater. If you missed this session, watch the YouTube video (screencast) Troy made, showing how Stackato automatically configures and deploys everything an application needs to run in the cloud. &lt;a href="http://www.youtube.com/watch?v=CunjLaS7Rzo" target="_blank" title="Stackato demo micro cloud private PaaS"&gt;Watch it here &amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p style="clear:both"&gt;If you were there, what were the highlights for you?&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/cloud-expo-wrap-building-private-clouds-private-paas" dc:identifier="http://www.activestate.com/blog/2011/11/cloud-expo-wrap-building-private-clouds-private-paas" dc:title="Cloud Expo Wrap-Up: Building Private Clouds, Private PaaS" trackback:ping="http://www.activestate.com/trackback/3223" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3223&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/rF2z0OGcUvU" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/cloud-expo-wrap-building-private-clouds-private-paas#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/private-cloud">private cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Sat, 12 Nov 2011 00:52:51 +0000</pubDate>
 <dc:creator>angieh</dc:creator>
 <guid isPermaLink="false">3223 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/cloud-expo-wrap-building-private-clouds-private-paas</feedburner:origLink></item>
  <item>
    <title>Using Eclipse STS with Stackato</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/zuQuGODz1mk/using-eclipse-sts-stackato</link>
    <description>&lt;p&gt;Last week, we decided to take &lt;a href="http://www.springsource.com/developer/sts" target="_blank"&gt;SpringSource Tool Suite (STS)&lt;/a&gt; for a spin with &lt;a href="http://www.activestate.com/cloud"&gt;Stackato&lt;/a&gt;. The point was to try a tool engineered for a standard version of Cloud Foundry with our variant, and make sure our version hadn&amp;#39;t lost the ability to work with STS.&lt;/p&gt;
&lt;p&gt;As an added wrinkle, our tester (yours truly) is not a regular Eclipse user. Presumably, if I could make STS Integration work, then the process wasn&amp;#39;t excessively complex.&lt;/p&gt;
&lt;p&gt;So how compatible is VMWare&amp;#39;s STS tool with Stackato, and how was the experience?&lt;/p&gt;
&lt;h2&gt;Getting it installed&lt;/h2&gt;
&lt;p&gt;I started with Ubuntu 10.04 LTS. The first order of business was to install and configure the latest &lt;a href=""&gt;Stackato client&lt;/a&gt; to test basic operations with the Stackato server.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://docs.stackato.com/quick-start.html#command-line-client" target="_blank"&gt;http://docs.stackato.com/quick-start.html#command-line-client&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I ran &amp;ldquo;stackato target&amp;rdquo; to point the client to a running v5.2 Server on our network and logged in. Then I pulled down the code for some of our demos from the git repository:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.activestate.com/stackato/demos#java" target="_blank"&gt;http://community.activestate.com/stackato/demos#java&lt;/a&gt;&lt;a href="https://github.com/ActiveState/stackato-samples/tree/master/java/hello-spring-mysql" target="_blank"&gt;&lt;br /&gt;https://github.com/ActiveState/stackato-samples/tree/master/java/hello-spring-mysql&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To test I had everything configured, I pushed the node.js ENV app from the Stackato client. Once I had Stackato working, I installed STS 2.8.0. This went very smoothly.&lt;/p&gt;
&lt;h2&gt;Getting the integration working&lt;/h2&gt;
&lt;p&gt;I followed a springsource blog post on the setup here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.springsource.com/2011/04/13/using-cloud-foundry-from-sts/" target="_blank"&gt;http://blog.springsource.com/2011/04/13/using-cloud-foundry-from-sts/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As that post describes, there&amp;#39;s a choice of ways to get the Cloud Foundry plugin. I went to the Eclipse Dashboard Extensions tab. It took a few moments to complete the listing on my system. When that completed, I scrolled down to the Server and Clouds section, and selected &amp;ldquo;Cloud Foundry Integration&amp;rdquo;, then clicked the Install button.&lt;/p&gt;
&lt;p&gt;(Click image below for larger version).&lt;/p&gt;
&lt;p&gt;&lt;a href="/sites/default/files/blog_import_images/screenshot-spring_-_dashboard_-_springsource_tool_suite_.png" rel="shadowbox;width=1000;height=650"&gt;&lt;img alt="" src="/sites/default/files/blog_import_images/screenshot-spring_-_dashboard_-_springsource_tool_suite_.png" style="width: 600px; height: 240px;" title="SpringSource Tool Suite with Stackato" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then I found the Servers view, and added New|Server|VMware|Cloud Foundry. When STS gave me the URL drop-down box, I gave it the same URL which I gave to the &amp;ldquo;stackato target&amp;rdquo; command earlier, and when STS prompted for Account Information, I gave it the same email and password I used when I logged into Stackato.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/sites/default/files/blog_import_images/screenshot-new_server_-1.png" style="width: 550px; height: 450px;" /&gt;&lt;/p&gt;
&lt;p&gt;STS added the Server, and in the view, I could right away see the node.js ENV app I had pushed live earlier.&lt;/p&gt;
&lt;p&gt;Some quick experimentation lead me to the application panel, and I found I could activate and deactivate the app from there, just as I could stop and start it from the Stackato command line.&lt;/p&gt;
&lt;h2&gt;Push a new application&lt;/h2&gt;
&lt;p&gt;I already had a known good spring demo for Stackato, so I set out to convert the Stackato demo to an Eclipse project. This turned out to be the most challenging part of the whole process, mostly due to rookie mistakes. I converted the demo into the wrong kind of project several times, before I found this video clip:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=XcI-2V-mmmw&amp;amp;noredirect=1" target="_blank"&gt;http://www.youtube.com/watch?v=XcI-2V-mmmw&amp;amp;noredirect=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;which tipped me that the demo had to be converted into a Spring MVC project. I had to open the STS Template project menu, and selected the Spring MVC template. Since I didn&amp;#39;t have that template by default, STS installed it for me.&lt;/p&gt;
&lt;p&gt;I was then able to create a new project with the Spring MVC template, and imported the files from the existing demo to supply the code. After that, I was able to drag the project onto the icon for the Cloud Foundry Server, and STS took care of the push.&lt;/p&gt;
&lt;p&gt;(Click image below for larger version).&lt;/p&gt;
&lt;p&gt;&lt;a href="/sites/default/files/blog_import_images/screenshot-spring_-_summary_.png" rel="shadowbox;width=1000;height=650"&gt;&lt;img alt="" src="/sites/default/files/blog_import_images/screenshot-spring_-_summary_.png" style="width: 600px; height: 240px;" title="SpringSource Tool Suite with Stackato" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;STS works with Stackato as easily as it works with Cloud Foundry.&lt;/p&gt;
&lt;p&gt;Try it for yourself in the &lt;a href="http://community.activestate.com/stackato"&gt;Stackato Open Beta&lt;/a&gt;!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/using-eclipse-sts-stackato" dc:identifier="http://www.activestate.com/blog/2011/11/using-eclipse-sts-stackato" dc:title="Using Eclipse STS with Stackato" trackback:ping="http://www.activestate.com/trackback/3217" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3217&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/zuQuGODz1mk" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/using-eclipse-sts-stackato#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-foundry">cloud foundry</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/eclipse">eclipse</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ide">ide</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/java">Java</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/spring">spring</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/sts">sts</category>
 <pubDate>Tue, 08 Nov 2011 20:30:16 +0000</pubDate>
 <dc:creator>grahams</dc:creator>
 <guid isPermaLink="false">3217 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/using-eclipse-sts-stackato</feedburner:origLink></item>
  <item>
    <title>Stackato 0.6.0: Admin Dashboard, New Relic and More</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/_DQNsxTLj8A/stackato-060-admin-dashboard-new-relic-and-more</link>
    <description>&lt;img title="Stackato 0.6.0 VM" alt="Stackato 0.6.0 VM"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/stackato_icon_alpha_sm.png"
	    class="as_feature_img as_left" /&gt;

&lt;p&gt;Just in time for &lt;a href="http://cloudcomputingexpo.com/"&gt;Cloud Computing Expo&lt;/a&gt;, we've released &lt;a href="http://community.activestate.com/stackato"&gt;version 0.6.0 of the Stackato micro cloud&lt;/a&gt;. While we were at it, we updated the Stackato sandbox so you could try out some of the new features there too.&lt;/p&gt;

&lt;p&gt;Here's a quick look at what's new and interesting:&lt;/p&gt;

&lt;h2 style="clear:both"&gt;New Relic&lt;/h2&gt;

&lt;p&gt;As I mentioned in a &lt;a href="/blog/2011/10/new-relic-app-monitoring-stackato"&gt;post last week&lt;/a&gt;, Stackato users will be able to take full advantage of New Relic's excellent application monitoring service.  You can create your New Relic Standard account (with a two week "Pro" trial) from the Stackato Beta page, then follow the documentation for setting up the agent and using your API key. Once you push your application to Stackato, the application monitoring data will start appearing in your New Relic dashboard within minutes.&lt;/p&gt;

&lt;h2&gt;Stackato Admin Dashboard&lt;/h2&gt;

&lt;p&gt;There's a new dashboard interface (enabled with 'stackato-admin start dashboard') to give the Stackato administrator an overview of what users are up to on the system. Events like application deployments, stops, restarts, and scaling actions are shown, and you can monitor which applications are running and which accounts are running them.&lt;/p&gt;

&lt;h2&gt;Open Beta!&lt;/h2&gt;

&lt;p&gt;When we first started showing Stackato to people back in May during the developer preview, access to Stackato was restricted to a small group of people we worked quite closely with. Over time, we expanded this group and added the developer sandbox for those that didn't want to download the Stackato VM just to try it out. Now, we really want to open the floodgates and see as many people as possible try out the system and give us feedback.&lt;/p&gt;

&lt;p&gt;Getting started with Stackato is much easier now. Just go to the &lt;a href="http://community.activestate.com/stackato"&gt;Stackato Beta page&lt;/a&gt; and sign-up. No surveys, no waiting.&lt;/p&gt;

&lt;h2&gt;Cloud Foundry and STS Compatibility&lt;/h2&gt;

&lt;p&gt;Though there are a &lt;a href="http://www.activestate.com/blog/2011/10/stackato-and-cloud-foundry-comparing-paas-solutions"&gt;number of differences&lt;/a&gt; between Stackato and Cloud Foundry, we've kept basic API compatibility. We've been testing this compatibility recently and found that the vmc client and SprincSource Tool Suite (STS) works just as well with Stackato as they do with Cloud Foundry.&lt;/p&gt;

&lt;p&gt;If you're already using Eclipse or STS for your Java applications, you can keep using these tools with Stackato.&lt;/p&gt;

&lt;h2&gt;Visit us at the Cloud Computing Expo&lt;/h2&gt;

&lt;p&gt;If you're attending the &lt;a href="http://cloudcomputingexpo.com/"&gt;Cloud Computing Expo&lt;/a&gt; in Santa Clara this week, come visit us at booth #415 in the exhibitor hall. I'll be giving demos and talking about Stackato at the booth for most of the conference and co-presenting a lab on Cloud Foundry and Stackato on Wednesday at 5:30 with Patrick Chanezon from VMware.&lt;/p&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/stackato-060-admin-dashboard-new-relic-and-more" dc:identifier="http://www.activestate.com/blog/2011/11/stackato-060-admin-dashboard-new-relic-and-more" dc:title="Stackato 0.6.0: Admin Dashboard, New Relic and More" trackback:ping="http://www.activestate.com/trackback/3216" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3216&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/_DQNsxTLj8A" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/stackato-060-admin-dashboard-new-relic-and-more#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/beta">beta</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-foundry">cloud foundry</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/release">release</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/sts">sts</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/vmc">vmc</category>
 <pubDate>Tue, 08 Nov 2011 06:41:22 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3216 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/stackato-060-admin-dashboard-new-relic-and-more</feedburner:origLink></item>
  <item>
    <title>Cloud Expo: Talkin' Private PaaS</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/mHOqPx4O4V8/cloud-expo-talkin-private-paas</link>
    <description>&lt;p&gt;&lt;img alt="Cloud Expo" src="/sites/default/files/images/blog/cloud-expo-logo-300x149.png" style="width: 151px; height: 75px;" /&gt;Next week, several of us from ActiveState are hitting up Cloud Expo in Santa Clara! Private PaaS is still a new space, so we&amp;#39;re excited to be giving several talks on this topic to help people understand the benefits and capabilities of a private PaaS. If you&amp;#39;re going to be there, come check out our sessions and visit our booth (#415).&lt;/p&gt;
&lt;p&gt;Here are the talks we&amp;#39;ll be giving:&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://cloudcomputingexpo.com/event/session/1350" target="_blank"&gt;Why Private PaaS is Not an Oxymoron&lt;/a&gt;&lt;br /&gt;Bart Copeland (CEO): Monday 11/07 at 2:40pm&lt;/h3&gt;
&lt;p&gt;When you hear of Platform-as-a-Service (PaaS) what typically comes to mind are names like Heroku, EngineYard, DotCloud, and CloudFoundry.com -- hosted Public PaaS providers. But there is an emerging trend where enterprises require PaaS capabilities, but are demanding it on their own terms. They want a PaaS behind their firewall to enable a secure cloud &amp;ndash; a &lt;strong&gt;private PaaS&lt;/strong&gt;. This session will cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The drivers for Private PaaS&lt;/li&gt;
&lt;li&gt;How a Private PaaS differs from a Public PaaS&lt;/li&gt;
&lt;li&gt;What to consider when implementing and deploying a Private PaaS&lt;/li&gt;
&lt;li&gt;Case studies of enterprises using a private PaaS&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href="http://cloudcomputingexpo.com/event/session/1405" target="_blank"&gt;Building a Checklist for Migrating to a Private Cloud&lt;/a&gt;&lt;br /&gt;Diane Mueller (Director, Product Management) with Nate Isley from New Relic: Monday 11/07 at 4:55pm&lt;/h3&gt;
&lt;p&gt;Your research tells you that a private cloud is the best option for you. Now what? What are the practical next steps for moving forward with your cloud initiative? A migration checklist can help you put your initiative into focus by helping you answer some basic questions such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What are your goals for migrating to The Cloud?&lt;/li&gt;
&lt;li&gt;How do you prioritize apps to deploy: new projects or legacy?&lt;/li&gt;
&lt;li&gt;How will you migrate applications and move or integrate data to new cloud infrastructure?&lt;/li&gt;
&lt;li&gt;How will you ensure your apps are delivering great service through the migration?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Join Diane Mueller and Nate Isley as they discuss the key considerations for migrating to a private cloud. Attendees will learn how building a checklist can help them with a more successful private cloud implementation.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://cloudcomputingexpo.com/event/session/1293" target="_blank"&gt;CTO Power Panel: Has Cloud Computing Changed IT for the Better?&lt;/a&gt;&lt;br /&gt;Featuring ActiveState&amp;#39;s Jeff Hobbs along with Sheng Liang (Citrix), Rick Nucci (Dell Boomi), Rich Wolski (Eucalyptus) and more&lt;br /&gt;Tuesday 11/08 at 12:45pm&lt;/h3&gt;
&lt;p&gt;This fast-moving industry discussion panel, moderated by Cloud Expo Conference Chair Jeremy Geelan, will liven up your lunch-hour by answering such questions as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How fast will the last remaining barriers to enterprise-wide cloud adoption melt away?&lt;/li&gt;
&lt;li&gt;Are truly secure public clouds feasible, for example, or only private ones?&lt;/li&gt;
&lt;li&gt;How exactly does a company or organization go about deciding whether to migrate only specific applications to the cloud - such as storage or security - or their overall IT infrastructure?&lt;/li&gt;
&lt;li&gt;How much of an influence on cloud adoption is the US Government&amp;#39;s continuing support of Cloud strategies for all government agencies?&lt;/li&gt;
&lt;li&gt;How specifically do the panelists&amp;#39; own company offering/s assist CIOs and organizations/companies?&lt;/li&gt;
&lt;li&gt;Will anything ever satisfy the thirst for security, compliance, and SLA assurances at the enterprise level of Cloud computing?&lt;/li&gt;
&lt;li&gt;Do you agree with those analysts who say that 2012/13 will be The Year of the Cloud Database? If not, then what will it be the year of?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href="http://cloudcomputingexpo.com/event/session/1370" target="_blank"&gt;US Patriot Act: Making the Case for Enterprise Private Cloud&lt;/a&gt;&lt;br /&gt;Diane Mueller (Director, Product Management): Wed. 11/10 at 2:25pm&lt;/h3&gt;
&lt;p&gt;Is the US Patriot Act causing you to hesitate on leveraging the cloud in your enterprise? Do you want to leverage the power of cloud computing but unsure what the security and privacy implications are for sensitive corporate data? Corporations are thinking long and hard about the legal and regulatory implications of cloud computing. When it comes to actual corporate data, no matter what the efficiency gains are, legal departments are often directing IT departments to steer clear of any service that eliminates their ability to keep potential sensitive information out of the hands of Federal prosecutors. Despite all the hype about every application moving into the cloud, some practical patterns are starting to emerge in the types of data corporations are willing to move to the cloud. Learn how to create a secure, compliant, private platform and cloud for developing, distributing and managing enterprise applications. In this session, we will discuss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implications of the US Patriot Act on cloud computing&lt;/li&gt;
&lt;li&gt;What types of applications should stay private&lt;/li&gt;
&lt;li&gt;Classes of applications that best leverage the cloud&lt;/li&gt;
&lt;li&gt;Moving to a private cloud model&lt;/li&gt;
&lt;li&gt;How to deploy an enterprise private PaaS&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href="http://cloudcomputingbootcamp.com/" target="_blank"&gt;Cloud Foundry Open Source PaaS and Stackato Private PaaS (Bootcamp/Lab Session)&lt;/a&gt;&lt;br /&gt;Patrick Chanezon (Cloud Foundry) and Troy Topnik: Wed. 11/10 at 5:35pm&lt;/h3&gt;
&lt;p&gt;Bring your laptops to this hands-on session to learn more about Cloud Foundry and Stackato and try out the micro cloud and/or sandbox!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.thearmadagroup.com/it-news-events.html" target="_blank"&gt;Will the Real Cloud Please Stand Up: PaaS steps up to deliver on the promises of cloud&lt;/a&gt;&lt;br /&gt;Featuring Diane Mueller (Director, Product Management) along with James Watters (Cloud Foundry), Isaac Roth (RedHat), hosted by Armada Group&lt;br /&gt;Wed. 11/10 at 5:30pm&lt;/h3&gt;
&lt;p&gt;Join us for food, drinks and prizes at the Tusca Courtyard at the Hyatt Hotel Santa Clara&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope to see you at Cloud Expo! If you can&amp;#39;t make it, stay tuned as many of these sessions will be recorded so we&amp;#39;ll share links to them shortly after the event.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/11/cloud-expo-talkin-private-paas" dc:identifier="http://www.activestate.com/blog/2011/11/cloud-expo-talkin-private-paas" dc:title="Cloud Expo: Talkin&amp;#039; Private PaaS" trackback:ping="http://www.activestate.com/trackback/3214" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3214&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/mHOqPx4O4V8" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/11/cloud-expo-talkin-private-paas#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud-expo">cloud expo</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/events">events</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/private-cloud">private cloud</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Fri, 04 Nov 2011 16:31:08 +0000</pubDate>
 <dc:creator>angieh</dc:creator>
 <guid isPermaLink="false">3214 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/11/cloud-expo-talkin-private-paas</feedburner:origLink></item>
  <item>
    <title>Komodo 7 Beta is Ready!</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/4CBuE4CBIa4/komodo-7-beta-ready</link>
    <description>&lt;img title="Komodo 7 Beta" alt="Komodo 7 Beta"
	    style="width: auto"
	    src="/sites/default/files/blog_import_images/komodo_orb_128.png"
	    class="as_feature_img as_left" /&gt;

&lt;p&gt;Komodo 7 Beta 1 is now available, with Edit builds as well as IDE. If you didn't get a chance to look at the Alpha, &lt;a href="/komodo-ide/downloads" title="download komodo 7 beta"&gt;download the Beta&lt;/a&gt; now, give it a try, and let us know what you think. We'd love to get your feedback!&lt;/p&gt;

&lt;p&gt;Here are some of the new features that we've put into it:&lt;/p&gt;

&lt;h2 style="clear:both"&gt;What's New&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Improved integration with &lt;a href="/cloud" title="komodo and stackato"&gt;Stackato, our private PaaS solution&lt;/a&gt;.&lt;/li&gt;
  
  &lt;li&gt;&lt;a href="http://docs.activestate.com/komodo/7.0/collab.html" title="komodo team collaboration"&gt;Collaborative editing&lt;/a&gt;&lt;/li&gt;
  
  &lt;li&gt;&lt;a href="http://docs.activestate.com/komodo/7.0/profiling.html" title="komodo code profiling"&gt;Code profiling&lt;/a&gt;&lt;/li&gt;
  
  &lt;li&gt;&lt;a href="http://docs.activestate.com/komodo/7.0/sync.html" title="ide synchronization across platforms, komodo"&gt;Synchronization&lt;/a&gt; of preferences between your Komodo installations&lt;/li&gt;
  
  &lt;li&gt;Debugging and code intelligence for Node.js&lt;/li&gt;

  &lt;li&gt;More languages: CoffeeScript, Mojolicious, EJS, Less, SCSS, XCSS, and Twig&lt;/li&gt;

  &lt;li&gt;And all of this running much faster on the Firefox 4 (mozilla-2.0) code base!&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;... and &lt;a href="http://docs.activestate.com/komodo/7.0/releases/ide.html#whatsnew" title="komodo 7 beta what's new"&gt;more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned for more posts, as we'll be writing more about each of these features in the weeks to come.&lt;/p&gt;

&lt;h2&gt;But I want to buy it NOW!&lt;/h2&gt;

&lt;p&gt;We don't want to dissuade anyone from buying Komodo IDE just because a new release is on the horizon. Don't wait - buy Komodo IDE with Upgrades &amp;amp; Support by December 31st, &lt;a href="https://store.activestate.com/komodo-ide" title="save $50 on Komodo"&gt;and save $50 per license&lt;/a&gt;. Start using Komodo IDE 6 today, and get automatic access to Komodo IDE 7 when it's released.&lt;/p&gt; 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/10/komodo-7-beta-ready" dc:identifier="http://www.activestate.com/blog/2011/10/komodo-7-beta-ready" dc:title="Komodo 7 Beta is Ready!" trackback:ping="http://www.activestate.com/trackback/3213" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3213&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/4CBuE4CBIa4" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/10/komodo-7-beta-ready#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/collaboration">collaboration</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ide">ide</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/komodo">komodo</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/nodejs">node.js</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Fri, 28 Oct 2011 18:54:03 +0000</pubDate>
 <dc:creator>troyt</dc:creator>
 <guid isPermaLink="false">3213 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/10/komodo-7-beta-ready</feedburner:origLink></item>
  <item>
    <title>Virtualization in the EC2 cloud using LXC</title>
    <link>http://feedproxy.google.com/~r/activestate/blog/~3/Br3wLDILflw/virtualization-ec2-cloud-using-lxc</link>
    <description>&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;EC2 is already a&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Paravirtualization" style="color: rgb(158, 60, 3); " target="_blank"&gt;(para)virtualized&lt;/a&gt;&amp;nbsp;environment, which means it&amp;rsquo;s nearly impossible to run your own virtualization (KVM/VirtualBox/qemu) from inside that environment. However, Linux recently introduced a new system into the kernel, called&amp;nbsp;&lt;code&gt;cgroups&lt;/code&gt;, which provides a way to isolate process groups from each other in the kernel. A project was soon formed around this new technology, which allows for very thin, fast, and secure quasi-virtualization.&amp;nbsp;It&amp;rsquo;s called&amp;nbsp;&lt;strong&gt;&lt;strong&gt;LXC&lt;/strong&gt;&lt;/strong&gt;, short for LinuX Containers.&amp;nbsp;And it works in EC2 perfectly.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;Here&amp;rsquo;s how.&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;You&amp;rsquo;ll want a recent Linux AMI (preferrably kernel 2.6.35 or higher). I use&amp;nbsp;&lt;em&gt;Ubuntu Server 11.04&lt;/em&gt;, and the following instructions are meant for that OS. Can&amp;rsquo;t vouch for other distros, though the instructions should be easily portable. Ubuntu&amp;rsquo;s good for EC2 and&amp;nbsp;LXC&amp;nbsp;because they already have&amp;nbsp;&lt;a href="http://uec-images.ubuntu.com/releases/11.04/release/" style="color: rgb(158, 60, 3); " target="_blank"&gt;nice pre-made AMI images&lt;/a&gt;, the kernel supports&amp;nbsp;LXC&amp;nbsp;out of the box, and they have software repositories hosted in the EC2 cloud, which makes for extremely fast system updates. Also, any instance type works, even a&amp;nbsp;&lt;code&gt;t1.micro&lt;/code&gt;&amp;nbsp;(micro instance) will suffice (my weapon of choice for testing purposes).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Start by SSH-ing into your EC2 server. You&amp;rsquo;ll need to run almost all of the following instructions as root, so let&amp;rsquo;s do:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;span class="Apple-style-span" style="font-family: 'andale mono', 'lucida console', monospace; line-height: 18px; "&gt;sudo -i&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;to become root. Otherwise, you can prepend &amp;lsquo;sudo&amp;rsquo; to the beginning of every command from now on (unless specified otherwise).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now, we need to install a few packages:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get install&amp;nbsp;lxc&amp;nbsp;debootstrap bridge-utils dnsmasq&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;From the packages you installed,&amp;nbsp;lxc&amp;nbsp;is, well,&amp;nbsp;lxc. debootstrap is a utility used to create a minimal Ubuntu install within a directory (which we will do shortly). bridge-utils is a suite of utilities used for creating&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Bridging_(networking)" style="color: rgb(158, 60, 3); " target="_blank"&gt;network bridges&lt;/a&gt;&amp;nbsp;in Linux, which we will use to provide network access to the container. dnsmasq is a DNS/DHCP server which will allow the container(s) to identify themselves on the local network.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now run&amp;nbsp;&lt;code&gt;lxc-checkconfig&lt;/code&gt;&amp;nbsp;and make sure that the tests pass (all of them should, if you&amp;rsquo;re using Ubuntu Server 11.04).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;NOTE: THIS IS IMPORTANT!&lt;/strong&gt;&amp;nbsp;Keep in mind that the effects of most of the commands from here on out (specifically iptables, sysctl, mount, brctl and any edits to /etc/resolv.conf)&amp;nbsp;&lt;strong&gt;will not persist over a reboot&lt;/strong&gt;, even on a EBS-backed instance. These are in-memory changes which&amp;nbsp;&lt;strong&gt;will go away&lt;/strong&gt;&amp;nbsp;as soon as you shut down the machine. If you bring the instance back up, you&amp;rsquo;ll need to run them again, otherwise things&amp;nbsp;&lt;strong&gt;will be broken&lt;/strong&gt;! There are several ways to get around this: iptables rules and /etc/resolv.conf can be set by an init script, sysctl can be set in sysctl.conf, mounts can be specified in /etc/fstab, and brctl can be set in /etc/network/interfaces (add the br0 interface); however, for the purposes of this guide (I don&amp;rsquo;t use EBS-backed instances, personally), we&amp;rsquo;ll assume instance storage (config is lost on reboot).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;We need to create a place on the system to hold cgroup information (required for&amp;nbsp;LXC&amp;nbsp;to work). I use /cgroup for simplicity. Let&amp;rsquo;s mount a cgroup environment there.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;mkdir /cgroup&lt;br /&gt;mount -t cgroup none /cgroup&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;(If you want to keep cgroup mounted between reboots, do:&amp;nbsp;&lt;code&gt;echo &amp;quot;none /cgroup cgroup defaults 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;/code&gt;&amp;nbsp;instead.)&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now, let&amp;rsquo;s create a network bridge for the containers to be able to connect to the network/Internet. Simply run:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;brctl addbr br0&lt;br /&gt;brctl setfd br0 0&lt;br /&gt;ifconfig br0 192.168.3.1 up&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;In the second command, we use 192.168.3.* as the container network for the purposes of this tutorial. If you&amp;rsquo;d like to use another subset (192.168.&lt;strong&gt;x&lt;/strong&gt;.*), you&amp;rsquo;re free to do so, but be sure to change every instance of 3.* in this article to yourchoice.*, because those IPs will be references a large amount of times in configuration. We recommend you keep the IPs we suggest here for simplicity purposes.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now we need to set up a few system rules for the containers to be able to reach the Internet:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;sysctl -w net.ipv4.ip_forward=1&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Let&amp;rsquo;s set up DHCP/DNS on our new bridge. Open up&amp;nbsp;&lt;code&gt;/etc/dnsmasq.conf&lt;/code&gt;&amp;nbsp;for editing (vim/nano/ed/cat, your choice). Uncomment the necessary lines so that the conf file looks like the following:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;domain-needed&lt;br /&gt;bogus-priv&lt;br /&gt;interface = br0&lt;br /&gt;listen-address = 127.0.0.1&lt;br /&gt;listen-address = 192.168.3.1&lt;br /&gt;expand-hosts&lt;br /&gt;domain = containers&lt;br /&gt;dhcp-range = 192.168.3.50,192.168.3.200,1h&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now, you&amp;rsquo;ll need to edit&amp;nbsp;&lt;code&gt;/etc/dhcp3/dhclient.conf&lt;/code&gt;&amp;nbsp;for DNS to properly resolve locally. Add the following lines to the beginning:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;prepend domain-name-servers 127.0.0.1;&lt;br /&gt;prepend domain-search &amp;quot;containers.&amp;quot;;&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;(Don&amp;rsquo;t forget the dot after&amp;nbsp;&lt;code&gt;containers&lt;/code&gt;, that&amp;rsquo;s not a typo!)&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now we need to renew our DHCP lease so that dhclient will regenerate /etc/resolv.conf.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now, let&amp;rsquo;s restart dnsmasq so it&amp;rsquo;ll re-read the new configuration.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;service dnsmasq restart&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Next, we need to create the environment inside the container. There&amp;rsquo;s a script that comes with&amp;nbsp;lxc&amp;nbsp;called&amp;nbsp;lxc-ubuntu, which will set up the container. However, it&amp;rsquo;ll require a bit of tweaking for the environment to work. I&amp;rsquo;ve done the tweaking for you, and put the new script up, so simply run:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;span class="Apple-style-span" style="font-family: 'andale mono', 'lucida console', monospace; line-height: 18px; "&gt;wget -O&amp;nbsp;lxc-ubuntu http://bit.ly/ec2ubuntulxc&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'andale mono', 'lucida console', monospace; line-height: 18px; "&gt;chmod +x&amp;nbsp;lxc-ubuntu&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;(If you&amp;rsquo;d like to do the tweaking yourself, you&amp;rsquo;ll need to pull the script from /usr/lib/lxc/templates/lxc-ubuntu, change the hostname, change the mirror to match EC2&amp;prime;s Ubuntu mirror, fix the sshd runlevel script, and change the networking config of&amp;nbsp;LXC&amp;nbsp;for DHCP veth (check my script to see how it&amp;rsquo;s set up)).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now, let&amp;rsquo;s create a new container:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;./lxc-ubuntu -p /mnt/vm0 -n vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Wait a while for the script to finish, and your container is set up in /mnt/vm0. Let&amp;rsquo;s try it out!&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc-start -n vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Type in root for the username and root for the password. Try pinging Google:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;ping www.google.com&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;If it works, your Internet is set up! Now let&amp;rsquo;s try another thing&amp;nbsp;&lt;strong&gt;(make sure you run this from the VM, not from the host!!)&lt;/strong&gt;:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;poweroff&lt;/code&gt;&amp;nbsp;(this shuts down the VM, and puts you in the host again)&lt;br /&gt;&lt;code&gt;lxc-start -n vm0 -d&amp;nbsp;&lt;/code&gt;(this runs the VM in daemon mode)&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;To check if a VM is running, type:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc-info -n vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;(it should say RUNNING). To test network, try pinging the VM (this might not work right away, you might have to wait up to a minute):&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;ping vm0&lt;br /&gt;ssh root@vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;If those two work, the VM is now in your DNS and you can address it by its hostname. Cool, huh?&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Creating a new VM&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Creating another VM is as simple as:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;./lxc-ubuntu -n vm1 -p /mnt/vm1&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;The packages won&amp;rsquo;t be redownloaded, and the command should complete quickly.&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Clone existing VM&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;If you want to clone your existing VM, you&amp;rsquo;ll need to do a few things:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;cp -r /mnt/vm0 /mnt/vm1&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Now edit /mnt/vm1/config and replace all references of vm0 to vm1. Do the same with /mnt/vm1/fstab. Then go into /mnt/vm1/rootfs/etc/hostname and replace the hostname with vm1. Finally, run:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc-create -n vm1 -f /mnt/vm1/config&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Upon starting the VM, you should be able to ping it/ssh to it:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;ping vm1&lt;br /&gt;ssh root@vm1&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;If not,&amp;nbsp;lxc-console into the VM and check your connection. Keep in mind you only need one&amp;nbsp;&lt;code&gt;br0&lt;/code&gt;&amp;nbsp;for all your instances, but you can create many, if you so desire.&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Running services inside the container&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;You may want web servers to be accessible from outside the VM (from the rest of EC2, or outside EC2). To do this, you&amp;rsquo;ll need to port forward from the host to the VM. Simply run:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;iptables -t nat -A PREROUTING -p tcp --dport &amp;lt;port on host&amp;gt; -j DNAT --to-destination &amp;lt;hostname of VM&amp;gt;:&amp;lt;port on VM&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Hibernating a container&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;To &amp;lsquo;hibernate&amp;rsquo; a container (save the current state (running processes) of the VM for instant restoring later) do:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc-freeze -n vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;and later,&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc-unfreeze -n vm0&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;to restore.&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Installing additional packages into the container&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Your container is just like any other Ubuntu system. Therefore,&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;apt-get update&lt;br /&gt;apt-get install &amp;lt;whatever&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;works great.&lt;/p&gt;
&lt;h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 18px; line-height: 18px; letter-spacing: -0.06em; "&gt;Setting resource limits&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;One of the benefits of&amp;nbsp;LXC&amp;nbsp;is that you can limit resource usage per-container. Let&amp;rsquo;s delve into the various resources you can limit:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;CPU&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;There&amp;rsquo;s two ways of limiting CPU in&amp;nbsp;LXC. On a multi-core system, you can assign different CPUs to different containers, as such (add this line to your container config file, /mnt/vm0/config or similar):&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc.cgroup.cpuset.cpus = 0&lt;/code&gt;&amp;nbsp;(assigns the first CPU to the container)&lt;br /&gt;or&lt;br /&gt;&lt;code&gt;lxc.cgroup.cpuset.cpus = 0,2,3&lt;/code&gt;&amp;nbsp;(assigns the first, third, and fourth CPU to the container)&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;The alternative (this one makes more sense to me) is to use the scheduler. You can use values to say &amp;lsquo;I want this container to get 3 times the CPU of this container&amp;rsquo;. For example, add:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc.cgroup.cpu.shares = 2048&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;to the config to give a container double the default (1024).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;RAM&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;To limit RAM, simply set:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc.cgroup.memory.limit_in_bytes = 256M&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;(replacing 256M with however much RAM you want to allow).&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;To limit swap, set:&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;code&gt;lxc.cgroup.memory.memsw.limit_in_bytes = 1G&lt;/code&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;Hard Disk&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Well, there&amp;rsquo;s no official way to do this, it&amp;rsquo;s up to you. You can use LVM (in EC2? fun), or you can create a filesystem in a file (something like&amp;nbsp;&lt;code&gt;dd if=/dev/zero of=somefile.img bs=4GB count=1 &amp;amp;&amp;amp; mkfs.ext3 somefile.img &amp;amp;&amp;amp; mount -o loop somefile.img /mnt/vm0/rootfs&lt;/code&gt;) and mount it to /mnt/vm0/rootfs to limit space.&lt;/p&gt;
&lt;h3&gt;Network Bandwidth&lt;/h3&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;To limit network bandwidth per container, you&amp;#39;ll want to use the&amp;nbsp;&lt;code&gt;tc&lt;/code&gt;&amp;nbsp;utility. Keep in mind you&amp;rsquo;ll need to use separate bridges (br0, br1) for each container if you go this route. Don&amp;rsquo;t forget to edit the config of each VM to match your new bridge if you do so.&lt;span class="Apple-style-span" style="font-size: 20px; font-weight: bold; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Wrap-up&lt;/h2&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;I hope I&amp;rsquo;ve covered most basic aspects of using&amp;nbsp;LXC&amp;nbsp;in the EC2 environment.&amp;nbsp;LXC&amp;nbsp;is an amazing technology, and the possibilities of what you can do with it are endless.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;Some further reading: the&amp;nbsp;&lt;a href="http://lxc.sourceforge.net/" style="color: rgb(158, 60, 3); " target="_blank"&gt;main&amp;nbsp;LXC&amp;nbsp;site&lt;/a&gt;,&amp;nbsp;&lt;a href="http://lxc.teegra.net/" style="color: rgb(158, 60, 3); " target="_blank"&gt;the&amp;nbsp;LXC&amp;nbsp;HOWTO&lt;/a&gt;, and&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/linux/library/l-lxc-containers/" style="color: rgb(158, 60, 3); " target="_blank"&gt;IBM&amp;rsquo;s tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;strong&gt;NOTE:&amp;nbsp;&lt;/strong&gt;When following other guides on&amp;nbsp;LXC, be very careful with messing with the network in the EC2 environment (restarting networking services or altering /etc/network/interfaces on the&amp;nbsp;&lt;strong&gt;host&lt;/strong&gt;) as careless network reconfiguration may cause the connection will drop between you and your instance (you&amp;rsquo;ll lose SSH), and therefore lose your instance completely. The instructions I&amp;rsquo;ve provided here have been tested and will not drop your EC2 connection.&lt;/p&gt;
&lt;p style="margin-top: 0px; margin-bottom: 20px; "&gt;&lt;a href="http://activestate.com/cloud"&gt;Stackato&lt;/a&gt; makes heavy use of LXC to provide a secure, isolated environment for your apps (more on this soon). Check out the &lt;a href="http://activestate.com/cloud"&gt;Stackato Sandbox&lt;/a&gt; today and see how easy it can be to get your apps up and running in the cloud with Stackato!&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc" dc:identifier="http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc" dc:title="Virtualization in the EC2 cloud using LXC" trackback:ping="http://www.activestate.com/trackback/3212" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;&lt;div class="box"&gt;

  &lt;h2&gt;Trackback URL for this post:&lt;/h2&gt;

  &lt;div class="content"&gt;http://www.activestate.com/trackback/3212&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/activestate/blog/~4/Br3wLDILflw" height="1" width="1"/&gt;</description>
     <comments>http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc#comments</comments>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/cloud">Cloud</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/ec2">ec2</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/lxc">lxc</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/open-source">open source</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/paas">PaaS</category>
 <category domain="http://www.activestate.com/blog/tag/blog-tags/stackato">stackato</category>
 <category domain="http://www.activestate.com/blog/category/blog-categories/stackato">stackato</category>
 <pubDate>Thu, 27 Oct 2011 17:14:50 +0000</pubDate>
 <dc:creator>daniilk</dc:creator>
 <guid isPermaLink="false">3212 at http://www.activestate.com</guid>
  <feedburner:origLink>http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc</feedburner:origLink></item>
  </channel>
</rss>

