In the continuously evolving world of technology, the most pressing requirement for any software development is to have the application performant, scalable, easily manageable, and resilient. In 2012, programmers at Heroku debuted the Twelve-Factor app methodology that states the General Principles and Guidelines for creating robust Enterprise Applications.
Modern application architectures are very complex and the containerized approach of hosting Cloud Native applications, especially the microservices architecture, makes the complete environment highly dynamic. Though Twelve-factor app principles are equally effective today and do align with the changing environment, but need to have extensions to these principles is felt.
This article focuses on the additional factors that are pretty much in force and are highly discussed across the industry now-a-days.
Fifteen Factors are an extension and suggested additions to the twelve factors that support the modern application architectures. Looking at the complexity and architectural changes witnessed in modern applications, existing layout principles are being elaborated further and the key suggested factor additions are as below –
- API First Approach
- Telemetry
- Security (Authentication and Authorization)
The methodology remains aligned with the principles suggested in core Twelve-Factor App methodology with an extension to additional factors –
- Use Declarative Formats for setup automation, to minimize time and cost for new developers joining the project
- Have a Clean Contract, offering maximum portability between execution environments
- Are suitable for deployment on modern Cloud Platforms, obviating the need for servers and systems administration
- Minimize Divergence between development and production, enabling continuous deployment for maximum agility
- Dynamically Scalable without significant changes to tooling, architecture, or development practices.
- Service-Driven Approach – Availability of the contract to be consumed by a Front-end client application, routing gateway, or any other downstream system
- Monitoring the distributed applications deployments for domain/application-specific logs/data, health information, or more statistics on modern cloud platforms
- Security (Authentication and Authorization) is addressed appropriately so that identity is implemented for each of the requests
Reference | Description |
---|---|
Initial Setup & Tools | Quick setup and tools reference to start with |
01 - Codebase | Start with Git Repository |
02 - Dependencies | Handle Dependencies |
03 - Config | Managing project Configurations |
04 - Backing services | Backing Services Insight |
05 - Build, Release, Run | Build, Release, Run stages reference |
06 Processes | Stateless Processes |
07 - Port binding | Port Binding Approach reference |
08 - Concurrency | Bringing-in Concurrency |
09 - Disposability | Bringing-in Concurrency |
10 - Dev / Prod Parity | Bringing-in Concurrency |
11 - Logs | Logging Guidelines |
12 - Admin Processes | Manage Admin Processes |
13 - API First | API First Approach |
14 - Telemetry | Telemetry - Application Monitoring |
15 - Security | Security - Authentication and Authorization |