SlideShare a Scribd company logo
1 of 49
Openstack Clouds
     IRL
     Paul Guth
     Cloudscaling




July 26th, 2012        1
LA #openstack meetup
Me



        •   @pgutheb
        •   wordpress.com/constructolution
        •   slideshare.net/pgutheb
        •   paul | at | cloudscaling - dot - com




July 26th, 2012
LA #openstack meetup                   2
Stuff I will say today



        • Context setting
        • What do you do before you build your Openstack cloud
        • What do you do while you’re building your Openstack
            cloud
        • What do you do after you build your Openstack cloud




July 26th, 2012
LA #openstack meetup                3
What is Openstack?



        • Open source cloud management system (IaaS)
        • Five components:
          • Nova - VMs
          • Swift - Object Storage
          • Glance - Images
          • Horizon - Dashboard/UI
          • Keystone - Authentication
        • Great Openstack architecture overview from Ken Pepple



July 26th, 2012
LA #openstack meetup                4
What is a private cloud?




July 26th, 2012
LA #openstack meetup               5
What is a private cloud?



        • Blahblahblahblahblahblahblah




July 26th, 2012
LA #openstack meetup               5
What is a private cloud?



        • Blahblahblahblahblahblahblah
        • “I am not a dictionary, I am a free man!” - Number 6




July 26th, 2012
LA #openstack meetup                 5
What Have We Done?




July 26th, 2012
LA #openstack meetup            6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)




July 26th, 2012
LA #openstack meetup                6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)
        • ~10 distinct internal groups using
          • So exercises multi-tenant features
          • Being used for new cloud-y apps




July 26th, 2012
LA #openstack meetup                6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)
        • ~10 distinct internal groups using
          • So exercises multi-tenant features
          • Being used for new cloud-y apps
        • Multiple sites set up as independent regions (1 AZ/
            region)




July 26th, 2012
LA #openstack meetup                 6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)
        • ~10 distinct internal groups using
          • So exercises multi-tenant features
          • Being used for new cloud-y apps
        • Multiple sites set up as independent regions (1 AZ/
            region)
        • “Several dozen” compute nodes per site (VM capacity of
            “a few thousand”)




July 26th, 2012
LA #openstack meetup                 6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)
        • ~10 distinct internal groups using
          • So exercises multi-tenant features
          • Being used for new cloud-y apps
        • Multiple sites set up as independent regions (1 AZ/
            region)
        • “Several dozen” compute nodes per site (VM capacity of
            “a few thousand”)
        • One site containing Swift



July 26th, 2012
LA #openstack meetup                  6
What Have We Done?



        • Private cloud deployment for BigCo (not a Web co)
        • ~10 distinct internal groups using
          • So exercises multi-tenant features
          • Being used for new cloud-y apps
        • Multiple sites set up as independent regions (1 AZ/
            region)
        • “Several dozen” compute nodes per site (VM capacity of
            “a few thousand”)
        • One site containing Swift
        • Integrated into existing IT Ops processes

July 26th, 2012
LA #openstack meetup                 6
Plan Your Plan



        • Which version of Openstack?
        • What hardware do you use?
        • What Operating System?




July 26th, 2012
LA #openstack meetup               7
What’s in a version?



        • Openstack versions:
          • Bexar (Feb 2011)
          • Cactus (Apr 2011)
          • Diablo-release (Sept 2011)
          • Diablo-stable (Oct 2011) (-final?)
          • Essex (Apr 2012) (you are here)
          • Folsom (Sept 2012)




July 26th, 2012
LA #openstack meetup                8
What’s in a version?



        • Openstack versions:
          • Bexar (Feb 2011)                           Danger
          • Cactus (Apr 2011)                   Will Robinson!
          • Diablo-release (Sept 2011)
          • Diablo-stable (Oct 2011) (-final?)
          • Essex (Apr 2012) (you are here)
          • Folsom (Sept 2012)




