Ana içeriğe geç

Redis Deployment Contract

Bu sayfa, Qapu icinde cache ve runtime working state katmani olan Redis'in Docker Swarm uzerindeki deployment contract'ini tanimlar.

Rol

Redis authoritative source degildir.

Ancak deployment contract acisindan onemi yuksektir, cunku:

  • pipeline working state
  • projection cache
  • hizli lookup
  • authz acceleration

gibi islevler tasir.

Benimsenen Model

  • Swarm icinde containerized deployment
  • deterministic placement tercih edilir
  • persistence opsiyonel ama kontrollu ele alinir
  • rebuild/disposable zihniyeti korunur

Placement

Onerilen constraint mantigi:

  • node.role.qapu.redis=true
  • node.role.qapu.stateful=true

Redis, authoritative olmadigi icin PostgreSQL kadar sert degildir. Ama yine de rastgele placement yerine kontrollu placement tercih edilir.

Persistence Yaklasimi

Temel ilke:

  • Redis'teki veri kaybi sistemin nihai gercegini bozmamalidir
  • rebuild davranisi deployment ve operasyon belgelerinde acik olmalidir

Bu nedenle iki model dusunulebilir:

  • persistence acik, ama yine de disposable mantik
  • persistence kapali, tam rebuildable mantik

Qapu icin hangisinin secilecegi servis key ailelerine gore sertlestirilmelidir.

Network

Tipik network uyeligi:

  • qapu-data
  • gerekiyorsa qapu-ops

Dis dunyaya dogrudan acilmaz.

Secrets ve Configs

Secrets

  • redis auth varsa sifre/acl bilgisi

Configs

  • maxmemory
  • eviction policy
  • persistence ayarlari
  • snapshot/append-only davranisi

Health ve Readiness

Health mantigi yalniz process ayakta olmasi degil, komut kabul ediyor olmasidir.

Ek not:

  • Redis restart'i sonrasi rebuild etkisi hangi servisleri vurur, acik bilinmelidir

Update Stratejisi

Redis icin update, stateful ama authoritative olmayan servis mantigiyla ele alinmalidir.

Onerilen davranis:

  • kontrollu restart
  • cache ve runtime rebuild etkisini bilerek rollout
  • key ailelerine gore invalidate/rebuild stratejisi acik olsun

Operasyonel Not

Redis'in deployment contract'indaki temel basari olcutu su degildir:

  • hic veri kaybi olmamasi

Asil olcut su olmalidir:

  • veri kaybi olsa bile sistemin deterministic sekilde toparlanabilmesi