Erlang OTP: Programmering af distribuerede og fejltolerante systemer · Lektion

Opbygning af OTP-applikationer og releases

Pak dine GenServers og supervisors i en rigtig OTP-applikation, og saml den i en release, der kan udrulles.

Lektion 4 af 413 trin

Opbygning af OTP-applikationer og releases er en gratis Erlang OTP: Programmering af distribuerede og fejltolerante systemer-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Erlang OTP: Programmering af distribuerede og fejltolerante systemer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Erlang OTP: Programmering af distribuerede og fejltolerante systemer-kurset indeholder 4 lektioner i alt.

Hvad er en OTP-applikation?

En OTP-applikation er en genanvendelig komponent med en defineret livscyklus: Den starter, kører et overvågningstræ og stopper korrekt. Den er standardenheden til pakning i Erlang.

Ressourcefilen .app

Alle applikationer har en .app-fil, der beskriver deres metadata: navn, moduler, afhængigheder og det callback-modul, der starter applikationen.

{application, myapp,
 [{description, "My App"},
  {vsn, "1.0.0"},
  {modules, [myapp_app, myapp_sup]},
  {applications, [kernel, stdlib]},
  {mod, {myapp_app, []}}]}.

application-adfærden

Modulet, der er angivet i mod, implementerer application-adfærden med callback-funktionerne start/2 og stop/1.

-module(myapp_app).
-behaviour(application).
-export([start/2, stop/1]).

start/2

start/2 kaldes, når applikationen starter. Den starter den øverste supervisor og returnerer dens pid.

start(_Type, _Args) ->
    myapp_sup:start_link().

stop/1

stop/1 kaldes ved nedlukning for at udføre oprydning. Ofte returnerer den blot ok.

stop(_State) ->
    ok.

Start og stop

Fra skallen kan du styre applikationer under kørsel.

application:start(myapp).
application:stop(myapp).

Applikationsmiljø

Konfigurationen ligger i sektionen env i .app-filen og læses med application:get_env.

application:get_env(myapp, port).
% => {ok, 8080}

Hvad er en release?

En release samler din applikation, dens afhængigheder og en begrænset Erlang-runtime i én selvstændig artefakt, der kan distribueres.

Bygning med rebar3

Byggeværktøjet rebar3 opretter releases ud fra en relx-konfiguration i rebar.config.

{relx, [{release, {myapp, "1.0.0"}, [myapp]},
        {dev_mode, false},
        {include_erts, true}]}.

Kørsel af en release

Den genererede release indeholder scripts til at starte og stoppe noden samt oprette forbindelse til en konsol på den kørende node.

% rebar3 release
% _build/default/rel/myapp/bin/myapp foreground

Hvorfor er releases vigtige?

Releases giver reproducerbare udrulninger: Den nøjagtige runtime, applikationsversioner og konfiguration følger med samlet, og de understøtter opgraderinger af kode under drift, som er et kendetegn ved Erlang-systemer.

Hurtig test

Test din viden om OTP-applikationer.

Opsummering

Du har lært at pakke OTP-kode.

  • .app-filen beskriver metadata og startmodulet
  • application-adfærden leverer start/2 og stop/1
  • Releases samler applikation og runtime til reproducerbar udrulning
Gratis at komme i gang

Lær Erlang 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 “Opbygning af OTP-applikationer og releases” gratis?

Ja — alle 3 lektioner i læringssporet Erlang OTP: Programmering af distribuerede og fejltolerante systemer, inklusive “Opbygning af OTP-applikationer og releases”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Erlang OTP: Programmering af distribuerede og fejltolerante systemer-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Opbygning af OTP-applikationer og releases”?

Pak dine GenServers og supervisors i en rigtig OTP-applikation, og saml den i en release, der kan udrulles. Du øver dig i Erlang OTP: Programmering af distribuerede og fejltolerante systemer 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å Erlang OTP: Programmering af distribuerede og fejltolerante systemer?

Der kræves ingen tidligere erfaring. Erlang OTP: Programmering af distribuerede og fejltolerante systemer 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 4 af 4.

Hvor lang tid tager lektionen “Opbygning af OTP-applikationer og releases”?

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 Erlang OTP: Programmering af distribuerede og fejltolerante systemer-lektion?

Ja. Alle Erlang OTP: Programmering af distribuerede og fejltolerante systemer-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. Forståelse af OTP og behaviors
  2. Implementering af GenServer-behavior
  3. Introduktion til supervisors
  4. Opbygning af OTP-applikationer og releases
← Tilbage til Erlang OTP: Programmering af distribuerede og fejltolerante systemer