July 26th, 2012
LA #openstack meetup                8
What do you put it on?



        • “There are more x86 server platforms in heaven and
            earth than are dreamt of in your philosophy” -
            Shakespeare
        • At scale, you’ll have a huge number of compute nodes, a
            reasonable number of storage nodes, and a small
            number of other nodes - so compute node platform
            generally dominates the decision




July 26th, 2012
LA #openstack meetup                   9
Server Hardware



        • Compute nodes
          • Lots of RAM (64G+)
          • Enough CPU (cost/benefit)
          • Enough disk (more spindles = better)
          • Model the workloads you want to offer to find the right
                 hardware
        • Storage nodes (object servers, not proxies)
          • Lots of spindles
          • Enough space
          • Server memory/CPU not as critical

July 26th, 2012
LA #openstack meetup                 10
One Operating System to Rule Them All



        • We use Ubuntu
          • The vast majority of Openstack development is done
                 on Ubuntu
            • Canonical are big-time bought into Openstack
        • Other OSes probably work, YMMV




July 26th, 2012
LA #openstack meetup                 11
The Great Hypervisor Debate




July 26th, 2012
LA #openstack meetup                12
The Great Hypervisor Debate



        • We use KVM
        • “And that’s all I have to say about that.” - Forrest Gump




July 26th, 2012
LA #openstack meetup                 12
Building your Build



        • Bootstrapping
        • Network configuration
        • Openstack configuration




July 26th, 2012
LA #openstack meetup               13
Bootstrapping




July 26th, 2012
LA #openstack meetup         14
Bootstrapping


        • Openstack does need a running OS to be installed on
          • Fairy dust not on roadmap until 2014




July 26th, 2012
LA #openstack meetup                14
Bootstrapping


        • Openstack does need a running OS to be installed on
          • Fairy dust not on roadmap until 2014
        • Options
          • Bootstrap all your nodes off an ISO yourself
          • Bootstrap all your nodes off a PXEboot server yourself
          • Cobbler, Juju, MAAS (Canonical)
          • Crowbar (Dell)
          • Open Cloud OS (Cloudscaling)
          • PentOS (Piston)



July 26th, 2012
LA #openstack meetup                 14
Bootstrapping


        • Openstack does need a running OS to be installed on
          • Fairy dust not on roadmap until 2014
        • Options
          • Bootstrap all your nodes off an ISO yourself
          • Bootstrap all your nodes off a PXEboot server yourself
          • Cobbler, Juju, MAAS (Canonical)
          • Crowbar (Dell)
          • Open Cloud OS (Cloudscaling)
          • PentOS (Piston)
        • (don’t forget to burnin your hardware!)


July 26th, 2012
LA #openstack meetup                 14
The Network




July 26th, 2012
LA #openstack meetup        15
The Network


        •   Typical setups use 3-4 distinct networks
            •    Hardware management - IPMI, bare-metal mgmt
            •    Node management - PXE, installation, configuration
            •    External - Ingress/Egress traffic
            •    Internal - Admin, Compute->Storage, Compute->Compute
        •   Internal/External can be high bandwidth
        •   Hardware/node management are low-bandwidth




July 26th, 2012
LA #openstack meetup                         15
The Network


        •   Typical setups use 3-4 distinct networks
            •    Hardware management - IPMI, bare-metal mgmt
            •    Node management - PXE, installation, configuration
            •    External - Ingress/Egress traffic
            •    Internal - Admin, Compute->Storage, Compute->Compute
        •   Internal/External can be high bandwidth
        •   Hardware/node management are low-bandwidth
        •   Nova inserts a weird network traffic flow model into your pretty
            network architecture diagrams (central node providing NAT and
            DHCP for all VMs)
            •    Creates SPOF leading to ugly failover implementations (for
                 varying definitions of ugly)
            •    Creates aggregation point for traffic


July 26th, 2012
LA #openstack meetup                         15
Tomato, Tomato



        • You have choices wrt configuration when you deploy
            Openstack
        • APIs
          • S3 vs Swift
          • EC2 vs Nova
        • Queuing models (RabbitMQ vs 0MQ)
        • Network models
        • nova-volume (EBS) vs DAS



