Best Practices and Considerations Deploying OpenStack In Production

Author: Arthur Berezin
Source: Planet OpenStack

Agenda

  • Introduction To OpenStack
  • OpenStack Architecture
  • Best Practices and Considerations In Production
    • Topology
    • High Availability
    • Compute
    • Storage
    • Networking

<iframe allowfullscreen=”allowfullscreen” frameborder=”0″ height=”485″ marginheight=”0″ marginwidth=”0″ scrolling=”no” src=”http://www.slideshare.net/slideshow/embed_code/46265600″ style=”border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;” width=”595″> </iframe>

 

<style> #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumbnails_1 * { -moz-box-sizing: border-box; box-sizing: border-box; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumb_spun1_1 { -moz-box-sizing: content-box; box-sizing: content-box; background-color: #FFFFFF; display: inline-block; height: 90px; margin: 4px; padding: 0px; opacity: 1.00; filter: Alpha(opacity=100); text-align: center; vertical-align: middle; transition: all 0.3s ease 0s;-webkit-transition: all 0.3s ease 0s; width: 180px; z-index: 100; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumb_spun1_1:hover { -ms-transform: scale(1.1); -webkit-transform: scale(1.1); backface-visibility: hidden; -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; opacity: 1; filter: Alpha(opacity=100); transform: scale(1.1); z-index: 102; position: relative; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumb_spun2_1 { border: 0px none #CCCCCC; border-radius: 0; box-shadow: 0px 0px 0px #888888; display: inline-block; height: 90px; overflow: hidden; width: 180px; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumbnails_1 { background-color: rgba(255, 255, 255, 0.00); display: inline-block; font-size: 0; max-width: 960px; text-align: center; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumbnails_1 a { border: none; cursor: pointer; text-decoration: none; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumb_1 { display: inline-block; text-align: center; } #bwg_container1_1 #bwg_container2_1 .bwg_standart_thumb_spun1_1:hover .bwg_title_spun1_1 { left: 0px; top: 0px; opacity: 1; filter: Alpha(opacity=100); } #bwg_container1_1 #bwg_container2_1 .bwg_title_spun2_1 { color: #CCCCCC; display: table-cell; font-family: segoe ui; font-size: 16px; font-weight: bold; height: inherit; padding: 2px; text-shadow: 0px 0px 0px #888888; vertical-align: middle; width: inherit; word-wrap: break-word; } /*pagination styles*/ #bwg_container1_1 #bwg_container2_1 .tablenav-pages_1 { text-align: center; font-size: 12px; font-family: segoe ui; font-weight: bold; color: #666666; margin: 6px 0 4px; display: block; height: 30px; line-height: 30px; } @media only screen and (max-width : 320px) { #bwg_container1_1 #bwg_container2_1 .displaying-num_1 { display: none; } } #bwg_container1_1 #bwg_container2_1 .displaying-num_1 { font-size: 12px; font-family: segoe ui; font-weight: bold; color: #666666; margin-right: 10px; vertical-align: middle; } #bwg_container1_1 #bwg_container2_1 .paging-input_1 { font-size: 12px; font-family: segoe ui; font-weight: bold; color: #666666; vertical-align: middle; } #bwg_container1_1 #bwg_container2_1 .tablenav-pages_1 a.disabled, #bwg_container1_1 #bwg_container2_1 .tablenav-pages_1 a.disabled:hover, #bwg_container1_1 #bwg_container2_1 .tablenav-pages_1 a.disabled:focus { cursor: default; color: rgba(102, 102, 102, 0.5); } #bwg_container1_1 #bwg_container2_1 .tablenav-pages_1 a { cursor: pointer; font-size: 12px; font-family: segoe ui; font-weight: bold; color: #666666; text-decoration: none; padding: 3px 6px; margin: 0; border-radius: 0; border-style: solid; border-width: 1px; border-color: #E3E3E3; background-color: #FFFFFF; opacity: 1.00; filter: Alpha(opacity=100); box-shadow: 0; transition: all 0.3s ease 0s;-webkit-transition: all 0.3s ease 0s; } #bwg_container1_1 #bwg_container2_1 .bwg_back_1 { background-color: rgba(0, 0, 0, 0); color: #000000 !important; cursor: pointer; display: block; font-family: segoe ui; font-size: 16px; font-weight: bold; text-decoration: none; padding: 0; } #bwg_container1_1 #bwg_container2_1 #spider_popup_overlay_1 { background-color: #000000; opacity: 0.70; filter: Alpha(opacity=70); } .bwg_play_icon_spun_1 { width: inherit; height: inherit; display: table; position: absolute; } .bwg_play_icon_1 { color: #CCCCCC; font-size: 32px; vertical-align: middle; display: table-cell !important; z-index: 1; text-align: center; margin: 0 auto; } </style>

