Elixir og Phoenix: Skalerbar backend-udvikling · Lektion

Oprettelse af releases med Mix Release

Opret selvstændige, deploy-klare releases af Deres Elixir-applikation med `mix release`.

Lektion 1 af 411 trin

Oprettelse af releases med Mix Release er en gratis Elixir og Phoenix: Skalerbar backend-udvikling-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Elixir og Phoenix: Skalerbar backend-udvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Elixir og Phoenix: Skalerbar backend-udvikling-kurset indeholder 4 lektioner i alt.

Velkommen til Elixir-releases

Når du udvikler en Elixir-applikation, kører du den ofte med mix run --no-halt. Det er velegnet til udvikling, men ikke ideelt til produktion.

Til udrulning har vi brug for en selvstændig pakke, der kan køre uafhængigt uden buildværktøjet Mix eller endda Elixirs kildekode på målmaskinen. Det er her, releases kommer ind i billedet!

Hvorfor `mix run` ikke er nok

Det har nogle ulemper at køre en applikation med mix run i produktion:

  • Det kræver hele buildværktøjet Mix og dit projekts kildekode.
  • Det bruger som standard konfigurationen for udviklingsmiljøet.
  • Opstarten kan være langsommere, fordi afhængigheder skal kompileres og indlæses.
  • Det mangler ordentlig understøttelse af kørsel som daemon for baggrundsprocesser.

Introduktion til `mix release`

mix release opretter en OTP-release. Se det som en komplet, selvstændig pakke med din Elixir-applikation og dens afhængigheder.

Den indeholder Erlang-VM'en, din kompilerede kode og alle nødvendige scripts til at starte, stoppe og administrere din applikation som en selvstændig tjeneste.

Fordele ved releases

Releases har flere vigtige fordele:

  • Selvstændig: Serveren behøver ikke have Mix eller Elixir installeret.
  • Hurtigere opstart: Forudkompileret og optimeret til produktion.
  • Klar til produktion: Designet til kørsel som daemon og supervision.
  • Hot code swapping: Understøtter opgradering af kørende systemer uden nedetid (avanceret).

Opret din første release

Hvis du vil oprette en release, skal du først sikre dig, at dit projekt har en supervisor. De fleste Phoenix-projekter og projekter, der er oprettet med mix new my_app --sup, har allerede en.

Kør derefter blot kommandoen mix release. Den kompilerer dit projekt og dets afhængigheder til produktionsmiljøet.

mix new my_release_app --sup
cd my_release_app
mix deps.get
mix release

Undersøg release-strukturen

Efter du har kørt mix release, finder du din release i _build/prod/rel/your_app_name/.

Herinde finder du mappen bin med et script til at administrere din app, lib med alle kompilerede afhængigheder og releases med versionsspecifikke filer.

my_release_app/
├── _build/
│   └── prod/
│       └── rel/
│           └── my_release_app/
│               ├── bin/
│               │   └── my_release_app (start/stop script)
│               ├── lib/
│               ├── releases/
│               └── erts-...
├── config/
├── lib/
└── mix.exs

Kør din release-applikation

Hvis du vil starte din applikation fra en release, skal du bruge det genererede script i mappen bin. Du kan starte den i forgrunden eller som daemon.

I et produktionsmiljø vil du typisk starte den i baggrunden.

# Start in foreground (for testing)
_build/prod/rel/my_release_app/bin/my_release_app start_iex

# Start as daemon (production)
_build/prod/rel/my_release_app/bin/my_release_app start

# Stop a running daemon
_build/prod/rel/my_release_app/bin/my_release_app stop

Runtime-konfiguration med `runtime.exs`

Ved udrulning til produktion har du ofte brug for at konfigurere din applikation ud fra dens miljø (f.eks. databaseoplysninger og API-nøgler).

mix release bruger config/runtime.exs, som køres efter, at releasen er bygget, og før applikationen starter. Det er perfekt til at læse miljøvariabler.

# config/runtime.exs
import Config

config :my_release_app, 
  database_url: System.get_env("DATABASE_URL"),
  api_key: System.get_env("API_KEY")

Opgraderinger og nedgraderinger (avanceret)

En af de mest effektive funktioner i OTP-releases er muligheden for at udføre hot code-opgraderinger. Det betyder, at du kan opdatere din kørende applikation med ny kode uden at stoppe den, hvilket giver udrulninger uden nedetid.

Selvom dette er et avanceret emne, danner `mix release` grundlaget for det ved at pakke din applikation på en måde, der muliggør versionsstyring og patching.

Test af release-fordele

Hvilke af følgende er vigtige fordele ved at bruge mix release til at udrulle en Elixir-applikation?

Opsummering: Klar til udrulning!

Du har lært, at mix release er standardmåden at pakke Elixir-applikationer til produktion på. Den opretter en selvstændig, optimeret pakke, der er uafhængig af Mix-værktøjskæden.

Releases giver hurtigere opstart, robust kørsel som daemon og understøttelse af avancerede funktioner som hot code-opgraderinger. Sammen med config/runtime.exs udgør de en effektiv og fleksibel løsning til udrulning.

Gratis at komme i gang

Lær Elixir med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Oprettelse af releases med Mix Release” gratis?

Ja — hele teksten til “Oprettelse af releases med Mix Release” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Elixir og Phoenix: Skalerbar backend-udvikling-kurset, skal du opgradere til CoddyKit PRO. Elixir og Phoenix: Skalerbar backend-udvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oprettelse af releases med Mix Release”?

Opret selvstændige, deploy-klare releases af Deres Elixir-applikation med `mix release`. Du øver dig i Elixir og Phoenix: Skalerbar backend-udvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Elixir og Phoenix: Skalerbar backend-udvikling?

Der kræves ingen tidligere erfaring. Elixir og Phoenix: Skalerbar backend-udvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Oprettelse af releases med Mix Release”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Elixir og Phoenix: Skalerbar backend-udvikling-lektion?

Ja. Alle Elixir og Phoenix: Skalerbar backend-udvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af releases med Mix Release
  2. Containerisering med Docker
  3. Strategier for cloud-deployment
  4. Deployments uden nedetid og hot upgrades
← Tilbage til Elixir og Phoenix: Skalerbar backend-udvikling