At the Crossroads of HPC and Cloud Computing with Openstack

  • Published on

  • View

  • Download

Embed Size (px)


<ul><li><p>At the Crossroads of HPC and </p><p>Cloud Computing with Openstack </p><p>Presenter: Ryan M. Aydelott of Argonne National Labs</p><p>Questions that will be addressed: </p><p> Why is Openstack important? What is Openstack currently used for? Where is Openstack at in its development cycle? What does the Openstack architecture/model look like? What should you know about Openstack? What does Openstack have to do with HPC? What will Openstack look like tomorrow?</p></li><li><p>Ryan Aydelott - CELS</p><p>Outline</p><p> My background Cloud - what is happening? The future of programmable stacks The human factor Openstack architecture overview The state of Openstack today How does Argonne use Openstack? The future Discussion/Q&amp;A</p><p>2</p></li><li><p>Ryan Aydelott - CELS</p><p>My Background</p><p>3</p><p> Born in the 70s, took many things apart - put most of them back together.</p><p> Started connecting at 300 Baud (3,24 MB/d), Doing Internet things ~1990</p><p> First business was shell account/email access to those along the I-88 R&amp;D Corridor, which blossomed into a full menu ISP.</p><p> Left the ISP Business in 1999 and went to work for Lucent, followed by a string of various employers/startups doing interesting things.</p><p> Currently working on various alternative corporate structures, including an incubator/co-living house on Chicagos west side.</p></li><li><p>Ryan Aydelott - CELS</p><p>4</p><p>What is happening?</p></li><li><p>Ryan Aydelott - CELS</p><p>The future of programmable stacks If the infrastructure is programmable, we wont even consider the *aaS acronym relevant any longer.</p><p> Everything looks like code. Infrastructure descriptions can be checked into your source code repo in tandem with your application. This is great news for developers, interesting news for traditional sysadmins.</p><p> Docker and Vagrant show us how to have textual, executable, repeatable descriptions of platforms with people providing recipes as part of an ecosystem. Those recipes will come to include clusters of servers and network topology.</p><p> The tools are nascent, (think Mesos/Kubernetes, etc) but these will eventually become the visible face of what we call Cloud today.</p><p>5</p><p>- - - - - </p></li><li><p>Ryan Aydelott - CELS</p><p>The Human Factor</p><p>6</p><p>Sysadmin c.1980-2010</p><p>Basic Programming Skills (one off administrator task automation, etc)Relatively experienced with hardware (RAID, systems architecture, etc)Networking/Server responsibilities were usually different individualsTypically responsible for running applications at the server level</p><p>Sysadmin c. 2011-</p><p>Experienced/Broad Developer (using automation frameworks such as Chef, Saltstack, etc)Very little hardware expertise (thinks in terms of availability zones)Deploys networks via SDN frameworks to match the application profileResponsible for making sure that applications are running well on the platform</p></li><li><p>Ryan Aydelott - CELS</p><p>Why is Openstack Important?</p><p> Openstack is the single most developed and widely used open source cloud platform today. </p><p> Openstack is a project that has reached the level of adoption that will enable it to continue to receive considerable development contributions for the foreseeable near term future.</p><p> Openstacks architecture is modular in nature which allows ease of integration and customization specific to user environments. </p><p>7</p></li><li><p>Ryan Aydelott - CELS</p><p>Openstack Architecture (Conceptual)</p><p>8</p></li><li><p>Ryan Aydelott - CELS</p><p>Openstack Component Description Dashboard ("Horizon") provides a front end Dashboard to other Openstack services</p><p> Compute ("Nova") stores and retrieves virtual disks ("images") and associated metadata in Image (Glance). Images can stored on shared storage such as Gluster, Ceph, NFS, etc. for live migration or on local disk.</p><p> Network ("Neutron") provides virtual networking for Compute. This can either be a single node or in later versions, multiple-hosts</p><p> Block Storage ("Cinder") provides storage volumes for Compute which can be backed by files on ZFS, LVM, etc. exported most commonly via iSCSI. (Gluster/Ceph supported as well)</p><p> Image ("Glance") can store the actual virtual disk files in the Object Store(Swift), local disk, Ceph, Gluster, etc.</p><p> All the services authenticate with Identity (Keystone")</p><p> Shared message bus (RabbitMQ, Qpid, or 0MQ) glues it all together.</p><p>9</p></li><li><p>Ryan Aydelott - CELS</p><p>Openstack Logical Usage</p><p> End users can interact through a common web interface (Horizon) or directly to each service through their API</p><p> All services authenticate through a common source (facilitated through keystone)</p><p> Individual services interact with each other through their public APIs (except where privileged administrator commands are necessary)</p><p>10</p></li><li><p>Ryan Aydelott - CELS</p><p>What is Openstack Used for?</p><p> Provide computing services for resale to end users by service operators</p><p> Provide internal enterprise computing support as either an alternative or in addition to existing computing resources</p><p> Provide computing resources to research environments across a variety of disciplines, including research of cloud on cloud computing</p><p> Hobbyist/Tinkerers who are interested in learning about/using the software stack (keep in mind this includes professional hobbyists tasks with exploring Openstack by their employer)</p><p>11</p></li><li><p>Ryan Aydelott - CELS</p><p>Where is Openstack at from the standpoint of maturity?</p><p> The largest opinion at the last openstack conference in Paris (November 2014) is that Openstack is finally ready to enter its maturity phase. This translates to less features and a focus on robust/stable code.</p><p> Currently still on a 6 month major release cycle (moved from a 3 month release cycle ~2 years ago), there were some murmurs of extending this out even further.</p><p> Ready to use/stable for most organizations without a dedicated developer, provided you are not deploying the stack using non-standard configurations/hardware.</p><p> Many professional service organizations now will run/manage Openstack for you. (however many typically have their own release)</p><p>12</p></li><li><p>Ryan Aydelott - CELS</p><p></p><p>13</p></li><li><p>Ryan Aydelott - CELS</p><p>How does Argonne Use Openstack?</p><p> Currently running some custom software for data analysis as well as standard stacks (such as Hadoop). Additionally some web facing application stacks are also running on the system.</p><p> At 800 nodes, it was a large system at that time of its deployment (~2010), now however large systems begin at ~1000 unique hardware entities with many scaling over 10,000 nodes in service provider environments.</p><p> Our system is focusing on vertical performance in specific areas (networking, memory/compute, storage) rather than overall system size.</p><p> A major challenge today is provisioning hardware that allows us the most flexibility via software. The difficulty lies in the very different nature of partitioning required for different types of workloads.</p><p>14</p></li><li><p>Ryan Aydelott - CELS</p><p>HPC and Openstack</p><p> Virtual clusters can elastically scale up/down based on demand (Heat Autoscaling)</p><p> Not stuck with one distribution - end user can choose</p><p> End users can install their own software using the distro package manager</p><p> Bring your own runtime in the form of an image (Docker, etc)</p><p> Excellent method to combine multiple smaller (1-2 Rack) HPC clusters into a single managed entity to solve partitioning/underutilization problems</p><p> Software that runs most workloads hasnt fully taken advantage of this new architecture (yet)</p><p>15</p></li><li><p>Ryan Aydelott - CELS</p><p>Challenges of HPC and Openstack</p><p>Network Commonly deployed Openstack network is built for features, not performance MPI performs poorly on common Openstack networks (tunnels, bridges, nat, iptables)</p><p>Storage Presenting the same block device to multiple VMs just becoming available (needed for </p><p>distributed filesystems) Shared filesystem as a service support relatively new feature</p><p>Future SRIOV support, and isolation features for IB are available SRIOV / pci passthrough is available in recent Openstack releases IRONIC is an Openstack Project that allows bare metal performance across diverse </p><p>systems</p><p>16</p></li><li><p>Ryan Aydelott - CELS</p><p>Why you should know Openstack</p><p> The tools required to work effectively in this industry are changing dramatically to the point that IT shops are completely retooling their organizational structure/processes.</p><p> All future systems will iterate on a version of this architecture. This is as relevant now as learning about pcs in the 80s.</p><p> Openstack could be perceived as providing something akin to low-level language for utility computing.</p><p> In research (both corporate and public) tightly coupled compute clusters are falling out of favor to distributed systems. </p><p> Budgets always prefer commodity curve computing at scale.</p><p> If you have to customize or are trying to integrate hot-rod hardware, Openstack isnt a bad choice.</p><p>17</p></li><li><p>Ryan Aydelott - CELS</p><p>Openstack has opened up opportunities for integrators</p><p> New applications being deployed can be designed in ways that allow them to fully utilize the operating environment (I call these architecturally aware applications)</p><p> Many cluster management frameworks available today have an interface similar to the one Openstack and other providers have.</p><p> Hardware/Software integrators have a single platform agnostic integration point.</p><p> This first group of problem solvers will pave the way for additional management frameworks to be built on top of Openstack, further abstracting the underlying infrastructure to the application.</p><p>18</p><p>- -</p></li><li><p>Ryan Aydelott - CELS</p><p>Building Openstack Aware Applications HEAT: A Heat template describes the infrastructure for a cloud application in a text file that is readable and writable </p><p>by humans, and can be checked into version control, diffed, etc. Infrastructure resources that can be described include: servers, floating ips, volumes, security groups, users, </p><p>etc. Heat also provides an autoscaling service that integrates with Ceilometer, so you can include a scaling group </p><p>as a resource in a template. Templates can also specify the relationships between resources (e.g. this volume is connected to this server). </p><p>This enables Heat to call out to the OpenStack APIs to create all of your infrastructure in the correct order to completely launch your application.</p><p> Heat manages the whole lifecycle of the application - when you need to change your infrastructure, simply modify the template and use it to update your existing stack. Heat knows how to make the necessary changes. It will delete all of the resources when you are finished with the application, too.</p><p> Heat primarily manages infrastructure, but the templates integrate well with software configuration management tools such as Puppet and Chef. The Heat team is working on providing even better integration between infrastructure and software.</p><p>19</p><p>-</p></li><li><p>Ryan Aydelott - CELS</p><p>Trove - Opensource Database as a Service</p><p></p><p> The goal is to provide a scalable/reliable cloud database as a service for both relational/non-relational engines</p><p> Natively built to run on Openstack</p><p> Support a single tenant database within an instance</p><p> Still under active development, production ready only with experts.</p><p>20</p><p>-</p></li><li><p>Ryan Aydelott - CELS</p><p>Sahara - Hadoop on Openstack</p><p></p><p> The goal is to provide a scalable/reliable cloud database as a service for both relational/non-relational engines</p><p> API to run analytics jobs</p><p> Cluster Provisioning</p><p> Still under active development</p><p>21</p><p>-</p></li><li><p>Ryan Aydelott - CELS</p><p>Zaqar - Messaging Service</p><p></p><p> Messaging service native to Openstack.</p><p> Tenant Queues based on Keystone Project IDs</p><p> HA w\Horizontal Scaling</p><p> Still under active development</p><p>22</p></li><li><p>Ryan Aydelott - CELS</p><p>This is just the beginning</p><p> Already a number of these commonly used application stacks are being written directly against Openstack. </p><p> More complicated deployments that consists of groups of applications can be coordinated with Heat, either exclusively or in tandem with other management frameworks/systems. </p><p> Further development of abstraction/optimization layers will continue, reducing the human overhead necessary to run complex jobs. </p><p>23</p></li><li><p>Ryan Aydelott - CELS</p><p>24</p></li></ul>