Modified: libcloud/site/trunk/generated/blog/archives/2014/02/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/02/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/02/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/02/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -464,7 +464,7 @@ driver - <a href="https://www.cloudsigma </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script>
Modified: libcloud/site/trunk/generated/blog/archives/2014/02/page/2/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/02/page/2/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/02/page/2/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/02/page/2/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -277,7 +277,7 @@ drivers to <a href="http://developer.rac </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/04/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/04/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/04/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/04/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -179,7 +179,7 @@ strecthing for over 3 weeks, I sadly had </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/05/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/05/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/05/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/05/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -162,7 +162,7 @@ have been accepted, please visit <a href </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/06/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/06/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/06/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/06/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -202,7 +202,7 @@ example and / or test which reproduces y </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/07/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/07/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/07/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/07/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -251,7 +251,7 @@ attend the celebration.</p> </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/11/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/11/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/11/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/11/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -217,7 +217,7 @@ list of people who contributed to this r </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2014/12/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2014/12/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2014/12/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2014/12/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -161,7 +161,7 @@ and more complete Google Compute Engine </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/02/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/02/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/02/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/02/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -207,7 +207,7 @@ list of people who contributed to this r </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/03/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/03/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/03/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/03/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -161,7 +161,7 @@ contributions.</p> </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/08/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/08/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/08/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/08/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -215,7 +215,7 @@ list of people who contributed to this r </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/10/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/10/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/10/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/10/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -264,7 +264,7 @@ from <a href="https://github.com/blog/20 </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/11/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/11/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/11/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/11/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -193,7 +193,7 @@ participation and contributions.</p> </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2015/12/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2015/12/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2015/12/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2015/12/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -113,8 +113,8 @@ features, improvements, bug-fixes, and D <ul> <li>New DNS driver for <a href="http://libcloud.readthedocs.org/en/latest/dns/drivers/godaddy.html">GoDaddy</a></li> -<li>New DNS driver for [CloudFlare DNS][4]</li> -<li>Many more improvements and API v2.1 support for the [Dimension Data compute driver][5]</li> +<li>New DNS driver for <a href="https://www.cloudflare.com/dns/">CloudFlare DNS</a></li> +<li>Many more improvements and API v2.1 support for the <a href="http://cloud.dimensiondata.com/am/en/">Dimension Data compute driver</a></li> <li>Support for adding and configuring PTR (reverse DNS) record in RackSpace DNS driver</li> <li>Support for preemptable instances in Google Compute driver</li> <li>Add new eu-west-2 & us-east-2 regions to the OUTSCALE<em>INC & OUTSCALE</em>SAS drivers</li> @@ -211,7 +211,7 @@ list of people who contributed to this r </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/archives/2016/01/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/archives/2016/01/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/archives/2016/01/index.html (original) +++ libcloud/site/trunk/generated/blog/archives/2016/01/index.html Wed Jan 20 05:25:25 2016 @@ -51,7 +51,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -95,6 +95,200 @@ <div class="post"> + <h2><a href="/blog/2016/01/20/libcloud-1.0-pre1.html">Libcloud 1.0-pre1 open for feedback</a></h2> + + + + + + <span class="post-date-author">By Anthony Shaw on Jan 20, 2016</span> + + <div class="post-content"> + <p>We are pleased to announce that version 1.0-pre1 vote thread is open and the release is ready for community feedback.</p> + +<p>1.0-pre1 marks the first pre-release of the 1.0 major release. Some years ago, Tomaz Muraus spoke on the podcast <a href="https://twit.tv/shows/floss-weekly/episodes/181">FLOSS weekly</a> +apart from testing how much of a huge challenge porting the project to Python 3.x would be(!) Tomaz discussed the 1.0 milestone. +As the project has matured over the last 5 years one of the most remarkable changes has been the adoption from the community and +continued support from our contributors adding new drivers, patching strange API issues and keeping the project alive.</p> + +<p>Anthony Shaw will be speaking on the FLOSS weekly podcast on February 2nd and discussing our community and the project, so +please tune in. </p> + +<p>The Cloud market as I'm sure you're all aware of is thriving, the purpose of Libcloud was originally:</p> + +<ul> +<li>To help prevent lock-in to a particular vendor</li> +<li>To abstract the complexity of vendor APIs</li> +<li>To give a simple way for deploying to and managing multiple cloud vendors</li> +</ul> + +<p>Since that we have had (at the last count) 2,118,539 downloads. The project continues to grow in popularity with each new release.</p> + +<p>So with the 1.0 major release we would like to announce 2 new driver types, containers and backup.</p> + +<h2>History of our drivers</h2> + +<p>The compute (IaaS) API is what libcloud is best known for but there is a range of drivers available for many other capabilities.</p> + +<p>There is a presentation on the value of using Libcloud to avoid lock in <a href="http://www.slideshare.net/AnthonyShaw5/apache-libcloud-keeping-up-with-the-cloud-market-in-2016">on SlideShare</a></p> + +<p>This is a history of the different driver types in the libcloud project.</p> + +<ul> +<li>Compute (v0.1.0) + +<ul> +<li> Support for nodes, node images, locations, states</li> +<li> 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt</li> +</ul></li> +<li>DNS (v0.6.0) + +<ul> +<li> Support for zones, records, recordtypes</li> +<li> 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo</li> +</ul></li> +<li>Object Storage (v0.5.0) + +<ul> +<li> Support for containers and objects</li> +<li> 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift</li> +</ul></li> +<li>Load Balancer (v0.5.0) + +<ul> +<li> Support for nodes, balancers, listeners and algorithms</li> +<li> 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB</li> +</ul></li> +<li>Backup (v0.20.0) + +<ul> +<li> Support for backup targets, recovery points and jobs</li> +<li> 3 providers, Dimension Data, Amazon EBS snaps, Google snaps</li> +</ul></li> +</ul> + +<h2>Introducing Backup Drivers</h2> + +<p>With 1.0-pre1 we have introduced a new driver type for backup, <code>libcloud.backup</code></p> + +<p>Backup API allows you to manage Backup as A Service and services such as EBS Snaps, +GCE volume snap and dimension data backup.</p> + +<h3>Terminology</h3> + +<ul> +<li><code>libcloud.backup.base.BackupTarget</code> - Represents a backup target, like a Virtual Machine, a folder or a database.</li> +<li><code>libcloud.backup.base.BackupTargetRecoveryPoint</code> - Represents a copy of the data in the target, a recovery point can be +recovered to a backup target. An inplace restore is where you recover to the same target and an out-of-place restore is where you +recover to another target.</li> +<li><code>libcloud.backup.base.BackupTargetJob</code> - Represents a backup job running on backup target.</li> +</ul> + +<h2>Introducing Container-as-a-Service Drivers</h2> + +<p>The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service. +The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider.</p> + +<p>Google, Amazon and Joyent have all announced Container cloud services and Microsoft have launched a beta service also, so we are getting on the front foot with an +abstraction API for people wishing to gain similar benefits to the compute, load balancer and storage APIs.</p> + +<p>A presentation on this topic <a href="http://www.slideshare.net/AnthonyShaw5/introducing-container-asaservice-support-to-apache-libcloud">presentation</a> is available on SlideShare.</p> + +<p><strong>Isn't docker a standard?</strong> +Well, yes and no.</p> + +<p>Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. +But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt. </p> + +<h3>Container API design</h3> + +<p>Container-as-a-Service providers will implement the <code>ContainerDriver</code> class to provide functionality for :</p> + +<ul> +<li>Listing deployed containers</li> +<li>Starting, stopping and restarting containers (where supported)</li> +<li>Destroying containers</li> +<li>Creating/deploying containers</li> +<li>Listing container images</li> +<li>Installing container images (pulling an image from a local copy or remote repository)</li> +</ul> + +<h3>Simple Container Support</h3> + +<ul> +<li><code>libcloud.container.base.ContainerImage</code> - Represents an image that can be deployed, like an application or an operating system</li> +<li><code>libcloud.container.base.Container</code> - Represents a deployed container image running on a container host</li> +</ul> + +<h3>Cluster Suppport</h3> + +<p>Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute <code>supports_clusters</code> as True +clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified.</p> + +<ul> +<li><code>libcloud.container.base.ContainerCluster</code> - Represents a deployed container image running on a container host</li> +<li><code>libcloud.container.base.ClusterLocation</code> - Represents a location for clusters to be deployed</li> +</ul> + +<h3>Using the container drivers</h3> + +<p>The container drivers have been designed around similar principles to the compute driver. It is simple to use and a flat class design. </p> +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.providers</span> <span class="kn">import</span> <span class="n">get_driver</span> +<span class="kn">from</span> <span class="nn">libcloud.container.types</span> <span class="kn">import</span> <span class="n">Provider</span> + +<span class="n">Cls</span> <span class="o">=</span> <span class="n">get_driver</span><span class="p">(</span><span class="n">Provider</span><span class="o">.</span><span class="n">DOCKER</span><span class="p">)</span> +<span class="n">driver</span> <span class="o">=</span> <span class="n">Cls</span><span class="p">(</span><span class="s">'user'</span><span class="p">,</span> <span class="s">'api key'</span><span class="p">)</span> + +<span class="n">image</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">install_image</span><span class="p">(</span><span class="s">'tomcat:8.0'</span><span class="p">)</span> +<span class="n">container</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">deploy_container</span><span class="p">(</span><span class="s">'tomcat'</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> + +<span class="n">container</span><span class="o">.</span><span class="n">restart</span><span class="p">()</span> +</code></pre></div> +<h3>Container Registries</h3> + +<p>The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry. +It doesn't belong to a particular driver, so is a utility class. +Some providers, like Amazon ECR have a factory method to provide a registry client +Images from docker registry can be sent to the deploy_container method for any driver.</p> +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.utils.docker</span> <span class="kn">import</span> <span class="n">HubClient</span> +<span class="n">hub</span> <span class="o">=</span> <span class="n">HubClient</span><span class="p">()</span> +<span class="n">image</span> <span class="o">=</span> <span class="n">hub</span><span class="o">.</span><span class="n">get_image</span><span class="p">(</span><span class="s">'ubuntu'</span><span class="p">,</span> <span class="s">'latest'</span><span class="p">)</span> +</code></pre></div> +<p>When other container registry services are made available these can be provided in a similar context.</p> + +<h3>Prototype drivers in libcloud.container</h3> + +<p>Drivers have been provided to show example implementations of the API, these drivers are <strong>experimental</strong> and need to go through more thorough community testing +before they are ready for a stable release.</p> + +<ul> +<li>Docker - http://libcloud.readthedocs.org/en/latest/container/drivers/docker.html</li> +<li>Joyent Triton - http://libcloud.readthedocs.org/en/latest/container/drivers/joyent.html</li> +<li>Google Kubernetes - http://libcloud.readthedocs.org/en/latest/container/drivers/kubernetes.html</li> +<li>Amazon Elastic Container Service (as well as Amazon Container Registry Service) - http://libcloud.readthedocs.org/en/latest/container/drivers/ecs.html </li> +</ul> + +<p>The driver with the most contentious implementation is Kubernetes. We would like users of the Amazon ECS, Google Containers and Kubernetes project to provide feedback +on how they would like to map clusters, pods, namespaces to the low level concepts in the driver.</p> + +<h1>Thanks</h1> + +<p>Thanks to everyone who contributed and made this release possible! Full +list of people who contributed to this release can be found in the +<a href="https://libcloud.readthedocs.org/en/latest/changelog.html">CHANGES file</a>.</p> + + </div> + + <div class="row section post-meta"> + <div class="col-md-12 post-tags"> + <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/announcement.html" rel="tag">announcement</a></p> + </div> + </div> +</div> + + + <div class="post"> + <h2><a href="/blog/2016/01/19/libcloud-0-20-1-released.html">Libcloud 0.20.1 released</a></h2> @@ -285,7 +479,7 @@ and compatibility reasons. SSL v3.0 is c </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/atom.xml URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/atom.xml?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/atom.xml (original) +++ libcloud/site/trunk/generated/blog/atom.xml Wed Jan 20 05:25:25 2016 @@ -5,17 +5,200 @@ <link href="https://libcloud.apache.org" rel="self" /> <link href="https://libcloud.apache.org" /> <id>https://libcloud.apache.org</id> - <updated>2016-01-19T19:14:01+00:00</updated> + <updated>2016-01-20T16:18:50+11:00</updated> <author> <name>The Apache Software Foundation</name> </author> <entry> + <title>Libcloud 1.0-pre1 open for feedback</title> + <link href="https://libcloud.apache.org/blog/2016/01/20/libcloud-1.0-pre1.html" /> + <id>https://libcloud.apache.org/blog/2016/01/20/libcloud-1.0-pre1.html</id> + <updated>2016-01-20T00:00:00+11:00</updated> + <author> + <name>Anthony Shaw</name> + </author> + <content type="html"><p>We are pleased to announce that version 1.0-pre1 vote thread is open and the release is ready for community feedback.</p> + +<p>1.0-pre1 marks the first pre-release of the 1.0 major release. Some years ago, Tomaz Muraus spoke on the podcast <a href="https://twit.tv/shows/floss-weekly/episodes/181">FLOSS weekly</a> +apart from testing how much of a huge challenge porting the project to Python 3.x would be(!) Tomaz discussed the 1.0 milestone. +As the project has matured over the last 5 years one of the most remarkable changes has been the adoption from the community and +continued support from our contributors adding new drivers, patching strange API issues and keeping the project alive.</p> + +<p>Anthony Shaw will be speaking on the FLOSS weekly podcast on February 2nd and discussing our community and the project, so +please tune in. </p> + +<p>The Cloud market as I&#39;m sure you&#39;re all aware of is thriving, the purpose of Libcloud was originally:</p> + +<ul> +<li>To help prevent lock-in to a particular vendor</li> +<li>To abstract the complexity of vendor APIs</li> +<li>To give a simple way for deploying to and managing multiple cloud vendors</li> +</ul> + +<p>Since that we have had (at the last count) 2,118,539 downloads. The project continues to grow in popularity with each new release.</p> + +<p>So with the 1.0 major release we would like to announce 2 new driver types, containers and backup.</p> + +<h2>History of our drivers</h2> + +<p>The compute (IaaS) API is what libcloud is best known for but there is a range of drivers available for many other capabilities.</p> + +<p>There is a presentation on the value of using Libcloud to avoid lock in <a href="http://www.slideshare.net/AnthonyShaw5/apache-libcloud-keeping-up-with-the-cloud-market-in-2016">on SlideShare</a></p> + +<p>This is a history of the different driver types in the libcloud project.</p> + +<ul> +<li>Compute (v0.1.0) + +<ul> +<li> Support for nodes, node images, locations, states</li> +<li> 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt</li> +</ul></li> +<li>DNS (v0.6.0) + +<ul> +<li> Support for zones, records, recordtypes</li> +<li> 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo</li> +</ul></li> +<li>Object Storage (v0.5.0) + +<ul> +<li> Support for containers and objects</li> +<li> 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift</li> +</ul></li> +<li>Load Balancer (v0.5.0) + +<ul> +<li> Support for nodes, balancers, listeners and algorithms</li> +<li> 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB</li> +</ul></li> +<li>Backup (v0.20.0) + +<ul> +<li> Support for backup targets, recovery points and jobs</li> +<li> 3 providers, Dimension Data, Amazon EBS snaps, Google snaps</li> +</ul></li> +</ul> + +<h2>Introducing Backup Drivers</h2> + +<p>With 1.0-pre1 we have introduced a new driver type for backup, <code>libcloud.backup</code></p> + +<p>Backup API allows you to manage Backup as A Service and services such as EBS Snaps, +GCE volume snap and dimension data backup.</p> + +<h3>Terminology</h3> + +<ul> +<li><code>libcloud.backup.base.BackupTarget</code> - Represents a backup target, like a Virtual Machine, a folder or a database.</li> +<li><code>libcloud.backup.base.BackupTargetRecoveryPoint</code> - Represents a copy of the data in the target, a recovery point can be +recovered to a backup target. An inplace restore is where you recover to the same target and an out-of-place restore is where you +recover to another target.</li> +<li><code>libcloud.backup.base.BackupTargetJob</code> - Represents a backup job running on backup target.</li> +</ul> + +<h2>Introducing Container-as-a-Service Drivers</h2> + +<p>The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service. +The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider.</p> + +<p>Google, Amazon and Joyent have all announced Container cloud services and Microsoft have launched a beta service also, so we are getting on the front foot with an +abstraction API for people wishing to gain similar benefits to the compute, load balancer and storage APIs.</p> + +<p>A presentation on this topic <a href="http://www.slideshare.net/AnthonyShaw5/introducing-container-asaservice-support-to-apache-libcloud">presentation</a> is available on SlideShare.</p> + +<p><strong>Isn&#39;t docker a standard?</strong> +Well, yes and no.</p> + +<p>Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. +But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt. </p> + +<h3>Container API design</h3> + +<p>Container-as-a-Service providers will implement the <code>ContainerDriver</code> class to provide functionality for :</p> + +<ul> +<li>Listing deployed containers</li> +<li>Starting, stopping and restarting containers (where supported)</li> +<li>Destroying containers</li> +<li>Creating/deploying containers</li> +<li>Listing container images</li> +<li>Installing container images (pulling an image from a local copy or remote repository)</li> +</ul> + +<h3>Simple Container Support</h3> + +<ul> +<li><code>libcloud.container.base.ContainerImage</code> - Represents an image that can be deployed, like an application or an operating system</li> +<li><code>libcloud.container.base.Container</code> - Represents a deployed container image running on a container host</li> +</ul> + +<h3>Cluster Suppport</h3> + +<p>Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute <code>supports_clusters</code> as True +clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified.</p> + +<ul> +<li><code>libcloud.container.base.ContainerCluster</code> - Represents a deployed container image running on a container host</li> +<li><code>libcloud.container.base.ClusterLocation</code> - Represents a location for clusters to be deployed</li> +</ul> + +<h3>Using the container drivers</h3> + +<p>The container drivers have been designed around similar principles to the compute driver. It is simple to use and a flat class design. </p> +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.providers</span> <span class="kn">import</span> <span class="n">get_driver</span> +<span class="kn">from</span> <span class="nn">libcloud.container.types</span> <span class="kn">import</span> <span class="n">Provider</span> + +<span class="n">Cls</span> <span class="o">=</span> <span class="n">get_driver</span><span class="p">(</span><span class="n">Provider</span><span class="o">.</span><span class="n">DOCKER</span><span class="p">)</span> +<span class="n">driver</span> <span class="o">=</span> <span class="n">Cls</span><span class="p">(</span><span class="s">&#39;user&#39;</span><span class="p">,</span> <span class="s">&#39;api key&#39;</span><span class="p">)</span> + +<span class="n">image</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">install_image</span><span class="p">(</span><span class="s">&#39;tomcat:8.0&#39;</span><span class="p">)</span> +<span class="n">container</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">deploy_container</span><span class="p">(</span><span class="s">&#39;tomcat&#39;</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> + +<span class="n">container</span><span class="o">.</span><span class="n">restart</span><span class="p">()</span> +</code></pre></div> +<h3>Container Registries</h3> + +<p>The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry. +It doesn&#39;t belong to a particular driver, so is a utility class. +Some providers, like Amazon ECR have a factory method to provide a registry client +Images from docker registry can be sent to the deploy_container method for any driver.</p> +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.utils.docker</span> <span class="kn">import</span> <span class="n">HubClient</span> +<span class="n">hub</span> <span class="o">=</span> <span class="n">HubClient</span><span class="p">()</span> +<span class="n">image</span> <span class="o">=</span> <span class="n">hub</span><span class="o">.</span><span class="n">get_image</span><span class="p">(</span><span class="s">&#39;ubuntu&#39;</span><span class="p">,</span> <span class="s">&#39;latest&#39;</span><span class="p">)</span> +</code></pre></div> +<p>When other container registry services are made available these can be provided in a similar context.</p> + +<h3>Prototype drivers in libcloud.container</h3> + +<p>Drivers have been provided to show example implementations of the API, these drivers are <strong>experimental</strong> and need to go through more thorough community testing +before they are ready for a stable release.</p> + +<ul> +<li>Docker - http://libcloud.readthedocs.org/en/latest/container/drivers/docker.html</li> +<li>Joyent Triton - http://libcloud.readthedocs.org/en/latest/container/drivers/joyent.html</li> +<li>Google Kubernetes - http://libcloud.readthedocs.org/en/latest/container/drivers/kubernetes.html</li> +<li>Amazon Elastic Container Service (as well as Amazon Container Registry Service) - http://libcloud.readthedocs.org/en/latest/container/drivers/ecs.html </li> +</ul> + +<p>The driver with the most contentious implementation is Kubernetes. We would like users of the Amazon ECS, Google Containers and Kubernetes project to provide feedback +on how they would like to map clusters, pods, namespaces to the low level concepts in the driver.</p> + +<h1>Thanks</h1> + +<p>Thanks to everyone who contributed and made this release possible! Full +list of people who contributed to this release can be found in the +<a href="https://libcloud.readthedocs.org/en/latest/changelog.html">CHANGES file</a>.</p> +</content> + </entry> + + <entry> <title>Libcloud 0.20.1 released</title> <link href="https://libcloud.apache.org/blog/2016/01/19/libcloud-0-20-1-released.html" /> <id>https://libcloud.apache.org/blog/2016/01/19/libcloud-0-20-1-released.html</id> - <updated>2016-01-19T00:00:00+00:00</updated> + <updated>2016-01-19T00:00:00+11:00</updated> <author> <name>Eric Johnson</name> </author> @@ -81,7 +264,7 @@ list of people who contributed to this r <title>Notice for Linode users</title> <link href="https://libcloud.apache.org/blog/2016/01/14/notice-for-linode-users.html" /> <id>https://libcloud.apache.org/blog/2016/01/14/notice-for-linode-users.html</id> - <updated>2016-01-14T00:00:00+00:00</updated> + <updated>2016-01-14T00:00:00+11:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -151,7 +334,7 @@ and compatibility reasons. SSL v3.0 is c <title>Libcloud 0.20.0 released</title> <link href="https://libcloud.apache.org/blog/2015/12/15/libcloud-0-20-0-released.html" /> <id>https://libcloud.apache.org/blog/2015/12/15/libcloud-0-20-0-released.html</id> - <updated>2015-12-15T00:00:00+00:00</updated> + <updated>2015-12-15T00:00:00+11:00</updated> <author> <name>Anthony Shaw</name> </author> @@ -164,8 +347,8 @@ features, improvements, bug-fixes, and D <ul> <li>New DNS driver for <a href="http://libcloud.readthedocs.org/en/latest/dns/drivers/godaddy.html">GoDaddy</a></li> -<li>New DNS driver for [CloudFlare DNS][4]</li> -<li>Many more improvements and API v2.1 support for the [Dimension Data compute driver][5]</li> +<li>New DNS driver for <a href="https://www.cloudflare.com/dns/">CloudFlare DNS</a></li> +<li>Many more improvements and API v2.1 support for the <a href="http://cloud.dimensiondata.com/am/en/">Dimension Data compute driver</a></li> <li>Support for adding and configuring PTR (reverse DNS) record in RackSpace DNS driver</li> <li>Support for preemptable instances in Google Compute driver</li> <li>Add new eu-west-2 &amp; us-east-2 regions to the OUTSCALE<em>INC &amp; OUTSCALE</em>SAS drivers</li> @@ -224,7 +407,7 @@ list of people who contributed to this r <title>Anthony Shaw (anthonyshaw) joins our team</title> <link href="https://libcloud.apache.org/blog/2015/11/18/anthony-shaw-joins-our-team.html" /> <id>https://libcloud.apache.org/blog/2015/11/18/anthony-shaw-joins-our-team.html</id> - <updated>2015-11-18T00:00:00+00:00</updated> + <updated>2015-11-18T00:00:00+11:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -279,7 +462,7 @@ participation and contributions.</p&g <title>Libcloud 0.19.0 released</title> <link href="https://libcloud.apache.org/blog/2015/10/30/libcloud-0-19-0-released.html" /> <id>https://libcloud.apache.org/blog/2015/10/30/libcloud-0-19-0-released.html</id> - <updated>2015-10-30T00:00:00+00:00</updated> + <updated>2015-10-30T00:00:00+11:00</updated> <author> <name>Eric Johnson</name> </author> @@ -356,7 +539,7 @@ list of people who contributed to this r <title>Libcloud is participating in Hacktoberfest</title> <link href="https://libcloud.apache.org/blog/2015/10/05/libcloud-is-participating-in-hacktoberfest.html" /> <id>https://libcloud.apache.org/blog/2015/10/05/libcloud-is-participating-in-hacktoberfest.html</id> - <updated>2015-10-05T00:00:00+00:00</updated> + <updated>2015-10-05T00:00:00+11:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -394,7 +577,7 @@ from <a href="https://github.com <title>Libcloud 0.18.0 released</title> <link href="https://libcloud.apache.org/blog/2015/08/13/libcloud-0-18-0-released.html" /> <id>https://libcloud.apache.org/blog/2015/08/13/libcloud-0-18-0-released.html</id> - <updated>2015-08-13T00:00:00+00:00</updated> + <updated>2015-08-13T00:00:00+10:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -471,7 +654,7 @@ list of people who contributed to this r <title>Allard Hoeve (allard) joins our team</title> <link href="https://libcloud.apache.org/blog/2015/03/17/allard-hoeve-joins-our-team.html" /> <id>https://libcloud.apache.org/blog/2015/03/17/allard-hoeve-joins-our-team.html</id> - <updated>2015-03-17T00:00:00+00:00</updated> + <updated>2015-03-17T00:00:00+11:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -494,7 +677,7 @@ contributions.</p> <title>Libcloud 0.17.0 released</title> <link href="https://libcloud.apache.org/blog/2015/02/18/libcloud-0-17-0-released.html" /> <id>https://libcloud.apache.org/blog/2015/02/18/libcloud-0-17-0-released.html</id> - <updated>2015-02-18T00:00:00+00:00</updated> + <updated>2015-02-18T00:00:00+11:00</updated> <author> <name>Tomaz Muraus</name> </author> @@ -559,27 +742,4 @@ list of people who contributed to this r </content> </entry> - <entry> - <title>Eric Johnson (erjohnso) joins our team</title> - <link href="https://libcloud.apache.org/blog/2014/12/04/eric-johnson-joins-our-team.html" /> - <id>https://libcloud.apache.org/blog/2014/12/04/eric-johnson-joins-our-team.html</id> - <updated>2014-12-04T00:00:00+00:00</updated> - <author> - <name>Tomaz Muraus</name> - </author> - <content type="html"><p>Please help us extend a warm welcome to our newest team member Eric Johnson!</p> - -<p>The Project Management Committee (PMC) for Apache Libcloud has asked Eric -Johnson to join us as a committer and a PMC member and we are pleased to -announce that he has accepted.</p> - -<p>Eric has been involved in the Libcloud community for a while now. He has made -many substantial contributions to the Google Compute Engine drivers. On top of -that, he also contributed to other projects which utilize Libcloud.</p> - -<p>We are happy to have him on our team and we are looking forward to even better -and more complete Google Compute Engine drivers.</p> -</content> - </entry> - </feed> Modified: libcloud/site/trunk/generated/blog/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/index.html (original) +++ libcloud/site/trunk/generated/blog/index.html Wed Jan 20 05:25:25 2016 @@ -47,7 +47,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -97,6 +97,206 @@ <div class="post"> + <h2><a href="/blog/2016/01/20/libcloud-1.0-pre1.html">Libcloud 1.0-pre1 open for feedback</a></h2> + + + + + + <span class="post-date-author">By Anthony Shaw on Jan 20, 2016</span> + + <div class="post-content"> + <p>We are pleased to announce that version 1.0-pre1 vote thread is open and the release is ready for community feedback.</p> + +<p>1.0-pre1 marks the first pre-release of the 1.0 major release. Some years ago, Tomaz Muraus spoke on the podcast <a href="https://twit.tv/shows/floss-weekly/episodes/181">FLOSS weekly</a> +apart from testing how much of a huge challenge porting the project to Python 3.x would be(!) Tomaz discussed the 1.0 milestone. +As the project has matured over the last 5 years one of the most remarkable changes has been the adoption from the community and +continued support from our contributors adding new drivers, patching strange API issues and keeping the project alive.</p> + +<p>Anthony Shaw will be speaking on the FLOSS weekly podcast on February 2nd and discussing our community and the project, so +please tune in. </p> + +<p>The Cloud market as I'm sure you're all aware of is thriving, the purpose of Libcloud was originally:</p> + +<ul> +<li>To help prevent lock-in to a particular vendor</li> +<li>To abstract the complexity of vendor APIs</li> +<li>To give a simple way for deploying to and managing multiple cloud vendors</li> +</ul> + +<p>Since that we have had (at the last count) 2,118,539 downloads. The project continues to grow in popularity with each new release.</p> + +<p>So with the 1.0 major release we would like to announce 2 new driver types, containers and backup.</p> + +<h2>History of our drivers</h2> + +<p>The compute (IaaS) API is what libcloud is best known for but there is a range of drivers available for many other capabilities.</p> + +<p>There is a presentation on the value of using Libcloud to avoid lock in <a href="http://www.slideshare.net/AnthonyShaw5/apache-libcloud-keeping-up-with-the-cloud-market-in-2016">on SlideShare</a></p> + +<p>This is a history of the different driver types in the libcloud project.</p> + +<ul> +<li>Compute (v0.1.0) + +<ul> +<li> Support for nodes, node images, locations, states</li> +<li> 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt</li> +</ul></li> +<li>DNS (v0.6.0) + +<ul> +<li> Support for zones, records, recordtypes</li> +<li> 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo</li> +</ul></li> +<li>Object Storage (v0.5.0) + +<ul> +<li> Support for containers and objects</li> +<li> 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift</li> +</ul></li> +<li>Load Balancer (v0.5.0) + +<ul> +<li> Support for nodes, balancers, listeners and algorithms</li> +<li> 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB</li> +</ul></li> +<li>Backup (v0.20.0) + +<ul> +<li> Support for backup targets, recovery points and jobs</li> +<li> 3 providers, Dimension Data, Amazon EBS snaps, Google snaps</li> +</ul></li> +</ul> + +<h2>Introducing Backup Drivers</h2> + +<p>With 1.0-pre1 we have introduced a new driver type for backup, <code>libcloud.backup</code></p> + +<p>Backup API allows you to manage Backup as A Service and services such as EBS Snaps, +GCE volume snap and dimension data backup.</p> + +<h3>Terminology</h3> + +<ul> +<li><code>libcloud.backup.base.BackupTarget</code> - Represents a backup target, like a Virtual Machine, a folder or a database.</li> +<li><code>libcloud.backup.base.BackupTargetRecoveryPoint</code> - Represents a copy of the data in the target, a recovery point can be +recovered to a backup target. An inplace restore is where you recover to the same target and an out-of-place restore is where you +recover to another target.</li> +<li><code>libcloud.backup.base.BackupTargetJob</code> - Represents a backup job running on backup target.</li> +</ul> + +<h2>Introducing Container-as-a-Service Drivers</h2> + +<p>The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service. +The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider.</p> + +<p>Google, Amazon and Joyent have all announced Container cloud services and Microsoft have launched a beta service also, so we are getting on the front foot with an +abstraction API for people wishing to gain similar benefits to the compute, load balancer and storage APIs.</p> + +<p>A presentation on this topic <a href="http://www.slideshare.net/AnthonyShaw5/introducing-container-asaservice-support-to-apache-libcloud">presentation</a> is available on SlideShare.</p> + +<p><strong>Isn't docker a standard?</strong> +Well, yes and no.</p> + +<p>Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. +But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt. </p> + +<h3>Container API design</h3> + +<p>Container-as-a-Service providers will implement the <code>ContainerDriver</code> class to provide functionality for :</p> + +<ul> +<li>Listing deployed containers</li> +<li>Starting, stopping and restarting containers (where supported)</li> +<li>Destroying containers</li> +<li>Creating/deploying containers</li> +<li>Listing container images</li> +<li>Installing container images (pulling an image from a local copy or remote repository)</li> +</ul> + +<h3>Simple Container Support</h3> + +<ul> +<li><code>libcloud.container.base.ContainerImage</code> - Represents an image that can be deployed, like an application or an operating system</li> +<li><code>libcloud.container.base.Container</code> - Represents a deployed container image running on a container host</li> +</ul> + +<h3>Cluster Suppport</h3> + +<p>Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute <code>supports_clusters</code> as True +clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified.</p> + +<ul> +<li><code>libcloud.container.base.ContainerCluster</code> - Represents a deployed container image running on a container host</li> +<li><code>libcloud.container.base.ClusterLocation</code> - Represents a location for clusters to be deployed</li> +</ul> + +<h3>Using the container drivers</h3> + +<p>The container drivers have been designed around similar principles to the compute driver. It is simple to use and a flat class design. </p> + +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.providers</span> <span class="kn">import</span> <span class="n">get_driver</span> +<span class="kn">from</span> <span class="nn">libcloud.container.types</span> <span class="kn">import</span> <span class="n">Provider</span> + +<span class="n">Cls</span> <span class="o">=</span> <span class="n">get_driver</span><span class="p">(</span><span class="n">Provider</span><span class="o">.</span><span class="n">DOCKER</span><span class="p">)</span> +<span class="n">driver</span> <span class="o">=</span> <span class="n">Cls</span><span class="p">(</span><span class="s">'user'</span><span class="p">,</span> <span class="s">'api key'</span><span class="p">)</span> + +<span class="n">image</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">install_image</span><span class="p">(</span><span class="s">'tomcat:8.0'</span><span class="p">)</span> +<span class="n">container</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">deploy_container</span><span class="p">(</span><span class="s">'tomcat'</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> + +<span class="n">container</span><span class="o">.</span><span class="n">restart</span><span class="p">()</span> +</code></pre></div> + +<h3>Container Registries</h3> + +<p>The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry. +It doesn't belong to a particular driver, so is a utility class. +Some providers, like Amazon ECR have a factory method to provide a registry client +Images from docker registry can be sent to the deploy_container method for any driver.</p> + +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.utils.docker</span> <span class="kn">import</span> <span class="n">HubClient</span> +<span class="n">hub</span> <span class="o">=</span> <span class="n">HubClient</span><span class="p">()</span> +<span class="n">image</span> <span class="o">=</span> <span class="n">hub</span><span class="o">.</span><span class="n">get_image</span><span class="p">(</span><span class="s">'ubuntu'</span><span class="p">,</span> <span class="s">'latest'</span><span class="p">)</span> +</code></pre></div> + +<p>When other container registry services are made available these can be provided in a similar context.</p> + +<h3>Prototype drivers in libcloud.container</h3> + +<p>Drivers have been provided to show example implementations of the API, these drivers are <strong>experimental</strong> and need to go through more thorough community testing +before they are ready for a stable release.</p> + +<ul> +<li>Docker - http://libcloud.readthedocs.org/en/latest/container/drivers/docker.html</li> +<li>Joyent Triton - http://libcloud.readthedocs.org/en/latest/container/drivers/joyent.html</li> +<li>Google Kubernetes - http://libcloud.readthedocs.org/en/latest/container/drivers/kubernetes.html</li> +<li>Amazon Elastic Container Service (as well as Amazon Container Registry Service) - http://libcloud.readthedocs.org/en/latest/container/drivers/ecs.html </li> +</ul> + +<p>The driver with the most contentious implementation is Kubernetes. We would like users of the Amazon ECS, Google Containers and Kubernetes project to provide feedback +on how they would like to map clusters, pods, namespaces to the low level concepts in the driver.</p> + +<h1>Thanks</h1> + +<p>Thanks to everyone who contributed and made this release possible! Full +list of people who contributed to this release can be found in the +<a href="https://libcloud.readthedocs.org/en/latest/changelog.html">CHANGES file</a>.</p> + + </div> + + <div class="row section post-meta"> + <div class="col-md-12 post-tags"> + <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/announcement.html" rel="tag">announcement</a></p> + </div> + </div> +</div> + + + + + <div class="post"> + <h2><a href="/blog/2016/01/19/libcloud-0-20-1-released.html">Libcloud 0.20.1 released</a></h2> @@ -279,8 +479,8 @@ features, improvements, bug-fixes, and D <ul> <li>New DNS driver for <a href="http://libcloud.readthedocs.org/en/latest/dns/drivers/godaddy.html">GoDaddy</a></li> -<li>New DNS driver for [CloudFlare DNS][4]</li> -<li>Many more improvements and API v2.1 support for the [Dimension Data compute driver][5]</li> +<li>New DNS driver for <a href="https://www.cloudflare.com/dns/">CloudFlare DNS</a></li> +<li>Many more improvements and API v2.1 support for the <a href="http://cloud.dimensiondata.com/am/en/">Dimension Data compute driver</a></li> <li>Support for adding and configuring PTR (reverse DNS) record in RackSpace DNS driver</li> <li>Support for preemptable instances in Google Compute driver</li> <li>Add new eu-west-2 & us-east-2 regions to the OUTSCALE<em>INC & OUTSCALE</em>SAS drivers</li> @@ -412,96 +612,6 @@ participation and contributions.</p> - - <div class="post"> - - <h2><a href="/blog/2015/10/30/libcloud-0-19-0-released.html">Libcloud 0.19.0 released</a></h2> - - - - - - <span class="post-date-author">By Eric Johnson on Oct 30, 2015</span> - - <div class="post-content"> - <p>We are pleased to announce the release of Libcloud 0.19.0.</p> - -<p>This is a first release in the 0.19 series which means it brings many new -features, improvements, bug-fixes, and DNS drivers.</p> - -<h3>Release highlights</h3> - -<ul> -<li>New load balancer driver for <a href="http://cloud.dimensiondata.com/am/en/">Dimension Data</a></li> -<li>New DNS driver for <a href="https://www.pcextreme.com/aurora/dns">AuroraDNS</a></li> -<li>New DNS driver for <a href="http://www.worldwidedns.net/home.asp">WorldWideDNS</a></li> -<li>New DNS driver for <a href="https://dnsimple.com/">DNSimple</a></li> -<li>New DNS driver for <a href="https://pointhq.com/">PointDNS</a></li> -<li>New DNS driver for <a href="https://www.vultr.com/">Vult DNS</a></li> -<li>New DNS driver for <a href="http://www.liquidweb.com/">Liquidweb DNS</a></li> -<li>New DNS driver for <a href="http://zonomi.com/">Zonomi DNS</a></li> -<li>New DNS driver for <a href="https://durabledns.com/">Durable DNS</a></li> -<li>Added volume management methods and more to <a href="https://www.runabove.com/index.xml">RunAbove compute service</a></li> -<li>Added new South America East region to <a href="https://aws.amazon.com/s3/">S3 storage driver</a></li> -<li>Many more improvements and API v2.0 added to the <a href="http://cloud.dimensiondata.com/am/en/services/public-cloud/cloud-networks">Dimension Data compute driver</a></li> -<li>New API v1 support for <a href="https://cloud.google.com/dns/">Google Cloud DNS</a></li> -<li>Many improvements in the HostVirtual compute driver</li> -<li>and much more!</li> -</ul> - -<p>Full change log can be found at <a href="https://libcloud.readthedocs.org/en/latest/changelog.html#changes-with-apache-libcloud-0-19-0">here</a>.</p> - -<h3>Download</h3> - -<p>The release can can be downloaded from -<a href="https://libcloud.apache.org/downloads.html">https://libcloud.apache.org/downloads.html</a> or installed using pip:</p> - -<pre> -pip install apache-libcloud==0.19.0 -</pre> - -<h3>Upgrading</h3> - -<p>If you have installed Libcloud using pip you can also use it to upgrade it:</p> - -<pre> -pip install --upgrade apache-libcloud==0.19.0 -</pre> - -<h3>Upgrade notes</h3> - -<p>A page which describes backward incompatible or semi-incompatible -changes and how to preserve the old behavior when this is possible -can be found at <a href="https://libcloud.readthedocs.org/en/latest/upgrade_notes.html">https://libcloud.readthedocs.org/en/latest/upgrade_notes.html</a></p> - -<h3>Documentation</h3> - -<p>Regular and API documentation is available at <a href="https://libcloud.readthedocs.org/en/v0.19.0/">https://libcloud.readthedocs.org/en/v0.19.0/</a></p> - -<h3>Bugs / Issues</h3> - -<p>If you find any bug or issue, please report it on our issue tracker -<a href="https://issues.apache.org/jira/browse/LIBCLOUD">https://issues.apache.org/jira/browse/LIBCLOUD</a>. -Don't forget to attach an example and / or test which reproduces your -problem.</p> - -<h3>Thanks</h3> - -<p>Thanks to everyone who contributed and made this release possible! Full -list of people who contributed to this release can be found in the -<a href="https://libcloud.readthedocs.org/en/latest/changelog.html#changes-with-apache-libcloud-0-19-0">CHANGES file</a>.</p> - - </div> - - <div class="row section post-meta"> - <div class="col-md-12 post-tags"> - <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/release%20announcement.html" rel="tag">release announcement</a></p> - </div> - </div> -</div> - - - </div> <p class="navigation"> @@ -520,7 +630,7 @@ list of people who contributed to this r <div class="col-lg-3 col-lg-offset-1"> <h2>Archive</h1> <ul> - <li> <a href="/blog/archives/2016/01/"> January 2016</a> (2)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> < a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href=" /blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> + <li> <a href="/blog/archives/2016/01/"> January 2016</a> (3)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> < a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href=" /blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> </ul> </div> </div> @@ -551,7 +661,7 @@ list of people who contributed to this r </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script> Modified: libcloud/site/trunk/generated/blog/page/10/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/page/10/index.html?rev=1725672&r1=1725671&r2=1725672&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/page/10/index.html (original) +++ libcloud/site/trunk/generated/blog/page/10/index.html Wed Jan 20 05:25:25 2016 @@ -47,7 +47,7 @@ - <link href='/assets/global-e7192cf35de7c848d039a1a201afcbe3.css' rel='stylesheet' type='text/css' /> + <link href='/assets/global-52715da7c55e2d86c5b5bfc2a8e7c73e.css' rel='stylesheet' type='text/css' /> </head> @@ -97,6 +97,110 @@ <div class="post"> + <h2><a href="/blog/2012/07/30/libcloud-0-11-0-released.html">Libcloud 0.11.0 released</a></h2> + + + + + + <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Jul 30, 2012</span> + + <div class="post-content"> + <p>The Apache Libcloud team is pleased to announce the release of Libcloud +0.11.0!</p> + +<p>Libcloud is a Python library that abstracts away the differences among +multiple cloud provider APIs. It allows users to manage cloud services +(servers, storage, load balancers, DNS) offered by many different providers + through a single, unified and easy to use API.</p> + +<h3>Release highlights</h3> + +<p><strong>General</strong></p> + +<ul> +<li>Install test files when installing the library. Tests module can now be +imported by doing something like this: "from libcloud import test"</li> +</ul> + +<p><strong>Compute</strong></p> + +<ul> +<li>New standard API and methods for managing storage volumes. Base API +consists of the following methods: create<em>volume, destroy</em>volume, +attach<em>volume, detach</em>volume.</li> +<li>New driver for KT UCloud (http://home.ucloud.olleh.com/main.kt) based +on the CloudStack driver.</li> +<li>New Gridspot driver with a basic list and destroy functionality.</li> +</ul> + +<p><strong>Bug fixes</strong></p> + +<ul> +<li>Plenty of them, please see the CHANGES file.</li> +</ul> + +<p>For a full list of changes, please see the CHANGES file +<a href="https://svn.apache.org/viewvc/libcloud/tags/0.11.0/CHANGES?revision=r1364892&view=markup">https://svn.apache.org/viewvc/libcloud/tags/0.11.0/CHANGES?revision=r1364892&view=markup</a>.</p> + +<h3>Download</h3> + +<p>Libcloud 0.10.1 can be downloaded from http://libcloud.apache.org/downloads.html +or installed using pip:</p> + +<div class="highlight"><pre><code class="bash">pip install apache-libcloud +</code></pre></div> + +<p>It is possible that the file hasn't been synced to all the mirrors yet. If +this is the case, +please use the main Apache mirror - http://www.apache.org/dist/libcloud.</p> + +<h3>Upgrading</h3> + +<p>If you have installed Libcloud using pip you can also use it to upgrade it:</p> + +<div class="highlight"><pre><code class="bash">pip install --upgrade apache-libcloud +</code></pre></div> + +<h3>Upgrade notes</h3> + +<p>A page which describes backward incompatible or semi-incompatible +changes and how to preserve the old behavior when this is possible +can be found at http://libcloud.apache.org/upgrade-notes.html.</p> + +<h3>Documentation</h3> + +<p>API documentation can be found at http://libcloud.apache.org/apidocs/0.11.1/</p> + +<h3>Bugs / Issues</h3> + +<p>If you find any bug or issue, please report it on our issue tracker +<a href="https://issues.apache.org/jira/browse/LIBCLOUD">https://issues.apache.org/jira/browse/LIBCLOUD</a>. Don't forget to attach an +example and / or +test which reproduces your problem.</p> + +<h3>Thanks</h3> + +<p>Thanks to everyone who contributed and made this release possible! +Full list of people who contributed to this release can be found in the +CHANGES file <a href="https://svn.apache.org/viewvc/libcloud/tags/0.11.0/CHANGES?revision=r1364892&view=markup">https://svn.apache.org/viewvc/libcloud/tags/0.11.0/CHANGES?revision=r1364892&view=markup</a>.</p> + +<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/www-announce/201207.mbox/%3CCAJMHEmLcSZi4bYmUaZtF_q=npc--dpvbteh-z+f0tcd2ite...@mail.gmail.com%3E">release announcement</a>.</p> + + </div> + + <div class="row section post-meta"> + <div class="col-md-12 post-tags"> + <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/release%20announcement.html" rel="tag">release announcement</a></p> + </div> + </div> +</div> + + + + + <div class="post"> + <h2><a href="/blog/2012/05/24/libcloud-0-10-1-released.html">Libcloud 0.10.1 released</a></h2> @@ -449,53 +553,6 @@ file <a href="https://svn.apache.org/vie - - <div class="post"> - - <h2><a href="/blog/2011/12/30/2011-in-retrospect-and-happy-new-year-from-libcloud-team.html">2011 in retrospect and a Happy New Year from the Libcloud team</a></h2> - - - - - - <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Dec 30, 2011</span> - - <div class="post-content"> - <p>Dear users & developers,</p> - -<p>First of all, Libcloud team wishes everyone a Happy New Year 2012!</p> - -<p>2011 has been a great year for us and we have accomplished a lot of things:</p> - -<ul> -<li>Website has been ported to the Apache CMS and updated with a lot of new -content, including documentation</li> -<li>In May we have graduated from the incubator to a top level project</li> -<li>Two new committers have joined the team (Tomaz Muraus, Hutson Betts)</li> -<li>We have grown from supporting a single API (cloud servers) to supporting -four different APIs (cloud servers, load balancers, cloud storage, dns)</li> -<li>We have introduced support for Python 3</li> -<li>We have released a total of 7 new versions</li> -<li>We have received many patches by external contributors</li> -<li>We have held two development sprints (PyCon, EuroPython)</li> -<li>Code wise we have grown from ~4300 LOC to ~14300 LOC (excluding tests)</li> -</ul> - -<p>Lets try to make 2012 even better :)</p> - -<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-users/201112.mbox/%3ccajmheml1d-hucj4lsh-mf1bp_of6xwefup1y74_2aped-8o...@mail.gmail.com%3E">mailing list post</a>.</p> - - </div> - - <div class="row section post-meta"> - <div class="col-md-12 post-tags"> - <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a></p> - </div> - </div> -</div> - - - </div> <p class="navigation"> @@ -520,7 +577,7 @@ four different APIs (cloud servers, load <div class="col-lg-3 col-lg-offset-1"> <h2>Archive</h1> <ul> - <li> <a href="/blog/archives/2016/01/"> January 2016</a> (2)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> < a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href=" /blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> + <li> <a href="/blog/archives/2016/01/"> January 2016</a> (3)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> < a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href=" /blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> </ul> </div> </div> @@ -551,7 +608,7 @@ four different APIs (cloud servers, load </div><!-- /.container --> <!-- JavaScript --> - <script src='/assets/global-8d3f2080ad1d4743eda2eeaa60b50d82.js' type='text/javascript'></script> + <script src='/assets/global-9c9298ad4670c6fcb2e40b5291d6c657.js' type='text/javascript'></script>
