Presented at .NET Conf 2019 (Microsoft Turkey, Istanbul). It's about how to develop modernized, cloud-native .NET Core applications according to 12 factors.
feature microservices architectures that improve the ability to design, debug, update, and leverage third-party code; 35% of all production apps will be cloud-native. (*) https://www.idc.com/getdoc.jsp?containerId=prUS44417618
Use environment variables or secret products of the container orchestration tool. Use Key Vault products such as Azure Key Vault, Hashicorp Vault, etc.
Use environment variables or secret products of the container orchestration tool. Use Key Vault products such as Azure Key Vault, Hashicorp Vault, etc. Should be platform/OS agnostic!
app consumes over the network as part of its normal operation. Application should access to backing services via URL and/or credentials stored in the config.
app consumes over the network as part of its normal operation. Application should access to backing services via URL and/or credentials stored in the config. Use local disk!
app consumes over the network as part of its normal operation. Application should access to backing services via URL and/or credentials stored in the config. Attach the resource to the executable! Use local disk!
images when you’re in BUILD stage. Create execution environment (set environment variables, check backing services, etc.) when you’re in RELEASE stage. Run the container without any changes in the environment when you’re in RUN stage.
Use memory cache! Save any physical files in the environment! Use sticky session! Containers are ephemeral. They're built, they're released, they're deployed and they're destroyed!
self-contained and should not dependence out to any webserver to get the request. The exposed port should be stored on the environment. The exposed port should be documented absolutely and clearly (TCP/UDP). 7
services in all environments. The same topology should be used in all environments. The same products should be used for monitoring, logging and tracing in all environments.
the same environment and against the same codebase and configuration as the web/worker application. registry.hub.docker.com/selcukusta/openhack-core-migration:1.0.0 registry.hub.docker.com/selcukusta/openhack-core-seed:1.0.0