Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Thats the dream we all share. *Building the one perfect software.* But you know the answer already, you just have to admit it: **There is no perfect software.** But I've a few tips and tricks to do better: ‘The 12 Factor App’ is a manifesto written by Adam Wiggins (co-founder of heroku) describing the perfect (cloud ready) web app. But it’s way more than that. It should be the standard way of writing apps. Because it contains some tips and tricks how to build your webapp. For example only logging to stdout or that all configuration should be done via environment variables. It’s about building robust and scalable systems. If everyone followed these 12 simple principles, we could have shared tooling across programming languages borders. Image that one pre-build logging and metrics solution. The one and only way of configuring your project. The one way to run it, successfully.
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 talk, Ole Michaelis explores the concept of the '12-Factor App,' a manifesto by Adam Wiggins which aims to outline best practices for building cloud-ready web applications. The discussion emphasizes that while the ideal of a perfect software doesn't exist, following these 12 guidelines can significantly improve application development, scalability, and maintainability. Key points discussed include: - **Codebase Management**: One codebase tracked in version control should exist with multiple deployments. - **Dependency Management**: Dependencies need to be declared explicitly and isolated to avoid conflicts. The importance of managing versions through tools like Gemfile is highlighted. - **Configuration Handling**: All configuration should be stored in the environment rather than in the application code, to simplify management and enhance clarity. - **Statelessness**: Applications should predominantly operate as stateless processes, which involves treating backing services as attached resources. - **Separation of Concerns**: Administrative processes should run separately from application functions to avoid performance bottlenecks during user requests. - **Resilient Architecture**: Applications must support quick startup and graceful shutdown to maintain performance and reliability, particularly in cloud environments. - **Logging as Event Streams**: Logs should be treated as event streams, utilizing standard output or standard error for error messages and debug information instead of log files. Anecdotes from Michaelis's experience in web development are shared, illustrating challenges like dependency management in PHP and the evolution of practices in Ruby on Rails. He emphasizes the need to adapt to modern methodologies to avoid common pitfalls encountered in earlier development environments. The conclusion reiterates the significance of adhering to these principles, not merely as a theoretical guide but as practical advice to create robust applications. Michaelis encourages the audience to read the full 12-Factor Manifesto for in-depth techniques and insights, advocating for a shift towards these best practices in software development.
Suggest modifications
Cancel