Język Frankfurt nad Menem, Niemcy

Wdróż Go na Nodion

Nodion rozpoznaje Go po go.mod. Buildpack Go pobiera Twoje moduły, buduje statyczne pliki binarne za pomocą najnowszej wersji Go i uruchamia Twój serwer, a toolchain nie trafia do obrazu uruchomieniowego (run image). Aplikacja działa we Frankfurcie nad Menem, obok zarządzanej bazy danych PostgreSQL, jeśli jej potrzebujesz.

Wdróż na Nodion ›

od 1 EUR / mies.

Do 15 € środków na start przy rejestracji

Wykrywane po
go.mod
Start
Zbudowany plik binarny, jeden na każdy cmd/<name>
Go
Zawsze najnowsze wydanie (1.27.x)
Region
EU Central (Frankfurt)

Wdróż Go krok po kroku

  1. Nasłuchuj na porcie PORT Nodion ustawia zmienną PORT dla procesu web; nasłuchuj na tym porcie na wszystkich interfejsach. r.Run() z Gin bez adresu już używa PORT. W Echo, Fiber lub Chi przekaż ":" + port samodzielnie. main.go
    package main
    
    import (
    	"log"
    	"net/http"
    	"os"
    )
    
    func main() {
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    	}
    	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    		w.Write([]byte("ok"))
    	})
    	log.Fatal(http.ListenAndServe(":"+port, nil))
    }
  2. Jeden plik binarny na katalog cmd/ Bez katalogu cmd/ Nodion buduje katalog główny modułu do jednego pliku binarnego. Jeśli są katalogi cmd/<name> z plikami Go, każdy z nich staje się osobnym plikiem binarnym, a pakiet z katalogu głównego nie jest wtedy budowany. Proces web uruchamia jedyny plik binarny; jeśli jest ich kilka, ten o nazwie server, api, web lub app, a gdy takiego nie ma, pierwszy z nich. Każdy inny plik binarny staje się typem procesu o tej samej nazwie.
    cmd/server/main.go
    cmd/worker/main.go
    cmd/migrate/main.go
  3. Sprawdź ustawienia buildu Pliki binarne są budowane z CGO_ENABLED=0 i -ldflags "-s -w". Jeśli zależność wymaga cgo, jak mattn/go-sqlite3, ustaw w zakładce Environment CGO_ENABLED=1 z zaznaczoną opcją Build. Zmienna GOFLAGS_LDFLAGS z opcją Build zastępuje ldflags, więc jeśli chcesz zachować -s -w, dodaj je tam.
  4. Utwórz aplikację W dashboardzie utwórz aplikację ze swojego repozytorium GitHub, GitLab, Bitbucket lub Gitea, wybierz branch i region EU Central. Pozostaw strategię buildu Buildpacks; jeśli w repozytorium jest Dockerfile, formularz wybiera zamiast niej Dockerfile.
  5. Podłącz PostgreSQL i uruchom migracje W zakładce Environment podłącz bazę danych z tego samego regionu; DATABASE_URL pojawi się przy następnym wdrożeniu, a sterowniki PostgreSQL, takie jak pgx, przyjmują ten URL bez zmian. W czasie działania Twoje pliki binarne są w PATH, więc plik binarny cmd/migrate może działać jako krok release, raz na build, zanim wystartuje nowa wersja. Procfile
    release: migrate

Warto wiedzieć

  • Workery bez ProcfilePlik binarny z cmd/worker staje się typem procesu worker. W zakładce Processes dodaj proces o nazwie worker bez portu i zostaw jego polecenie puste; uruchomi on ten plik binarny. Plikowi binarnemu procesu web nadaj nazwę server, api, web lub app, aby proces web nie wybrał innego.
  • Zawsze najnowsze GoLinia go w go.mod i plik .go-version nie wybierają starszego toolchainu: każdy build używa najnowszego wydania Go, które udostępnia Nodion. Uruchamiaj swoje CI również na najnowszym Go.