<script type=”text/javascript”> function spider_page_1(cur, x, y) { if (jQuery(cur).hasClass(‘disabled’)) { return false; } var items_county_1 = 1; switch (y) { case 1: if (x >= items_county_1) { document.getElementById(‘page_number_1’).value = items_county_1; } else { document.getElementById(‘page_number_1’).value = x + 1; } break; case 2: document.getElementById(‘page_number_1’).value = items_county_1; break; case -1: if (x == 1) { document.getElementById(‘page_number_1’).value = 1; } else { document.getElementById(‘page_number_1’).value = x – 1; } break; case -2: document.getElementById(‘page_number_1’).value = 1; break; default: document.getElementById(‘page_number_1’).value = 1; } spider_frontend_ajax(‘gal_front_form_1’, ‘1’, ‘bwg_standart_thumbnails_1’, ‘0’, ”, ‘album’, 0); } </script>

<script> </script>

Transcript

  • 1. Arthur Berezin, Sr. Technical Product Manager, Red Hat OpenStack In The Enterprise Best practices for deploying enterprise-grade OpenStack implementations TeraSky Tech Day 24/3/2015
  • 2. ● Introduction to OpenStack ● OpenStack Architecture ● Best Practices and Considerations for Production environments: – Layout – High Availability – Compute – Storage – Network Agenda
  • 3. Why does the world need OpenStack?
  • 4. Why does the world need OpenStack? ● Cloud is widely seen as the next-generation IT model ○ Agile and flexible ○ On demand consumption ○ Self service ● Applications are being written differently ○ More tolerant of a failure ○ Making use of scale-out architecture ● Not all organizations are ready for public clouds
  • 5. What is OpenStack? ● Fully open-source cloud “operating system” ● Comprised of several open source sub-projects ● Provides building blocks to create an IaaS cloud ● Governed by the vendor agnostic OpenStack Foundation ● Enormous market momentum
  • 6. How does OpenStack fit in? ● A cloud-like IaaS platform ○ Internal private cloud ○ Test and Dev environments ○ Cloud Service Provider for compute, storage, and network ● Scale-out platform for cloud-enabled workloads ○ Web-scale applications (e.g., NetFlix) ○ Academic, research or pharma workloads ● Platform of choice for Network Functions Virtualization (NFV)
  • 7. OpenStack Architecture
  • 8. OpenStack Architecture ● Made up of individual autonomous components ● A framework, relies on drivers and plugins ● Heavily dependant on Linux
  • 9. OpenStack Identity (Keystone) ● Common authentication and authorization store ● Responsible for users and to which projects they belong to ● All OpenStack services rely on Keystone to verify user requests
  • 10. OpenStack Compute (Nova) ● Responsible for the lifecycle of running instances ● Manages multiple hypervisor types via drivers ○ e.g., Red Hat Enterprise Linux with KVM
  • 11. OpenStack Image (Glance) ● Storage and retrieval of disk images/templates ● Supports a large variety of image formats (e.g., qcow2, vmdk) ● Different backend storage options (e.g., NFS, Ceph)
  • 12. OpenStack Object Store (Swift) ● Storage and retrieval of arbitrary unstructured data ● Provides object based interface via REST API ● Replication, self-healing and load-balancing
  • 13. OpenStack Networking (Neutron) ● Everything networking to instances running within OpenStack ● API for defining, configuring, and using networks ● Relies on a plugin/driver architecture for implementation
  • 14. OpenStack Volume (Cinder) ● Block storage to instances running within OpenStack ● Used for providing persistent and/or additional storage ● Relies on a plugin/driver architecture for implementation
  • 15. OpenStack Orchestration (Heat) ● Facilitates the creation of ‘application stacks’ ● Stacks are imported as descriptive template language ● Allows for dynamic scaling based on configurable metrics
  • 16. OpenStack Telemetry (Ceilometer) ● Central collection of metering and monitoring data ● Consume data from the other components ● Primarily used for chargeback of resource usage
  • 17. OpenStack Dashboard (Horizon) ● OpenStack’s web-based self service portal ● Sits on top of all other components via API interaction ● Provides a subset of underlying functionality
  • 18. Best Practices and Considerations
  • 19. Disclaimer OpenStack is an Engine, You build the car based on needs. Lego, if you’re not a car person
  • 20. Layout High Availability Compute Storage Networking
  • 21. Layout OpenStack Architecture: ● OpenStack services are implemented via several stateless Linux services ● Messaging bus(RabbitMQ) for service intercommunication ● Database for persistent Data
  • 22. Layout Cinder Services: Cinder-API Cinder-Scheduler Cinder-Volume Cinder-backup
  • 23. Layout ● This design allows building custom layouts ● Separating or Segregating ○ Controller Node ○ API/Horizon Dashboard ○ Networking Control Plane ○ Cinder and Glance Storage ● Co-locating Ceph OSD with nova-compute ○ Is this a good idea? Depends on workloads
  • 24. Layout API/ Horizon Dashboard Glance Cinder Nova-Compute Database MQ Messaging Nova-Compute Nova-Compute StorageInternet API Storage Tenant Internet Service Internal Neutron Networking
  • 25. Layout High Availability Compute Storage Networking
  • 26. High Availability Architecture ● 3 Controllers
  • 27. High Availability Architecture ● 3 Controllers ● Database ○ Galera Multi-Master replication ○ MariaDB A/P Cluster ● Message Bus ○ RabbitMQ Mirrored Queues
  • 28. High Availability Architecture Cinder Service Architecture: ● Cinder-API ● Cinder-Scheduler ● Cinder-Volume ● Cinder-backup
  • 29. High Availability Architecture ● LoadBalance Incoming Traffic With HAProxy ● Clustered Services With Pacemaker ● Some services are still A/P(cinder-volume) ● Other implement A/A HA Internally(Neutron VRRP, DVR)
  • 30. Layout High Availability Compute Storage Networking
  • 31. Compute ● Backend Virtualization Driver Choice ○ KVM ○ VMWare (Limited to NSX) ○ Others (HyperV, Xen) ● Ephemeral Disks ○ Local or Shared ○ Live Migration ● Co-Locating Ceph OSD with nova-compute
  • 32. Compute ● Overcommitting CPU / Memory ○ Default CPU overcommit ratio – 16 ○ Default memory overcommit ratio – 1.5 ● Docker Docker Docker ○ Can live within VM Instances ○ nova-docker driver is still out-of-tree in Kilo release ○ Project Magnum was just introduced ■ Docker and Kubernetes -aaS
  • 33. Layout High Availability Compute Storage Networking
  • 34. Storage Glance ● Backends: ● Local, NFS, Ceph RBD, Swift ● Glance Supports Multiple backends ● Stick to those that you already know ● Use Image Caching
  • 35. Cinder ● Backends: ○ Local LVM with iscsi, but no High Availability ○ Ceph RADOS Block Device ○ NetApp, EMC, SolidFire and many others ● Cinder Supports Multiple backends ● Periodic Cinder snapshots ● Optionally Boot from Cinder Volumes Storage
  • 36. Layout High Availability Compute Storage Networking
  • 37. Networking ● Various design choices: ○ Neutron or nova-network ○ Provider network or Tenant network ○ Overlays(VXLAN, GRE) or VLANs ○ SDN, dedicated network controller ○ Open source or commercial solution
  • 38. Networking ● A lot of FUD out there… ● But also some great innovation, especially in open source communities ● Define your business needs ● Analyze your application requirements ○ East/west vs south/north traffic ● Plan for future growth
  • 39. Networking Neutron plugins ● Default ML2/Open vSwitch ● Other open source solutions ○ e.g., OpenContrail, OpenDaylight, MidoNet ● Commercial hardware agnostic ○ e.g., PLUMgrid, NSX ● Commercial hardware specific ○ e.g., Nuage, Cisco ACI Try the Default First
  • 40. Thank you

The post Best Practices and Considerations Deploying OpenStack In Production appeared first on Berezin’s Virtual Clouds.

Powered by WPeMatico