<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    
      <meta name="description" content="Archive: 2020 08">
    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Archive: 2020 &raquo; August | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Archive: 2020 &raquo; August" property="og:title">
    

    

    
      <meta content="Archive: 2020 08" property="og:description">
    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/archives/2020/08/" property="og:url">
    
    

    

    <link href='/assets/global-0faf439f2f098e60d3f1e591316155fc.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              
              <li ><a href="/" >Home</a></li>
            
              
              <li ><a href="/about.html" >About</a></li>
            
              
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              
              <li ><a href="/community.html" >Community</a></li>
            
              
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>

          <div class="material-switch pull-right">
              <input id="theme-switch" name="theme-switch" type="checkbox" onclick="modeSwitcher()"/>
              <label for="theme-switch" class="label-default"></label>
              <span id="theme-toggle" class="theme-switch">Dark mode</span>
          </div>

        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      

  <div class="post">
  
    <h2 class="post-title"><a href="/blog/2020/08/31/miguel-caballer-joins-our-team.html">Miguel Caballer (micafer) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 31, 2020</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/micafer">Miguel Caballer</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Miguel
Caballer to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>Miguel has been part of the Libcloud community for many years now and during
his participation he made various contributions to the project, majority of
them focusing on our OpenStack drivers.</p>

<p>For anyone who would like to know more about Miguel here is his short bio:</p>

<blockquote>
  <p>Miguel Caballer is part of the Grid and High Performance Computing group of
UPV since 2001. He is the lead developer of the Infrastructure Manager (IM),
a tool that deploys complex and customized virtual infrastructures on IaaS
Cloud deployments. He has participated in different research projects about
the application of Grid and Cloud computing techniques to several areas of
engineering. Other fields of interest include green computing.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>When I start the development of the IM (in python) I found that Libcloud was
the best option to connect with different cloud back-ends using a single
library and using the same basic set of functions calls. It has improved a
lot in the last years adding extra functionality for each connector that makes
it a really good alternative to native libraries. My main contributions has been
mainly related with the OpenStack driver, one of the most user cloud providers
by the IM tool. I’m very proud to be an Apache Libcloud team member and I will
continue with my contributions.</p>
</blockquote>


  </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/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2 class="post-title"><a href="/blog/2020/08/02/latest-provider-pricing-data-available-in-s3-bucket.html">Latest up to date provider pricing.json data file is now available in an S3 bucket</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 02, 2020</span>

  <div class="post-content">
    <p>Recently we added a new job to our CI / CD which runs daily and retrieves latest
pricing data for various providers and publishes pricing.json file which can be
used by Libcloud to a public read-only S3 bucket.</p>

<p>More information on where to download it and how to use this file can be found in
<a href="https://libcloud.readthedocs.io/en/latest/compute/pricing.html#downloading-latest-pricing-data-from-an-s3-bucket">our documentation</a>.</p>

<h2 id="background-context">Background, Context</h2>

<p>In the past, we ran the script which updates pricing.json file which is bundled
with each Libcloud release just before publishing a new release.</p>

<p>The problem is that the pricing data can change often, so updating it only once
every couple of months as part of a Libcloud release is not sufficient.</p>

<p>To solve for that problem, we now update and publish pricing.json file which
includes latest retrieved pricing data for various providers on a daily basis.</p>

<p>It’s worth noting that we can’t guarantee 100% accuracy of this data so you
should only use this data as estimate and you should never rely solely on
Libcloud pricing data.</p>

<h2 id="thanks">Thanks</h2>

<p>We would like to extend special thanks to <a href="https://github.com/Eis-D-Z">Eis D. Zaster</a> who has
contributed new scraping scripts for multiple providers and also made
various improvements and fixes to the existing scraping scripts.</p>

<p>In addition to that, we would like to thank <a href="https://aws.amazon.com/blogs/opensource/aws-promotional-credits-open-source-projects/">Amazon Web Services</a> which
granted us free credits for their EC2 and S3 service which we plan to use
for hosting this pricing file, end to end tests and more.</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/pricing-data.html" rel="tag">pricing data</a></p>
    </div>
  </div>
</div>



<p class="navigation">
  

  
</p>



      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="https://www.apache.org/events/">Events</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p><a class="acevent" data-format="wide"></a></p>
  <p class="">Copyright &copy; 2009-2023 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2023-09-09 21:30:54 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-dac9eed9206cf02359a2dd1d7c03e401.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '7']);
    var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

    <script src="https://www.apachecon.com/event-images/snippet.js"></script>

  </body>
</html>
