Posts written by Hart Hoover
Chef recently launched Chef Metal, a way to define clusters of machines with
Chef recipes. With Chef Metal's
machine resource, you can keep your entire
server environment under the same version control that holds your configuration
Since becoming a Racker back in 2007, one of my all time favorite websites has been slumlordhosting.com. Slumlord Hosting is a parody of really bad shared hosting environments, advertising some amazing features:
- Dedicated space on a "High Density Floppy Storage Area Network Device"
- A duel (sic) channel ISDN line for maximum bandwidth
- 10MB of dedicated space
On top of the features listed above, the website itself is glorious. Looking at it recently, I began to think to myself, "If I were running a business like this, what could I use to squeeze every possible resource out of a server and offer it up for shared hosting?" Enter Cloud Servers and Docker. My strategy is simple: build a Cloud Server, install Docker, and then create as many containers as possible. I've decided to use WordPress containers since WordPress is extrememly popular.
Running a hosting business based on how many containers you can squeeze on a server is definitely NOT RECOMMENDED and is more for fun while we play with Docker.
As many of you know, Rackspace acquired the transactional email provider Mailgun almost a year ago. Mailgun has a super easy-to-use API for sending, receiving and tracking on your application emails. They also support SMTP, if that's your thing. We've blogged about Mailgun a bunch this year, and recently Rackspace integrated Mailgun into the Rackspace Cloud Control Panel, making it that much easier to integrate Mailgun into your app (and to get 50,000 free emails per month in the process). The Mailgunners just released a new feature that we are really excited about: email validation for web forms. So today, we're reblogging their post announcing the new feature which is completely free for Rackspace and Mailgun customers. Read on, and remember that you can enable your Mailgun account directly through the Cloud Control Panel!
SaltStack is hosting a global event on Saturday, July 27 called the "Great Salt Sprint" - a chance to get together with other Salt users and hack on Salt code. SaltStack is a systems and configuration management for fast and scalable deployment and automation of any cloud. The Salt open source project was launched in February of 2011. SaltStack was founded in August 2012 to support the Salt project and to deliver commercialized SaltStack Enterprise software. The Great Salt Sprint will focus on the several areas.
Version 1.5.8 of php-opencloud is now available. In this release the PHP SDK now supports OpenStack Heat as well as Rackspace Cloud Monitoring. You can read the release notes for information related on what has changed. In this post, we will take a look at how to set up a Cloud Monitoring alarm using php-opencloud.
If you are interested in contributing to Puppet, the upcoming "Triage-a-Thon" will be a great chance! Puppet Labs is throwing a bug squashing party on July 13th at their headquarters in Portland. Goals for the event:
Recently, Opscode released a case study on Rackspace customer Indiegogo and their use of Chef to power their fundraising efforts. Last year, MTV came to Indiegogo and asked them to power their telethon fundraiser for Hurricane Sandy. Oh, and it had to be ready in FOUR DAYS. Indiegogo used the Opscode Hosted Chef platform and more than 500 Rackspace Cloud Servers to have 100% uptime throughout the entire event.
As part of the Google I/O keynote yesterday, several new features for Google Compute Engine were announced. First, GCE is now available to everyone in a preview and available for signups. They also announced Cloud Datastore, a NoSQL database solution and several other features.
Google Compute Engine looks great, but it's the same old thing from a cloud standpoint. AWS and GCE are both single-vendor, lock-in prone providers. You can't run GCE in your own datacenter. You can't customize and install GCE on both a $200 One-laptop-per-child notebook and a $4,000 MacBook Pro. These platforms are not open.
This year at SXSW, I spoke on why open matters. I used examples to explain how open can triumph over closed like the open Internet and AOL, or Linux vs. Windows. One of my favorite examples is the Betamax.
As discussed previously, this blog is hosted entirely in Cloud Files. It is powered by Octopress, which means it is static - perfect for hosting in an object store. Our "architecture" looks like this:
Previously, deploying the blog was a one-and-done job. A single Jenkins job that upon a push to GitHub, would install our Ruby gems, install the theme, generate the site, and push the site to Cloud Files. This worked well, for a while. Then Murphy got involved.
ObjectRocket, the industrial strength MongoDB database-as-a-service company that Rackspace acquired in February, is now available in our Chicago data center. This means that you can now use ObjectRocket as part of your Rackspace deployments. You can read about the new data center here and a recent performance benchmark study that we did here.
Now that you can use a lightning fast (and automatically scalable and redundant) MongoDB-as-a-service right next to the rest of the app infrastructure, we thought it would be helpful to post a tutorial about how to connect MongoDB to your application running on the Rackspace Cloud using ObjectRocket.
Adding Redis to your application stack is a fantastic way to gain speed with existing applications. Many of our customers aren't running the latest and greatest new hotness NoSQL-using cloud thing. A lot of them port over a full stack of an existing applications that once only existed on bare metal servers, or use a hybrid environment with a big MySQL configuration on bare metal with web/app servers in the cloud.
In any case, we advise that customers use caching... EVERYWHERE. Adding Redis to your application stack can greatly improve site speeds when used as a cache.
Day three was great, just like day one and day two before! I'd like to continue this series of posts by highlighting two sessions from the OpenStack Summit in Portland:
Havana Image Interchange
There was a few sessions on image management in OpenStack today, and this one in particular brought up the question that when and where should image transformation take place to ensure there is true image portability. This spawned pretty good discussion, as some of the points that were brought up were:
- Should Glance be a separate project? It might be better served as a subcomponent of Nova.
- Should Glance continue to support multiple image formats, or should there be a common format, a la, AMI like Amazon.
- Glance's HTTP delivery of images takes a long time and adds to boot time. What is a better alternative?
One of the largest parts of the session was on number two. The argument was a developer that wants to build and image and bake an app that will run directly on top of it wants to do it once. They do not, and should not, have to redo this process for every image type. Qcow2 was the image type that was getting a lot of community traction in the room as it's vendor neutral and supports parsing.
Day two of the OpenStack Summit was even better than the first. It kicked off with a welcome from Jonathan Bryce, Executive Director of the OpenStack Foundation, who set the tone for the day's events. We then heard from companies using OpenStack - Bloomberg, Best Buy, Comcast, and HubSpot all talked about using OpenStack and what OpenStack had done for their business. Jim O’Neill, HubSpot CIO, experienced network issues during his live demo - but still wanted to show off how HubSpot uses OpenStack.
Greetings from the OpenStack Summit! A lot happened in the world of OpenStack today. For a recap of all of the news, check out Niki Acosta's blog post on the Rackspace Blog. Read on for a recap of some sessions I attended today!
Rackspace will be all over the OpenStack Summit in Portland next week. We're so excited about so many things during the Summit! First of all, if you’ve contributed code to the OpenStack project, we want to offer you free hosting. Go over to iopenedthecloud.com during the Summit, or stop by the Rackspace booth (booth A5) for more info. You made the code free; we’ll make your cloud free – up to $500 per month for two years. You can verify contributions at http://www.ohloh.net/. I'll be at the booth and I'd love to give some free hosting away.
In Wayne Walls' recent post on parallel computing, message queues are mentioned as a way to achieve parallel computing in an application. In this post, we will dive into the different message queues out there and how to implement a message queue in an application.
Wayne Walls posted a great article on the Rackspace Blog regarding the importance of modularity in cloud application design. Traditionally, when technical people talked about modular design they meant something like this:
As you can see, we have a typical web application that is indeed very modular. It has a few Varnish caching servers, a few web servers, a few application servers and a few database servers. Basically, we've taken what was once a monolithic application and split it into atomic components that are scalable and replaceable.
In the cloud though, we don't have to stop there. The preceding is a "bare metal servers on a cloud" mentality. What you should strive for is a true modular application that not only is broken up into smaller pieces, but also consumes services.
Wayne Walls wrote a great article on the Rackspace Blog around horizontal scaling, a pillar of cloud application design. When designing applications in the cloud, typically you need more than one server performing specific tasks.
These groups of servers or roles or tiers are sometimes load balanced or exist as a pool of servers polling a message queue for work.
Being able to roll with the punches in a cloud environment is extremely important. The cloud can be used for a steady state environment, but really shines when coupled with monitoring and the API. Every application in the cloud should fit in one of these four buckets:
- On and Off
- Variable Workloads
- Consistent Workloads
- Fast Growth
Each workload makes you work a little differently, but using a traditional hosting model where you have the same number of compute workers all the time invariably creates waste.
Security is a major concern for all hosting platforms, but in the cloud security has traditionally been a detractor to cloud adoption. Security concerns include:
- Identity and Access Management
- Configuration and Patch Management
- Endpoint and Network Protection
- Vulnerability and Asset Management
- Data Protection
I'll go through each one of these, including how to mitigate these risks on the Rackspace Open Cloud. We may highlight services and products you didn't know we had.
Rackspace is bringing the Open Cloud Experience to the SXSW Interactive Festival! Come join us over the next few days and learn all about the Open Cloud. We’ll be headquartered at Champions Sports Bar & Restaurant at the Courtyard Marriott, so be sure to stop in and see us.
Rackspace will be at the 11th Annual Southern California Linux Expo! SCALE 11X takes place on Feb. 22-24, 2013, at the Hilton Los Angeles Airport hotel. As the first-of-the-year Linux/Open Source software expo in North America, SCALE 11X expects to host more than 100 exhibitors this year, along with presenting more than 70 speakers.
This is the third post in a series on Chef:
In those posts I used Opscode's Hosted Chef platform. There are three options for running the Chef Server:
- Hosted Chef: Hosted Chef is a version of a Chef server that is hosted by Opscode. Hosted Chef is cloud-based, scalable and available (24x7x365), with resource-based access control. Hosted Chef has all of the automation capabilities of Chef, but without requiring it to be set up and managed from behind the firewall.
- Private Chef: Private Chef is a version of a Chef server that is designed to provide all of the infrastructure automation capabilities of Chef and is set up and managed from within the organization.
- Open Source Chef: Open Source Chef is an open source version of the Chef server that contains much of the same functionality as Hosted Chef, but requires that each instance be configured and managed locally, including performing data migrations, applying updates to the Open Source Chef server and ensuring that the Open Source Chef server scales as the local infrastructure it is supporting grows. Open Source Chef includes support from the Chef community, but does not include support directly from Opscode.
This post focuses on installing your own Open Source Chef.
Rackspace and AppFog are throwing a Happy Hour on Thursday, February 7 at AppsWorld in San Francisco, and we’re asking developers to create an app that helps us choose the beers that will be served at the party. You could win an iPad! All you need to do is RSVP to the party, register for the contest, and then create an app (deployed on AppFog and Rackspace) that allows people to vote for which beers will be served at the happy hour.
That’s right, your votes determine which beers we drink! We’ve selected six beers for the contest: Widmer Hefeweizen, Sierra Nevada Pale Ale, Stella Artois, Lagunitas IPA, Newcastle Brown Ale, and Guinness Stout.
Continuing the series on Chef that I started in part one, you should now have an account with Opscode and a working knife install. In this post, I will explain how cookbooks and roles work and we will deploy our first application with Chef.
As I said in a prior post on Puppet, many of our customers use configuration management packages to manage their cloud infrastructure. These packages include Opscode’s Chef, CFEngine, Red Hat’s Spacewalk, and Puppet Labs’ Puppet. Here, I’ll dive into Chef to show you how easy it is to manage Cloud Servers using a configuration management solution. In this series I'll walk you through setting up Hosted Chef using Opscode's platform, deploying your first application to Rackspace with Chef, and more.
It's a new year, and that means that many people are making resolutions to better themselves. Some make resolutions to read more books. Some make resolutions to exercise. Some people have more, um, interesting resolutions:
One resolution I have seen a lot is people wanting to learn to write code in 2013, which is great. The world is getting more and more technical and the ability to write code is a skill that is highly sought after. (Did I mention we're hiring?)
Imagine the situation: you're a Racker, and a customer calls. Their servers are up, but their application or site is offline. Time to shine! Unfortunately, they don't have any idea what is going on and they are frantic. The account has 20 servers listed and they are named after the characters in The Hobbit.
It's an emergency situation, and you are wandering into a dark room with a lighter as a flashlight. In the cloud, with the possibility of hundreds (or thousands) of servers, that dark room becomes Cowboys Stadium. Where do you start?
Hopefully the customer has good monitoring in place so you can pinpoint the failure to a single server or a group of servers. With Papertrail, it becomes easier to find issues present in your application, and more importantly, take action on the issue in an automated way. Papertrail helps detect, resolve, and avoid infrastructure problems using log messages. You can aggregate and manage log messages from Cloud Servers, Managed Hosting, Hybrid Hosting, and other servers — both flat files and rsyslog.
We've moved! The Rackspace DevOps Blog is now hosted on Rackspace Cloud Files (powered by OpenStack Swift) using Octopress. This blog was hosted on WordPress, using a mix of various Rackspace Open Cloud products:
- Cloud Load Balancers
- Cloud Servers
- Cloud Databases
Wayne and I loved this setup and were pleased with performance and security. WordPress on this infrastructure was secure for our purposes (it's a simple blog, not hosting medical data or taking credit cards) so we were happy. So why move?
Rackspace recently announced the Rackspace Service registry, a platform that allows developers to build highly available and responsive applications using a simple but powerful REST API. Currently it provides three main functions:
- Service discovery - Find which services are currently online/active and find services based on different criteria. You can organize your services however best fits your application deployment.
- A platform for automation – Service registry exposes an events feed, which includes all of the events that have happened during the lifecycle of your account (such as, a service comes online, a configuration value gets updated, and so on).
- Configuration storage – This enables users to store arbitrary configuration values in our system and get notified via the events feed when a value gets updated or deleted.
Rackspace will be present at Cloud Expo in Santa Clara this week! If you’re a Rackspace customer we would love for you to stop by our booth and talk to us about how your company uses the Open Cloud. We also have several Rackers speaking during the conference:
Today’s launch of Rackspace Cloud Networks, marks the fourth product release by Rackspace that is powered by an OpenStack project. When Rackspace founded OpenStack with NASA two years ago the vision was for a community of extremely talented engineers, architects, developers and industry professionals all coming together to build amazing technology. This year alone, Rackspace has launched the following products all powered by OpenStack:
The guys over at Mailgun just posted an overview of how to use Mailgun to power email notifications from your Capistrano recipes. We've got a lot of customers using Capistrano to automate their big web deployments, so we thought we'd share a summary. You can read the full post on the Mailgun blog.
Today Rackspace announces the general availability of Cloud Block Storage which allows you to mount additional storage volumes to your Cloud Servers. In this post we will go through the technical meat of the product including the history of block storage in OpenStack, Cloud Block Storage architecture and API examples.
This was posted on the main blog and features Rackspace Open Cloud Support Systems Engineer Ryan Richard and Content Stacker Anne Gentle. It's a great intro to the Summit and what it's like to be here. Take a look!
We are live from the Fall 2012 OpenStack Summit. Follow along as we liveblog the opening keynote!
Puppet Labs just posted all of their videos from PuppetConf 2012 on their website. PuppetConf was held in late September in San Francisco. One of my favorites is this video on deploying OpenStack using Puppet from Robert Starmer, Principal Cloud Engineer at Cisco Systems.
In case you didn't hear, Rackspace recently acquired Mailgun, a YCombinator startup that makes it really easy to integrate email into your application. Mailgun does the simple things like sending password confirmations and shipping notifications, but it also makes it A LOT easier to build some really good stuff.
Figuring out how to make email work with the cloud is one of the biggest questions that we get at Rackspace, so we're publishing some code samples that show you how to build some really cool things with Mailgun. Mailgun has a free plan that will let you try all these things and send up to 200 emails per day for free. Then they've got plans starting at only $20 a month. So, onto the cool stuff!
This is part 2 of a series of using continuous integration with the Rackspace Cloud, specifically with Git and Jenkins. This is not the way Rackspace does continuous integration, but you can use this to get started. Stay tuned for future posts on using Jenkins for continuous integration.
In my last post, I described the principles of continuous integration and how to install Jenkins on a Rackspace Cloud Server. In this post, we will walk through securing your Jenkins installation as well as setting up a git repository with Jenkins.
This is part 1 of a series of using continuous integration with the Rackspace Cloud, specifically with Git and Jenkins. This is not the way Rackspace does continuous integration, but you can use this to get started. Stay tuned for future posts on using Jenkins for _continuous integration. _
Continuous integration when used in software development is the practice of frequently integrating one's new or changed code with the existing code repository. Historically, developers would check out a code base and make changes. When submitting those changes back to the repository, the developer would have to integrate their work with code other developers had already changed. The longer the developer's personal repository had been checked out, the more difficult the integration process became. With the fast pace of web development, developers need to be able to commit and integrate changes quickly and automatically. Continuous integration helps with that.
With the announcement of the latest iPhone, the tech world is in a frenzy once again. In previous posts, I discussed configuring Puppet on Cloud Servers and bootstrapping new servers with libcloud and Puppet. Here, I will go through the process of creating a new server with the Rackspace Cloud iPhone app that automatically bootstraps with Opscode's Chef or Puppet. With Chef you have the option to use either your own Chef server or Opscode's Hosted Chef platform.
Rackspace will be present at Cloud Connect in Chicago this week! If you're a Rackspace customer we would love for you to stop by our booth and talk to us about how your company uses the Open Cloud. We also have several Rackers speaking during the conference:
Many of our customers use configuration management packages to manage their cloud infrastructure. These packages include Opscode's Chef, CFEngine, Red Hat's Spacewalk, and Puppet Labs' Puppet. Here, I'll dive into Puppet to show you how easy it is to manage Cloud Servers using a configuration management solution. We're going to create two servers: a puppetmaster and a client server running puppet.
Rackspace has acquired Mailgun. Mailgun simplifies email integration into websites and applications. Developers can easily use their powerful set of APIs to send, receive, and track email effortlessly – without managing an email server or becoming an expert in email setup, operations and deliverability. Mailgun is built for developers. It has server-side MIME assembly, which means that no libraries are required. The service allows you to receive event notifications via a webhook, and everything is priced to scale as you scale.
Using the Rackspace Cloud Control Panel to manage your servers is awesome, but sometimes you just need to get a simple thing done quickly via the command line. Enter the OpenStack rackspace-novaclient, a CLI tool to manage your Cloud Servers.