Increasing Performance While Decreasing Price: Testing the New T2 Instances From Amazon

Amazon’s T2 instances have been available on Engine Yard since December. These instances are a "low-cost, General Purpose instance type that are designed to provide a baseline level of CPU performance with the ability to burst above the baseline."

I wanted to see just how much more powerful the T2 instances were, compared to the previous generation of m1.Smalls. To test this, I am going to compare three instance types: the t2.micro, t2.small, and m1.small.

For each test, the instances were provisioned in the Western US Oregon Region with a 5GB Snapshot capacity. Instances are selected from the list of Engine Yard instance types, and run Engine Yard’s V4 stack and Gentoo 12.11. The tests were done with UnixBench 5.1.3 against a single application instance running a static PHP 5.4 web application.

Read More

A Fast Blogging Solution: Building a Simple Jekyll Blog

A year or so back I was speaking at Cascadia Ruby and I met with a friend and colleague of mine, Gerlando Piro. He was at the conference to attend and give his first ever lightning talk. And in five minutes, my interest was piqued about Jekyll, a simple—very Ruby—way to create static websites and blogs.

Recently, I took some time to look at using Jekyll. I’ve had experience with WordPress, services like Blogger, and of course I’ve done the classic (but now a bit dated) Learn Rails by building a blog in 15 minutes. But I needed to know what the differences were. Was Jekyll more hands on, like building a blog in Rails? Or was it all templating hoping for the best like WordPress? Here’s what I found out.

Read More
Learn about Engine Yard
Try Engine Yard for your Ruby or PHP Apps

Getting Serious on Net Neutrality (or How Congress Killed Internet Startups)

Getting Serious on Net Neutrality

UPDATE February 26, 2015: Today the FCC voted in favor of reclassifying internet access under Title II of the Telecommunications Act. The 3-2 vote was, according to this time.com article, split along party lines, with Republican officials voting against it, and Democrats in favor of the reclassification that would protect net neutrality nation-wide. It is now expected that various trade industry groups with monetary backing from firms such as AT&T and Comcast, among others, will proceed with multiple lawsuits in an attempt to force a court to overturn the FCC's decision on this matter, or eradicate its authority, as it pertains to regulating the internet, entirely. In the author's opinion, it would not be surprising to see this battle eventually wind up in the Supreme Court within a few years.

UPDATE February 6, 2015: Tom Wheeler (Chairman, FCC) has announced that he will indeed propose to the commission that the FCC regulate broadband (mobile and otherwise) under Title II of the Telecommunications Act. This means that the commission will vote on whether or not to do this. The announcement itself is equivalent to winning a battle in the war - not the whole thing.

Additionally, it is largely expected for ISPs to band together in a massive lawsuit to prevent the FCC from enforcing these rules, should the commission vote in favor of Mr. Wheeler’s proposal. This fight will, in the author’s opinion, eventually wind up in the Supreme Court.

Finally, Congressional Republicans are reported to have two major strategies in play to defeat this: one is to introduce new legislation that would recognize net neutrality as law, but prevent the FCC from enforcing it. The second is to rewrite portions of the Communications Act to strip the FCC of its legal powers.

In light of these facts, it is very important to contact your senators, representative, and all five members of the FCC’s Commission listed below to voice your support for granting the FCC power to enforce real net neutrality.

Net Neutrality. We’ve all heard the term, and we’ve heard of the fights going on in the halls of Congress for years now. But right now - in February 2015 - the fight is heating up and coming to a head.

Engine Yard generally avoids entering into the political fray. It’s a lose-lose proposition for most companies to take a stand on political issues of any kind, simply because of the plethora of opinions involved. However, on this issue, we believe it is important to speak up.

Read More

Fine-Tuning Memcached

Fine-Tuning Memcached

Are you getting memcached interruptions in your application logs? Does memcached say its been running but your app says something else?

Diagnosing the Problem

The first step is to check memcached stats with Telnet. If you’re running on Engine Yard (we use Gentoo) you can run emerge -g netkit-telnetd on your memcached server. You can then telnet localhost 11211 and then type stats. You should see something like this:

stats
STAT pid 27631
STAT uptime 104
STAT time 1401932723
STAT version 1.4.5
STAT pointer_size 64
STAT rusage_user 0.004999
STAT rusage_system 0.010998
STAT curr_connections 10
[...]
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 4354
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 23420009
STAT reclaimed 0
END
Read More

It's raining gems! - How to build your own Ruby gem

If you’ve had a bit of experience in the Ruby programming language, you know the importance of gems in your work. Like the plugins that came before them, gems are mini-pieces of code used to perform specific duties without interfering with or becoming a direct part of your code. The code required for a gem is still part of your project’s ecosystem, but you’ve removed some overhead (and duplication) by using the gem instead of coding it up yourself.

So what happens when you have a piece of code that might be broken out to stand alone? What if that code might actually be helpful to others? It’s time to build a gem.

Getting started is easy and will use tools you already have installed in your environment, most likely. Your first step is to get bundler installed.

$ gem install bundler

Once bundler is installed, we are ready to start the gem making process. Before actually writing anything or creating a sandbox to work with, we need to do one of the most difficult things in all of programming: naming things. Our gem should have a name that describes what it does, is easy to remember, and (hopefully) hasn’t been used before. To check on names of gems, check out the search function of Rubygems.org - this may also bring you to a gem with the same functionality and save you some work in the long run.

For our example we are going to write a gem called sleepr - it will be used to point out when people using our app are doing so after hours and should just go to sleep. Not very useful, but great for our example as it will be pretty simple. Let’s get started!

Read More