Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Open stackconference deployingopenstack-final-2010-11-10

on

  • 2,673 views

OpenStack Object Storage offers a promising solution for service providers who need to provide a high-capacity storage system running on commodity hardware. This presentation covers the approach that ...

OpenStack Object Storage offers a promising solution for service providers who need to provide a high-capacity storage system running on commodity hardware. This presentation covers the approach that the Cloudscaling team has taken to deploying Object Storage clusters utilizing OpenStack. Hardware selection, deployment strategies, client libraries, billing concerns, authentication systems and developing user interfaces are addressed.

Statistics

Views

Total Views
2,673
Views on SlideShare
1,512
Embed Views
1,161

Actions

Likes
0
Downloads
88
Comments
1

4 Embeds 1,161

http://joearnold.com 1143
http://joearnold.wordpress.com 11
url_unknown 4
http://webcache.googleusercontent.com 3

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br /> This is a photo/video of one of the swift clusters we&#x2019;ve stood up. <br /> Just last week. Visiting Data Center. Half-jokingly asked a colleague, what would happen... <br /> So he reached over and I stopped him to take a video, just because I thought it was so cool. <br /> Storage is fragile. <br /> We&#x2019;ve all had the pain. Loosing your company&#x2019;s data, or loss of reputation as a service provider or vendor. <br /> Or the data becomes unavailable for some reason and it takes a long time for recovery, causing extensive downtime. <br /> The consequences of data loss or corruption is extremely high. <br /> That is what was so revolutionary in my eye about having the _confidence_ of being able to casually walk up and pull the plug. <br /> <br /> What I&#x2019;m going to talk about is deploying the Open Stack Object Storage project Swift. <br /> - Why we think it&#x2019;s going to be a huge force <br /> - I&#x2019;m going to share our experiences with swift. Standing up the hardware and software. <br /> - Finally, what it takes to go live with Swift &#x201C;as-a-service&#x201D; <br />
  • What we do help telcos and service providers build the most competitive clouds in&#xA0;the world; <br /> We build large scale, highly competitive Public Clouds for Global 300 Telcos and service providers <br />
  • <br /> <br /> <br /> <br /> Just to baseline. Swift is the project name for the OpenStack Object Storage. <br /> <br /> It&#x2019;s a storage service that is accessed via an API. <br /> Via the api you can create containers and PUT objects (data) into them. <br /> ***That&#x2019;s about it. <br /> It&#x2019;s not a blocks. <br /> It&#x2019;s not a filesystem. <br /> <br /> Needs an ecosystem <br /> <br /> <br />
  • Through this talk I&#x2019;ll be mostly address everything around Swift. <br /> <br /> This isn&#x2019;t going to be a talk about the internals or externals of Swift. <br /> There is plentiful and ever-increasing documentation covering the core Swift mechanisms. <br /> And to those implementors and operators who are in the room today, thanks for open-sourcing your baby. <br /> We&#x2019;ve enjoyed baby-sitting. <br />
  • I first want to talk about the ecosystem. <br /> But to give context, let me go over a brief history. <br />
  • This whole thing got started in 2006 when Amazon launched S3, Simple Storage Service. <br /> And if everyone can re-wind in their heads back to 2006 when S3 came out. <br /> It was a strange animal. It made sense, but it was kind-of a novelty. <br /> - No SLA <br /> - Paranoid about &#x201C;outsourcing data&#x201D; <br /> But we got used to it. It started with backup tools. <br /> <br /> When new applications were developed, application developers became really keen on using S3 <br /> - Didn&#x2019;t need to go out and buy a storage array <br /> -- And no upfront cost <br /> -- They didn&#x2019;t need to guess at how much they were going to use <br /> <br /> For these reasons, S3 became more and more baked into the tools that developers were using. <br /> - Ruby on Rails (paperclip) <br /> - Zend PHP <br /> - Hadoop (map-reduce) <br /> <br /> /* At the Ruby on Rails deployment company, Engine Yard (which is where I was before Cloudscaling). <br /> - In 2008, we developed an AWS-based deployment platform. <br /> - The old deployment system was on in-house hardware. <br /> - One of the features was a clustered, posix-compliant filesystem with GFS. You could have many virtual machines all connecting to the same volume in a relatively-sane way. <br /> - In the move to AWS, we couldn&#x2019;t provide the same type of storage system. <br /> - But because S3 had permeated into the tools developers were using, it wasn&#x2019;t an issue. <br /> */ <br /> <br />
  • In 2008, Mosso, a subsidiary of Rackspace, launched its own Object Storage system called CloudFS, now called Rackspace Cloud Files. <br /> <br /> <br />
  • And, of course, over this summer the project was open-sourced as part of the OpenStack project. <br /> <br /> And that brings us to present day. <br /> <br /> ***So here we are: <br /> - Object Storage is a big market. With two big players in the space. <br /> - Rackspace has open-sourced their implementation <br /> - This sets the stage for more deployments going forward <br /> <br />
  • *** <br /> Ecosystem of tools is emerging, but we&#x2019;re very early in this cycle for Swift. <br /> <br /> (recycle-like logo) <br /> There is opportunity for a positive feedback loop to happen. <br /> - The better the tools, the more compelling it will be for more implementations of Swift to come online. <br /> - The more implementations of swift, the more attractive it becomes to build great tooling around it. <br /> <br /> Our customers need a cloud storage product to offer. They have a choice to make -- bring up something that is compatible with S3 APIs or use Swift and the OpenStack API. <br /> - While the volume of tooling out there favors S3, the stage isn&#x2019;t quite set to deploy your own S3-compatible system. <br /> -- The S3-based solutions have to _emulate_ an implementation. <br /> - Swift offers a much higher degree of compatibility with an existing Rackspace Cloud Files tool ecosystem. <br /> -- with Swift you can use the _actual_ implementation. <br /> <br /> So speaking of tooling... Here&#x2019;s a report: <br />
  • - Cyberduck: Mac-based GUI. Needed patching. Author has pulled in changes in latest build. <br /> - Fog: Ruby, multi-cloud library. Needed patching. Wesley Berry has pulled in our changes. (But it still references Rackspace in its interface.) <br /> - Cloudfuse: Implements a FUSE-based filesystem. Needed patching. Still working on getting changes merged. <br /> - Rackspace&#x2019;s libraries: Again, some needed patching to support a Swift cluster. Very quick response to folding in patches. <br /> <br /> <br /> So if you&#x2019;re thinking of deploying an openstack object storage, there is a reasonable body of open-source tools and client libraries. <br /> <br /> So that brings us to getting this up and running with service providers. <br /> <br /> /* <br /> What&#x2019;s missing from this list are cloud management services. <br /> I would love to talk with those who are providing OpenStack support. <br /> <br /> I know what it&#x2019;s going to take to provide the real motivation is a large potential customer base, that&#x2019;s going to show up when there are running, public, implementations of OpenStack. <br /> */ <br />
  • - Cyberduck: Mac-based GUI. Needed patching. Author has pulled in changes in latest build. <br /> - Fog: Ruby, multi-cloud library. Needed patching. Wesley Berry has pulled in our changes. (But it still references Rackspace in its interface.) <br /> - Cloudfuse: Implements a FUSE-based filesystem. Needed patching. Still working on getting changes merged. <br /> - Rackspace&#x2019;s libraries: Again, some needed patching to support a Swift cluster. Very quick response to folding in patches. <br /> <br /> <br /> So if you&#x2019;re thinking of deploying an openstack object storage, there is a reasonable body of open-source tools and client libraries. <br /> <br /> So that brings us to getting this up and running with service providers. <br /> <br /> /* <br /> What&#x2019;s missing from this list are cloud management services. <br /> I would love to talk with those who are providing OpenStack support. <br /> <br /> I know what it&#x2019;s going to take to provide the real motivation is a large potential customer base, that&#x2019;s going to show up when there are running, public, implementations of OpenStack. <br /> */ <br />
  • - Cyberduck: Mac-based GUI. Needed patching. Author has pulled in changes in latest build. <br /> - Fog: Ruby, multi-cloud library. Needed patching. Wesley Berry has pulled in our changes. (But it still references Rackspace in its interface.) <br /> - Cloudfuse: Implements a FUSE-based filesystem. Needed patching. Still working on getting changes merged. <br /> - Rackspace&#x2019;s libraries: Again, some needed patching to support a Swift cluster. Very quick response to folding in patches. <br /> <br /> <br /> So if you&#x2019;re thinking of deploying an openstack object storage, there is a reasonable body of open-source tools and client libraries. <br /> <br /> So that brings us to getting this up and running with service providers. <br /> <br /> /* <br /> What&#x2019;s missing from this list are cloud management services. <br /> I would love to talk with those who are providing OpenStack support. <br /> <br /> I know what it&#x2019;s going to take to provide the real motivation is a large potential customer base, that&#x2019;s going to show up when there are running, public, implementations of OpenStack. <br /> */ <br />
  • - Cyberduck: Mac-based GUI. Needed patching. Author has pulled in changes in latest build. <br /> - Fog: Ruby, multi-cloud library. Needed patching. Wesley Berry has pulled in our changes. (But it still references Rackspace in its interface.) <br /> - Cloudfuse: Implements a FUSE-based filesystem. Needed patching. Still working on getting changes merged. <br /> - Rackspace&#x2019;s libraries: Again, some needed patching to support a Swift cluster. Very quick response to folding in patches. <br /> <br /> <br /> So if you&#x2019;re thinking of deploying an openstack object storage, there is a reasonable body of open-source tools and client libraries. <br /> <br /> So that brings us to getting this up and running with service providers. <br /> <br /> /* <br /> What&#x2019;s missing from this list are cloud management services. <br /> I would love to talk with those who are providing OpenStack support. <br /> <br /> I know what it&#x2019;s going to take to provide the real motivation is a large potential customer base, that&#x2019;s going to show up when there are running, public, implementations of OpenStack. <br /> */ <br />
  • <br />
  • We&#x2019;ve been working with OpenStack Object Storage since it came out in late July. <br /> Because Object Storage deployments makes a lot of sense for our clients. <br /> <br /> Having a way to conveniently host data is a very good thing for a service provider. <br /> 1) It&#x2019;s good to have data close to the resources they&apos;re using (with compute, or content distribution, for example) <br /> 2) It&#x2019;s awfully convenient to have a place for data <br /> - whether that&#x2019;s for backups <br /> - media assets. <br /> 3) Provide in-house tools to build an application around <br /> - anywhere you are using S3 / CloudFiles during application development <br /> <br /> Now, if you want, you can build and run your own cluster with the <br /> - performance characteristics that you choose <br /> - where you choose, <br /> - with the security model you want <br /> <br /> In less than 2 months, we had a reasonably-sized <br /> - 100TB deployment that allowed us to get a good idea of how this system would behave. <br /> - We&#x2019;re in process of standing up a larger, multi-rack system. <br /> <br /> <br />
  • Here is what it looked like. <br /> <br />
  • What we learned was this: Swift alone doesn&#x2019;t equal a whole service. <br /> - The Swift code provides the kernel of functionality <br /> - But there is much software to write, systems to integrate, hardware choices and design decisions to make. <br /> <br /> The components are <br /> - Data Center Concerns <br /> - Networking <br /> - Hardware Choices <br /> - Access Layer <br /> - Installing <br /> <br /> Let&#x2019;s first dive into the core of what the choices we made to get Swift up and running. <br /> <br /> <br />
  • Early on in the standup process. <br /> <br /> Swift has this concept of Zones. Zones designed to be physical segmentation of data. <br /> - Racks, power sources, fire sprinkler heads, physical buildings <br /> - Boundaries that can isolate physical failures <br /> <br /> The standard configuration is to have data replicated across three zones. <br /> <br /> So initially we were thinking, well, let&#x2019;s just create three zones. <br /> <br /> But the problem is, if one of the zones catastrophically fails, there isn&#x2019;t another zone for the data to move into. <br /> <br /> Now, we wanted to be able to tolerate a whole rack failure and still have a place for data to land. <br /> <br /> We choose to go with 5 zones. <br /> If we had two total zone failures, and there was enough capacity remaining in the system, we could run with. <br /> <br /> With our small deployment where we had one machine == one zone <br /> Our larger deployment will have one rack == one zone <br /> <br />
  • The Data Center <br /> One of the 1st things to note is power density -or- space requirements of the system <br /> - mechanical things tend to draw a lot of power. <br /> - In our configuration, to utilize a full-rack in a data center, we had to live in a &#x201C;high-density&#x201D; neighborhood of the data center. <br /> - Our configuration runs with 10 4u object stores ran 7kw a rack <br /> - That&#x2019;s 370 drives per rack. <br /> - Careful when powering up whole racks <br /> - Plan accordingly <br /> <br /> - The other option for us was to &#x201C;go wide&#x201D; and run 1/2 racks, where we would use more space. <br /> <br />
  • The Networking <br /> We took a 2-tier approach. <br /> It starts out with a pair of redundant aggregation switches. <br /> A single switch would be a single point of failure. <br /> <br /> All requests go through the &#x201C;Access Layer&#x201D; that connect directly to the aggregation switches at 10GbE. <br /> - The access layer contains proxy servers, authentication, load balancers, etc. <br /> <br /> Each rack has a single switch that is connected via 10GbE to the aggregation layer. <br /> - We went with single as we plan on being able to handle single rack failures. <br /> <br /> And it tapers down to 1GbE to an individual object store from the top-of-rack switches. <br />
  • The object stores: <br /> Beefy! <br /> - 48GB RAM <br /> - 36 2TB <br /> - Newish Xeon <br /> <br /> These are not just a bunch of disks! <br /> The system has a lot of work to do. Lots of metadata to keep in memory. <br /> ***Lots of processes needed to be ran to handle the parallelism. <br /> Commodity, but enterprise quality gear. Enterprise drives. <br /> <br /> /* <br /> SATA not SAS <br /> */ <br />
  • Access Layer <br /> AKA &#x201C;Proxy Servers&#x201D; <br /> <br /> - Needed to be beefier than we originally thought. <br /> - We settled on a newish Xeon w/ 24 GB RAM <br /> - 10 GbE <br /> <br /> Our original deployment bottlenecked here. <br />
  • Huge caveat here. <br /> Different usage patterns will dramatically very Architecture, Hardware and Networking mix <br /> - Archive <br /> -- Occasionally tar-up a wad of data and park it there. <br /> -- Much lower burden on the entire system. <br /> - Trusted networks <br /> -- Don&#x2019;t need SSL, but wants lots of bandwidth <br /> - Lots of little puts and gets <br /> -- Proxy servers will need to handle the SSL load of many requests <br /> <br /> Although I just outlined some hardware here. It&#x2019;s not an exact recipe to follow. <br />
  • How the system is used has a huge impact on what to build. <br /> <br /> The next uncharted territory we had to figure out was what we&#x2019;re calling the &#x2018;Access Layer&#x2019; <br /> <br /> You need to run the swift proxy-server process, which routes requests to the correct location in the object stores (using the ring) <br /> <br /> In addition: <br /> - But you&#x2019;re also likely to want to handle SSL termination <br /> - And to load balance across the servers running the proxy processes <br /> - We&#x2019;ve also heard about using a commercial load balancer here as well <br /> - HA Solution <br /> <br /> Many options here: <br /> - What we&#x2019;re running is a round-robin DNS w/ Nginx terminating SSL directly in front of the proxy. <br /> - What we&#x2019;re likely to end up with is running an HA Proxy configuration sharing an IP using VRRP for HA, dumping straight into the proxy processes <br /> <br /> Being pragmatic, there are other services that need a home as well <br /> - Authentication <br /> - Portal <br /> Sticking them in the access layer can make a whole lot of sense. <br />
  • So what did we learn about this configuration? <br /> <br /> - High data rates typically require a lot of parallel accesses, there is often significant per-access latency (10s of ms, 1000x what a san or local storage device might show) <br /> - But the tradeoff is a ton of objects can be retrieved and written at the same time. Having a lot of RAM in aggregate helps. It makes the metadata costs for accessing lots of objects manageable.- We grossly undersized the proxy servers. <br /> <br /> We did a ton of testing: <br /> - Bitrot, bad disk, (happened to have) bad DIMM, failed node, failed zone, failed switch <br /> <br /> This is an embarrassing story, but it&#x2019;s worth telling. We even had one of the zones down for two days right early on. Nobody noticed. We noticed when we re-ran some benchmarks and some of the peak performance numbers weren&apos;t what they were on a previous run. <br /> <br /> <br />
  • When you buy a new car today. You open up the hood and there is a black plastic cover over the engine. <br /> To diagnose, you plug the car into a computer and there are sensors all over the place to tell you what is wrong and how to fix it. <br /> <br /> We need to be mindful to the fact that this is just one of many systems that they operate. <br /> <br /> As much as possible, we&#x2019;d like to hand them a whole working product that tells them how to operate and maintain it. <br /> <br /> For there to be a large number of swift deployments, the system needs to have handles so that operators can maintain their system. <br /> <br /> I think this will be a key trait for swfit to go mainstream. <br /> <br /> Here is what we&#x2019;ve assembled so far. <br />
  • <br /> We built an installer. <br /> <br /> Installing: <br /> - To operate at any reasonable scale, consistency in configuration is hugely important. <br /> - So we automate the crap out of everything. <br /> - This installer (which runs as a virtual appliance) brings bare metal to fully-installed node <br /> <br /> It is running a PXE server, so machines can ask for a new OS <br /> Our configuration management tool of choice is Chef, so the installer is running chef-server <br /> <br /> The net effect is that an operator can use a cli tool and punch in the mac address & what role the machine should be. <br /> And this system will take it from factory fresh, to a fully-installed swift node. <br /> <br /> <br />
  • A big web application <br /> <br /> Software System. <br /> <br /> Automating the install is not enough. <br /> <br /> A couple of years ago, I was going through the process of choosing a storage vendor. <br /> - Each sales team that I met with said the same thing: &#x201C;We&#x2019;re a software company&#x201D; <br /> - Now, I think they said that because there is more margin in being a software company. <br /> - But in truth, they&#x2019;re right. There is a heck of a lot in the software that drives these systems. <br /> <br /> We treat the entire system as if it were a big web application that is undergoing active development. <br /> <br /> Change happens. We are continuously adding features or needing to respond to operational issues <br /> <br /> We pull from our dev ops roots to build tooling that is capable of driving frequent change into the system. <br /> We must be able to perform upgrades in the field with confidence. <br /> <br /> Here is what we have put together for Swift: <br /> <br />
  • The first thing we put together was to automate the Swift &#x2018;all-in-one&#x2019; so that we could have a one button install of a local development environment. <br /> - This brought the system up from a fresh ubuntu install on a single VM somewhere. <br /> - Perfect to do local development on. <br /> - This we have up on github if you want to check it out. <br /> <br /> The next step was to model-out a simulated deployment of how we were to configure a production environment. <br /> - In a lab environment, we recreate the production environment with virtual machines. <br /> - And remember that &#x2018;virtual appliance&#x2019; installer that does the provisioning? <br /> - We use that same tool so that we can have a self-contained, simulated build of the entire system. <br /> <br /> Next, we have our small-ish environment where we have one physical machine per zone. <br /> - We can use that environment as a pre-production for changes. <br /> <br /> <br />
  • Finally, to vet the software changes as they are being made, we have a continuous integration setup with Hudson. <br /> When code is checked-in, we can rebuild in the lab. This is the system with a bunch of VMs. <br /> Tests can be ran against that system and report any errors that crop up. <br /> <br /> /* A full-rebuild takes us about 45 minutes. */ <br /> <br /> All these systems put together gives us the confidence that the system that we&#x2019;ve put together will run well and upgrade smoothly. <br /> <br /> /* <br /> Time-to-live is a big deal for us. <br /> We aggressively pursue automation because it enables a repeatable deployment process at scale. <br /> <br /> Yes, a lot of time was spent automating the install of Swift. But we built these systems because we ended up doing a lot of software development to integrate Swift and to make it run, &#x2018;as a service&#x2019;. <br /> */ <br />
  • Finally, operators need to know when the system needs work. <br /> <br /> We&#x2019;re baking in monitoring agents as part of the system install. <br /> <br /> Because we have lot cost install tools, we are favoring replacement over repair. <br /> - For example if a boot volume goes bad, or bad DIMMs. <br /> - Basically anything that doesn&#x2019;t involve swapping out a drive. <br /> - It&#x2019;s easier to replace the component, have the system rebalance itself and add new equpment. <br /> <br /> - Integrate w/ existing NOC systems <br /> -- nobody will act upon an alert that isn&#x2019;t seen <br /> <br /> <br />
  • OpenStack Object Storage: As a Service <br /> <br /> <br /> Okay Great. We had our swift cluster up and running, now we can sell some storage... right! <br /> <br /> sort or. <br /> What&#x2019;s left? All those things that enable the system to be sold &#x201C;as a service&#x201D; <br /> <br /> Transition slide to next subjects: <br /> - Utilization & Billing integration <br /> - Authentication <br /> - Portal <br /> - Logging <br /> <br />
  • Billing <br /> This is a huge topic! We could have an entire talk on this topic alone. <br /> Collect and store those metrics. Not baked into Swift -- yet. <br /> - We had to collaborate on some of the utilization code for swift <br /> - But we have to tune it for our customers billing plan <br /> <br /> Utilization <br /> - must compute storage &#x2018;averages&#x2019; measuring on some interval you feel comfortable with <br /> - Decide if you are going to keep track of small obj / num requests <br /> <br /> Do you bill for requests? or make small files penal? charge for internal access? <br /> At one company I was a heavy user of Amazon S3 -- they called me up out of the blue and told me to re-architect our application because we were creating too many &#x2018;Buckets&#x2019; (Folders). Apparently we were causing excessive load. He thought he was being helpful saying &#x201C;you will save $700 a month!&#x201D; I appreciated the sentiment to try to save me money, but the cost of re-architecting the app would be more than a reasonable payback period in that context. The excessive load was their problem. I was okay paying an extra $700 a month. <br /> <br /> The moral of the story is to be okay with the usage you price for. <br /> <br />
  • Welcome to the world of consumption-pricing vs. capacity pricing. <br /> Making a dinner reservation at the hippest restaurant in town. <br /> They ask for your credit-card. Why? Because if you don&#x2019;t show up, they still need to charge you for the meal you didn&#x2019;t eat. <br /> They&#x2019;re practicing capacity pricing. They have a fixed number of seats that they need to fill. <br /> <br /> This same practice is the standard in our industry. When you go buy a bit of storage equipment, you buy based on its capacity. You can&#x2019;t say to a vendor... would you mind installing 100 TB of storage, but I&#x2019;ll only pay for 50... because I only plan on using 50TB on _average_. They would laugh you out the door! <br /> <br /> When you go to buy bandwidth, you are charged 95-percentile. You pay for bandwidth that goes unused because you&#x2019;re paying for the capacity to be available with some wiggle-room for extra-ordinary bursts. <br /> <br /> So service providers are having to figure out how to deal with this. <br /> It&#x2019;s a bigger deal at a smaller scale. A single customer could but-in and consume a large amount of a cluster on a percentage basis. <br /> The averages even out at a larger scale. <br /> <br />
  • - This is a multi-tenant system <br /> <br /> - The Authentication server that comes with Swift is not intended to be used by a service provider. It is a placeholder with significant performance issues, missing features and bugs. And that&#x2019;s okay! Because if you are a service provider, you will certainly be integrating into an existing customer authentication system. <br /> - However, you will need to setup a few things in between the core storage cluster and your authentication system. <br /> - Clients (as in libraries/tools/services) expect to hit an auth server so that they can get 1) a token that can be used with subsequent requests and 2) a URL of the storage system they should hit. <br /> - This &#x201C;Authentication Middleware&#x201D; must also be capable of getting a token from the storage cluster to verify that it&#x2019;s still good. <br /> - So here is how the process works: Client makes request to Auth server and gets a token + URL, Client makes API calls to the storage cluster with the Token, The storage cluster asks the Auth Server if the token is good. <br /> <br />
  • On top of the authentication system, we&#x2019;re building a system to create API keys. <br /> - API keys are useful because it allows clients (which are code libraries, desktop clients and other services) to authenticate without putting password. <br /> - What you don&#x2019;t want to do is have your username / password checked-in to a source repository, or hand it over to a 3rd-party service, like a scalr, rightscale, etc. <br /> - So you&#x2019;ll need to build an additional service that creates and manages API Keys. <br /> <br />
  • - Even if all the users are we come across are programmers... it&#x2019;s still nice to be able to login and poke around and do stuff with a mouse. <br /> - Look at a bill, manipulate data, etc. <br /> <br /> /* <br /> - But that&#x2019;s not what we&#x2019;re typically seeing with our &#x2018;as a service&#x2019; deployments. They want the data to get there so something can be done with it! <br /> - So often-times the customer portal work _is_ the application itself. <br /> */ <br />
  • Internal Dashboards <br /> - Manage accounts <br /> <br /> <br /> <br /> <br /> <br />
  • Be-all-end all <br /> <br /> Getting the mechanics of getting / storing and dishing-out data should be boring. <br /> <br /> - If we can provide a system with a strong ecosystem of tooling, that is manageable, easy to operate <br /> -- It can serve as a platform, a jumping-off point for the rest of the services. <br /> - Where the value is, is what is done with the data. <br /> - That&#x2019;s where the high-margin products are. <br />
  • <br />