July 26th, 2012
LA #openstack meetup               16
Tomato, Tomato



        • You have choices wrt configuration when you deploy
            Openstack
        • APIs
          • S3 vs Swift
          • EC2 vs Nova
        • Queuing models (RabbitMQ vs 0MQ)
        • Network models
        • nova-volume (EBS) vs DAS



July 26th, 2012
LA #openstack meetup               16
Have Cloud, Will Operate



        • Now that you’ve got it, it’s got to run




July 26th, 2012
LA #openstack meetup                  17
You Bought It, You Break It




July 26th, 2012
LA #openstack meetup                18
You Bought It, You Break It



        •   Configuration Management
        •   Capacity Management
        •   User Management
        •   Remote Access
        •   High Availability
        •   Upgrading
        •   Troubleshooting
        •   Monitoring
        •   Auditing




July 26th, 2012
LA #openstack meetup                  18
You Bought It, You Break It



        •   Configuration Management
        •   Capacity Management
        •   User Management
        •   Remote Access
        •   High Availability
        •   Upgrading
        •   Troubleshooting
        •   Monitoring
        •   Auditing
        •   Yes, you need to do these, and no, Openstack doesn’t do them



July 26th, 2012
LA #openstack meetup                    18
What We Do



        •   Configuration Management, User Management = chef
        •   Capacity Management = metrics via collectd
        •   Remote Access = dedicated/hardened SSH server, VPN
        •   Troubleshooting = rsyslog centralized logging, collectd
        •   Monitoring = Nagios, Zabbix
        •   Auditing = tcpspy, auditd




July 26th, 2012
LA #openstack meetup                    19
High Availability

        •   For Nova, several services can be redundant just by
            running more than one instance, like the scheduler
        •   nova-compute and swift-object-server redundancy at the
            node level (any node can fail without it being an
            emergency) - we use that for the services we build where
            possible
        •   Replace RabbitMQ with 0MQ, nova single mySQL DB with
            mySQL cluster behind UCARP failover (similar for glance)
        •   Some services need TCP loadbalancing, e.g. the nova-api
            and swift-proxy services
            •    We do this with Quagga (ECMP OSPF) + Pound (also SSL)
        •   nova-network is tricky - we are taking it out of the critical
            path of NAT and DHCP, replacing it with our own plug-in
            networking driver for Openstack



July 26th, 2012
LA #openstack meetup                     20
Patches/Upgrades




July 26th, 2012
LA #openstack meetup           21
Patches/Upgrades



        •   just run apt-get upgrade




July 26th, 2012
LA #openstack meetup                   21
Patches/Upgrades



        •   just run apt-get upgrade
        •   JUST KIDDING




July 26th, 2012
LA #openstack meetup                   21
Patches/Upgrades



        •   just run apt-get upgrade
        •   JUST KIDDING
        •   Need to consider persistent data - mySQL DB and queues
        •   Can use live-ish migration to take load off of compute servers
            and upgrade individually
        •   As long as you have 3+ zones, you can just take swift nodes
            offline to upgrade individually
        •   Central services require careful planning and testing
        •   Hope for tolerance of multiple versions at once
        •   So far we’ve been able to do everything without impacting VMs
            or objects



July 26th, 2012
LA #openstack meetup                      21
Patches/Upgrades



        •   just run apt-get upgrade
        •   JUST KIDDING
        •   Need to consider persistent data - mySQL DB and queues
        •   Can use live-ish migration to take load off of compute servers
            and upgrade individually
        •   As long as you have 3+ zones, you can just take swift nodes
            offline to upgrade individually
        •   Central services require careful planning and testing
        •   Hope for tolerance of multiple versions at once
        •   So far we’ve been able to do everything without impacting VMs
            or objects
        •   ^^ That is not a guarantee!


July 26th, 2012
LA #openstack meetup                      21
Who Ops your Ops?



        • You probably have an existing IT Ops org and processes
            that will interface with your cloud - if not run it directly
        • Cloud is a different paradigm, requiring different Ops
            perspectives and potentially skillsets
        • Recommendation
          • Build a dedicated Cloud Ops team
          • Build bridges from that team to existing teams from
                 day one




