Java Developer? Przejdź na wyższy poziom wiedzy 🔥💪  Sprawdź

Team Leader? Podnieś efektywność swojego zespołu 👌 Sprawdź

CI/CD i trunk-based development – wdrażaj częściej i szybciej

CI/CD i trunk-based development – wdrażaj częściej i szybciej

Zastanawiało Cię kiedyś, które elementy w procesie pisania kodu i współpracy z innymi programistami wpływają na efektywność Twoich działań zmierzających do umieszczenia kodu na produkcji?

Oprócz analizy wymagań, głównym zajęciem programisty jest wytwarzanie kodu i kolaboracja z innymi programistami.

Miejscem tej kolaboracji jest repozytorium kodu w systemie kontroli wersji. To w nim umieszczamy efekt naszej pracy. Tam przeglądamy zmiany innych i łączymy z nimi nasze zmiany.

Na koniec, zmiany te uczestniczą w procesie Contineous Integration (CI), budowane są artefakty wdrożeniowe, a niektóre zwinne zespoły nawet używają procesu Contineous Delivery (CI/CD) do szybkiego i ciągłego wdrażania zmian na środowiska testowe i produkcyjne prosto z pipeline w sposób w pełni zautomatyzowany.

Mikroserwisy: Monitoring, Tracing i Log Aggregation – diagnostyka problemów w środowisku rozproszonym

Mikroserwisy: Monitoring, Tracing i Log Aggregation – diagnostyka problemów w środowisku rozproszonym

Wyobraź sobie, że wystąpił problem w produkcyjnym systemie zbudowanym z sieci rozproszonych mikrousług. Błąd przekazuje zespół, który złożył żądanie do Twojego systemu i operacja zawiodła – obsługa trwała długo, a następnie został zwrócony błąd. Podają requestId oraz szczegóły żądania.

Czy byłbyś w stanie szybko odpowiedzieć, co konkretnie było przyczyną błędu?

W tym wpisie chciałbym poruszyć problematykę Observability (obserwowalności) systemów opartych o architekturę rozproszonych mikrousług. Opowiem o:

  • Log Aggregation, zbieranie logów w środowisku rozproszonym
  • Distributed Tracing, czyli śledzenie konkretnego żądania
  • Monitoring ogólnej kondycji systemu
    • Perspektywa ogólna serwisu
    • Perspektywa szczegółowa instancji
5 najczęstszych błędów, kiedy używasz Apache Kafka

5 najczęstszych błędów, kiedy używasz Apache Kafka

Integracja aplikacji ze sobą za pomocą Apache Kafka jest stosunkowo łatwa. W tym zadaniu wspomagają nas biblioteki albo całe frameworki (takie jak Spring). Ponieważ to zadanie jest znacznie ułatwione, może to uśpić czujność programistów. Chciałbym zwrócić Twoją uwagę na to, żebyś poświęcił chwilę na analizę wymagań niefunkcjonalnych w swojej aplikacji, a także zapoznał się z domyślnymi ustawieniami Apache Kafka i bibliotek integrujących.

Pula połączeń i źródło danych

Pula połączeń i źródło danych

Tworząc systemy, które wymieniają dane z bazą danych, chcesz, aby komunikacja była niezawodna.
Możesz wykonywać operacje, które mogą być krótkie, ale za to częste, a może będziesz wykonywał takie, które są bardzo długie.
Operacje są wykonywane w ramach nawiązanego wcześniej połączenia do bazy.
Użytkowników systemu przeważnie jest wielu, a ich sesje powinny być niezależne.

W pewnym momencie może się zdarzyć, że użytkownik nie będzie mógł wykonać jakiejś operacji,
ponieważ baza danych odrzuci kolejne połączenie ze względu na jakiś limit.

Ale przez odpowiednią konfigurację możesz zoptymalizować szybkość działania Systemu w zakresie dostępu do nawiązanego
połączenia do bazy danych.

Sposoby na poprawę wydajności Hibernate 🚀

Sposoby na poprawę wydajności Hibernate 🚀

W Hibernate wiele operacji wykonywanych jest „auto magicznie”. Nie znając specyfiki, możesz doprowadzić do spadku wydajności.

Jeśli poznasz i zrozumiesz zasady działania, będziesz w stanie poprawić wydajność operacji związanych z komunikacją z bazą danych.

Wiedząc jak włączyć monitorowanie, zweryfikujesz czy zapytania wysyłane do bazy danych są tymi, których się spodziewałeś.

Jak działa Lazy-Loading? Jak obsłużyć operacje masowe? Czym jest problem N+1?

Wiele wersji Java na komputerze 🎨 – SDKMAN

Wiele wersji Java na komputerze 🎨 – SDKMAN

SDKMAN to narzędzie oryginalnie stworzone dla *nix-owych systemów operacyjnych w prosty sposób pozwala na pobieranie i przełączanie się pomiędzy różnymi SDK na maszynie.

Wspiera instalację wielu środowisk SDK, np. dla Java, Groovy, Scala, Kotlin, Maven, Micronaut. Poprzednio znane jako GVM (Groovy enVironment Manager).

W tym wpisie skupie się na instalacji narzędzia na Windows i po krótce przejdę przez najważniejsze funkcje.