Scaling Your Applications with Engine Yard Cloud


Published on

Abheek Anand on Engine Yard Cloud, Rails in the cloud.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Welcome to the Rails Roadshow. My name is Abheek Anand, and I’m a product manager atEngine Yard.I’m here to have a conversation with you about achieving your performance and scalability for your Rails applications Engine Yard Cloud.
  • How many people have deployed applications to the cloud? Any users of Engine Yard Cloud? Excellent. So about 50-50..
  • Here’s what we will be covering today.
  • I’m also going to try out something new here – interleave this presentation with a demo of engine yard cloud to give you a flavor of what some of our customers do to scale some of the biggest rails sites on the internet.
  • Just as an FYI, I have anticipated everything that needs to work for this demo and I can assure you that nothing will possibly go wrong.
  • This is what a typical datacenter might look like. Lots of equipment. Lots of cables. But most importantly, lots of humans. And that can be a problem.
  • Pop quiz #1 – Any ideas on what this graph is? 2 takeaways for me. First Rails definitely scales!Second, But traffic surges can happen suddenly, and they can be pretty dramatic. This phenomena of sudden traffic spikes is extremely common on the internet. Makes it incredibly hard for you to avoid situations like this…
  • Here at Engine Yard, we believe that the cloud is just a fundamentally better way to deploy your applications
  • Elastic provisioning lets you scale up and down.
  • Really its about self-service, being in control of your applications at all times, and doing so easily.
  • Let’s see how Engine Yard Cloud can make it easy, and fun, for you to deploy your application to the cloud.I didn’t want to focus on some toy-app to deploy, and instead wanted to use a real-world complex rails application for this task. Notice all the things that I didn’t end up doing. I didn’t file a ticket to buy new hardware. There was no setting up of infrastructure involved – no cables to be plugged, no switches being setup. There was no database configuration – no application configuration. Engine Yard Cloud does it all for you.
  • Saying over at Engine Yard – let’s get it to the point that customers can hire Abheek to manage all of their infrastructure. Now of course you probably don’t want me running your mission critical applications 24x7 – but I assure you with this platform I can.
  • Ease of deployment is only the first part of the story. Really this is the point at which the performance optimization work really begins.
  • This speed and effectiveness of iteration is a strong competitive differentiator for your product.
  • Let’s talk about each of these in detail.
  • First off, choose the right stack. Wait a minute….
  • This is a rails meetup. And aren’t we in agreement that Rails is a great platform for scalable web applications? Tom just spoke about how it increases developer productivity 2-5x. 2-5x!Ruby on Rails is a great application framework we all know and love, and is fundamentally a better way to do things.
  • Some of the biggest rails sites run on this stack, and we at Engine Yard believe this is really the secret sauce behind why we are able to help applications scale better.
  • Let’s talk about each of these in detail.
  • As an application developer, we believe your first objective while designing your application should be focusing on user happiness.
  • At the same time, be prepared to scale your application as soon as possible.
  • Engine Yard Cloud makes it easy for you to implement these features (and more), right out of the box
  • Let’s talk about each of these in detail.
  • At Engine Yard, we have been practicing agile development as a fundamental development practice, and that gives us a significant advantage when it comes to feature delivery speed. Deployment should be no different – agile deployments can help you iterate faster and more effectively, making it invaluable in resolving performance bottlenecks.
  • Cloning with live data – enables more effectively testing and performance measurement. Fast setup and then throw away. Repeatable.
  • Let’s talk about each of these in detail.
  • The first question you want to ask yourself is – what is YOUR performance bottleneck?
  • Is your application layer unable to scale?
  • Or perhaps database load is causing problems with page load performance?
  • Do you need to use a custom application to achieve your scalability and performance needs?
  • And many solutions. In fact, there are too many solutions. Now you can hire Randall, our rails expert here, to figure it out for you.
  • Pick the right tool for the right job. And rely on our expert support team to support you in case you need it.
  • Flexibility is something we built into the platform from day one. Engine Yard Cloud helps you pick the right tools for the job, whatever they might be.
  • If you remember only three things from this presentation, make it these.
  • But remember twitter – and be prepared to scale when needed.
  • The faster you go through this cycle, the more agile you can be. And on the web, agility is a significant competitive advantage for your business.
  • Scaling Your Applications with Engine Yard Cloud

    1. 1. Scaling your applications with Engine Yard Cloud! Abheek Anand!
    2. 2. Quick Survey
    3. 3. Agenda • What’s different about the cloud? • Engine Yard’s web performance mantra • The four-step path to performance nirvana • Q&A
    4. 4. Demo
    5. 5. Nothing can possibly go wrong
    6. 6. What is different about the cloud?
    7. 7. A typical datacenter
    8. 8. Traditional hosting • Provision to peak demand • Non-elastic platform •  No programmatic provisioning • Lack of actionable performance metrics
    9. 9. Daily Page Views at Twitter
    10. 10. A better way to deploy
    11. 11. Deploying to the cloud • Provision for current load •  Capital expenditure  operating expenditure • Elastic provisioning •  On-demand infrastructure  Ease of deployment • More actionable performance metrics
    12. 12. Take control
    13. 13. DEMO – Deploying on Engine Yard Cloud
    14. 14. Even a Product Manager can do it
    15. 15. Scaling your application in the cloud
    16. 16. The Engine Yard Web Performance Mantra
    17. 17. The right platform can help • Iterate over this loop quickly • Fix problems the right way • In a cost effective and scalable manner
    18. 18. Four ways to scale in the Cloud 1.  The right stack 2.  Scalable application design 3.  Agile deployments 4.  The right components
    19. 19. Four ways to scale in the Cloud 1. The right stack 2.  Scalable application design 3.  Agile deployments 4.  The right components
    20. 20. Ruby on Rails
    21. 21. But not all stacks are created equal
    22. 22. Too simple…
    23. 23. … or overly complex
    24. 24. The right stack is critical
    25. 25. The Engine Yard Cloud Stack • Managed •  Secure, current, and optimized • High Performance •  Up to 20% more than a vanilla stack • Optimally configured out of the box • Standards-based and open source
    26. 26. Four ways to scale in the Cloud 1.  The right stack 2. Scalable application design 3.  Agile deployments 4.  The right components
    27. 27. Focus on user happiness
    28. 28. But be prepared to scale
    29. 29. Application scalability design rules •  Partition to scale •  Heavy reporting or analytics workload? Run on a database replica •  Optimize for common workflows •  Caching instead of hitting the database •  Move non-critical services out of http response path •  Use the right tools •  Measure, measure, measure •  New Relic and Soasta are great tools to help •  Engine Yard Cloud monitoring infrastructure
    30. 30. DEMO! Scaling your application with Engine Yard Cloud
    31. 31. Four ways to scale in the Cloud 1.  The right stack 2.  Scalable application design 3.  Agile deployments 4.  The right components
    32. 32. Agile deployment
    33. 33. 3 Steps to Agile Deployment 1.  One-click and repeatable deploys •  Separate configuration state and data 2.  Integrate deployments into development workflows •  Git integration 3.  Environment cloning and tear-down •  Use for true staging and development replicas
    34. 34. DEMO! Cloning Environments with Engine Yard Clod
    35. 35. Four ways to scale in the Cloud 1.  The right stack 2.  Scalable application design 3.  Agile deployments 4.  The right components
    36. 36. What is YOUR performance bottleneck?
    37. 37. Application Layer?
    38. 38. Database Load?
    39. 39. Custom Applications?
    40. 40. Many problems…
    41. 41. …No Silver Bullet
    42. 42. Choose the right tools
    43. 43. DEMO! Scaling with custom utility instances
    44. 44. Why Engine Yard Cloud • Scale from start to finish • One-click deployments • Use any custom component • Pay only for what you use • Automate everything • Access our expert Rails support team
    45. 45. Three takeaways
    46. 46. 1. Start small, be agile about performance Corollary – Focus on user happiness first
    47. 47. Remember Twitter
    48. 48. 2. Scaling is about rapid iterations (Measure  Identify  Optimize)
    49. 49. 3. Use the right platform to let you scale
    50. 50. Three Takeaways! 1. Start small, be agile about performance! 2. Scaling is about rapidly iterating! 3. Use the right platform
    51. 51. Questions?
    52. 52. Thanks for listening! Abheek Anand!