July 26th, 2012
LA #openstack meetup                     22
Summary




July 26th, 2012
LA #openstack meetup      23
Summary



        • You can build and run a private cloud on Openstack
            today




July 26th, 2012
LA #openstack meetup                23
Summary



        • You can build and run a private cloud on Openstack
            today
        • It does require a fair bit of clue and experience




July 26th, 2012
LA #openstack meetup                  23
Summary



        • You can build and run a private cloud on Openstack
            today
        • It does require a fair bit of clue and experience
        • To be reliable and scalable, you have to add lots of stuff
            around the edges and configure it all the right way




July 26th, 2012
LA #openstack meetup                  23
Summary



        • You can build and run a private cloud on Openstack
            today
        • It does require a fair bit of clue and experience
        • To be reliable and scalable, you have to add lots of stuff
            around the edges and configure it all the right way




                              Thank you!
                       @pgutheb / paul at cloudscaling dot com

July 26th, 2012
LA #openstack meetup                    23

More Related Content

What's hot

OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introductionopenstackindia
 
Vancouver open stack meetup presentation
Vancouver open stack meetup presentationVancouver open stack meetup presentation
Vancouver open stack meetup presentationSean Winn
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)Mirantis
 
Deploying Efficient OpenStack Clouds, Yaron Haviv
Deploying Efficient OpenStack Clouds, Yaron HavivDeploying Efficient OpenStack Clouds, Yaron Haviv
Deploying Efficient OpenStack Clouds, Yaron HavivCloud Native Day Tel Aviv
 
Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s GanetiComparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s GanetiGiuseppe Paterno'
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittalbuildacloud
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overviewindevlab
 
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015Deepak Shetty
 
Building a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologiesBuilding a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologiesAlessandro Pilotti
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodePalak Sood
 
Open stack in action enovance-quantum in action
Open stack in action enovance-quantum in actionOpen stack in action enovance-quantum in action
Open stack in action enovance-quantum in actioneNovance
 
State of Linux Containers in OpenStack
State of Linux Containers in OpenStackState of Linux Containers in OpenStack
State of Linux Containers in OpenStackopenstackindia
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstackShivaling Sannalli
 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DaySebastien Goasguen
 
Loadays 2013 OpenNebula Fundamentals
Loadays 2013 OpenNebula FundamentalsLoadays 2013 OpenNebula Fundamentals
Loadays 2013 OpenNebula FundamentalsOpenNebula Project
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalleybuildacloud
 

What's hot (20)

OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
 
Vancouver open stack meetup presentation
Vancouver open stack meetup presentationVancouver open stack meetup presentation
Vancouver open stack meetup presentation
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
 
Deploying Efficient OpenStack Clouds, Yaron Haviv
Deploying Efficient OpenStack Clouds, Yaron HavivDeploying Efficient OpenStack Clouds, Yaron Haviv
Deploying Efficient OpenStack Clouds, Yaron Haviv
 
Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s GanetiComparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 
OpenStack 101 @ ENEI 2014
OpenStack 101 @ ENEI 2014OpenStack 101 @ ENEI 2014
OpenStack 101 @ ENEI 2014
 
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
 
Building a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologiesBuilding a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologies
 
OpenStack Framework Introduction
OpenStack Framework IntroductionOpenStack Framework Introduction
OpenStack Framework Introduction
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute Node
 
Open stack in action enovance-quantum in action
Open stack in action enovance-quantum in actionOpen stack in action enovance-quantum in action
Open stack in action enovance-quantum in action
 
State of Linux Containers in OpenStack
State of Linux Containers in OpenStackState of Linux Containers in OpenStack
State of Linux Containers in OpenStack
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstack
 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud Day
 
Loadays 2013 OpenNebula Fundamentals
Loadays 2013 OpenNebula FundamentalsLoadays 2013 OpenNebula Fundamentals
Loadays 2013 OpenNebula Fundamentals
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
 
