CARVIEW |
Routing Issues with Some Clusters
A routing issue with our Sacramento data center affected several clusters early this morning. The data center failed over to a second provider and the issue was resolved at 7:37am PDT. We take these issues very seriously and have posted a summary of the interruption.
You can read the original blog post here: https://engineyard.wordpress.com/2009/03/10/routing-issue-rca-notice/, and the latest update here: https://engineyard.wordpress.com/2009/03/11/xo-communications-link-re-enabled-by-herakles/
For all maintenance and downtime updates, please see our Status Blog: https://engineyard.wordpress.com/
- Posted by Nick French
- 0 comments
MountainWest Hackfest: Featuring Solo!
When organizers Mike Moore and Pat Eyler announced this year's MWRC, we jumped right back on the bandwagon. Engine Yard is proud to be sponsoring the event again, and pleased to bring back the MWRC Hackfest -- with a twist!
This year, the suite is bigger, the food is better and we've got a new offering to play with. Hackfest attendees will receive free access to the Engine Yard Solo offering throughout the show, and an exclusive discount code for new signups.
There's been a lot of interest and excitement around Solo, and this is your chance to work with it first hand. It's a great, affordable option for hosting Ruby apps in the cloud, and the perfect choice for many new projects. Engine Yard Solo developers and experts will be on hand to answer questions and talk tech. What more could you ask for?
The Hackfest will be held both nights of MountainWest RubyConf at the Hilton Salt Lake City Center. It will begin immediately following the conference and stay open until the last Hacker leaves.
Here's to hoping we see you there; the drinks are on us!
- Posted by Leah Silber
- 1 comments
Custom Chef Recipes with Engine Yard Solo
We just pushed a new release of Solo, our Ruby in the cloud platform. This release is a big one and includes an exciting feature that we’ve been working on for a while. This release allows you to manage your own custom chef recipes in addition to our default set.
This means that anything we have not yet automated, you can automate yourself. Making Solo a fully programmable deployment platform capable of running pretty much anything you can imagine and cook up a chef recipe for.
This release also includes many bug fixes and ui tweaks and has a gem you can install to interact with Solo from the command line when you don’t want to go into the web interface.
Last week I forgot to blog but we also released a full cron job management interface you can see here:
And here is a screencast for getting started with custom chef recipes and Solo:
Getting Started with Custom Chef Recipes on Engine Yard Solo
We’ve settled into a nice schedule of development here and will be releasing new solo features every monday, so stay tuned for what’s next!
- Posted by Ezra Zygmuntowicz
- 0 comments
New Relic RPM Now Available with Solo!
With the recent launch of Engine Yard Solo we've got a whole new set of customers, and we're committed to making their experience just as great as the one existing customers are used to. As such, we've been working with our partners to extend some of the benefits of our existing arrangements, and we've got an announcement to make!
Starting in March 2009, Engine Yard Solo customers will receive a free, fully-supported license to New Relic RPM Lite. Solo users will be able to create an RPM account and begin monitoring applications running in the Amazon EC2 cloud minutes after deployment.
New Relic, for those of you hiding under a rock, is a great performance monitoring tool for Ruby and Rails applications. Engine Yard and New Relic are long time partners, and share a desire to help customers deploy Rails in the cloud easily and affordably.
You can read more about this announcement on the New Relic Company Blog.
- Posted by Leah Silber
- 0 comments
New Release of Engine Yard Solo
We just pushed out a new release of Solo, our new Engine Yard on AWS platform. Here is a list of highlights:
- Added Rack application support for both Nginx/Mongrel and Apache/Passenger stacks. This means you can easily deploy any rack based Ruby app including Sinatra, Ramaze, Mack or any other Ruby web app that uses rack as the web server interface.
- Cleaned up some UI defects and added some nice icons and general UX improvements.
- Multi application support improvements. You can now add an app to a running instance and hit the little gear icon to re-apply configuration changes. This will install any new gems or packages as well as setup any new apps you have added.
- Added GitHub deploy keys, after you setup a new instance you will see a little golden key icon with a green arrow on it for each of your environments. Click this to grab your GitHub deploy key that you can paste into GitHub in order to deploy private repos.
- Numerous bug fixes to our chef recipe set, including fixups for ssh keys and known_hosts permissions problems as well as fixes to our nginx recipes and updating passenger to the latest and greatest.
- We also made sign ups completely automated. For the first week after launch we were manually allowing folks into the app in order to not get overwhelmed with new sign ups. We have removed this step from the sign up, so now if you go to https://cloud.engineyard.com you will be directed to a page where you can sign up and immediately use the app without having to wait for us to approve you.
Stay tuned here for more features as we push things out to bring this platform to new heights. We have many more cool things in the works to make this the easiest way to get a flexible, best practices, production Ruby deployment setup.
- Posted by Ezra Zygmuntowicz
- 0 comments
Engine Yard Solo Goes Live!
Earlier this month, Engine Yard announced two key components of our strategy for the Cloud. The announcement went over really well, and we’ve been getting lots of great feedback from customers and community members—thanks!
Today though, things get even better. Today, Engine Yard Solo is available for purchase!
In case you missed the details, here’s a little recap:
For two years Engine Yard has specialized in Ruby and Rails application deployment by providing premium deployment services for over 400 customers on in-house hardware. Engine Yard Solo now extends this expertise to companies of all sizes by offering their services for deploying applications on the Amazon Web Services cloud.
The new Solo offering is built on Engine Yard’s battle-hardened experience hosting hundreds of applications on the Company’s own internal cloud. By coupling Solo with Amazon EC2, Engine Yard has lowered the price point for customers that want an entry-level service plan without sacrificing the tried-and-true Engine Yard stack.
With Solo, customers benefit from:
- Engine Yard’s years of experience deploying Ruby on Rails applications
- Amazon’s elastic cloud infrastructure
- Seamless automated deployment tailored to running Ruby applications
Recently, a Solo Beta Tester launched his production application, Hashtags.org on Solo, and things have been going great!
To share a few Twitter comments:
“Engine Yard Solo is impressive. It makes putting a rails app in production dead simple.”—Nadim
“Engine Yard Solo just automated me out of a gig and that is freaking AWESOME.”—John M. Carlin
The feedback has been great, the community has been great, and the future is looking bright. Thanks for being a part of it!
- Posted by Leah Silber
- 1 comments
Rails 3 Status Update — A Fresh Look at Callbacks
After I finished the first stage of the ActionView refactor I was working on (I’m currently working on some small issues with Josh and getting ready to merge it into the official Rails3 branch), I decided to take a fresh look at the performance numbers. As expected, by initial refactor did not really improve performance (it wasn’t intended to — I mainly just moved things around and cleaned up the code path), but one thing that stuck out at me was how expensive the callback system is.
This is the case in both Rails and Merb, although Merb’s smaller callback feature set makes it somewhat faster than Rails’ at present (but not significantly so; both systems use the same basic approach). So I decided to spend some time today trying to make the callbacks faster. The first thing I noticed was that the ActiveSupport callbacks are fairly limited (for instance, missing around filters), and that ActionPack uses a small part of the ActiveSupport system and then layers on scads of additional functionality.
After spending a few hours trying to improve the performance of the callbacks, I remembered that Carl had considered an interesting approach for the Merb callbacks that involved dispensing with iteration in favor of a single compiled method that inlined the filters. In his original experiments (which supported before, after, and around filters, but not conditions), he was able to make filters run about an order of magnitude faster than Merb’s system.
Effectively, the approach boils down to:
before_filter :foo after_filter :bar around_filter :baz def _run_hookz foo baz do yield baz end end
This completely removes the need for iteration at runtime, and compiles down the hooks into a single, speedy method. What complicated matters a bit was:
- Rails’ support for conditions (also supported in Merb, but not in Carl’s original prototype)
- Rails’ support for various filter types, including strings (which get evalled), procs, blocks, and arbitrary objects
After playing around a bit, I managed to support conditional filters as well as all the supported Rails filter types using the speedier callback system.I compared the ActionPack filtering system to the old ActiveSupport callbacks to the new callbacks. According to my benchmarks, the new system is 15-20x faster than the old one. Here are the actual benchmarks for 100,000 iterations (2 before filters, 1 after filter with a proc conditions).
JRuby Results | --------------------- actionpack 2.406 | old 1.798 | new 0.089 |
MRI (1.8) Results | --------------------- actionpack 4.190 | old 3.063 | new 0.276 |
MRI (1.9) Results | --------------------- actionpack 2.617 | old 2.137 | new 0.157 |
Keep in mind that I haven’t retrofitted the ActionPack filters to use the new callback system yet; I had to make ActiveSupport::Callbacks support around_filters first, but that there shouldn’t be any reason it won’t work. Also, adding around_filter support to ActiveSupport::Callbacks means that Test::Unit will now have around filters for free as part of the retrofit (this should affect ActiveRecord as well, for anyone who needs around filters in AR’s hooks).
Also, and this is a big caveat: this is most certainly not an optimization that is likely to significantly help most apps where the overhead is in database access or rendering. However, one of my personal goals for the work I’m doing is to reduce the need for things like Rack Metal by reducing the overhead of rendering a request through the full stack. Filters are used throughout the render path and we shockingly using 10-20% of the 4ms a render :text => “Hello world” was taking up. I was surprised that the action itself was only about 7% of the default render path.
So again, shaving off under 1ms is not likely to help many apps, but it is a step in the direction of making it possible to build high-performance APIs and service tiers on top of the full Rails request cycle. You can follow along this callback work on my optimize_callbacks branch.
P.S. Merb 1.0.8 should be released tomorrow. It’ll include a bunch of pending fixes (including a fix for PIDs being overwritten in production when using merb -i)
Updated Public Erlang AMI
I spent a bit of time this evening cleaning house on my S3 bucket and EC2 AMIs. I’ve de-published and removed my existing Erlang AMI. The Erlang build was quite old and not many people were using it.
I’ve put together a new AMI using Fedora 8 and the latest Erlang build (R12B-5 as of this writing). Erlang was built with --enable-threads, --enable-smp, --enable-hipe
, and --enable-kernel-poll
. SSL support is included, too.
It’s a 32 bit image for now, but if there’s interest I’ll build a 64 bit version of it too.
The AMI id of the image is ami-e8ba5d81
. Searches for “hypotheticalabs” in Amazon’s AWS console should find it, too.
I’ll augment this image a bit with mochiweb and a few other handy libs. Looks for updates on that front soonish.
Note: Yes, Erlang was built from source. The Fedora — and Ubuntu for that matter — build of Erlang is quite old. I have a violent allergy to RPMs and didn’t feel like spending the hours it’d take to package things up properly.
Chef
Yesterday we announced Engine Yard Solo which is our new Engine Yard on AWS platform. If you haven’t yet watched the screencast then you should check it out:
I’m using a really sweet configuration management engine called Chef that is being open sourced today. My good friends at OpsCode are responsible for the project.
If you have ever used or thought about using a system like Puppet then you owe it to your self to give Chef a try. Chef is a state based, declarative configuration management engine. You define recipes of how you want your system to look and then Chef makes it so.
The big advantage Chef has over Puppet is that the codebase is 1/10th the size and it is pure ruby, including the recipe DSL. Puppet’s biggest flaw is its configuration language that is not quite ruby and not quite turing complete. So you end up wrestling with it to get it to do anything.
Chef is just pure ruby so anything you can do in ruby you can do in your recipes. It also uses a simple merb-core/couchdb server for centralized storage of node configs and each server you manage gets an openid for identity.
If you have a hand in building or configuring any servers, you need to learn Chef now.
You need two repos to get Chef running, chef and ohai:
Ohai is a gem that interrogates your system and gathers facts about it. Chef is the gem that runs your recipes and actually does the work of configuring the system.
Here are the docs to get started with:
I believe that Chef will play a very important role in the future of building and managing servers in the ruby community as well as anyone else who needs repeatable server build outs.
We will expose a way to have your own custom Chef recipes applied via our management app so that anything we haven’t already written recipes for you can write yourself and get applied as part of a server build.
- From Brainspl.at
- 1 comments
Upcoming Shows; Sponsored by Engine Yard!
We'd love to meet you! Details on our full calendar can be found here, but here's a peek into some of our favorite shows coming up:
acts_as_conference
February 6-7, Orlando, Florida
This will be our second year sponsoring acts_as_conference, and we're excited to be back! This year's roster is impressive, with talks by Engine Yard friends like Lew Cirne of New Relic and Jim Weirich of EdgeCase. Registration is open now, and seats are going fast!
Scotland on Rails
March 26-28, Edinburgh, Scotland
This will also be our second time sponsoring Scotland on Rails, and we're just as excited! The show received widespread praise last year as one of the best regional Ruby shows around, and knowing the hard work that goes into it, it looks like it's poised for another smashing success!
The speakers come from all around the world, including Jim Remsik of our friend and partner Hashrocket. Registration just opened, and the early-bird discount is available until February 8th!
Engine Yard's Yehuda Katz will be presenting at both events, talking about developments related to the upcoming Rails/Merb merger, i.e. Rails3, and he'd love to meet you.
Feel free to email the events team if you need more information, or want to talk to us about _your_ event.
- Posted by Leah Silber
- 0 comments
Archives
- March 2009 (2)
- February 2009 (3)
- January 2009 (18)
- December 2008 (13)
- November 2008 (7)
- October 2008 (13)
- September 2008 (4)
- July 2008 (5)
- June 2008 (2)
- May 2008 (2)
- April 2008 (3)
Feeds


This is our hometown: San Francisco, California, USA. Most of us are around San Francisco, but some of us are in places like Washington State, Missouri, Minneapolis, Spain, Australia and the UK.
Feel free to contact us with questions or comments.
(866) 518-YARD (9273)
Support:
866-518-9275
Engine Yard
82 South Park
San Francisco, CA 94107 Mailing Address
Engine Yard
PO Box 77130
San Francisco, CA 94107-1713
Or use our contact form.