Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
The Heroku application platform makes deploying, running and scaling applications incredibly easy. Traditionally these apps have been Ruby web applications. But as both the platform and its users mature, we are seeing the complexity of hosted apps increase, with more complex infrastructure systems running on Heroku. Today, nobody is more interested in running infrastructure on Heroku than Heroku itself, as self-hosting offers massive benefits and is a fascinating engineering puzzle to boot. We will first discuss the concept of self-hosting and why it such an interesting computer science problem, and a vital property of many systems. Compilers, revision control systems and application platforms all exhibit similar properties of bootstrapping, cross-compiling, and avoiding circular dependencies. Then we will take a look at the more interesting self-hosted components of Heroku such as the the distributed application compiler that used to be a server farm but now is little more than a Heroku app that can even compile itself for releasing new versions. All of this will show how working towards a self-hosted platform results in comprehensive consistency assurance and gains in efficiency, noble goals for such a complex software system. Help us caption & translate this video! http://amara.org/v/FGfh/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this informative talk at Aloha RubyConf 2012, Noah Zoschke explores the intriguing concept of 'Running Heroku on Heroku', focusing on the phenomenon of self-hosting. Heroku, a cloud application platform, traditionally associated with Ruby, has now expanded to support multiple programming languages. Zoschke emphasizes the idea that application developers should concentrate on deploying applications without the complexities of server management. Key Points Discussed: - **Definition of Self-Hosting**: The term refers to systems that can run and manage themselves, thereby eliminating the need for external hosting or management. - **Bootstrapping**: This process is vital to self-hosting, allowing systems to initialize and function independently. It is likened to various domains, including language acquisition and biological processes. - **Historical Context of Bootstrapping**: The evolution of the term from an impossible task to a self-sustaining process across different fields, including computing. - **Self-Hosting in Computing**: Zoschke discusses self-hosting compilers, using LLVM as a case study, demonstrating how a language can compile itself to improve efficiency and consistency. - **Heroku's Self-Hosting Practices**: Heroku's commitment to self-hosting is exemplified through 'dogfooding'—using its platform to run its own services. The evolution from a monolithic architecture to a more modular setup is discussed. - **Operational Efficiency**: By applying self-hosting principles, Heroku enhances its operational efficiency, ensuring that internal services are managed within the framework of its platform. - **Technical Architecture of Heroku**: The speaker outlines Heroku’s architectural components, which include the HTTP router, API, and build system, showing how they interrelate to manage operations effectively. - **Continuous Improvement**: Zoschke highlights a path towards increasing complexity in hosted services and the environment's evolution, encouraging ongoing exploration of self-hosting capabilities. Key Takeaways: - Self-hosting is instrumental for modern application platforms, offering significant efficiency and consistency benefits. - The principles explored can serve as a model for enhancing any complex software system. - Encouragement to consider the implications of self-hosting in personal software projects for potential advancements in efficiency and management.
Suggest modifications
Cancel