OpenStack Juno - October 2014
OpenStack Juno - October 2014OpenStack Juno - October 2014
OpenStack Juno - October 2014
 

Similar to Openstack In Real Life

Workflow Engines for Hadoop
Workflow Engines for HadoopWorkflow Engines for Hadoop
Workflow Engines for HadoopJoe Crobak
 
Ceph Day Seoul - Ceph: a decade in the making and still going strong
Ceph Day Seoul - Ceph: a decade in the making and still going strong Ceph Day Seoul - Ceph: a decade in the making and still going strong
Ceph Day Seoul - Ceph: a decade in the making and still going strong Ceph Community
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...IndicThreads
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack StorageNetApp
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middlewarelyonjug
 
2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BTuictamale
 
Cloud stack design camp on jun 15
Cloud stack design camp on jun 15Cloud stack design camp on jun 15
Cloud stack design camp on jun 15Isaac Chiang
 
Scaling with mongo db (with notes)
Scaling with mongo db (with notes)Scaling with mongo db (with notes)
Scaling with mongo db (with notes)emiltamas
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
 
Crowbar2 update
Crowbar2 updateCrowbar2 update
Crowbar2 updateosonoi
 
Open stack jobs avoiding the axe
Open stack jobs   avoiding the axeOpen stack jobs   avoiding the axe
Open stack jobs avoiding the axeJim Leitch
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceIgor Anishchenko
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceAlex Tumanoff
 
OpenStack: Networking Roadmap, Collaboration and Contribution
OpenStack: Networking Roadmap, Collaboration and ContributionOpenStack: Networking Roadmap, Collaboration and Contribution
OpenStack: Networking Roadmap, Collaboration and ContributionOpen Networking Summit
 
OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise Cisco Canada
 

Similar to Openstack In Real Life (20)

Workflow Engines for Hadoop
Workflow Engines for HadoopWorkflow Engines for Hadoop
Workflow Engines for Hadoop
 
Ceph Day Seoul - Ceph: a decade in the making and still going strong
Ceph Day Seoul - Ceph: a decade in the making and still going strong Ceph Day Seoul - Ceph: a decade in the making and still going strong
Ceph Day Seoul - Ceph: a decade in the making and still going strong
 
Stackato
StackatoStackato
Stackato
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middleware
 
Open sourcery
Open sourceryOpen sourcery
Open sourcery
 
2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT
 
Cloud stack design camp on jun 15
Cloud stack design camp on jun 15Cloud stack design camp on jun 15
Cloud stack design camp on jun 15
 
Scaling with mongo db (with notes)
Scaling with mongo db (with notes)Scaling with mongo db (with notes)
Scaling with mongo db (with notes)
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Crowbar2 update
Crowbar2 updateCrowbar2 update
Crowbar2 update
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Open stack jobs avoiding the axe
Open stack jobs   avoiding the axeOpen stack jobs   avoiding the axe
Open stack jobs avoiding the axe
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
OpenStack: Networking Roadmap, Collaboration and Contribution
OpenStack: Networking Roadmap, Collaboration and ContributionOpenStack: Networking Roadmap, Collaboration and Contribution
OpenStack: Networking Roadmap, Collaboration and Contribution
 
OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Openstack In Real Life

  • 1. Openstack Clouds IRL Paul Guth Cloudscaling July 26th, 2012 1 LA #openstack meetup
  • 2. Me • @pgutheb • wordpress.com/constructolution • slideshare.net/pgutheb • paul | at | cloudscaling - dot - com July 26th, 2012 LA #openstack meetup 2
  • 3. Stuff I will say today • Context setting • What do you do before you build your Openstack cloud • What do you do while you’re building your Openstack cloud • What do you do after you build your Openstack cloud July 26th, 2012 LA #openstack meetup 3
  • 4. What is Openstack? • Open source cloud management system (IaaS) • Five components: • Nova - VMs • Swift - Object Storage • Glance - Images • Horizon - Dashboard/UI • Keystone - Authentication • Great Openstack architecture overview from Ken Pepple July 26th, 2012 LA #openstack meetup 4
  • 5. What is a private cloud? July 26th, 2012 LA #openstack meetup 5
  • 6. What is a private cloud? • Blahblahblahblahblahblahblah July 26th, 2012 LA #openstack meetup 5
  • 7. What is a private cloud? • Blahblahblahblahblahblahblah • “I am not a dictionary, I am a free man!” - Number 6 July 26th, 2012 LA #openstack meetup 5
  • 8. What Have We Done? July 26th, 2012 LA #openstack meetup 6
  • 9. What Have We Done? • Private cloud deployment for BigCo (not a Web co) July 26th, 2012 LA #openstack meetup 6
  • 10. What Have We Done? • Private cloud deployment for BigCo (not a Web co) • ~10 distinct internal groups using • So exercises multi-tenant features • Being used for new cloud-y apps July 26th, 2012 LA #openstack meetup 6
  • 11. What Have We Done? • Private cloud deployment for BigCo (not a Web co) • ~10 distinct internal groups using • So exercises multi-tenant features • Being used for new cloud-y apps • Multiple sites set up as independent regions (1 AZ/ region) July 26th, 2012 LA #openstack meetup 6
  • 12. What Have We Done? • Private cloud deployment for BigCo (not a Web co) • ~10 distinct internal groups using • So exercises multi-tenant features • Being used for new cloud-y apps • Multiple sites set up as independent regions (1 AZ/ region) • “Several dozen” compute nodes per site (VM capacity of “a few thousand”) July 26th, 2012 LA #openstack meetup 6
  • 13. What Have We Done? • Private cloud deployment for BigCo (not a Web co) • ~10 distinct internal groups using • So exercises multi-tenant features • Being used for new cloud-y apps • Multiple sites set up as independent regions (1 AZ/ region) • “Several dozen” compute nodes per site (VM capacity of “a few thousand”) • One site containing Swift July 26th, 2012 LA #openstack meetup 6
  • 14. What Have We Done? • Private cloud deployment for BigCo (not a Web co) • ~10 distinct internal groups using • So exercises multi-tenant features • Being used for new cloud-y apps • Multiple sites set up as independent regions (1 AZ/ region) • “Several dozen” compute nodes per site (VM capacity of “a few thousand”) • One site containing Swift • Integrated into existing IT Ops processes July 26th, 2012 LA #openstack meetup 6
  • 15. Plan Your Plan • Which version of Openstack? • What hardware do you use? • What Operating System? July 26th, 2012 LA #openstack meetup 7
  • 16. What’s in a version? • Openstack versions: • Bexar (Feb 2011) • Cactus (Apr 2011) • Diablo-release (Sept 2011) • Diablo-stable (Oct 2011) (-final?) • Essex (Apr 2012) (you are here) • Folsom (Sept 2012) July 26th, 2012 LA #openstack meetup 8
  • 17. What’s in a version? • Openstack versions: • Bexar (Feb 2011) Danger • Cactus (Apr 2011) Will Robinson! • Diablo-release (Sept 2011) • Diablo-stable (Oct 2011) (-final?) • Essex (Apr 2012) (you are here) • Folsom (Sept 2012) July 26th, 2012 LA #openstack meetup 8
  • 18. What do you put it on? • “There are more x86 server platforms in heaven and earth than are dreamt of in your philosophy” - Shakespeare • At scale, you’ll have a huge number of compute nodes, a reasonable number of storage nodes, and a small number of other nodes - so compute node platform generally dominates the decision July 26th, 2012 LA #openstack meetup 9
  • 19. Server Hardware • Compute nodes • Lots of RAM (64G+) • Enough CPU (cost/benefit) • Enough disk (more spindles = better) • Model the workloads you want to offer to find the right hardware • Storage nodes (object servers, not proxies) • Lots of spindles • Enough space • Server memory/CPU not as critical July 26th, 2012 LA #openstack meetup 10
  • 20. One Operating System to Rule Them All • We use Ubuntu • The vast majority of Openstack development is done on Ubuntu • Canonical are big-time bought into Openstack • Other OSes probably work, YMMV July 26th, 2012 LA #openstack meetup 11
  • 21. The Great Hypervisor Debate July 26th, 2012 LA #openstack meetup 12
  • 22. The Great Hypervisor Debate • We use KVM • “And that’s all I have to say about that.” - Forrest Gump July 26th, 2012 LA #openstack meetup 12
  • 23. Building your Build • Bootstrapping • Network configuration • Openstack configuration July 26th, 2012 LA #openstack meetup 13
  • 24. Bootstrapping July 26th, 2012 LA #openstack meetup 14
  • 25. Bootstrapping • Openstack does need a running OS to be installed on • Fairy dust not on roadmap until 2014 July 26th, 2012 LA #openstack meetup 14
  • 26. Bootstrapping • Openstack does need a running OS to be installed on • Fairy dust not on roadmap until 2014 • Options • Bootstrap all your nodes off an ISO yourself • Bootstrap all your nodes off a PXEboot server yourself • Cobbler, Juju, MAAS (Canonical) • Crowbar (Dell) • Open Cloud OS (Cloudscaling) • PentOS (Piston) July 26th, 2012 LA #openstack meetup 14
  • 27. Bootstrapping • Openstack does need a running OS to be installed on • Fairy dust not on roadmap until 2014 • Options • Bootstrap all your nodes off an ISO yourself • Bootstrap all your nodes off a PXEboot server yourself • Cobbler, Juju, MAAS (Canonical) • Crowbar (Dell) • Open Cloud OS (Cloudscaling) • PentOS (Piston) • (don’t forget to burnin your hardware!) July 26th, 2012 LA #openstack meetup 14
  • 28. The Network July 26th, 2012 LA #openstack meetup 15
  • 29. The Network • Typical setups use 3-4 distinct networks • Hardware management - IPMI, bare-metal mgmt • Node management - PXE, installation, configuration • External - Ingress/Egress traffic • Internal - Admin, Compute->Storage, Compute->Compute • Internal/External can be high bandwidth • Hardware/node management are low-bandwidth July 26th, 2012 LA #openstack meetup 15
  • 30. The Network • Typical setups use 3-4 distinct networks • Hardware management - IPMI, bare-metal mgmt • Node management - PXE, installation, configuration • External - Ingress/Egress traffic • Internal - Admin, Compute->Storage, Compute->Compute • Internal/External can be high bandwidth • Hardware/node management are low-bandwidth • Nova inserts a weird network traffic flow model into your pretty network architecture diagrams (central node providing NAT and DHCP for all VMs) • Creates SPOF leading to ugly failover implementations (for varying definitions of ugly) • Creates aggregation point for traffic July 26th, 2012 LA #openstack meetup 15
  • 31. Tomato, Tomato • You have choices wrt configuration when you deploy Openstack • APIs • S3 vs Swift • EC2 vs Nova • Queuing models (RabbitMQ vs 0MQ) • Network models • nova-volume (EBS) vs DAS July 26th, 2012 LA #openstack meetup 16
  • 32. Tomato, Tomato • You have choices wrt configuration when you deploy Openstack • APIs • S3 vs Swift • EC2 vs Nova • Queuing models (RabbitMQ vs 0MQ) • Network models • nova-volume (EBS) vs DAS July 26th, 2012 LA #openstack meetup 16
  • 33. Have Cloud, Will Operate • Now that you’ve got it, it’s got to run July 26th, 2012 LA #openstack meetup 17
  • 34. You Bought It, You Break It July 26th, 2012 LA #openstack meetup 18
  • 35. You Bought It, You Break It • Configuration Management • Capacity Management • User Management • Remote Access • High Availability • Upgrading • Troubleshooting • Monitoring • Auditing July 26th, 2012 LA #openstack meetup 18
  • 36. You Bought It, You Break It • Configuration Management • Capacity Management • User Management • Remote Access • High Availability • Upgrading • Troubleshooting • Monitoring • Auditing • Yes, you need to do these, and no, Openstack doesn’t do them July 26th, 2012 LA #openstack meetup 18
  • 37. What We Do • Configuration Management, User Management = chef • Capacity Management = metrics via collectd • Remote Access = dedicated/hardened SSH server, VPN • Troubleshooting = rsyslog centralized logging, collectd • Monitoring = Nagios, Zabbix • Auditing = tcpspy, auditd July 26th, 2012 LA #openstack meetup 19
  • 38. High Availability • For Nova, several services can be redundant just by running more than one instance, like the scheduler • nova-compute and swift-object-server redundancy at the node level (any node can fail without it being an emergency) - we use that for the services we build where possible • Replace RabbitMQ with 0MQ, nova single mySQL DB with mySQL cluster behind UCARP failover (similar for glance) • Some services need TCP loadbalancing, e.g. the nova-api and swift-proxy services • We do this with Quagga (ECMP OSPF) + Pound (also SSL) • nova-network is tricky - we are taking it out of the critical path of NAT and DHCP, replacing it with our own plug-in networking driver for Openstack July 26th, 2012 LA #openstack meetup 20
  • 39. Patches/Upgrades July 26th, 2012 LA #openstack meetup 21
  • 40. Patches/Upgrades • just run apt-get upgrade July 26th, 2012 LA #openstack meetup 21
  • 41. Patches/Upgrades • just run apt-get upgrade • JUST KIDDING July 26th, 2012 LA #openstack meetup 21
  • 42. Patches/Upgrades • just run apt-get upgrade • JUST KIDDING • Need to consider persistent data - mySQL DB and queues • Can use live-ish migration to take load off of compute servers and upgrade individually • As long as you have 3+ zones, you can just take swift nodes offline to upgrade individually • Central services require careful planning and testing • Hope for tolerance of multiple versions at once • So far we’ve been able to do everything without impacting VMs or objects July 26th, 2012 LA #openstack meetup 21
  • 43. Patches/Upgrades • just run apt-get upgrade • JUST KIDDING • Need to consider persistent data - mySQL DB and queues • Can use live-ish migration to take load off of compute servers and upgrade individually • As long as you have 3+ zones, you can just take swift nodes offline to upgrade individually • Central services require careful planning and testing • Hope for tolerance of multiple versions at once • So far we’ve been able to do everything without impacting VMs or objects • ^^ That is not a guarantee! July 26th, 2012 LA #openstack meetup 21
  • 44. Who Ops your Ops? • You probably have an existing IT Ops org and processes that will interface with your cloud - if not run it directly • Cloud is a different paradigm, requiring different Ops perspectives and potentially skillsets • Recommendation • Build a dedicated Cloud Ops team • Build bridges from that team to existing teams from day one July 26th, 2012 LA #openstack meetup 22
  • 45. Summary July 26th, 2012 LA #openstack meetup 23
  • 46. Summary • You can build and run a private cloud on Openstack today July 26th, 2012 LA #openstack meetup 23
  • 47. Summary • You can build and run a private cloud on Openstack today • It does require a fair bit of clue and experience July 26th, 2012 LA #openstack meetup 23
  • 48. Summary • You can build and run a private cloud on Openstack today • It does require a fair bit of clue and experience • To be reliable and scalable, you have to add lots of stuff around the edges and configure it all the right way July 26th, 2012 LA #openstack meetup 23
  • 49. Summary • You can build and run a private cloud on Openstack today • It does require a fair bit of clue and experience • To be reliable and scalable, you have to add lots of stuff around the edges and configure it all the right way Thank you! @pgutheb / paul at cloudscaling dot com July 26th, 2012 LA #openstack meetup 23

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. SKIP after “no”\n
  15. SKIP after “no”\n
  16. SKIP after “no”\n
  17. SKIP after “no”\n
  18. SKIP after “no”\n
  19. \n
  20. \n
  21. SKIP\n
  22. SKIP\n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n