12 Factor App methodology & Cloud Native apps
The Twelve-Factor App (a collection of patterns that are closely related to microservices approaches) is considered a requirement for cloud-native application architectures:
The book Beyond the 12 Factor App expands on the original guidelines to accommodate modern thinking (2016) on "building applications that don’t just function in the cloud, but thrive" with changes in priority order, definition, and additions:
1. One codebase, one application
2. API first
3. Dependency management
4. Design, build, release, and run
5. Configuration, credentials, and code
6. Logs
7. Disposability
8. Backing services
9. Environment parity
10. Administrative processes
11. Port binding
12. Stateless processes
13. Concurrency
14. Telemetry
15. Authentication and authorization
Cloud Native Anti-Patterns:
- Cloud-Native Versus Traditional Enterprise Applications
- Applying the Twelve-Factor App Methodology to Serverless Applications
- Cloud Native Anti-Patterns
- Performance antipatterns for cloud applications
- Codebase - One codebase tracked in revision control, many deploys
- Dependencies - Explicitly declare and isolate dependencies
- Configuration - Store configuration in the environment
- Backing Services - Treat backing services as attached resources
- Build, release, run - Strictly separate build and run stages
- Processes - Execute the app as one or more stateless processes
- Port binding - Export services via port binding
- Concurrency - Scale out via the process model
- Disposability - Maximize robustness with fast startup and graceful shutdown
- Dev/prod parity - Keep development, staging, and production as similar as possible
- Logs - Treat logs as event streams
- Admin processes - Run admin/management tasks as one-off processes
The book Beyond the 12 Factor App expands on the original guidelines to accommodate modern thinking (2016) on "building applications that don’t just function in the cloud, but thrive" with changes in priority order, definition, and additions:
1. One codebase, one application
2. API first
3. Dependency management
4. Design, build, release, and run
5. Configuration, credentials, and code
6. Logs
7. Disposability
8. Backing services
9. Environment parity
10. Administrative processes
11. Port binding
12. Stateless processes
13. Concurrency
14. Telemetry
15. Authentication and authorization
Cloud Native Anti-Patterns:
- ACID Transactions
- Chatty Interactions
- Complex Dependencies
- Direct Code-to-Runtime Relationship
- Hardware Affinity
- Latency Guarantees
- Manual Provisioning Workflow
- Monolithic Design and Deployment
- Resource Hogging
- Scalability by Application Server Clustering
- Scalability by Scaling Vertically
- Single Points of Bottleneck
- Single Points of Failure
- Single Tenancy
- Single-Threaded, Serial Execution
- Stateful Services
- Synchronous Interactions
- Cloud-Native Versus Traditional Enterprise Applications
- Applying the Twelve-Factor App Methodology to Serverless Applications
- Cloud Native Anti-Patterns
- Performance antipatterns for cloud applications
Comments
Post a Comment