RailsConf 2013

Engine Yard Cloud

Engine Yard Cloud

by Edward Chiu and PJ Hagerty

In this session from Rails Conf 2013, Edward Chiu and PJ Hagerty provide an overview of Engine Yard Cloud, discussing its developments, functionalities, and advantages for deploying applications.

Key Points Discussed:

  • Introduction to Engine Yard Cloud: Edward Chiu begins the presentation by highlighting the complexities developers face when preparing for a surge in application traffic, referencing the need for efficient deployment solutions.
  • Deployment Process: A demonstration is provided to illustrate how easily users can deploy applications on Engine Yard. Developers only need their Git repository, application version details, and they can create an environment for production or staging.
  • Environment Configuration: Users can choose a specific application service stack, set preferences for instance failure handling, and configure database options. The demo emphasizes that Engine Yard allows for SSH access to instances and custom database configurations.
  • High Availability Features: The presenters explain the importance of uptime and demonstrate failover capabilities: when an application master is shut down, an application slave automatically promotes itself, ensuring continuous service.
  • Support & Expertise: PJ Hagerty discusses the robust support provided by Engine Yard, available 24/7. Their support team includes experienced engineers, many of whom have faced similar deployment challenges, ensuring they understand customer pain points.
  • Support Structure: There are three tiers of support: initial assistance for trial users, more customized help for paying customers, and a professional services team for specialized needs like code reviews or system performance optimization.
  • Important Takeaways: The session concludes with a reassurance that Engine Yard provides not only a cloud hosting service but also extensive support, which is pivotal for businesses experiencing rapid growth. Users are encouraged to engage with the support team for any concerns or questions, especially at the event's booth and after-party.

Overall, this session emphasizes Engine Yard's goal of simplifying the deployment process while providing robust support for developers, ultimately enabling them to focus more on creating excellent applications rather than getting bogged down with infrastructure worries.