Czym Nodion zajmuje się za Ciebie

  • Wdrożenia bez przestojów Wypchnij zmiany do swojej gałęzi, a Nodion zbuduje nowy release. Ruch przełącza się, gdy nowe instancje przejdą health check; nieudany release nie wpływa na działającą wersję. Aplikacje z lokalnym wolumenem są natomiast uruchamiane ponownie, bo dysk należy do jednej instancji.
  • Bazy danych obok aplikacji Zarządzane PostgreSQL, pgvector, MySQL, Valkey i ClickHouse w tym samym regionie. Podłączone bazy danych trafiają do aplikacji jako DATABASE_URL, REDIS_URL lub CLICKHOUSE_URL.
  • Środowiska podglądu dla pull requestów Włącz środowiska podglądu, a każdy pull request z Twojego repozytorium dostanie własną aplikację z własnym adresem URL i nowymi, pustymi bazami danych, tworzoną automatycznie lub ręcznie. Forki i pull requesty od botów są pomijane.
  • Workery, zadania cron i skalowanie Uruchamiaj workery jako dodatkowe procesy tej samej aplikacji, planuj zadania w zakładce Cron i skaluj każdy proces do 16 instancji.
  • Etap release W przypadku buildpacków linia release: w Procfile uruchamia się przy każdym nowym buildzie. Aplikacje z Dockerfile, a także ponowne wdrożenia i rollbacki do wcześniejszego obrazu, korzystają z polecenia release ustawionego w samej aplikacji, które ma też pierwszeństwo przed linią z Procfile. W przypadku stron statycznych krok release działa w obrazie zawierającym tylko zbudowane pliki.
  • Logi i metryki W dashboardzie znajdziesz logi z builda, release'u i działania aplikacji oraz metryki CPU, pamięci, dysku i sieci dla każdej instancji.
  • Domeny i HTTPS Domyślna nazwa hosta z HTTPS od pierwszego wdrożenia; Twoje własne domeny automatycznie dostają certyfikaty.

Warto przeczytać

Go na Nodion: pytania i odpowiedzi

Czy Gin, Echo, Fiber i Chi działają?

Tak. Nodion buduje i uruchamia Twój plik binarny niezależnie od tego, jakiego frameworka używa; serwer musi tylko nasłuchiwać na PORT. Jeśli Gin jest w go.sum, Nodion ustawia też GIN_MODE=release.

Której wersji Go używa Nodion?

Zawsze najnowszej wersji Go, którą udostępnia Nodion, obecnie 1.27.x. Starsze linie Go nie są używane do buildów, nawet jeśli go.mod którąś wskazuje.

Czy potrzebuję Dockerfile dla Go?

Nie. Buildpack Go kompiluje Twoje pliki binarne i umieszcza je w obrazie uruchomieniowym bez toolchainu Go. Jeśli masz już Dockerfile, Nodion może zamiast tego budować z niego.

Gdzie działa moja aplikacja Go?

W regionie EU Central we Frankfurcie nad Menem (Niemcy). Build, rejestr, aplikacja oraz jej bazy danych, wolumeny, buckety, logi i metryki pozostają w tym regionie, a API i warstwa sterowania (control plane) Nodion są hostowane w Niemczech. Nodion GmbH ma siedzibę w Stuttgarcie.

Czy mogę wykorzystywać Go zgodnie z RODO?

Nodion zapewnia do tego podstawy: Nodion GmbH ma siedzibę w Stuttgarcie (Niemcy), w regionie Frankfurt nad Menem aplikacja, jej bazy danych i wolumeny działają w Niemczech, a umowę powierzenia przetwarzania danych (DPA, art. 28 RODO) zawierasz elektronicznie w dashboardzie. To, czy Twoje wdrożenie spełnia wymogi RODO, zależy też od tego, jak skonfigurujesz aplikację i jak z niej korzystasz.

Ile kosztuje uruchomienie Go na Nodion?

Instancja aplikacji kosztuje od 1 EUR miesięcznie. Konfiguracja z ramki kosztuje 2.50 EUR miesięcznie: Aplikacja 1 EUR, PostgreSQL 1.50 EUR. Ceny są podane netto, a rozliczenie następuje co do sekundy. Większe rozmiary lub więcej instancji możesz wybrać w dowolnym momencie.

Czy mogę użyć własnej domeny dla mojej aplikacji Go?

Tak. Każda aplikacja dostaje domyślną nazwę hosta z HTTPS. Własną domenę dodasz w zakładce Domains aplikacji, a certyfikat TLS jest wystawiany i odnawiany automatycznie.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.