E
Engine Yard Blog
engineyard.com · Company blog · on HN since 2008
Engine Yard's company blog, covering its Ruby on Rails hosting platform, PostgreSQL, Puppet, and infrastructure practices.
What HN saysHN commenters mention Engine Yard as an older Rails platform still around, an alternative to Heroku, and note its visible sales and support phone numbers.
204HN people shared it
75linked it in comments
401stories submitted
4.2Kstory points
1 year agolast shared
2008people per year2026
Most-shared posts
- 1Engine Yard redesign14 people · 2 points · first shared 2008 · discussion on HN
- 25 subtle ways you’re using MySQL as a queue, and why it’ll bite you4 people · 184 points · first shared 2011 · 65 comments on HN
- 3Why Puppet Should Manage Your Infrastructure4 people · 90 points · first shared 2011 · 40 comments on HN
- 4Pets vs cattle4 people · first shared 2018
- 5The Number One Trait of a Great Developer3 people · 262 points · first shared 2011 · 68 comments on HN
- 6PostgreSQL is Engine Yard's New Default3 people · 82 points · first shared 2012 · 19 comments on HN
- 7Engine Yard Programming Contest - Win an iPhone 3GS PLUS $2k in Cloud Credit3 people · 59 points · first shared 2009 · 44 comments on HN
- 8Making Ruby Fast: The Rubinius JIT3 people · 49 points · first shared 2010 · 13 comments on HN
- 9Everything You Need to Know About Unicorn3 people · 22 points · first shared 2010 · 6 comments on HN
- 10Five Ruby Methods You Should Be Using3 people · 13 points · first shared 2015 · discussion on HN
- 11You Cannot Win Engineering3 people · 11 points · first shared 2013 · discussion on HN
- 12Extending Rails with Railties3 people · 11 points · first shared 2010 · 3 comments on HN
- 13JRuby 1.6 Released… Now What?3 people · 5 points · first shared 2011 · discussion on HN
- 14Integrating React with Backbon3 people · 3 points · first shared 2015 · discussion on HN
- 15MRI Memory Allocation, A Primer For Developers3 people · 3 points · first shared 2010 · discussion on HN
What HN people wrote when they linked it
adambreen · 2013-04-26
You might try https://www.engineyard.com/ instead. You might also want to look at Amazon's Elastic Beanstalk.
Your "not loves" don't ring true for me though- perhaps you'd like to elaborate there?
I've been running production apps on Heroku for more than 2 years now, and there has only been one occasion where their uptime impacted the apps' availability. Even during Hurricane Sandy, my apps were up 24/7, so it's hard to understand your comment.
Yes, they do have non-critical issues at times (their API goes through brief, but not infrequent periods of instability)... but this only impacts your ability to deploy/manage an app, not the app's actual uptime.
jskopek · 2009-03-27
Service is a feature that's much harder to quantify, but there _are_ ways of demonstrating it. One of the best recent examples I've seen is http://www.engineyard.com/, which lists its sales & support phone numbers on the header of each page. In this day and age, where phone numbers are being increasingly hidden, a company that stands out like that really makes a good impact.
slack · 2014-10-03
Engine Yard | San Francisco, CA; Portland, OR, Dublin, Ireland; REMOTE | Platform Engineer
As a platform engineer, you will spend most of your time working on orchestration and automation which manages customer environments across AWS and Azure infrastructures. Our platform is largely written in Ruby so a strong grasp of the language is preferred.
Every day you will deliver features on a platform that powers tens of thousands of servers. Ship software that runs the production environments for many startups and enterprises. Have a direct impact on the lives of other developers so they can focus on getting work done. Help us make cloud deployments, better, faster and stronger.
The engineering team at Engine Yard is spread across 8 timezones (Dublin, Ireland to San Francisco, California), so experience working in a distributed team is very helpful. You will talk to colleagues via Zoom, post funny gifs to our slack chat rooms, reserve and deploy your topic branches to staging environments via our good pal `eybot`. When the build is green the trap is clean. We deploy multiple times a day.
You'll get:
Competitive salary
Full medical, dental and vision benefits
25 paid days off per year (holidays and PTO)
401(k)
We take care of your phone bill
Paid travel to conferences
Must haves:
A passion for writing great software to solve real problems for real people
Demonstrated experience working with large-scale production systems
Experience working in a…
ayewo · 2023-02-21
I just remembered Engine Yard. Like the others, Engine Yard is another notable one from that era that is still around (but their focus then was on RoR, IIRC).
https://www.engineyard.com/
stevejb · 2022-04-27
Preface: I work for DevGraph, which contains EngineYard.
I would definitely have a strong look at EngineYard [1]. Our tagline: "A NoOps PaaS for deploying and managing applications on AWS backed with a world-class support offering." There is a good comparison with Heroku located here [2].
Having worked with several engineers, I can personally vouch for the world class support. We spend a lot of time thinking about and implementing ways to host Ruby, Node, PHP, Java, Python, and other containerized workloads on AWS. EngineYard has been around since before Heroku, so we have a long track record and a lot of experience in making your applications run reliably, keeping costs under control, and with full 24x7 support.
Email is in the description, along with my Twitter. Please reach out for any questions.
[1] https://www.engineyard.com/
[2] https://www.engineyard.com/heroku-alternative/
thibaut_barrere · 2017-03-18
Preliminary note: I use AWS, Heroku, dedicated or baremetal servers, for different purposes.
I'd first ask what makes you want to move out of Heroku, especially if you have no sysadmin experience at all.
Re OT: you should really check out https://www.engineyard.com/, which provides a layer of services on top of AWS. You can handle a Rails or Node application with little experience and have security updates (Disclaimer: I'm a happy customer, but again I use many different providers so I don't think I'm too biased).
sciurus · 2017-02-03
Yeah, in simpler circumstances you can follow the approach of
1) Write code that works with current and new schema
2) Deploy that code
3) Run that version for long enough to know you will not roll it back
3) Run the migration, moving the db from current to new schema
4) Clean up code to only work with new schema
5) Deploy that code
Where step 3 uses an appropriate tool for online schema changes for your database.
Here a some writeups of that approach I found when trying to explain this to a friend who's a rails developer:
* http://blog.honeybadger.io/zero-downtime-migrations-of-large-databases…
* https://pedro.herokuapp.com/past/2011/7/13/rails_migrations_with_no_do…
* https://www.rainforestqa.com/blog/2014-06-27-zero-downtime-database-mi…
* https://blog.engineyard.com/2011/zero-downtime-deploys-with-migrations
thegoodlab · 2015-10-05
I'm using React on a few smaller projects where I didn't want to over engineer the whole Flux architecture. I put together the app using Backbone (for the models and collections) and used React for the view layer.
The models and collections worked great as "stores" and I used the simple dispatcher from Flux to handle the actions being sent.
While I really like the Flux pattern, for smaller'ish apps it did seem a bit of overkill.
A couple articles I was referencing for BB and React:
https://blog.engineyard.com/2015/integrating-react-with-backbone
http://www.thomasboyt.com/2013/12/17/using-reactjs-as-a-backbone-view.…
nslater · 2014-05-09
I wrote a little about the choice between PaaS and VPS here:
https://blog.engineyard.com/2014/pets-vs-cattle
My summary here would be that both are good, for different things. If I was deploying a personal site or a personal app, I would probably go with a VPS, because it's easier to set up, and can be a lot cheaper. But if scaling or uptime was a concern, I'd want to go the PaaS route. It comes with a few upfront costs (configuration, statelessness, price, etc) but is absolutely worth it in the long term.
leigh_t · 2014-04-10
You could try Engine Yard (https://www.engineyard.com/), I think they are using EC2 (has a datacenter in Ireland).
Can't vouch for how "good" their PHP offering is having never used it, definitely a passionate team though, I've met several of them over the years at PHP related conferences (in the UK) as the company has grown.
jballanc · 2013-10-28
So Engine Yard ends their support of JRuby in 2012. Then, just a few weeks ago, they end support for Rubinius. Now, they'll be ending support for RVM next week... A shift in strategy? Financial troubles? Either way, it seems they need to update their "Engine Yard Loves Open Source" page: https://www.engineyard.com/community/open-source
AznHisoka · 2012-04-14
I believe in 3 "wheels":
1st wheel is PR, and reaching out to bloggers. Best time to do this is before you launch. develop a relationship, tell them you want to pick their brain for feedback. Of course not everyone will respond, maybe even 1%. But those handful can easily lead to 1000 new users.
2nd wheel is content marketing (or SEO). Develop content where you share information with others. People will see you as an expert, and give you attention. That's where you can link your content to your product.
A great example is EngineYard: http://www.engineyard.com/blog/2009/your-pages-will-load-faster-with-r… They created this blog to tell you tips about Rails, so people are interested right away. But they then connected it to their product and how it can help.
3rd wheel is build engagement into your product. Make something people will naturally want to tell others about.
strooltz · 2010-11-19
EngineYard - http://engineyard.com. they're built on top of EC2 and a little pricey but their support/service is incredible and they make it a breeze to deploy...
jph · 2010-06-10
Both are great, but different. EngineYard provides much more.
For example, I'm an EngineYard customer. EngineYard developers and support people have spent upwards of 100 hours with me discussing more advanced needs for security, scaling, integration, and professional services.
EngineYard's leadership has especially impressed me with Rails 3, JRuby, and Rubinius.
http://www.engineyard.com/company/press/10-06-09-engine-yard-announces…
jodrellblank · 2009-07-20
And if you haven't been following, the contest is here:
http://www.engineyard.com/blog/2009/programming-contest-win-iphone-3gs…
and an interesting thread on using NVidia's CUDA to crunch on it (with code) is here: http://forums.nvidia.com/index.php?showtopic=102349
qhoxie · 2008-11-04
You should really consider EngineYard (http://www.engineyard.com/). They are run by a group of really bright and genuinely nice people.
The founder, Ezra, is around HN as ezmobius.
jhancock · 2008-09-27
I haven't used ramaze seriously enough to give an opinion on the quality of this work. I like the modularity and ORM and Template and HTTP server agnostic approach, which is similar to merb.
One of key benefits of merb over the many other lightweight and more modular ruby frameworks is it has the necessary critical developer mass and funding behind it from Engine Yard http://engineyard.com
haidrali · 2019-01-19
bayindirh · 2018-10-09
I missed that. It's actually a much bigger problem.
stdout and stderr(or) is two output paths to explicitly diverge error logs and problems from standard output.
stdout / stdin is reserved for user interaction, informational messages (md5sum), actual output (ls, less, etc.), and the like. OTOH, stderr is explicitly for error messages only, and it's very useful (and necessary).
A real use case from my daily job: I'm an administrator of a large system (approx ~1K servers), and I have substantial amount of cattle, and a lot of pets [0]. All of these servers have cron jobs, and other automated tasks on them. All servers can mail to a local mail server to report us problems, so our cron automatically mails any outputs to us.
All the tools we use, and scripts we write have the following properties:
- If everything is OK, they are silent by default.
- They output to stderr, if anything notable happens.
- Also we copy (think tee) all stderr to their respective logs (both local and on a centralized server).
Now consider:
- The (e-mail, log) noise if all the tools were writing their outputs to stdout.
- The work required to silence all tools. What if they don't have any --quiet switches?
- Furthermore, they wrote everything to stderr. How can I know whether thing has worked as it should?
- How can I find the problem quickly if everything is written to "Error" log?
- Furthermore how can I revise the errors happened quickly? Info & Error on the same file. grep galore!
-…
mootothemax · 2012-07-24
I'm not sure that I fully understand why the author considers message queuing via something like ActiveMQ to be complicated or difficult.
1) Install ActiveMQ (or my preferred option, ActiveMQ Apollo http://activemq.apache.org/apollo/).
2) Write an email script that subscribes to the message queue, and sends an email for each message received.
3) In the web app, publish a "send email" message to the message queue.
That's it - nothing more complicated required. Look at the number of libraries that use the Stomp protocol, and you can be up and running inside of a few minutes.
Spinning off a separate thread to perform this work is entirely sufficient and much simpler
I strongly disagree with this advice, if only because it's so incredibly easy to screw up from a security perspective. If you want to handle errors or other unexpected issues, doing so via spinning up background threads is going to lead you to a world of hacky pain.
One of the most inspiring articles I read about using queues is 5 subtle ways you’re using MySQL as a queue, and why it’ll bite you:
http://www.engineyard.com/blog/2011/5-subtle-ways-youre-using-mysql-as…
andma · 2012-03-16
You hit the nail on the head. If you don't need strong consistency guarantees any sort of message queue will do. That is a solved problem.
There are two key quotes from the article:
1. "... if our queue begins dropping messages, we run the risk of silently corrupting data"
The two statements that they are executing "app.update" (modifying the database) and "enqueue" (sending to message queue") are not atomic. They can make it atomic using something like 2 phase commit but implementing that will be more trouble than it's worth. Additionally, there will be performance (latency) implications since it is a synchronous operation.
2. "Notice how both of our writes are inside of a local database transaction"
Now they have atomicity very easily!
I agree with the grandparent that using SQL as a message queue is generally a bad idea. However the pitfalls are well known and can be engineered around. See this article:
http://www.engineyard.com/blog/2011/5-subtle-ways-youre-using-mysql-as…
I am actually working on something very similar to this at my day job. The "buffer processor" that the article is describing, we implemented using a scala process. Perhaps what's most interesting about the entire system as mentioned at the end of the article is maintaining the large amount of state for durability (we use hbase) and deliverability (we wrote a custom scala server).
audionerd · 2011-12-15
I really like this idea, and it's one I wish I had time to work on myself. I think there's a real need for something like this.
I've come to the conclusion that a project like this would only be successful if contributors are expected to document WHY the code used is written as it is.
Without documentation (an example UI style guide, like the homepage of Twitter Bootstrap) it's difficult to see both the big picture and the purpose of the small details.
Twitter Bootstrap had a great home page right from the start – it served as documentation for the project, as well as a marketing demo influencing you to try it.
So imagine if the contributors to your repo were simply asked to follow a few guidelines, documenting their contributions (say, providing example HTML and using KSS to markup their CSS).
https://github.com/kneath/kss
http://www.alistapart.com/articles/writingainterfacestyleguide/
http://www.engineyard.com/blog/2011/front-end-maintainability-with-sas…
Maybe ask them to follow a few of the "Object Oriented CSS" principles, so that it's easier to mix and match parts from different folders:
https://github.com/stubbornella/oocss/wiki
Principles of separating the "structure" from the skin"; and separating "container" from "content".
seigenblues · 2011-11-06
It amazes me that so much writing on this subject is so reductionist. I read so many of these comments talking about the "return on your degree" and ROIs like they can be measured, and i'm kind of flabbergasted.
I have two observations: A liberal-arts degree gives you perspective, context, and judgement . Contrary to popular belief, these are not innate traits. Given that we just read a very well-received essay about how important judgement is to a coder (http://www.engineyard.com/blog/2011/the-number-one-trait-of-a-great-de… it amazes me that we could just sort of forget about other ways these things can be developed.
The other observation is that people talk about being well-rounded like its an inherent good. Perhaps we should spell out why: It increases your luck surface area and exposes you to positive low-probability events.
Being well-rounded means you are better able to place new information in a meaningful framework, because you have a broader and wider set of contexts in which to cross-reference and evaluate your new information. The broader you are, the more likely it is that you can make some useful association with new information. Unfortunately, for the highly-specialized, not only do they not make those associations, but they also don't even know they are available to be made... How do you compute an ROI when so many of the benefits appear to be random?
An example. My father majored in history and english. He ended up writing law and…
cromulent · 2010-11-07
Engine Yard.
http://www.engineyard.com/
kristina · 2010-07-08
Response (awaiting moderation, I think it's the links?):
-------
> haha, that’s funny. i regularly use non-CouchDB databases and I get along great with
> all the people from other databases at conferences.
Oh, I tend to bite people when I find out they use another database . Maybe I should stop that?
> even if i did feel like we were competing, i wouldn’t care. this post really is about
> reliability issues i don’t think your users are fully aware of and i honestly hope that
> you fix.
You must be thrilled to learn that single server durability is coming. I look forward to a followup post extolling MongoDB’s virtues this fall.
> I responded earlier to the complexity of actually keeping something available that
> depends on [multiple servers]. so i won’t cover it again.
Yes, it is a difficult, but not unsolvable, problem. Mongo’s made a bunch of tradeoffs in the awesome vs. easy to program area. For instance, remember last year when CouchDB was saying MongoDB sucked because of its lack of concurrency? That it was too complicated to do concurrency in C++ and that Erlang was the way? Well, now Mongo has concurrency, so on to the next “must have” thing.
>You make it sounds like this is all just a matter of bugs, it’s not, and i find blaming
> it on users who don’t use JIRA or get on IRC a little distasteful.
People discuss everything from bugs to architecture to lunch on our various forums. I was trying to say, possibly badly, that we have a lot of ways for people with…
nkurz · 2010-07-03
Your points are excellent, but number 2 seems a weak: why think of it as a single "machine"? If that's the metric, dual- and quad-processing machines would counter any advantage.
Plus or minus some overclocking, a GTX280 and a Core i7 960 both consume roughly the same number or watts (130 for the processor vs 200 for the card?) and cost roughly the same (at least they did when I bought comparables). So while you can stick (and probably should) stick multiple cards in the same machine, it seems a little silly measure this in terms of multiples of single CPU performance.
NVidia's blog response is interesting, and the some of the comments are actually worth reading:
http://blogs.nvidia.com/ntersect/2010/06/gpus-are-only-up-to-14-times-…
To me, the interesting question here is the degree to which the code has been optimized in each case, and the difficulty of doing so. A while ago there was a competition to attempt to generate SHA1 hash collision: http://www.engineyard.com/blog/2009/programming-contest-and-the-winner…
The GPU's trounced every other approach. I participated in the contest minimally (running slightly tweaked versions other people's code on both an Nvidia GPU and a Core i7) and I was amazed at how much more efficient the GPU solution was. I don't recall the exact ratios, but 'orders of magnitude' was definitely not an exaggeration.
But that's sort of a contrived example. So what I'd love to see here is a framework…
ezmobius · 2009-08-11
I'm one of the founder of http://engineyard.com
datascienced · 2024-04-28
For cattle vs pets, it originally referred to devops: https://www.engineyard.com/blog/pets-vs-cattle/
However I have extended it here to any situation where you have systems in place that you can tweak over say hiring 3 staff and treating them very individually and not having much of an overarching plan.
I worked places where you had one star sales person with 20 years of experience in the industry and that person could sell like mad but if they left you lose all that there is no system around it. But in the short term paying that person overtime and getting out their way makes for a good quarter. But long term the org doesn’t learn anything.
Not in sales myself but just what I have observed from the engineering silo!
pixelmonkey · 2022-09-11
This post has the slide that seared into my memory when I first heard the analogy in 2012-2013 or so:
https://www.engineyard.com/blog/pets-vs-cattle/
Direct link to slide screencap here:
https://www.engineyard.com/wp-content/uploads/2022/02/vCloudOpenStackP…
masonhensley · 2019-08-16
If I was starting out fresh, I'd probably try and check out some of the guides that services like stripe and github have for interacting with their own api's if you'd like some real world experience.
Here some links:
- https://github.com/octokit/octokit.rb
- https://github.com/stripe/stripe-ruby
Depending on how you set up your app, you should look into organizing your external services like this: https://www.engineyard.com/blog/keeping-your-rails-controllers-dry-wit…