<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kapownik prostego programisty</title>
    <link>https://zamolski.com/</link>
    <description>Recent content on Kapownik prostego programisty</description>
    <generator>Hugo</generator>
    <language>pl_PL</language>
    <lastBuildDate>Sun, 07 Sep 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://zamolski.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Logowanie w Ktor i podgląd logów w GCP Cloud Logging</title>
      <link>https://zamolski.com/posts/logowanie-w-ktor-i-podglad-logow-w-gcp-cloud-logging/</link>
      <pubDate>Sun, 07 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/logowanie-w-ktor-i-podglad-logow-w-gcp-cloud-logging/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;W tym artykule pokażę, jak skonfigurować logowanie w aplikacji napisanej przy użyciu biblioteki Ktor,&#xA;uruchamianej na Google Cloud Run, aby logi były widoczne w konsoli Cloud Logging.&#xA;Pokażę również, jak korzystać ze strukturyzowanych logów i jak dodawać trace ID,&#xA;aby łatwiej analizować wywołania i problemy w środowisku produkcyjnym.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_dlaczego_logowanie_w_chmurze_jest_ważne&#34;&gt;Dlaczego logowanie w chmurze jest ważne?&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Cloud Run to środowisko zarządzane, w związku z czym nie mamy dostępu do maszyn,&#xA;na których działa aplikacja.&#xA;Dlatego jedynym źródłem diagnostyki są:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Profesjonalny workflow CI/CD dla aplikacji Kotlin &#43; Ktor z użyciem Cloud Build i GitHub</title>
      <link>https://zamolski.com/posts/profesjonalny-workflow-ci-cd-dla-aplikacji-kotlin-ktor-z-uzyciem-cloud-build-i-github/</link>
      <pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/profesjonalny-workflow-ci-cd-dla-aplikacji-kotlin-ktor-z-uzyciem-cloud-build-i-github/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Na początku słowo wyjaśnienia: w poprzednim artykule zapowiedziałem kontynuację dotyczącą monitorowania aplikacji.&#xA;Ten temat pojawi się w osobnym wpisie.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Dziś natomiast skupiam się na czymś, co powinno zostać omówione wcześniej,&#xA;na poprawnym workflow CI/CD dla aplikacji Kotlin + Ktor w chmurze Google.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_założenia&#34;&gt;Założenia&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;olist arabic&#34;&gt;&#xA;&lt;ol class=&#34;arabic&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Kod źródłowy jest hostowany w serwisie GitHub&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Każda Pull Request (PR) automatycznie uruchamia budowanie i testy&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Merge do main wyzwala budowanie obrazu kontenerowego i opcjonalny deployment&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Budowanie obrazu odbywa się za pomocą Jib (bez Dockera)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Budowanie obrazów kontenerowych dla kotlin &#43; ktor bez Dockera z użyciem Jib i Cloud Build</title>
      <link>https://zamolski.com/posts/budowanie-obrazow-kontenerowych-dla-ktor-bez-dockera-z-uzyciem-jib-i-cloud-build/</link>
      <pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/budowanie-obrazow-kontenerowych-dla-ktor-bez-dockera-z-uzyciem-jib-i-cloud-build/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_wprowadzenie&#34;&gt;Wprowadzenie&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;W poprzednim artykule zbudowaliśmy aplikację Kotlin + ktor i uruchomiliśmy ją lokalnie&#xA;w kontenerze dzięki &lt;code&gt;Dockerfile&lt;/code&gt;.&#xA;Co, jednak jeśli nie chcemy (lub nie możemy) instalować Dockera lokalnie?&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Dzięki narzędziu &lt;strong&gt;Jib&lt;/strong&gt; oraz usłudze &lt;strong&gt;Cloud Build&lt;/strong&gt; możemy zbudować&#xA;i opublikować obraz naszej aplikacji bezpośrednio z kodu źródłowego, bez pisania Dockerfile&#xA;i bez używania Dockera.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_czym_jest_jib&#34;&gt;Czym jest Jib?&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;[Jib](&lt;a href=&#34;https://github.com/GoogleContainerTools/jib&#34; class=&#34;bare&#34;&gt;https://github.com/GoogleContainerTools/jib&lt;/a&gt;) to narzędzie powstałe w firmie Google,&#xA;które umożliwia budowanie obrazów kontenerowych bezpośrednio z poziomu Gradle lub Maven,&#xA;bez potrzeby używania Dockera.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Tworzenie pierwszego projektu Kotlin z Gradle dla Cloud Run</title>
      <link>https://zamolski.com/posts/tworzenie-pierwszego-projektu-kotlin-z-gradle-dla-cloud-run/</link>
      <pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/tworzenie-pierwszego-projektu-kotlin-z-gradle-dla-cloud-run/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_wprowadzenie&#34;&gt;Wprowadzenie&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;W poprzednim wpisie omówiłem architekturę Cloud Run&#xA;i sposób działania tej platformy.&#xA;Dziś czas przejść do praktyki: zbudujemy od podstaw prostą aplikację w Kotlinie,&#xA;która wystawia endpoint HTTP i przygotujemy ją do uruchomienia na Cloud Run.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Co to jest Cloud Run i jak działa pod maską?</title>
      <link>https://zamolski.com/posts/co-to-jest-cloud-run-i-jak-dziala-pod-maska/</link>
      <pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/co-to-jest-cloud-run-i-jak-dziala-pod-maska/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_wprowadzenie&#34;&gt;Wprowadzenie&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;W poprzednim wpisie mówiłem o tym, dlaczego warto zainteresować się połączeniem &lt;strong&gt;Kotlin + Cloud Run&lt;/strong&gt;. Dziś czas przyjrzeć się bliżej samemu Cloud Run: czym właściwie jest, jak działa, i co dzieje się &amp;#34;pod spodem&amp;#34;, gdy wdrażamy naszą aplikację.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Cloud Run to zarządzana platforma serverless, która pozwala na uruchamianie aplikacji kontenerowych na żądanie, bez potrzeby zarządzania serwerami lub infrastrukturą.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_czym_jest_cloud_run&#34;&gt;Czym jest Cloud Run?&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Cloud Run to usługa od Google Cloud, która pozwala uruchamiać &lt;strong&gt;aplikacje HTTP opakowane w kontener Docker/OCI&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dlaczego warto interesować się Cloud Run i językiem Kotlin?</title>
      <link>https://zamolski.com/posts/dlaczego-warto-interesowac-sie-cloud-run-i-jezykiem-kotlin/</link>
      <pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/dlaczego-warto-interesowac-sie-cloud-run-i-jezykiem-kotlin/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;&#xA;&lt;h2 id=&#34;_wstęp&#34;&gt;Wstęp&lt;/h2&gt;&#xA;&lt;div class=&#34;sectionbody&#34;&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Świat aplikacji backendowych dynamicznie się zmienia. Jeszcze niedawno naturalnym wyborem był Spring Boot na dużym serwerze z Tomcatem. Dziś coraz częściej wybieramy &lt;strong&gt;funkcjonalność zamiast infrastruktury&lt;/strong&gt;, &lt;strong&gt;efektywność zamiast zasobochłonności&lt;/strong&gt;. W tym świecie &lt;strong&gt;Google Cloud Run&lt;/strong&gt; i &lt;strong&gt;język Kotlin&lt;/strong&gt; oferują wyjątkowo udany duet.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;W tym artykule opowiem:&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;ulist&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;czym jest Cloud Run i dla kogo został stworzony,&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;dlaczego Kotlin jest świetnym językiem do budowy lekkich usług HTTP,&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;oraz dlaczego to połączenie jest warte Twojej uwagi – nawet jeśli dopiero zaczynasz przygodę z chmurą.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Strumieniowe kopiowanie i kompresja danych w Google Cloud Storage za pomocą Kotlina</title>
      <link>https://zamolski.com/posts/strumieniowe-kopiowanie-i-kompresja-danych-w-google-cloud-storage-za-pomoca-kotlina/</link>
      <pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/strumieniowe-kopiowanie-i-kompresja-danych-w-google-cloud-storage-za-pomoca-kotlina/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Google Cloud Storage (GCS) to elastyczne, wydajne i ekonomiczne rozwiązanie do przechowywania danych w chmurze.&#xA;Często zdarza się, że chcemy przenieść dane między różnymi kubełkami GCS.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Google Cloud Functions – prosta sprawa (część pierwsza)</title>
      <link>https://zamolski.com/posts/google-cloud-functions-prosta-sprawa-i/</link>
      <pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/google-cloud-functions-prosta-sprawa-i/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Załóżmy, że mamy taki pomysł, żeby skorzystać z informacji, które udostępnia Wrocław w ramach inicjatywy Open Data.&#xA;A dokładniej, z informacji dotyczących opadów w mieście.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Uruchomienie skonteneryzowanej aplikacji serwerowej w środowisku Google App Engine Flexible</title>
      <link>https://zamolski.com/posts/uruchomienie-skonteneryzowanej-aplikacji-serwerowej-w-srodowisku-google-app-engine-flexible/</link>
      <pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/uruchomienie-skonteneryzowanej-aplikacji-serwerowej-w-srodowisku-google-app-engine-flexible/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;A co jeżeli nasz ulubiony język lub platforma nie są obsługiwane przez Google App Engine?&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Wdrożenia niebieskie, zielone i kanarkowe na Google App Engine</title>
      <link>https://zamolski.com/posts/wdrozenia-niebieskie-zielone-i-kanarkowe-na-google-app-engine/</link>
      <pubDate>Tue, 13 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/wdrozenia-niebieskie-zielone-i-kanarkowe-na-google-app-engine/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Serwisy w środowisku GAE mogą być wdrażane według wielu różnych schematów, pozwalających zachować ciągłość działania.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Aplikacja WWW, dwa frameworki i tani hosting</title>
      <link>https://zamolski.com/posts/aplikacja-www-dwa-frameworki-i-tani-hosting/</link>
      <pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/aplikacja-www-dwa-frameworki-i-tani-hosting/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://cloud.google.com/appengine&#34;&gt;Google App Engine&lt;/a&gt; jest usługą typu PaaS dostarczaną w ramach platformy &lt;a href=&#34;https://cloud.google.com&#34;&gt;Google Cloud&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Warto w ten Kotlin?</title>
      <link>https://zamolski.com/posts/warto-w-ten-kotlin/</link>
      <pubDate>Sun, 12 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://zamolski.com/posts/warto-w-ten-kotlin/</guid>
      <description>&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Kotlin to dobry język.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;paragraph&#34;&gt;&#xA;&lt;p&gt;Nie jakiś tam wybitny, nie jakiś szczególny, po prostu &lt;strong&gt;dobry&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
