Heroku Moved Twelve-Factor Apps to Open Source. What’s Next?

## Metadata
- Author: [[The New Stack Podcast]]
- Full Title: Heroku Moved Twelve-Factor Apps to Open Source. What’s Next?
- Category: #podcasts
- URL: https://share.snipd.com/episode/11009055-4a50-47de-ade5-6bb666c0b7ca
## Document Notes
## Highlights
- **Updating 12-Factor App**
- The 12-Factor app methodology, while influential, needs updates.
- Some areas are outdated due to the evolution of cloud-native development since 2011.
Transcript:
Alex
We were just chatting a little bit beforehand because I was reading 12Factor apps again. I read it many years ago. And what's striking is it does need updating.
Gail Frederick
It does need updating. I mean, Adam Wiggins wrote 12 Factor in 2011. 13 years later, while the factors have inspired a generation of cloud developers, there are just some areas that are dated, and those are the ones that we're excited to update after The open source release. So ([Time 0:03:56](https://share.snipd.com/snip/876b43b9-53dd-4fbc-84cd-c6d25ee9e603))
- Here are five reflection questions based on the podcast episode about the open-sourcing of the Twelve-Factor App methodology:
1. **What are the most significant changes needed to modernize the Twelve-Factor App methodology for contemporary cloud-native development?** Consider the shift from logs to telemetry and the evolution of application architectures.
2. **How will open-sourcing the Twelve-Factor App methodology impact its evolution and adoption?** Discuss the potential benefits and challenges of community involvement in shaping best practices for cloud-native application development.
3. **What are the key challenges in balancing the need for modernization with the preservation of the core principles of the Twelve-Factor App methodology?** Think about maintaining focus and relevance while accommodating emerging technologies.
4. **How can the updated Twelve-Factor App methodology address the complexities of deploying interconnected systems of apps and the rise of AI and data-centric applications?** Consider how the principles can adapt to diverse architectural patterns like serverless and distributed systems.
5. **What role should Heroku play in maintaining the integrity and relevance of the Twelve-Factor App methodology now that it is an open-source project?** Discuss the balance between Heroku's vested interest and the need for community-driven evolution.
Transcript:
Gail Frederick
It does need updating. I mean, Adam Wiggins wrote 12 Factor in 2011. 13 years later, while the factors have inspired a generation of cloud developers, there are just some areas that are dated, and those are the ones that we're excited to update after The open source release.
Alex
So what are some of the particulars that you see need updating that come to mind first.
Gail Frederick
I see three main areas that we want to work with first. The manifesto talks about logs and treating logs as event streams. And what's changed in cloud-native development since then is developers need metrics, a wide variety of metrics coming out of their applications, not just textual logs or data format Logs. So I think we're going to end up updating that factor specifically to translate to telemetry and identifying best practices for what metrics your app should be emitting and then how You move them through into whatever visualization you want.
Alex
Telemetry is one of those topics that is getting particular notice because telemetry is everywhere, right? Now in microservices especially, and Internet of Things and edge computing and connected cars and the rest.
Gail Frederick
That's right. Developers need to know when they're running their apps, how is the app functioning? Are there errors in the app? What's happening in the framework that the app is running in? What's happening in the operating system? How many resources am I consuming? What is the error rate of my application? Can I see if my users are satisfied? Telemetry can cover all of those areas.
Alex
So what changes with a community focus? It clearly then moves outside the domain of the organization, in this case Heroku. We're just kind of harboring it, I guess.
Gail Frederick
That's right. Nurturing. We were nurturing it. And so what we're doing and announcing this week at KubeCon is that we have released 12-factor principles as an open source project. It's in its own GitHub org outside of Heroku-owned open source code. And we started this open source release with a community of 12 maintainers coming from six different tech companies. And we're announcing it here and we're inviting this community of cloud-native developers to come and join us on this journey and help us as we review the factors and really think carefully About what are mindful updates we can make that are non-disruptive to the idea of best practices for cloud-native app development, and then back that up with reference architectures And code examples.
Alex
Okay, there's a lot here. I guess my first question is really where do you start? You know, it's an open source project, so people can make the contributions that they wish. They can make a pull request if they wish. But is there any thematic approach that you're hoping to take with the project itself?
Gail Frederick
Well, it's very early days. What we've done so far amongst the maintainers is start with thorough discussions about the factors. And as we're listening from Heroku and Salesforce and Google Cloud and AWS bringing in our experience, running apps at scale for this past decade, really listening to what's working And what's not working for our customer bases and for us as infrastructure providers. So listening is really going to come first. And then we're going to coalesce what we think is important into revisions to the factors.
Alex
Has that process started? It has.
Gail Frederick
We've been working with this maintainer community for about three months since the summer.
Alex
What have you started to see?
Gail Frederick
Well, the opinion I have about moving from logs to telemetry was very much informed from those conversations. We all also recognize that cloud-native developers do not just deploy one app anymore. They deploy a system of apps together with multiple backing stores. And so 12Factor is pretty clear about one app with backing services and a data store. And that's not the reality for app developers in the cloud today. So that's two examples of this community, the maintainer community, coming together and creating an opening position as we ask for help from this community here at KubeCon.
Alex
Could there be more than 12 factors?
Gail Frederick
I think so. I mean, Heroku doesn't own 12 factors, so 12 factor will evolve with the community. Right. I have a personal opinion that 12 is a good number.
Alex
Well, it's a good number. Could you lose one or two then along the way?
Gail Frederick
I think maybe one will change in its entirety.
Alex
Oh, the log one.
Gail Frederick
Yeah, sure. I like 12. My opinion is we are feeling inspired by the past, but this is a community-driven process and it's open source, so we will see where the community takes it.
Alex
The ecosystem and community is relatively young in comparison to modern industry or agriculture, right? You know, practices have emerged over hundreds or thousands of years, right? So this is really just the beginning, but it really is almost a historical document, isn't it?
Gail Frederick
I think of it as a document for the cloud. We see the durability of those principles. And we are always at Heroku bumping into customers and partners who have been inspired by those principles when they're building in the cloud or even building on their own infra.
Alex
So what has aged well?
Gail Frederick
Environmental parity. So dev prod parity is one of the factors. I think that has aged very well, as well as the idea that it's very important to have local development. It's very important as a cloud native developer to be able to work and run on an airplane, for example. I do that a lot. Even if the thing that I deploy ends up in the cloud. Also, the idea of disposability, I believe, is essential for cloud-native apps. Yeah, isn't it? Essential, yeah.
Alex
We still see that a lot now. I just relate it to discussions I've had over the past few years about ephemeral clusters, right? You know, things disappearing.
Gail Frederick
Yeah, that's essential. I think it's also true that not all apps run in the cloud follow that principle of disposability, but when you do, you end up with something much more resilient and scalable.
Alex
A lot of the work that you're doing now is staying true to the core themes and focus and values of the original 12 factor, but also considering the new technology patterns.
Gail Frederick
That's right. And I think focus is important. I mean, you asked this question of, could there be more than 12? In my opinion, as one of the opening maintainers, is there must be 12 for that reason of focus. ([Time 0:04:06](https://share.snipd.com/snip/e46b2a1f-7041-463a-adac-9f04afb952e9))
- Here are five reflection questions based on the podcast episode about the open-sourcing of the Twelve-Factor App methodology:
1. **How can the updated Twelve-Factor App methodology better address modern cloud-native realities, such as deploying interconnected systems of apps with diverse backing services?** This question encourages critical thinking about the limitations of the original methodology and the necessary adaptations for contemporary applications.
2. **What are the potential benefits and challenges of opening up the Twelve-Factor App methodology to a wider community?** This question encourages considering the potential advantages of collaborative development, while also acknowledging the risks associated with decentralized control and potentially conflicting perspectives.
3. **In what ways might the shift from logs to telemetry and metrics visualization enhance the efficacy of application monitoring and troubleshooting?** This question prompts reflection on the evolution of application monitoring and the value proposition of comprehensive telemetry.
4. **How can the updated Twelve-Factor App methodology remain focused and relevant while incorporating new technologies and architectural patterns such as serverless architectures and AI?** This delves into the balance between preserving core principles and adapting to technological advancements.
5. **How does the open-source nature of the Twelve-Factor App methodology impact its potential for adoption and influence within the broader developer community?** This question encourages consideration of the role of community involvement in shaping and disseminating best practices.
Transcript:
Gail Frederick
It does need updating. I mean, Adam Wiggins wrote 12 Factor in 2011. 13 years later, while the factors have inspired a generation of cloud developers, there are just some areas that are dated, and those are the ones that we're excited to update after The open source release.
Alex
So what are some of the particulars that you see need updating that come to mind first.
Gail Frederick
I see three main areas that we want to work with first. The manifesto talks about logs and treating logs as event streams. And what's changed in cloud-native development since then is developers need metrics, a wide variety of metrics coming out of their applications, not just textual logs or data format Logs. So I think we're going to end up updating that factor specifically to translate to telemetry and identifying best practices for what metrics your app should be emitting and then how You move them through into whatever visualization you want.
Alex
Telemetry is one of those topics that is getting particular notice because telemetry is everywhere, right? Now in microservices especially, and Internet of Things and edge computing and connected cars and the rest.
Gail Frederick
That's right. Developers need to know when they're running their apps, how is the app functioning? Are there errors in the app? What's happening in the framework that the app is running in? What's happening in the operating system? How many resources am I consuming? What is the error rate of my application? Can I see if my users are satisfied? Telemetry can cover all of those areas.
Alex
So what changes with a community focus? It clearly then moves outside the domain of the organization, in this case Heroku. We're just kind of harboring it, I guess.
Gail Frederick
That's right. Nurturing. We were nurturing it. And so what we're doing and announcing this week at KubeCon is that we have released 12-factor principles as an open source project. It's in its own GitHub org outside of Heroku-owned open source code. And we started this open source release with a community of 12 maintainers coming from six different tech companies. And we're announcing it here and we're inviting this community of cloud-native developers to come and join us on this journey and help us as we review the factors and really think carefully About what are mindful updates we can make that are non-disruptive to the idea of best practices for cloud-native app development, and then back that up with reference architectures And code examples.
Alex
Okay, there's a lot here. I guess my first question is really where do you start? You know, it's an open source project, so people can make the contributions that they wish. They can make a pull request if they wish. But is there any thematic approach that you're hoping to take with the project itself?
Gail Frederick
Well, it's very early days. What we've done so far amongst the maintainers is start with thorough discussions about the factors. And as we're listening from Heroku and Salesforce and Google Cloud and AWS bringing in our experience, running apps at scale for this past decade, really listening to what's working And what's not working for our customer bases and for us as infrastructure providers. So listening is really going to come first. And then we're going to coalesce what we think is important into revisions to the factors.
Alex
Has that process started? It has.
Gail Frederick
We've been working with this maintainer community for about three months since the summer.
Alex
What have you started to see?
Gail Frederick
Well, the opinion I have about moving from logs to telemetry was very much informed from those conversations. We all also recognize that cloud-native developers do not just deploy one app anymore. They deploy a system of apps together with multiple backing stores. And so 12Factor is pretty clear about one app with backing services and a data store. And that's not the reality for app developers in the cloud today. So that's two examples of this community, the maintainer community, coming together and creating an opening position as we ask for help from this community here at KubeCon.
Alex
Could there be more than 12 factors?
Gail Frederick
I think so. I mean, Heroku doesn't own 12 factors, so 12 factor will evolve with the community. Right. I have a personal opinion that 12 is a good number.
Alex
Well, it's a good number. Could you lose one or two then along the way?
Gail Frederick
I think maybe one will change in its entirety.
Alex
Oh, the log one.
Gail Frederick
Yeah, sure. I like 12. My opinion is we are feeling inspired by the past, but this is a community-driven process and it's open source, so we will see where the community takes it.
Alex
The ecosystem and community is relatively young in comparison to modern industry or agriculture, right? You know, practices have emerged over hundreds or thousands of years, right? So this is really just the beginning, but it really is almost a historical document, isn't it?
Gail Frederick
I think of it as a document for the cloud. We see the durability of those principles. And we are always at Heroku bumping into customers and partners who have been inspired by those principles when they're building in the cloud or even building on their own infra.
Alex
So what has aged well?
Gail Frederick
Environmental parity. So dev prod parity is one of the factors. I think that has aged very well, as well as the idea that it's very important to have local development. It's very important as a cloud native developer to be able to work and run on an airplane, for example. I do that a lot. Even if the thing that I deploy ends up in the cloud. Also, the idea of disposability, I believe, is essential for cloud-native apps. Yeah, isn't it? Essential, yeah.
Alex
We still see that a lot now. I just relate it to discussions I've had over the past few years about ephemeral clusters, right? You know, things disappearing.
Gail Frederick
Yeah, that's essential. I think it's also true that not all apps run in the cloud follow that principle of disposability, but when you do, you end up with something much more resilient and scalable.
Alex
A lot of the work that you're doing now is staying true to the core themes and focus and values of the original 12 factor, but also considering the new technology patterns.
Gail Frederick
That's right. And I think focus is important. I mean, you asked this question of, could there be more than 12? In my o... ([Time 0:04:06](https://share.snipd.com/snip/9a606a4d-b268-4f7d-bef7-27bdf9f3d17c))
- **Modernizing Logging**
- Treat logs as event streams and incorporate telemetry and metrics.
- Define best practices for emitting and visualizing application metrics.
Transcript:
Alex
What are some of the particulars that you see need updating that come to mind first.
Gail Frederick
I see three main areas that we want to work with first. The manifesto talks about logs and treating logs as event streams. And what's changed in cloud-native development since then is developers need metrics, a wide variety of metrics coming out of their applications, not just textual logs or data format Logs. So I think we're going to end up updating that factor specifically to translate to telemetry and identifying best practices for what metrics your app should be emitting and then how You move them through into whatever visualization you want. ([Time 0:04:23](https://share.snipd.com/snip/0e2ee6ff-9043-440b-9bf3-f847eb983f98))
- Here are three contrarian moments from the podcast, along with timestamps to replay them and relevant quotes:
**1. Logs are insufficient; Telemetry is needed.**
Play from 04:30.
Gail Frederick argues that the original 12-Factor App's focus on logs as event streams is outdated. Modern cloud-native development requires a broader approach encompassing various metrics, not just textual logs. This contradicts the conventional wisdom of simply relying on log analysis for application monitoring.
> "The manifesto talks about logs and treating logs as event streams. And what's changed in cloud-native development since then is developers need metrics, a wide variety of metrics coming out of their applications, not just textual logs or data format logs." — **Gail Frederick**
**2. Serverless is extreme 12-Factor.**
Play from 19:31.
A maintainer (unnamed in the transcript) suggests that serverless architectures represent an extreme form of the 12-Factor App methodology. This contrasts with the potential perception that serverless and 12-Factor are separate or even incompatible approaches to application development.
> "one can think of serverless as extreme 12 factor" — **Unnamed Maintainer**
**3. AI apps are just apps.**
Play from 21:13.
Gail Frederick proposes that AI applications, despite their novelty, essentially conform to the fundamental principles of regular applications. This challenges the idea that AI applications necessitate a completely separate set of development and deployment practices.
> "A point of view from Heroku is AI apps are also just apps." — **Gail Frederick**
Transcript:
Gail Frederick
I see three main areas that we want to work with first. The manifesto talks about logs and treating logs as event streams. And what's changed in cloud-native development since then is developers need metrics, a wide variety of metrics coming out of their applications, not just textual logs or data format Logs. So I think we're going to end up updating that factor specifically to translate to telemetry and identifying best practices for what metrics your app should be emitting and then how You move them through into whatever visualization you want.
Alex
Telemetry is one of those topics that is getting particular notice because telemetry is everywhere, right? Now in microservices especially, and Internet of Things and edge computing and connected cars and the rest.
Gail Frederick
That's right. Developers need to know when they're running their apps, how is the app functioning? Are there errors in the app? What's happening in the framework that the app is running in? What's happening in the operating system? How many resources am I consuming? What is the error rate of my application? Can I see if my users are satisfied? Telemetry can cover all of those areas.
Alex
So what changes with a community focus? It clearly then moves outside the domain of the organization, in this case Heroku. We're just kind of harboring it, I guess.
Gail Frederick
That's right. Nurturing. We were nurturing it. And so what we're doing and announcing this week at KubeCon is that we have released 12-factor principles as an open source project. It's in its own GitHub org outside of Heroku-owned open source code. And we started this open source release with a community of 12 maintainers coming from six different tech companies. And we're announcing it here and we're inviting this community of cloud-native developers to come and join us on this journey and help us as we review the factors and really think carefully About what are mindful updates we can make that are non-disruptive to the idea of best practices for cloud-native app development, and then back that up with reference architectures And code examples.
Alex
Okay, there's a lot here. I guess my first question is really where do you start? You know, it's an open source project, so people can make the contributions that they wish. They can make a pull request if they wish. But is there any thematic approach that you're hoping to take with the project itself?
Gail Frederick
Well, it's very early days. What we've done so far amongst the maintainers is start with thorough discussions about the factors. And as we're listening from Heroku and Salesforce and Google Cloud and AWS bringing in our experience, running apps at scale for this past decade, really listening to what's working And what's not working for our customer bases and for us as infrastructure providers. So listening is really going to come first. And then we're going to coalesce what we think is important into revisions to the factors.
Alex
Has that process started? It has.
Gail Frederick
We've been working with this maintainer community for about three months since the summer.
Alex
What have you started to see?
Gail Frederick
Well, the opinion I have about moving from logs to telemetry was very much informed from those conversations. We all also recognize that cloud-native developers do not just deploy one app anymore. They deploy a system of apps together with multiple backing stores. And so 12Factor is pretty clear about one app with backing services and a data store. And that's not the reality for app developers in the cloud today. So that's two examples of this community, the maintainer community, coming together and creating an opening position as we ask for help from this community here at KubeCon.
Alex
Could there be more than 12 factors?
Gail Frederick
I think so. I mean, Heroku doesn't own 12 factors, so 12 factor will evolve with the community. Right. I have a personal opinion that 12 is a good number.
Alex
Well, it's a good number. Could you lose one or two then along the way?
Gail Frederick
I think maybe one will change in its entirety.
Alex
Oh, the log one.
Gail Frederick
Yeah, sure. I like 12. My opinion is we are feeling inspired by the past, but this is a community-driven process and it's open source, so we will see where the community takes it.
Alex
The ecosystem and community is relatively young in comparison to modern industry or agriculture, right? You know, practices have emerged over hundreds or thousands of years, right? So this is really just the beginning, but it really is almost a historical document, isn't it?
Gail Frederick
I think of it as a document for the cloud. We see the durability of those principles. And we are always at Heroku bumping into customers and partners who have been inspired by those principles when they're building in the cloud or even building on their own infra.
Alex
So what has aged well?
Gail Frederick
Environmental parity. So dev prod parity is one of the factors. I think that has aged very well, as well as the idea that it's very important to have local development. It's very important as a cloud native developer to be able to work and run on an airplane, for example. I do that a lot. Even if the thing that I deploy ends up in the cloud. Also, the idea of disposability, I believe, is essential for cloud-native apps. Yeah, isn't it? Essential, yeah.
Alex
We still see that a lot now. I just relate it to discussions I've had over the past few years about ephemeral clusters, right? You know, things disappearing.
Gail Frederick
Yeah, that's essential. I think it's also true that not all apps run in the cloud follow that principle of disposability, but when you do, you end up with something much more resilient and scalable.
Alex
A lot of the work that you're doing now is staying true to the core themes and focus and values of the original 12 factor, but also considering the new technology patterns.
Gail Frederick
That's right. And I think focus is important. I mean, you asked this question of, could there be more than 12? In my opinion, as one of the opening maintainers, is there must be 12 for that reason of focus. If contributors to the project would like to change a factor, I think we must find something that we want to remove to keep that balance.
Alex
Each factor could also, I guess, theoretically have articles, right?
Gail Frederick
You mean articles like the Constitution has amendments.
Alex
Yeah, I should say amendments.
Gail Frederick
The thing that we h... ([Time 0:04:30](https://share.snipd.com/snip/54201cfe-619f-4169-997b-3b81e0f6d875))
- **Community-Driven Updates**
- The open-sourced 12-Factor App project invites community contributions for modernization.
- Maintainers from various tech companies will guide non-disruptive updates with reference architectures and code examples.
Transcript:
Alex
What changes with a community focus? It clearly then moves outside the domain of the organization, in this case Heroku. We're just kind of harboring it, I guess.
Gail Frederick
That's right. Nurturing. We were nurturing it. And so what we're doing and announcing this week at KubeCon is that we have released 12-factor principles as an open source project. It's in its own GitHub org outside of Heroku-owned open source code. And we started this open source release with a community of 12 maintainers coming from six different tech companies. And we're announcing it here and we're inviting this community of cloud-native developers to come and join us on this journey and help us as we review the factors and really think carefully About what are mindful updates we can make that are non-disruptive to the idea of best practices for cloud-native app development, and then back that up with reference architectures And code examples. ([Time 0:05:45](https://share.snipd.com/snip/62c07a0f-310a-4600-a318-ed9135906245))
- **Evolving App Deployment**
- Cloud-native developers now deploy interconnected systems of apps, not just single apps.
- The original 12-Factor App model of one app with backing services needs expansion.
Transcript:
Alex
Have you started to see?
Gail Frederick
Well, the opinion I have about moving from logs to telemetry was very much informed from those conversations. We all also recognize that cloud-native developers do not just deploy one app anymore. They deploy a system of apps together with multiple backing stores. And so 12Factor is pretty clear about one app with backing services and a data store. And that's not the reality for app developers in the cloud today. So that's two examples of this community, the maintainer community, coming together and creating an opening position as we ask for help from this community here at KubeCon. ([Time 0:07:51](https://share.snipd.com/snip/ace3d875-70f3-4368-a080-2d286d54fdfd))
- **Illustrating 12-Factor Principles**
- Supplement the 12-Factor manifesto with supporting documents, reference architectures, and code examples.
- Use these additions to illustrate the practical implementation of each factor.
Transcript:
Alex
Factor could also, I guess, theoretically have articles, right?
Gail Frederick
You mean articles like the Constitution has amendments.
Alex
Yeah, I should say amendments.
Gail Frederick
The thing that we have open sourced and are announcing at KubeCon is the 12-factor manifesto. The best practices. My expectation moving forward is that we will add supporting documents with details about how a factor might be implemented. We will offer reference architectures. We will provide code that is examples of a factor in action. And I even think of the Heroku platform as a reference architecture for all of the factors. ([Time 0:11:16](https://share.snipd.com/snip/a07fc143-f8a9-4e51-9ce8-f3d165805ebd))
- **Heroku's Next-Gen Platform**
- Heroku is developing its next-generation platform and reevaluating its implementation of 12-Factor.
- This is driven by customer needs and platform evolution, such as the transition from logs to telemetry.
Transcript:
Alex
Why are you doing this now? What is the impetus for it today?
Gail Frederick
Well, Heroku is developing the next generation of our platform and we have been touching most of the systems that comprise Heroku. And so it's a natural time for us as we are moving forward in our evolution to be both looking at what our customers are doing in detail and looking at the design of our platform and thinking About how are we implementing 12 factor and where are we seeing our customers move and where does our platform need to move. ([Time 0:16:10](https://share.snipd.com/snip/90cba998-1061-439b-91c4-536896132561))
- **12-Factor and Modern Architectures**
- Serverless architectures can be considered an extreme application of 12-Factor principles.
- The 12-Factor methodology must incorporate modern use cases like edge computing, IoT, serverless, and distributed systems.
Transcript:
Alex
Going back to 12-factor overall, when 12-factor was developed, cutting edge was different than what cutting edge is today, right? That's right. In those years, we've seen the emergence of serverless architectures, for example. Kubernetes, for example, right? How are you going to be including the vision for the role of 12 factor in those emerging architectural patterns?
Gail Frederick
We have a maintainer who said the other day that one can think of serverless as extreme 12 factor. And I think that's really right. As I've been, that's percolating through my brain. I appreciate that more and more. Definitely we need to...
Alex
Because in the architecture itself of serverless technologies encompasses 12 factor?
Gail Frederick
Because you see extreme disposability, for example, because it's not a long-lived service. I think our work is sufficient in refreshing 12-factor only if we are incorporating app development use cases that include the edge, that include IoT, that include serverless, and Even that include heavyweight distributed systems that you wouldn't think of as being cloud native. ([Time 0:19:18](https://share.snipd.com/snip/42cbc70a-f229-4097-95ef-67af1ac6f2ef))