become our partner

The Twelve-Factor App in practice

The Program Committee has not yet taken a decision on this talk

Photo
Denis Tsvettsikh

DevBrothers

Abstracts

I will show how to use 12 factor app methodology in prantice.

Factor 1: share libs but not code. How to share own code between services? Local package server like nuget
Factor 2. Self-contain build for .NET on Java allows to avoid additional dependences
Factor 6 about stateless services. Is is posible to use in-memory cache when we need single instance of some service. But in-memory cache should be hidden using some generic interface. When we need to scale the service then we replace in-memory cache by Redis cache using configuration without changes in application code.
Factor 6: it is also possible to use file system for example for CSV export. But file should be removed when it closed. And requests should not search for files created by other requests.
Factor 9: graceful shutdown. IHostApplicationLifetime interface allows to react on application shutdown. Also I will show how to configure Quartz to finish background tasks such way that the can be resumed or restarted bu other instanses of the same service.
Factor 11: logging to stdout. If service writes logs to some service like Elsatic or Datadog then it is possible to lose some log records on service crash. So it is needed to use sidecar pattern, addtional service to read logs from console and upload to logs storage.
Factor 12: admin tasks as a process. I will talk about SQL migration tools like EF Core bundle and EF Core extension which allows to add any SQL script to the migration (https://github.com/CUSTIS-public/CUSTIS.NetCore.EF.MigrationGenerationExtensions). And I will show how to implement a tool to fix schema of NoSql data storages.