Wpis z mikrobloga

Zaczynam nowy projekt dla #devopsiarz - trackowanie linków, które dla Was zamieszczam, aby wiedzieć, w co najczęściej klikacie (i zamieszczać tym samym więcej "lepszych" dla Was linków). Nawet sobie już domenę sprawiłem w promocji biedronkowej, także nie ma odwrotu ( ͡° ͜ʖ ͡°). Generalnie chodzi o to, że klikacie w devopsiarz.link/acbde i ten adres "przenosi" do właściwego linku jednocześnie zbierając dla mnie info, że "devopsiarz, ktoś użył tego linka X razy". Oczywiście ktoś musi tam do systemu linki słać, najlepiej autoryzowany, a system je "zbierać" i to też winno być obsługiwane, najlepiej "taśmowo".

Projekt jest backendowy (na razie), z wykorzystaniem #rustlang i cockroachdb. Tyle ze stacku wiem na ten moment. Na początek #eventstorming - zanim napiszemy jakikolwiek kod, prześledzimy jak ten system ma działać, co powinien robić, gdzie mogą wystąpić jakieś problemy. Spróbuję odkryć te błędy zanim na nie wpadnę podczas wpisania kodu (albo jeszcze później). Na pewno główne relacje planuję dla mojej listy mailingowej i na stronie https://devopsiarz.pl, nie są wykluczone jakieś live na YT - muszę jeszcze to przemyśleć, jak to zrobić, aby nie zanudzić.

Jeśli chcecie zobaczyć taki gównoprojekt rozwijany na #backend od zupełnych podstaw, ciekawi Was jakie problemy mi się literalnie zwalą mi na głowę podczas pracy nad nim lub nawet chcecie znajdować babole np. w moim eventstormingu to zapraszam do zapisu do mojego mailingu lub do obserwowania #devopsiarz - tutaj jedynie większe podsumowania/skróciki będę wrzucał.

Oczywiście wraz z rozwojem projektu coraz więcej z #devops trzeba będzie w nim robić, więc nie tylko samo kodowanie.

#rustlang, ale ponieważ ja super biegły w nim jeszcze nie jestem, to jest możliwy failback do #golang, ale będę się starał tego uniknąć jak tylko się da, bo chcę w końcu coś większego w nim napisać.

PS Jak twierdzisz, że to prosty projekt to zapraszam do śledzenia, bo sam po pierwszym testowym eventstormingu jestem rozwalony co tam trzeba wziąć pod uwagę.

#programowanie #technologia #software
  • 13
@davoid: myślę, że uzasadnianie mnie nie ominie. Co do GA, to super na GA się nie znam, ale to zupełnie coś innego w zasadzie działania. Są serwisy SaaS, które oferują taką "usługę", często odpłatnie, ale nie spełniają moich potrzeb jak je testowałem.
@Hauleth: skąd wniosek? Przeczytałeś z grubsza jak apka ma działać i już to wiesz? ( ͡° ͜ʖ ͡°)

Rust, bo chcę się go douczyć + jego rozbudowane typowanie, statyczną binarkę, wydajność też mi nie zaszkodzi (cache to nie będzie coś zewnętrznego ala redis, tylko jakiś strukt/hashmapa w Ruście). Cockroach, bo mam bazę w 1 binarce, łatwy deploy, w razie czego pięknie się skaluje (kosztem wydajności, ale po
@Hauleth: rozumiem, ale w wymaganiach u mnie jest jeszcze:

1) cache, także lista zablokowanych - nie chcę przecież, by ktoś mi ciągle pukał do endpointa i marnował CPU na zbyt wiele requestów lub marnował CPU, jak wylądował na liście zablokowanych

2) trackowanie linków (przykład: unikalność na podstawie linkcode+ip na 24h), trackowanie user agent. Dobrze unikalność mieć konfigurowaną, jak się okaże, że inna metodyka może być lepsza

3) limity - jak np.
nie chcę przecież, by ktoś mi ciągle pukał do endpointa i marnował CPU na zbyt wiele requestów


@devopsiarz: fail2ban
trackowanie linków (przykład: unikalność na podstawie linkcode+ip na 24h), trackowanie user agent. Dobrze unikalność mieć konfigurowaną, jak się okaże, że inna metodyka może być lepsza


@devopsiarz: to też można tutaj dodać w parę chwil. Albo używając Postgresa i HyperLogLog, albo dodając Prometheusa czy inny system monitoringu.
@devopsiarz: dziwne ze najpierw wybieracie stack technologiczny a pozniej "przesledzimy jsk to ma dzialac". Od dupy strony troche. Technologie dobiera sie do wymagan a nie odwrotnie.
@Hauleth: z całym szacunkiem, ale jeśli piszesz tylko o swoim kodzie, do którego tu zalinkowałeś, to właśnie dodałeś co najmniej 1 lub 2 technologie ekstra do najprostszej rzeczy pod słońcem, cytując Ciebie, a to bez żadnej weryfikacji, czy w ogóle mają w tym wypadku sens. I w ten lajtowy sposób, zaadresowałeś jedynie (tu załóżmy, że dobrze) 2 wymagania z iluś tam wymienionych przeze mnie.

@leoha: nie "wybieracie", a "wybieram", bo