Open stackconference deployingopenstack-final-2010-11-10 Open stackconference deployingopenstack-final-2010-11-10 Presentation Transcript

  • Deploying OpenStack: Object Storage November 10, 2010 Joe Arnold
  • Unplugged
  • Building cloud infrastructure for telcos and service providers
  • Object Storage API Data Storage
  • Object Storage Ecosystem Deploying As a Service
  • Object Storage Ecosystem Deploying As a Service
  • Cloud Computing Development s3 ’06 ’07 ’08 ’09 ’10
  • Cloud Computing Development s3 Cloud Files ’06 ’07 ’08 ’09 ’10
  • Cloud Computing Development s3 Cloud Files Object Storage ’06 ’07 ’08 ’09 ’10
  • Ecosystem OpenStack Providers Tools OpenStacks or S3?
  • OpenSource Projects CyberDuck Ruby Multi-Cloud Library Filesystem Rackspace Library
  • OpenSource Projects CyberDuck Ruby Multi-Cloud Library Filesystem Rackspace Library
  • OpenSource Projects CyberDuck Ruby Multi-Cloud Library Filesystem Rackspace Library
  • OpenSource Projects CyberDuck Ruby Multi-Cloud Library Filesystem Rackspace Library
  • OpenSource Projects CyberDuck Ruby Multi-Cloud Library Filesystem Rackspace Library
  • Object Storage Ecosystem Deploying As a Service
  • Object Storage
  • Object Storage 100 TB Usable $90,000 5 Object Stores 4 Proxy Servers
  • Object Storage Ecosystem Billing Portal Authentication Installer Proxy Object Storage Network Ops Hardware Data Center
  • Zones 1 2 3 4 5
  • 7kW
  • Networking Aggregation Aggregation Access Access 10GbE 10GbE Access Access 1GbE Switch Switch 1GbE
  • Object Stores JBOD 48 GB RAM 36, 2TB Drives No RAID Newish Xeon
  • Access Layer Servers AKA Proxy Servers 24 GB RAM 10 GbE Newish Xeon
  • Your Mileage May Vary
  • Access Layer Proxy Process SSL Load Balancing Client Access Layer
  • Lessons Learned • Lots of RAM • Think parallelism • Extremely durable
  • Running & Operating
  • Installation - Chef Server Installer - PXE - REST API Supporting Services $ cli tool - TFTP - DHCP - DNS
  • Embrace Change Storage Systems are Software Systems
  • One-Button Install Development Lab Pre-Production (Laptop) (Virtual Machines) (Small Environment) Production
  • Continuous Integration Development Lab (Laptop) (Virtual Machines)
  • Operations • Automate agent install • Use exiting NOC • Replacement rather than repair
  • Object Storage Ecosystem Deploying As a Service
  • Billing Utilization Requests
  • Pricing Consumption Pricing Capacity Pricing vs
  • Multi-Tenant System Client 1 4 3 build this Authentication Service 2 5 Internal Authentication Object Storage
  • API Keys Client 1 4 3 build this API Keys Authentication 2 Service 5 Internal Authentication Object Storage
  • Customer Portal Rackspace didn’t open source this Text
  • Internal Dashboard Utilization Customer Support CRM Billing System Stats Customers
  • Be All, End All
  • THANK YOU! Joe Arnold joe@cloudscaling.com @joearnold