00:00:16.560 Thanks everyone for coming to the Engine Yard session. My name is Edward Chiu, and this is PJ Hagerty. We're going to walk you through some scenarios and share insights about Engine Yard. After that, I'll present a demo so you can see the product, and then I'll pass it over to PJ to discuss support.
00:00:39.600 More than likely, you're working for a company that's aiming for press coverage at some point. That day will arrive, and your traffic will skyrocket. I'll show you a picture of someone you probably know or may relate to—a person stressed out by growing traffic. When you're handling everything on your own, you need to install and configure an operating system, Ruby versions, Rails, application servers, web servers, load balancers, and finally configure the application itself. Once all that is done, you have to pray that everything works, and every time you make stack changes or modify your code, you have to hope again.
00:01:03.440 That's where Engine Yard Cloud comes in. How many people here have deployed on Engine Yard recently? Cool! So, I’m going to quickly walk through the deployment process and then do a demo for you. When you first log into Engine Yard, all we need from you is your Git repository—it's pretty simple. Just let us know what version of your application you are using, whether it's Sinatra, Rails 2, Rails 3, or Rails 4, and then click on 'Create Application'.
00:02:57.720 The assumption here is that your organization would have much better internet than we have here; it generally does not take this long. This is the environment creation page, which serves as a container for your instances. You can create a staging environment or a production environment. Let's create a production environment. You can choose your application service stack, select the version of Ruby you're using, configure your preferences, and set how often you'd like to run database backups and snapshots of your environment.
00:04:39.560 After the environment is created, there are certain options that you can't change until you reboot the environment. However, you can make changes and then start it back up. It's a good question. Just so you know, even though there may seem like a lot of options, if you leave everything the same, it works great right out of the box.
00:05:30.160 The final thing you need to do to deploy an app on Engine Yard is to select the number of instances or servers you want. We offer three preconfigured options: a single instance, a staging configuration, and a production configuration. These setups are convenient because you don't have to think about them too much. You can also go into custom configuration and select the number of application instances you want, specify the size, and even have a separate database instance, a database slave, and a utility instance.
00:06:42.679 While that's loading, I want to mention that application performance can vary depending on the app itself. If you are working with something relatively small, you might use Unicorn, which allows for zero-downtime deployments. However, if you are doing something more complex with migrations, you may experience some downtime. When using Passenger, it's generally for heavier applications, but it does incur downtime since it terminates and respawns all the Passenger workers with the new stack.
00:07:27.560 So while that's loading, this is the official Engine Yard dashboard page where you can see that your production environment is being set up. You have three separate instances being configured. With Engine Yard, we automatically boot your instances into AWS East, allowing you to specify different availability zones to ensure failover. If something goes down, the application slave will promote itself to become the new application master.
00:08:16.479 I'm going to demonstrate this now. I will manually shut down the application master instance, which serves all requests. You’ll see how the application slave immediately takes over by promoting itself as the new application master, continuing to serve requests without any interruptions.
00:09:03.920 It's still trying to recognize that it's shutting down. Just give it a moment. If anyone has a cable, that would be appreciated, as I have a MacBook Air and can't connect directly via RJ45.
00:09:51.200 As you can see, the application is automatically promoting the application slave that has taken over, and we are shutting down the previous slave instance while booting a new one.
00:10:26.320 Now, let’s talk about a few things that make Engine Yard Cloud special. There are numerous technology platforms out there, but I want to highlight four key aspects of Engine Yard that can benefit your company. We've deployed thousands of applications, helping small startups to large enterprises. We have significant expertise in handling high availability, security, load balancing, and more. This experience allows us to help you size up your application instance correctly from the start.
00:12:07.559 When it comes to scaling your application, it's as simple as clicking a button on Engine Yard. Scaling can be a daunting process, but having our support during that time is tremendously beneficial.
00:12:31.440 Additionally, Engine Yard is highly configurable. You can adjust your stack, configure dedicated instances, and set up services like Solar or Redis easily through Chef without any added costs. You simply click a button or uncomment a line of code.
00:12:53.760 An essential aspect we prioritize is high availability. We understand that uptime is crucial, which is why we automatically distribute instances across availability zones. For customers seeking cross-region support, we can facilitate that as well.
00:14:01.200 Now, I'd like to turn it over to PJ, who will discuss our support services.
00:14:49.840 Hello, I'm PJ, a support engineer with the support team. Our team is 100% distributed, and when we say we provide 24/7 support, we genuinely mean it. Our support team follows the sun: we roster engineers from coast to coast and across Europe to ensure a breadth of expertise. Our developers, systems administrators, and Chef and Ruby experts are here to address your concerns and ensure your applications run smoothly.
00:15:28.239 We focus on understanding our customers' challenges. Our support team comprises individuals who’ve experienced similar issues, allowing us to provide empathetic and effective solutions. We emphasize direct interaction and meaningful conversations. When you submit a ticket, we aim for it to feel like a conversation with someone who is knowledgeable about your specific issue.
00:15:47.600 Our support is available 24/7, and we don't adhere to a strict 9 to 5 schedule. If you reach out to us, we're committed to assisting you until we resolve your issue. We have three tiers of support; for instance, our trial customers receive dedicated attention to ensure they understand how to navigate and use the platform effectively.
00:16:42.760 Once you're through the trial phase, our EY app support team steps in. We're here to ensure your application reaches its full potential without overwhelming you with system administration tasks. Our objective is for you to focus on developing outstanding applications while we handle server maintenance and ensure uptime. If any complications arise, our Professional Services team is ready to assist with everything from code reviews to performance enhancements.
00:18:02.800 While we offer cloud products, our support is a significant part of our service. We take pride in being among the best in the world and aim to make your experience exceptional, enabling you to care for your customers. Thank you. I’m PJ, and this is Edward Shu. Are there any questions?
00:19:01.760 If you're too shy to ask questions in this large group, we will be available at the booth later. We're also hosting an after-party, and the answers tend to be much better after a few drinks. Thank you for attending; we hope you learned something today. Please stop by the booth if you have any further questions.