Engine Yard Blog RSS Feed

Is My CDN Working? Announcing Fastly on Engine Yard

Fastly on Engine Yard

CDN integration is a request we've been hearing from our customers at Engine Yard for a long time now. So we are proud to announce the immediately availability of Fastly as an Engine Yard Add-on.

Fastly is built using the open-source Varnish Cache running in a network of data centers around the world. While supporting a number of advanced options for caching and cache-invalidation, Fastly is also super easy to setup as a basic asset cache.

This post will talk about setting up Fastly on Engine Yard and how to use Fastly Surrogate-Keys for purging individual objects from the cache. You may also be interested in the announcement from Fastly: Ruby on Rails on Fastly.

Setting up Fastly

The simplest, most bare-bones way to use a CDN is to just use it as an asset host. This means things like your javascript, css, and image files can be served by the CDN, leaving more resources available for your Engine Yard web stack to serve requests that run your app-specific code.

The example TODO application is a basic app using Rails 3, and so makes a good candidate for a simple Fastly integration.


April 11, 2014: This Week at Engine Yard

Gearing up for ChefConf and learning what all our DevOps friends have been up to next week, hope to see you there!

--Tasha Drew, Product Manager

Engineering Updates

Computers can be weird sometimes, and there are few people who appreciate the depth of that weirdness more than we do. Sometimes, for example, your application cluster may get into a pattern where application masters are being taken over repeatedly, and you really want to know why. To help expose that extra level of debugging, we have released an optional feature into GA: application master takeover preference.

App Master Takeover

If your application master keeps going on vacation without leaving a note saying why, this is the feature for you. When a takeover occurs, the old application master will be saved as a utility instance that is not serving any traffic, so you can SSH into the box and investigate what is up with its shoddy work ethic. As always, if you need extra help, you can always open a ticket with our support team too!

Utility Instances

This feature is intended only for that extra level of debugging, and is not recommended as a default configuration.

A bunch of other updates are chronicled in our regular release notes!

Social Calendar (Come say hi!)

ScaleConf, April 10-11, Cape Town, South Africa: a two day conference that focuses on the problems faced in building and running services on the internet today. Platform engineering legend Shai Rosenfeld will be presenting on concurrency and scaling!

ChefConf, April 15-17, San Francisco, California: Learn and share best practices for whipping up awesome in workshops, presentations and training with our favorite people in the world—the Chef Community. Ryan Souza, platform engineer extraordinaire, will be speaking, having made the long trek from the northern wilds of Portland, Oregon. Keep an eye out for his evil twin, the Fake Ryan Souza, he may make an appearance as well.

Articles of Interest

A brilliantly simple explanation of the Heartbleed bug by the excellent xkcd.

How To Dissect a Clojure Web Application and Deploy on Engine Yard

In this post, I’m going to build a simple Clojure Web app and deploy it to a Jetty application server running on Engine Yard’s cloud application management platform. In a follow-up post, I expand my Web app and show how to integrate it with a MySQL database server running in the Engine Yard environment.

To build my web app, I’m going to use the most common tools in the Clojure web stack:

  • Ring, a thin abstraction on top of HTTP request and response handling, and
  • Compojure, a small routing library for working with Ring.

Ring and Compojure are built on and interoperate with, the Java HTTP Servlet (API), so applications built with them can be deployed on any servlet container, such as Jetty or Tomcat.

In you already have a Clojure application, to deploy with Engine Yard, please jump to the packaging section.

If you are new to Clojure Web application development, read on.

What is Clojure?

The description at Clojure.org captures the essence of Clojure as a dynamic, functional language with a solid runtime foundation on the Java Virtual Machine:

Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR, and JavaScript). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

What is Engine Yard?


Pioneering a new look for Distill

distill2014

We have a whole new look and feel to the Distill conference site for 2014 and we’re very excited about it.

Distill 2014 will bring together builders, creators and pioneers of web and mobile technology, innovation and methodology. And this year, we decided the theme of the conference itself should be echoed in the design and aesthetic of the site. In keeping with the pioneering technology motif of the CFP and content, we created our own pioneers’ map of San Francisco; our version of the city is muddled with some internet themes that we frequently encounter. Be sure to poke around the site itself to see what we mean, we hope the chuckles will be worth it.

This year we’ll be bringing Distill to San Francisco, so you should expect lots of local flavor. Continuing with what we started last year, we’re working with small, local vendors to create a unique and memorable experience for all attendees.

If you’ve made a difference in the web or other technology field in the past couple of years, we want you to submit. We want to build a conference lineup filled with diversity, of people making incredible things in new and forward ways. Need some inspiration? Fear not, here’s a small (but totally incomplete) list of ideas:

  • Software development on innovative hardware platforms
  • Unique solutions to common problems with tools we use today
  • Hardware, software, and mobile integration
  • Tools for bringing people together who have difficulty connecting
  • New innovations using hardware and software and where these innovations will lead
  • Focusing on the artistic, creative side of design and development

Our Call for Papers is open until April 30th and we welcome submissions from anyone with something to teach, share, or inspire an audience of fellow developers, designers, thinkers, and innovators. So be sure to submit early and often!

April 4, 2014: This Week at Engine Yard

Spent a fantastic week in Atlanta, attending GWOCon and visiting local customers and partners to talk tech and get feedback. We always want to know what you’re thinking and how our platform can make your life better and easier! It was awesome to see the excitement and interest in some of the feature sets we’re actively working on.

--Tasha Drew, Product Manager

Engineering Updates

AWS’s popular new instance families, the C3 and M3 instances, are now available on Engine Yard under our Early Access program. We’ve had the C3’s for a while, but have added some enhancements to how they perform, especially for databases. The M3’s are new on our platform, but have also benefited from these enhancements.

A bunch of other updates are chronicled in our regular release notes!