What I wish to know before starting with Comosdb on Azure?

This time only in Polish:

Arykuł na Azure User Group FB zainspirował mnie do spisania co chciałbym wiedzieć zanim zacząłem pracę z Cosmosdb.

 To zaczynami, co chciałbym wiedzieć zanim zacząłem z comosdb jako drop-in mongodb:
 
  1.  Instancja Cosmosdb nie jest bazą danych, jest kontenerem więc domyślnie 1 container – 1 aplikacje. Jest to nowoczesne podejście, wymuszające na deweloperze separację danych, co za tym idzie zmniejszenie setu do replikacji po stronie Azure.
  2. Konsekwencją faktu, że Cosmosdb to kontener, nie macie uzytkownikow jak w bazach danych. Macie master-key albo użytkownik : token : scope (przykład). Użytkownik jest tworzony z tymczasowym tokenem. Minus: nie działa to podejście z żadnym klientem mongodb, musisz użyć Cosmosdb SDK. Plus: bezpieczeństwo.
  3. Dalszą konsekwencją 1: albo mamy kontener per aplikację i wydajemy $$$, albo master-key ląduje w każdej z naszych aplikacji. Uwaga cennik jest liczony per dane/wydajność i ilość kolekcji. Czyli czym więcej kolekcji tym wyższy rachunek.
  4. Dla pełnego supportu Mongodb musicie aktywować aggregation pipelines. To też kosztuje.
  5. Sprawdźcie czy w pełni Wasz protokół jest wspierany. Cosmosdb ma dobrą dokumentację w tej kwestii.
  6. Jako że nie pochodzę ze środowiska Net, dla mnie najlepszą dokumentacją wszystkich możliwości cosmosdb to testy ich klienta dla pythona.
  7. Warto poświęcić czas na zrozumienie SKU dla Cosmosdb i konsekwencji wybranego SKU na wydajność.
Reasumując uwaga na koszty, sprawdźcie zanim zaczniecie używać. Kapitalne, że możemy sobie wybierać co jest dla nas ważniejsze integralność danych vs skalowalność.
 
ps. Dobre jest wsparcie Terraform dla Tworzenia Cosmosdb.
 
pps. Cosmosdb endpoint jest dostępny publicznie, ograniczenie za pomocą firewall jest bardzo proste.
 
ppps. Jeśli chcecie ożenić cosmosdb z K8S (AKS) to fakt, że cosmosdb jest dostępny jedynie przez SSL trochę utrudnia podpięcie cosmosdb jako usługi w clustrze bez ignorowania w kliencie błędu certyfikatu.
 

wb