Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ CI/CD: āĻŦāĻŋāϞā§āĻĄ, āĻā§āϏā§āĻ, āĻŽāĻžāĻāĻā§āϰā§āĻ, āĻĄāĻŋāĻĒā§āϞāϝāĻŧ
Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ CI/CD: āĻŦāĻŋāϞā§āĻĄ, āĻā§āϏā§āĻ, āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāĻŦāĻ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻĒāϰāĻŋāĻŦā§āĻļā§ Kubernetes āĻŦāĻž VMs-āĻ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϧāĻžāĻĒāĻā§āϞā§āĨ¤

āĻā§āύ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ CI/CD āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ
āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻŦāĻžāϰāĻŦāĻžāϰ āĻāĻāĻ āϰāĻāĻŽāĻāĻžāĻŦā§ āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤ āĻā§āĻ āϞā§āϝāĻžāĻĒāĻāĻĒā§ āĻāĻŋāύā§āύ Go āĻāĻžāϰā§āϏāύ⧠āĻŦāĻŋāϞā§āĻĄ āĻāϰā§, āĻāĻāĻāĻŋ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϝāĻžāϰāĻŋāϝāĻŧā§āĻŦāϞ āĻā§āϞ⧠āϝāĻžāϝāĻŧ, āĻāĻāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧ, āĻŦāĻž āĻā§āϞ āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰ⧠āĻĢā§āϞā§āĨ¤ āϰāĻŋāϞāĻŋāĻ âāĻāĻŽāĻžāϰ āĻāĻžāĻā§ āĻāϞā§â, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻāϞ⧠āύāĻžâāĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āϤāĻž āĻ āύā§āĻāĻŦ āĻāϰāĻžāϰ āĻĒāϰāĻ āĻāĻĒāύāĻŋ āĻāĻžāύāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻā§āύāĻžāϰā§āĻā§āĻĄ āĻā§āĻĄ āĻĨāĻžāĻāϞ⧠āϰāĻŋāϞāĻŋāĻ āĻĄāĻŋāϏāĻŋāĻĒā§āϞāĻŋāύā§āϰ āĻĻāϰāĻāĻžāϰ āĻāĻŽā§ āύāĻžāĨ¤ āϝāĻāύ āĻāĻĒāύāĻŋ requirements āĻāĻĒāĻĄā§āĻ āĻāϰ⧠āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ, āϤāĻāύ āύāϤā§āύ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ, āĻĄā§āĻāĻž āĻļā§āĻĒ āĻŦāĻž āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āϝā§āĻā§āϤ āĻšāϤ⧠āĻĒāĻžāϰā§âāĻāĻŽāύāĻāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻšāĻžāϤ āĻĻāĻŋāϝāĻŧā§ āĻā§āĻĄāĻ āύāĻž āĻā§āĻāϝāĻŧā§āĻ āĻĨāĻžāĻā§āύāĨ¤ āĻ āĻŋāĻ āϤāĻāύāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻāĻāĻŋ āϏā§āĻĢāĻāĻŋ āϰā§āϞ āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻ āĻāϰāĻž āĻāĻāĻŋāϤ: āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏāĻŦ āϏāĻŽāϝāĻŧ āĻāĻāĻ āĻā§āĻ āĻĒāĻžāϰ āĻšāϤ⧠āĻšāϝāĻŧāĨ¤
āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻŽāĻžāύ⧠āĻāĻĒāύāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āϧāĻžāĻĒāĻā§āϞ⧠āĻāĻŽāύ āĻļāϰā§āϤ⧠āĻāϞāĻŦā§ āϝāĻž āĻāĻĒāύāĻŋ āύāĻžāĻŽ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāϝāĻŧā§āĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻā§āϏ āĻāĻāĻžāϰ āĻāϰāĻŦā§:
- āĻāĻžāϰā§āϏāύ āĻĒāĻŋāύ āĻāϰā§āύ (Go āĻā§āϞāĻā§āĻāύ, āĻŦā§āϏ āĻāĻŽā§āĻ, OS āĻĒā§āϝāĻžāĻā§āĻ)āĨ¤
- āĻāĻāĻŦāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āύ, āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āϏāĻŦ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύāĨ¤
- āĻāύāĻĢāĻŋāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋāϰ āĻŦāĻžāĻāϰ⧠āϰāĻžāĻā§āύ (env vars āĻŦāĻž āĻĒāϰāĻŋāĻŦā§āĻļāĻāĻŋāϤā§āϤāĻŋāĻ āĻāύāĻĢāĻŋāĻ āĻĢāĻžāĻāϞ)āĨ¤
- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻāĻāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻā§āϞ āĻāĻŦāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
- āϰā§āϞāĻŦā§āϝāĻžāĻ āĻŦāĻžāϏā§āϤāĻŦ āĻāϰā§āύ: āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āϰāĻžāĻā§āύ āĻāĻŦāĻ āĻāĻžāύā§āύ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻā§ āĻšāĻŦā§āĨ¤
Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ CI/CD-āĻāϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāϤāĻž āύāĻŋāĻā§āĻ āύāϝāĻŧ; āĻāĻāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāϝā§āĻā§āϝ āϰāĻŋāϞāĻŋāĻ āϝāĻžāϤ⧠āĻŽāĻžāύāϏāĻŋāĻ āĻāĻžāĻĒ āĻāĻŽā§: āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ, āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻžāϞāĻžāύ, āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰā§āύ āϝ⧠āϝāĻž āĻŦā§āϰ āĻšāĻā§āĻā§ āϤāĻž āĻĄāĻŋāĻĒā§āϞāϝāĻŧāϝā§āĻā§āϝāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ AppMaster-āĻāϰ āĻŽāϤ⧠āĻā§āύāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻž Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϤā§āϰāĻŋ āĻāϰā§, āϤāĻŦā§ āĻāĻāĻŋ āĻāϰāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻāĻāĻāĻŋ āϏā§āĻŦāĻŋāϧāĻž, āĻāĻŋāύā§āϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϤāĻāύāĻ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦā§āϧ āĻāϰ⧠āϝāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĨā§āĻā§ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āĻĒāĻĨāĻāĻŋ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ, āĻā§āϏā§āĻāĻā§āϤ āĻāĻŦāĻ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻšāϝāĻŧāĨ¤
āϰāĻžāύāĻāĻžāĻāĻŽ āĻŦā§āĻā§ āύāĻŋāύ āĻāĻŦāĻ āĻāĻā§āĻ âāĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧâ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ
âāĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧâ āĻŽāĻžāύ⧠āĻāĻāĻ āĻāύāĻĒā§āĻ āĻĨā§āĻā§ āĻāĻāĻ āϰā§āĻāĻžāϞā§āĻ āĻĒāĻžāĻāϝāĻŧāĻžâāύ⧠āĻŽā§āĻāĻžāϰ āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāϞāĻžāĻā§āĻā§āύāĨ¤ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ CI/CD-āĻāϰ āĻāύā§āϝ āĻāĻāĻž āĻļā§āϰ⧠āĻšāϝāĻŧ āĻāĻ āĻŦāĻŋāώāϝāĻŧā§ āĻāĻāĻŽāϤ āĻšāĻāϝāĻŧāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§: āĻĄā§āĻ, āϏā§āĻā§āĻ āĻāĻŦāĻ āĻĒā§āϰā§āĻĄā§ āĻā§ āĻāĻāĻ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
āϏāĻžāϧāĻžāϰāĻŖ āύāύ-āύā§āĻā§āĻļāĻŋāϝāĻŧā§āĻŦāϞāĻā§āϞ⧠āĻšāϞ Go āĻāĻžāϰā§āϏāύ, āĻŦā§āϏ OS āĻāĻŽā§āĻ, āĻŦāĻŋāϞā§āĻĄ āĻĢā§āϞā§āϝāĻžāĻ, āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻ āϞā§āĻĄāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āĻāĻā§āϞā§āϰ āĻā§āύā§āĻāĻž āĻĒāϰāĻŋāĻŦā§āĻļ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻŦāĻĻāϞāĻžāϞ⧠āĻāĻĒāύāĻŋ TLS āĻāĻāϰāĻŖ, āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ, āĻŦāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻĻā§āĻāĻž āĻĻā§āϝāĻŧ āĻāĻŽāύ āĻŦāĻžāĻ āĻĒā§āϝāĻŧā§ āϝāĻžāĻŦā§āύāĨ¤
āĻĒāϰāĻŋāĻŦā§āĻļāĻāϤ āĻĄā§āϰāĻŋāĻĢā§āĻ āϏāĻāϰāĻžāĻāϰ āĻāĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĻā§āĻāĻž āĻĻā§āϝāĻŧ:
- OS āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ (āĻāĻŋāύā§āύ āĻĄāĻŋāϏā§āĻā§āϰ⧠āĻāĻžāϰā§āϏāύ, āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ CA āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ, āĻāĻžāĻāĻŽāĻā§āύ āĻĒāĻžāϰā§āĻĨāĻā§āϝ)
- āĻāύāĻĢāĻŋāĻ āĻŽāĻžāύ (āĻĢāĻŋāĻāĻžāϰ āĻĢā§āϞā§āϝāĻžāĻ, āĻāĻžāĻāĻŽāĻāĻāĻ, allowed origins, āĻāĻā§āϏāĻāĻžāϰā§āύāĻžāϞ āϏāĻžāϰā§āĻāĻŋāϏ URL)
- āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāĻāĻžāϰ āĻ āϏā§āĻāĻŋāĻāϏ (āĻŽāĻžāĻāĻā§āϰā§āĻļāύ, āĻāĻā§āϏāĻā§āύāĻļāύ, āĻāϞā§āĻļāύ, āĻāĻžāύā§āĻāĻļāύ āϞāĻŋāĻŽāĻŋāĻ)
- āϏāĻŋāĻā§āϰā§āĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ (āĻā§āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻā§, āĻā§āĻāĻžāĻŦā§ āϰā§āĻā§āĻ āĻšāϝāĻŧ, āĻā§ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§)
- āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āύā§āĻŽāĻžāύ (DNS, āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ, āϏāĻžāϰā§āĻāĻŋāϏ āĻĄāĻŋāϏāĻāĻāĻžāϰāĻŋ)
Kubernetes āĻāĻŦāĻ VMs-āĻāϰ āĻŽāϧā§āϝ⧠āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž âāĻā§āύāĻāĻž āϏā§āϰāĻžâ-āĻāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻĻāϞā§āϰ āĻā§āϝāĻžāĻĒāĻžāĻŦāĻŋāϞāĻŋāĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤
Kubernetes āĻāĻžāϞ⧠āϝāĻāύ āĻāĻĒāύāĻžāĻā§ āĻ āĻā§āϏā§āĻā§āϞāĻŋāĻ, āϰā§āϞāĻŋāĻ āĻāĻĒāĻĄā§āĻ āĻāĻŦāĻ āĻ āύā§āĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāϞāĻžāύā§āϰ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻĻāϰāĻāĻžāϰāĨ¤ āĻāĻāĻŋ āĻāύāϏāĻŋāϏā§āĻā§āύā§āϏāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāϤā§āĻ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻĒāĻĄāĻā§āϞ⧠āĻāĻāĻ āĻāĻŽā§āĻ āĻĨā§āĻā§ āĻāϞā§āĨ¤ VMs āĻ āĻŋāĻ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻāĻ āĻŦāĻž āĻāϝāĻŧā§āĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻā§, āĻāĻāĻāĻŋ āĻā§āĻ āĻĻāϞ, āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻāĻŽ āĻŽā§āĻāĻŋāĻ āĻĒāĻžāϰā§āĻāϏ āĻāĻžāύāĨ¤
āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻāĻ āϰāĻžāĻāĻž āϝāĻžāϝāĻŧ āĻāĻŽāύāĻāĻŋ āϝāĻĻāĻŋ āϰāĻžāύāĻāĻžāĻāĻŽ āĻāĻŋāύā§āύ āĻšāϝāĻŧâāĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻ āϤāĻžāϰ āĻāύāĻā§āϰā§āϝāĻžāĻā§āĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖ: CI-āϤ⧠āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻāĻ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻŽā§āĻ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āύ, āĻāĻāĻ āĻā§āϏā§āĻ āϧāĻžāĻĒ āĻāĻžāϞāĻžāύ, āĻāĻŦāĻ āĻāĻāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻŦāĻžāύā§āĻĄā§āϞ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āύāĨ¤ āϤāĻžāϰāĻĒāϰ āĻā§āĻŦāϞ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āϧāĻžāĻĒ āĻŦāĻĻāϞāĻžāĻŦā§: Kubernetes āύāϤā§āύ āĻāĻŽā§āĻ āĻā§āϝāĻžāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻžāĻ āĻāϰāĻŦā§, āĻāϰ VMs āĻāĻŽā§āĻ āĻā§āύ⧠āϏāĻžāϰā§āĻāĻŋāϏ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāϝāĻŧā§āĻāĻŋāĻ āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻāĻāĻŋ āĻĻāϞ AppMaster āĻĨā§āĻā§ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰ⧠āϏā§āĻā§āĻāĻŋāĻ-āĻ Kubernetes-āĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻāĻāύ⧠VM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ āĻĻā§āĻā§āĻ āĻāĻāĻ āĻāĻŽā§āĻ āĻā§āύ⧠āύā§āϝāĻŧ āĻāĻŦāĻ āĻāĻāĻ āϧāϰāύā§āϰ āϏāĻŋāĻā§āϰā§āĻ āϏā§āĻā§āϰ āĻĨā§āĻā§ āĻāύāĻĢāĻŋāĻ āϞā§āĻĄ āĻāϰā§, āϤāĻžāĻšāϞ⧠âāĻāĻŋāύā§āύ(runtime)â āĻā§āĻŦāϞ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻŦāĻŋāĻŦāϰāĻŖā§ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ, āĻŦāĻžāĻā§āϰ āĻā§āϏ āύāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ AppMaster (appmaster.io) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āĻāĻ āĻŽāĻĄā§āϞāĻāĻŋ āĻāĻžāϞ⧠āĻĢāĻŋāĻ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻāĻĒāύāĻŋ āĻŽā§āϝāĻžāύā§āĻāĻĄ āĻā§āϞāĻžāĻāĻĄ āĻāĻžāϰā§āĻā§āĻā§ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻŦāĻž āϏā§āϰā§āϏ āĻāĻā§āϏāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻŋāĻā§āϰ āĻ⤍āĨā¤Ģā§āϰāĻž-āϤ⧠āĻāĻāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻŽāύ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻŽā§āϝāĻžāĻĒ āϝāĻž āϏāĻŦāĻžāĻāĻā§ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž āϝāĻžāϝāĻŧ
āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏāĻšāĻāĻāĻžāĻŦā§ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āϝāĻžāϝāĻŧ: āĻā§āĻĄ āĻā§āĻ āĻāϰā§āύ, āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āύ, āĻĒā§āϰāĻŽāĻžāĻŖ āĻāϰā§āύ āĻāĻžāĻ āĻāϰāĻā§, āĻāĻāĻ āĻāĻŋāύāĻŋāϏ āĻļāĻŋāĻĒ āĻāϰā§āύ āϝā§āĻāĻž āĻāĻĒāύāĻŋ āĻā§āϏā§āĻ āĻāϰā§āĻā§āύ, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻāĻāĻāĻžāĻŦā§ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύāĨ¤ āĻāĻ āϏā§āĻĒāώā§āĻāϤāĻž āĻ āϰā§āĻĨāĻŦāĻšâāĻŦāĻŋāĻļā§āώāϤ āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻšāϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āĻāĻžāϰāĻŖ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞ⧠āĻ āύā§āĻ āĻĢāĻžāĻāϞ āϏā§āĻĒāϰā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻĻā§āϰā§āϤ, āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ āĻĢāĻŋāĻĄāĻŦā§āϝāĻžāĻ āĻāĻžāύāĨ¤
āϏā§āĻāĻžāϏāĻžāĻĒā§āĻāĻž CI/CD āĻĢā§āϞ⧠āĻĻā§āĻāϤ⧠āĻāĻ āϰāĻāĻŽ:
- Lint āĻāĻŦāĻ āĻŦā§āϏāĻŋāĻ āĻā§āĻ
- Build
- Unit tests
- Integration checks
- Package (immutable artifacts)
- Migrate (āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āϧāĻžāĻĒ)
- Deploy
āĻāĻ āύ āĻāĻŽāύ āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻĢā§āĻāϞāĻžāϞāĻā§āϞāĻŋ āĻļā§āϰā§āϰ āĻĻāĻŋāĻā§ āĻĨāĻžāĻŽāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ lint āĻĢā§āĻāϞ āĻāϰā§, āĻŦāĻžāĻāĻŋāĻā§āϞ⧠āĻāϞāĻž āĻāĻāĻŋāϤ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻŦāĻŋāϞā§āĻĄ āĻĢā§āĻāϞ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āĻā§āϰ āĻāύā§āϝ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āύāώā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤ āύāϝāĻŧāĨ¤ āĻāϤ⧠āĻāϰāĻ āĻāĻŽā§ āĻāĻŦāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻĻā§āϰā§āϤ āĻŽāύ⧠āĻšāϝāĻŧāĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻŋ āϧāĻžāĻĒ āϏāĻŦ āĻāĻŽāĻŋāĻā§ āϰāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŽāύ āĻāϰā§āϰāĻŋ āύā§āĻāĨ¤ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāĻāĻžāĻāύ āĻšāĻā§āĻā§:
- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ/PR: lint, build, unit tests
- Main āĻŦā§āϰāĻžāĻā§āĻ: integration checks, packaging
- Release āĻā§āϝāĻžāĻ: migrate, deploy
āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ āĻā§ āϰā§āĻā§āĻā§āύ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻšāĻŋāϏā§āĻŦā§āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āϤāĻž āĻšāϞ āĻāĻŽā§āĻĒāĻžāĻāϞāĻĄ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻŦāĻž āĻāύāĻā§āĻāύāĻžāϰ āĻāĻŽā§āĻ (āĻāĻĒāύāĻŋ āϝāĻž āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻŦā§āύ), āĻĒā§āϞāĻžāϏ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āϞāĻ āĻ āĻā§āϏā§āĻ āϰāĻŋāĻĒā§āϰā§āĻāĨ¤ āĻāĻā§āϞ⧠āϰāĻžāĻāϞ⧠āϰā§āϞāĻŦā§āϝāĻžāĻ āĻāĻŦāĻ āĻ āĻĄāĻŋāĻ āϏāĻšāĻ āĻšāϝāĻŧ āĻāĻžāϰāĻŖ āĻāĻĒāύāĻŋ āĻ āĻŋāĻ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āĻā§āύāĻāĻž āĻā§āϏā§āĻ āĻāϰāĻž āĻ āĻĒā§āϰā§āĻŽā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āϏā§āĻā§āĻĒ-āĻŦāĻžāĻ-āϏā§āĻā§āĻĒ: āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻāĻŦāĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāϝā§āĻā§āϝ āĻŦāĻŋāϞā§āĻĄ āϏā§āĻā§āĻ
āĻŦāĻŋāϞā§āĻĄ āϏā§āĻā§āĻ āĻāĻ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ āĻĻā§āĻŦā§: āĻāĻ, āĻāĻāĻžāĻŽā§āĻāĻžāϞ āĻŦāĻž āĻāĻŋāύā§āύ āϰāĻžāύāĻžāϰ-āĻ āĻāĻŋ āĻāĻŽāϰāĻž āĻāĻāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻāϤā§āĻĒāύā§āύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ? āϝāĻĻāĻŋ āϤāĻž āύāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āϧāĻžāĻĒ (āĻā§āϏā§āĻ, āĻŽāĻžāĻāĻā§āϰā§āĻ, āĻĄāĻŋāĻĒā§āϞāϝāĻŧ) āĻāϰāϏāĻž āĻāϰāĻž āĻāĻ āĻŋāύ āĻšāϝāĻŧā§ āĻĒāĻĄāĻŧā§āĨ¤
āĻĒāϰāĻŋāĻŦā§āĻļ āĻĒāĻŋāύ āĻāϰ⧠āĻļā§āϰ⧠āĻāϰā§āύāĨ¤ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ Go āĻāĻžāϰā§āϏāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ 1.22.x) āĻāĻŦāĻ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϰāĻžāύāĻžāϰ āĻāĻŽā§āĻ (Linux distro āĻāĻŦāĻ āĻĒā§āϝāĻžāĻā§āĻ āĻāĻžāϰā§āϏāύ)āĨ¤ "latest" āĻā§āϝāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻĨā§āĻā§ āĻŦāĻŋāϰāϤ āĻĨāĻžāĻā§āύāĨ¤ libc, Git āĻŦāĻž Go āĻā§āϞāĻā§āĻāύ⧠āĻā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻ âāĻāĻŽāĻžāϰ āĻŽā§āĻļāĻŋāύ⧠āĻāϞā§â āϧāϰāύā§āϰ āϤā§āϰā§āĻāĻŋ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāĻž āĻāώā§āĻāĻāϰāĨ¤
āĻŽāĻĄāĻŋāĻāϞ āĻā§āϝāĻžāĻāĻŋāĻ āϏāĻšāĻžāϝāĻŧāĻ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋāĻā§ āϏā§āĻĒāĻŋāĻĄ āĻŦā§āϏā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻĻā§āĻā§āύâāϏā§āϰā§āϏ-āĻ āĻĢ-āĻā§āϰā§āĻĨ āĻšāĻŋāϏā§āĻŦā§ āύāϝāĻŧāĨ¤ Go build cache āĻāĻŦāĻ module download cache āĻā§āϝāĻžāĻļ āĻāϰā§āύ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋāĻā§ go.sum āĻĻā§āĻŦāĻžāϰāĻž āĻā§ āĻāϰā§āύ (āĻ āĻĨāĻŦāĻž āĻĄāĻŋāĻĒāϏ āĻŦāĻĻāϞāĻžāϞ⧠main-āĻ āĻā§āϞāĻŋāϝāĻŧāĻžāϰ āĻāϰā§āύ) āϝāĻžāϤ⧠āύāϤā§āύ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āϏāĻŦāϏāĻŽāϝāĻŧ āĻā§āϞāĻŋāύ āĻĄāĻžāĻāύāϞā§āĻĄ āĻā§āϰāĻŋāĻāĻžāϰ āĻāϰā§āĨ¤
āĻāĻŽā§āĻĒāĻžāĻāϞā§āĻļāύā§āϰ āĻāĻā§ āĻāĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻā§āĻ āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻāĻžāĻā§ āĻĻā§āϰā§āϤ āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻĄā§āĻā§āϞāĻĒāĻžāϰāϰāĻž āĻŦāĻžāĻāĻĒāĻžāϏ āύāĻž āĻāϰā§āĨ¤ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻ āĻšāĻā§āĻā§ gofmt āĻā§āĻ, go vet, āĻāĻŦāĻ (āϝāĻĻāĻŋ āĻĻā§āϰā§āϤ āĻĨāĻžāĻā§) staticcheckāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻŦāĻž āĻĒā§āϰā§āύ⧠āĻā§āύāĻžāϰā§āĻā§āĻĄ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤ⧠āĻĢā§āĻāϞ āĻāϰā§āύâāĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻā§āĻĄ āĻā§āĻĄāĻŦā§āϏ⧠āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏāĻŽāϏā§āϝāĻžāĨ¤
āϰāĻŋāĻĒā§āϰāĻĄāĻŋāĻāϏāĻŋāĻŦāϞāĻāĻžāĻŦā§ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻžāϰā§āϏāύ āĻāύāĻĢā§ āĻāĻŽāĻŦā§āĻĄ āĻāϰā§āύāĨ¤ -trimpath-āĻāϰ āĻŽāϤ⧠āĻĢā§āϞā§āϝāĻžāĻ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§, āĻāĻŦāĻ āĻāĻĒāύāĻŋ -ldflags āϏā§āĻ āĻāϰ⧠commit SHA āĻ build time āĻāύāĻā§āĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāĻžāĻŽāĻā§āϤ āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ āĻāϤ⧠Kubernetes āĻŦāĻž VM-āĻ āĻāĻŋ āĻāϞāĻā§ āĻā§āϰā§āϏ āĻāϰāĻž āϏāĻšāĻ āĻšāϝāĻŧ, āĻŦāĻŋāĻļā§āώāϤ āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻšāϝāĻŧāĨ¤
āϏā§āĻā§āĻĒ-āĻŦāĻžāĻ-āϏā§āĻā§āĻĒ: āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āĻāĻā§ āĻāϏā§āϝ⧠āϧāϰāĻž āĻāĻāύāĻŋāĻ āĻ āĻā§āϏā§āĻ
āĻā§āϏā§āĻ āĻā§āĻŦāϞ āϤāĻāύāĻ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰ⧠āϝāĻāύ āϤāĻž āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻāĻāĻāĻžāĻŦā§ āĻāϞā§āĨ¤ āĻĒā§āϰāĻĨāĻŽā§ āĻĻā§āϰā§āϤ āĻĢāĻŋāĻĄāĻŦā§āϝāĻžāĻ āϞāĻā§āώā§āϝ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻā§āϰ āĻā§āĻ āϝā§āĻ āĻāϰā§āύ āϝāĻž āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠āĻļā§āώ āĻšāϝāĻŧāĨ¤
āĻĒā§āϰāϤāĻŋ āĻāĻŽāĻŋāĻā§ āĻāĻāύāĻŋāĻ āĻā§āϏā§āĻ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύāĨ¤ āĻāĻāĻāĻŋ āĻāĻ ā§āϰ āĻāĻžāĻāĻŽāĻāĻāĻ āϏā§āĻ āĻāϰā§āύ āϝāĻžāϤ⧠āĻāĻāĻāĻŋ āĻāĻāĻā§ āĻĨāĻžāĻāĻž āĻā§āϏā§āĻ āĻĒā§āϰ⧠āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻšā§āϝāĻžāĻ āύāĻž āĻāϰā§âāĻŦāϰāĻ āϤāĻž āĻā§āϰāĻžāϞā§āĻāĻžāĻŦā§ āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤ āĻāĻĒāύāĻžāϰ āĻĻāϞā§āϰ āĻāύā§āϝ âāĻĒā§āϰāϤāĻŋāĻĨāϤā§āϤā§āĻŦâ āĻāĻŋ āĻŽāĻžāύ⧠āϤāĻž āĻ āĻŋāĻ āĻāϰā§āύāĨ¤ āĻāĻāĻžāϰā§āĻ āĻā§āϰāĻĢāĻŋ āύāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻŋ āύā§āϝā§āύāϤāĻŽ āĻŽāĻžāύ āĻĻāϞāĻā§ āϧā§āϰāĻŽāĻžāύ āĻā§āĻŖāĻāϤ āĻŦāĻŋāϞā§āĻĒ āϰā§āϧ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻā§āϏā§āĻ āϏā§āĻā§āĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§:
go test ./...āĻāĻžāϞāĻžāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϝāĻžāĻā§āĻā§ āĻĒāĻžāϰ-āĻĒā§āϝāĻžāĻā§āĻ āĻāĻžāĻāĻŽāĻāĻāĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āϞā§āĻŦāĻžāϞ āĻāĻŦ āĻāĻžāĻāĻŽāĻāĻāĻ āϏāĻšāĨ¤- āĻāĻžāĻāĻŽāĻāĻāĻ āϞāĻžāĻāĻž āϝā§āĻā§āύ⧠āĻā§āϏā§āĻāĻā§ āĻŦāĻžāϏā§āϤāĻŦ āĻŦāĻžāĻ āĻšāĻŋāϏā§āĻŦā§ āĻā§āϰāĻŋāĻ āĻāϰā§āύ, āύāĻž āϝ⧠"CI āĻĢā§āϞā§āĻāĻāĻŋ"āĨ¤
- āϏāĻŽāĻžāϞā§āĻāύāĻžāĻŽā§āϞāĻ āĻĒā§āϝāĻžāĻā§āĻā§āϰ (auth, billing, permissions) āĻāύā§āϝ āĻāĻāĻžāϰā§āĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻž āϏā§āĻ āĻāϰā§āύ, āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϰāĻŋāĻĒā§ āύāĻž-āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
- āĻāύāĻāĻžāϰā§āύā§āϏāĻŋ āĻšā§āϝāĻžāύā§āĻĄāϞ āĻāϰāĻž āĻā§āĻĄā§āϰ āĻāύā§āϝ race detector āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (āĻāĻŋāĻ, āĻā§āϝāĻžāĻļ, āĻĢā§āϝāĻžāύ-āĻāĻāĻ āĻāϝāĻŧāĻžāϰā§āĻāĻžāϰ)āĨ¤
āϰā§āϏ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻŽā§āϞā§āϝāĻŦāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻŦāĻŋāϞā§āĻĄ āĻ āύā§āĻ āϧā§āϰ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāϞ āϏāĻŽāĻā§āϤāĻž āĻšāϞ⧠pull request āĻ āύāĻžāĻāĻāϞāĻŋ āĻŦāĻŋāϞā§āĻĄā§ āĻāĻžāϞāĻžāύā§, āĻ āĻĨāĻŦāĻž āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ āĻĒā§āϝāĻžāĻā§āĻā§ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āϰāĻžāĻāĻž, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āĻļā§ āύāĻž āĻāĻžāϞāĻžāύā§āĨ¤
āĻĢā§āϞā§āĻāĻāĻŋ āĻā§āϏā§āĻāĻā§āϞ⧠āĻŦāĻŋāϞā§āĻĄāĻā§ āĻĢā§āϞ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āϏā§āĻāĻā§ āĻā§āϝāĻŧāĻžāϰā§āύā§āĻāĻžāĻāύ āĻāϰāϤ⧠āĻšāϝāĻŧ, āϏā§āĻāĻŋāĻā§ āĻĻā§āĻļā§āϝāĻŽāĻžāύ āϰāĻžāĻā§āύ: āĻāϞāĻžāĻĻāĻž āĻāĻŦā§ āĻāĻŽāĻžāύ āϝāĻž āĻāĻāύāĻ āĻāĻžāϞāĻžāϝāĻŧ āĻāĻŦāĻ āϰā§āĻĒā§āϰā§āĻ āĻāϰ⧠āϞāĻžāϞ āϧāĻžāϰāĻŖ āĻāϰā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽāĻžāϞāĻŋāĻ āĻ āĻĄā§āĻĄāϞāĻžāĻāύ āϰāĻžāĻā§āύ āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝāĨ¤
āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āϏāĻšāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āϏā§āĻ āĻāĻāĻāĻĒā§āĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤ āϰ āĻ āϰ āϞā§āĻā§ āϏā§āĻ āĻāϰā§āύ āĻĒā§āϞāĻžāϏ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϰāĻŋāĻĒā§āϰā§āĻ (āĻĒāĻžāϏ/āĻĢā§āĻāϞ, āϏāĻŽāϝāĻŧāĻāĻžāϞ, āĻļā§āϰā§āώ āϧā§āϰ āĻā§āϏā§āĻ)āĨ¤ āĻāϤ⧠āϰāĻŋāĻā§āϰā§āĻļāύ āĻļāύāĻžāĻā§āϤ āĻāϰāĻž āϏāĻšāĻ āĻšāϝāĻŧ, āĻŦāĻŋāĻļā§āώāϤ āϝāĻāύ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻ āύā§āĻ āĻĢāĻžāĻāϞ āϏā§āĻĒāϰā§āĻļ āĻāϰā§āĨ¤
āĻŦāĻžāϏā§āϤāĻŦ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āύāĻŋāϝāĻŧā§ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āĻ, āĻāĻŋāύā§āϤ⧠āϧā§āϰ āĻŦāĻŋāϞā§āĻĄ āĻāĻžāĻĄāĻŧāĻžāĻ
āĻāĻāύāĻŋāĻ āĻā§āϏā§āĻ āĻŦāϞ⧠āĻĻā§āϝāĻŧ āĻā§āĻĄ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āĻ āĻŦāϞ⧠āĻĻā§āϝāĻŧ āϏāĻžāϰā§āĻāĻŋāϏāĻāĻŋ āĻŦā§āĻ āĻšāϞā§, āϰāĻŋāϝāĻŧā§āϞ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāύā§āĻā§āĻ āĻāϰāϞ⧠āĻāĻŦāĻ āϰāĻŋāϝāĻŧā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϞ⧠āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻāϰāĻŖ āĻāϰ⧠āĻāĻŋ āύāĻžāĨ¤ āĻāĻāĻŋ āϏā§āĻ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻāĻžāϞ āϝāĻž āϏāĻŦāĻāĻŋāĻā§ āĻā§āĻĄāĻŧā§ āĻĨāĻžāĻāϞ⧠āĻĻā§āĻāĻž āϝāĻžāϝāĻŧ āĻāĻŽāύ āĻāϏā§āϝā§āĻā§āϞ⧠āϧāϰāĻŦā§āĨ¤
āĻāĻĒāύāĻžāϰ āĻā§āĻĄ āϝāĻĻāĻŋ āĻļā§āϰ⧠āϏāĻāĻŦāĻžāĻĻ āĻŦāĻž āĻŽā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻā§āϰ āĻāύā§āϝ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻāĻžāϝāĻŧ, āϤāĻŦā§ āĻāĻĢāĻŋāĻŽā§āϰāĻžāϞ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϝāĻŧā§āĻāύ⧠āĻāĻāĻāĻŋ āĻ āϏā§āĻĨāĻžāϝāĻŧā§ PostgreSQL (āĻāϰ⧠āĻĨāĻžāĻāϞ⧠Redis) āĻāĻžāĻāĻāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻāĨ¤ āĻāĻžāϰā§āϏāύāĻā§āϞ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āύāĻŋāĻāĻ āϰāĻžāĻā§āύ, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻĄāĻŋāĻā§āĻāϞ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŦā§āύ āύāĻžāĨ¤
āĻāĻāĻāĻŋ āĻāĻžāϞ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āϏā§āĻā§āĻ āĻā§āĻ āĻšāĻāϝāĻŧāĻž āĻāĻĻā§āĻĻā§āĻļā§āϝāĻĒā§āϰāĻŖā§āĻĻāĻŋāϤ:
- āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āĻŽāϤ⧠env vars āĻĻāĻŋāϝāĻŧā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻļā§āϰ⧠āĻāϰā§āύ (āĻāĻŋāύā§āϤ⧠āĻā§āϏā§āĻ āϏāĻŋāĻā§āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ)
- āĻāĻāĻāĻŋ āĻšā§āϞāĻĨ āĻā§āĻ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ:
/health200 āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§) - āĻāĻ āĻŦāĻž āĻĻā§āĻāĻāĻŋ āĻā§āϰāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āĻāϞ āĻāϰ⧠āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻā§āĻĄ āĻāĻŦāĻ āϰā§āϏāĻĒāύā§āϏ āĻļā§āĻĒ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ
- PostgreSQL (āĻāĻŦāĻ íėā§ Redis) āĻĒāϰā§āϝāύā§āϤ āĻĒā§āĻāĻāĻžāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŋāύāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ
API āĻāύāĻā§āϰāĻžāĻā§āĻ āĻā§āĻā§āϰ āĻāύā§āϝ, āĻāĻŽāύ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻāĻā§āϞā§āϰ āĻāĻĒāϰ āĻĢā§āĻāĻžāϏ āĻāϰā§āύ āĻā§āĻā§ āĻā§āϞ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āώāϤāĻŋ āĻšāĻŦā§āĨ¤ āĻĒā§āϰ⧠āĻāύā§āĻĄ-āĻā§-āĻāύā§āĻĄ āϏā§āϝā§āĻ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤ āĻāĻŋāĻā§ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ/āϰā§āϏāĻĒāύā§āϏ āϏāϤā§āϝāĻŋāĻ āϝāĻĨā§āώā§āĻ: āĻŦāĻžāϧā§āϝāϤāĻžāĻŽā§āϞāĻ āĻĢāĻŋāϞā§āĻĄ āĻšāϞ⧠400, auth āύāĻž āĻĨāĻžāĻāϞ⧠401, āĻāĻŦāĻ āĻšā§āϝāĻžāĻĒāĻŋ-āĻĒāĻžāĻĨ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ 200 āϏāĻš āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ JSON āĻāĻŋ āĻĻā§āϝāĻŧāĨ¤
āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āϏā§āĻāĻā§āϞā§āĻā§ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāĻžāϞāĻžāύā§āϰ āĻŽāϤ⧠āĻĻā§āϰā§āϤ āϰāĻžāĻāϤā§, āϏā§āĻā§āĻĒ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āϞāĻ āĻāύāĻā§āϰā§āϞ āĻāϰā§āύāĨ¤ āĻāĻ āĻĄā§āĻāĻžāĻŦā§āϏ, āĻāĻāĻāĻŋ āĻā§āĻ āĻĄāĻžāĻāĻžāϏā§āĻ āĻĒāĻāύā§āĻĻ āĻāϰā§āύāĨ¤ āĻāϝāĻŧā§āĻāĻāĻŋ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻāĻ āĻāĻžāϞāĻžāύāĨ¤ āĻāĻ ā§āϰ āĻāĻžāĻāĻŽāĻāĻāĻ āĻĻāĻŋāύ āϝāĻžāϤ⧠āĻāĻāĻā§ āĻĨāĻžāĻāĻž āĻŦā§āĻ āĻāϝāĻŧā§āĻ āĻŽāĻŋāύāĻŋāĻ āύāϝāĻŧ, āĻāϝāĻŧā§āĻ āϏā§āĻā§āύā§āĻĄā§ āĻĢā§āĻāϞ āĻšāϝāĻŧāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āĻāĻ āĻā§āĻāĻā§āϞā§āϰ āĻāĻāύ āĻŦāĻžāĻĄāĻŧā§: āϤāĻžāϰāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āϏāĻžāϰā§āĻāĻŋāϏāĻāĻŋ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāϝāĻŧā§āĻŦ āĻŦāĻž āĻŽā§āĻŦāĻžāĻāϞ āĻ ā§āϝāĻžāĻĒ āϝ⧠API āĻāĻļāĻž āĻāϰā§, āϤāĻž āĻŦāĻāĻžāϝāĻŧ āĻĨāĻžāĻā§āĨ¤
āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ: āύāĻŋāϰāĻžāĻĒāĻĻ āĻ āϰā§āĻĄāĻžāϰāĻŋāĻ, āĻā§āĻ āĻāĻŦāĻ āϰā§āϞāĻŦā§āϝāĻžāĻ āĻŦāĻžāϏā§āϤāĻŦāϤāĻž
āĻļā§āϰā§āϤ⧠āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻā§āĻĨāĻžāϝāĻŧ āĻāϞāĻŦā§āĨ¤ CI-āϤ⧠āϤāĻžāĻĻā§āϰ āĻāĻžāϞāĻžāύ⧠āϤā§āϰā§āĻāĻŋ āϧāϰāĻžāϰ āĻāύā§āϝ āĻāĻžāϞ, āĻāĻŋāύā§āϤ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ CI-āĻā§ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āϏā§āĻĒāϰā§āĻļ āĻāϰāĻž āĻāĻāĻŋāϤ āύāϝāĻŧāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĻāϞ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āϏāĻŽāϝāĻŧ āĻāĻžāϞāĻžāϝāĻŧ (āĻāĻāĻāĻŋ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ āϧāĻžāĻĒ) āĻ āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž âmigrateâ āĻāĻŦ āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāϞāĻžāϝāĻŧ āϝāĻž āύāϤā§āύ āĻāĻžāϰā§āϏāύ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻžāϰ āĻāĻā§ āĻļā§āώ āĻšāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āύāĻŋāϝāĻŧāĻŽ: CI-āϤ⧠āĻŦāĻŋāϞā§āĻĄ āĻ āĻā§āϏā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϝāϤāĻāĻž āϏāĻŽā§āĻāĻŦ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻāϞāĻžāϰ āĻ āĻŦāϏā§āĻĨāĻžāϝāĻŧ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāĻžāϞāĻžāύ, āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āϰā§āĻĄā§āύāĻļāĻŋāϝāĻŧāĻžāϞ āĻāĻŦāĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ-āϏāĻĻā§āĻļ āϞāĻŋāĻŽāĻŋāĻ āĻĻāĻŋāϝāĻŧā§āĨ¤ Kubernetes-āĻ āĻāĻāĻž āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻāĻāĻāĻŋ one-off Job āĻšāϝāĻŧāĨ¤ VMs-āĻ āĻāĻāĻž āϰāĻŋāϞāĻŋāĻ āϧāĻžāĻĒā§ āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻž āĻāĻŽāĻžāύā§āĻĄ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻ āϰā§āĻĄāĻžāϰāĻŋāĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻžāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āύāĨ¤ āĻāĻžāĻāĻŽāϏā§āĻāĻžāĻŽā§āĻĒā§āĻĄ āĻĢāĻžāĻāϞ (āĻ āĻĨāĻŦāĻž āϏāĻŋāĻā§āϝāĻŧā§āύāĻļāĻŋāϝāĻŧāĻžāϞ āύāĻžāĻŽā§āĻŦāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ âāĻ āĻŋāĻ āĻā§āϰāĻŽā§, āĻāĻāĻŦāĻžāϰāĻ āĻĒā§āϰāϝāĻŧā§āĻâ āĻāύāĻĢā§āϰā§āϏ āĻāϰā§āύāĨ¤ āϝā§āĻāĻžāύ⧠āϏāĻŽā§āĻāĻŦ āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§āϞ⧠idempotent āϰāĻžāĻā§āύ āϝāĻžāϤ⧠retry āĻāϰāϞ⧠āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āύāĻž āϤā§āϰāĻŋ āĻšāϝāĻŧ āĻŦāĻž āĻŽāĻžāĻāĻĒāĻĨā§ āĻā§āϰā§āϝāĻžāĻļ āύāĻž āĻāϰā§āĨ¤
āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āϏā§āĻā§āϰā§āϝāĻžāĻā§āĻāĻŋ āϏāĻŋāĻŽā§āĻĒāϞ āϰāĻžāĻā§āύ:
- āĻĒā§āϰāĻĨāĻŽā§ āĻ ā§āϝāĻžāĻĄāĻŋāĻāĻŋāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĒāĻāύā§āĻĻ āĻāϰā§āύ (āύāϤā§āύ āĻā§āĻŦāĻŋāϞ/āĻāϞāĻžāĻŽ, nullable āĻāϞāĻžāĻŽ, āύāϤā§āύ āĻāύāĻĄā§āĻā§āϏ)
- āĻāĻāĻāĻŋ āϰāĻŋāϞāĻŋāĻā§ āĻā§āĻĄ āĻāĻŽāύāĻāĻžāĻŦā§ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύ āϝ⧠āϤāĻž āĻĒā§āϰāĻžāύ⧠āĻāĻŦāĻ āύāϤā§āύ āϏā§āĻāĻŋāĻŽāĻž āĻāĻāϝāĻŧ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§
- āϤāĻžāϰāĻĒāϰāĻ āĻāύāϏā§āĻā§āϰā§āĻāύā§āĻ āϰāĻŋāĻŽā§āĻ āĻŦāĻž āĻāĻžāĻāĻā§āύ āĻāϰā§āύ (āĻāϞāĻžāĻŽ āĻĄā§āϰāĻĒ āĻŦāĻž NOT NULL āĻāϰāĻž)
- āĻĻā§āϰā§āĻ āĻ āĻĒāĻžāϰā§āĻļāύāĻā§āϞ⧠āϏā§āĻĢ āĻāϰā§āύ (āϝā§āĻŽāύ, āϏāĻŽāϰā§āĻĨāĻŋāϤ āĻšāϞ⧠āĻāύāĻĄā§āĻā§āϏ āĻāύāĻāĻžāϰā§āύā§āĻāϞāĻŋ āϤā§āϰāĻŋ āĻāϰāĻž)
āĻāĻŋāĻā§ āĻāĻžāϞāĻžāύā§āϰ āĻāĻā§ āĻāĻāĻāĻŋ āϏā§āĻĢāĻāĻŋ āĻā§āĻ āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϞāĻ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻžāϤ⧠āĻāĻāĻŦāĻžāϰ⧠āĻāĻāĻāĻŋāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāϞā§, āĻĒā§āϞāĻžāϏ āĻāĻŽāύ āĻāĻāĻāĻŋ āύā§āϤāĻŋ āϝ⧠âāĻŦāĻŋāĻĒāĻā§āĻāύāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻ
āύā§āĻŽā§āĻĻāύ āĻāĻžāĻĄāĻŧāĻž āύā§āĻāĨ¤â āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ⧠DROP TABLE āĻŦāĻž DROP COLUMN āĻĨāĻžāĻā§ āϤāĻžāĻšāϞ⧠āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻĢā§āϞ āĻāϰā§āύāĨ¤
āϰā§āϞāĻŦā§āϝāĻžāĻ āĻāĻ āĻŋāύ āĻŦāĻžāϏā§āϤāĻŦāϤāĻž: āĻ āύā§āĻ āϏā§āĻāĻŋāĻŽāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϞā§āĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻžāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽ āĻĄā§āϰāĻĒ āĻāϰā§āύ, āĻĄā§āĻāĻž āĻĢāĻŋāϰ⧠āĻāύāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻžāĨ¤ āϰā§āϞāĻŦā§āϝāĻžāĻ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻĢāϰāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĢāĻŋāĻā§āϏā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻāϰā§āύ: āĻĄāĻžāĻāύ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻļā§āϧ⧠āϤāĻāύāĻ āϰāĻžāĻā§āύ āϝāĻāύ āύāĻŋāϰāĻžāĻĒāĻĻ, āĻ āύā§āϝāĻĨāĻžāϝāĻŧ āĻŦā§āϝāĻžāĻāĻāĻĒ āĻāĻŦāĻ āĻĢāϰāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāϰāϏāĻž āĻāϰā§āύāĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύā§āϰ āϏāĻā§āĻā§ āĻāĻāĻāĻŋ āϰāĻŋāĻāĻāĻžāϰāĻŋ āĻĒā§āϞā§āϝāĻžāύ āĻā§āĻāĻžāύ: āĻŽāĻžāĻāĻĒāĻĨā§ āĻĢā§āϞ āĻšāϞ⧠āĻā§ āĻāϰāĻŦā§āύ, āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒ āϰā§āϞāĻŦā§āϝāĻžāĻ āĻāϰāϤ⧠āĻšāϞ⧠āĻā§ āĻšāĻŦā§āĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§ āĻāĻĒāύāĻžāϰ āϰāĻŋāϞāĻŋāĻ āĻāύāĻā§āϰā§āϝāĻžāĻā§āĻā§āϰ āĻ āĻāĻļ āĻšāĻŋāϏā§āĻŦā§ āĻĻā§āĻā§āύ āϝāĻžāϤ⧠āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻā§āĻĄ āĻāĻŦāĻ āϏā§āĻāĻŋāĻŽāĻž āϏāĻŋāĻā§āĻā§ āĻĨāĻžāĻā§āĨ¤
āĻĒā§āϝāĻžāĻā§āĻāĻŋāĻ āĻ āĻāύāĻĢāĻŋāĻ: āĻāĻĒāύāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŽāύ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ
āĻĒāĻžāĻāĻĒāϞāĻžāĻāύāĻāĻŋ āϤāĻāύāĻ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻŽāύ⧠āĻšāϝāĻŧ āϝāĻāύ āĻāĻĒāύāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύ āϏā§āĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻĒāύāĻŋ āĻā§āϏā§āĻ āĻāϰāĻž āĻāĻāĻ āĻāĻŋāύāĻŋāϏ āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻĒā§āϝāĻžāĻā§āĻāĻŋāĻ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻā§ āύā§āĻŽā§ āĻāϏā§āĨ¤ āĻŦāĻŋāϞā§āĻĄ āĻāĻāĻāĻĒā§āĻāĻā§ āϏā§āϞāĻĄ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ āĻāĻŦāĻ āϏāĻŦ āĻĒāϰāĻŋāĻŦā§āĻļāĻāϤ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻŦāĻžāĻāύāĻžāϰāĻŋāϰ āĻŦāĻžāĻāϰ⧠āϰāĻžāĻā§āύāĨ¤
āĻĒā§āϝāĻžāĻā§āĻāĻŋāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĻā§āĻā§ āĻĒāĻĨā§ āϝāĻžāϝāĻŧāĨ¤ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻŽā§āĻ āĻĄāĻŋāĻĢāϞā§āĻ āϝāĻāύ āĻāĻĒāύāĻŋ Kubernetes-āĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύ, āĻāĻžāϰāĻŖ āĻāĻāĻŋ OS āϞā§āϝāĻŧāĻžāϰ āĻĒāĻŋāύ āĻāϰ⧠āĻāĻŦāĻ āϰā§āϞāĻāĻāĻ āĻāύāϏāĻŋāϏā§āĻā§āύā§āĻ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ VM āϞāĻžāĻā§, VM āĻŦāĻžāύā§āĻĄā§āϞāĻ āĻŦāĻŋāĻļā§āĻŦāĻžāϏāϝā§āĻā§āϝ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻĻāĻŋ āϤāĻž āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĒā§āϞāĻžāϏ āϰāĻžāύāĻāĻžāĻāĻŽā§ āĻĻāϰāĻāĻžāϰāĻŋ āĻā§āĻ āĻĢāĻžāĻāϞāĻā§āϞ⧠(CA certs, āĻā§āĻŽāĻĒā§āϞā§āĻ, āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻ ā§āϝāĻžāϏā§āĻ) āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻāĻāĻāĻžāĻŦā§ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāύāĻĢāĻŋāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋāϰ āĻāĻŋāϤāϰ⧠āύāĻž āϰāĻžāĻā§āύāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏā§āĻāĻŋāĻāϏā§āϰ āĻāύā§āϝ environment variables āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (āĻĒā§āϰā§āĻ, DB host, āĻĢāĻŋāĻāĻžāϰ āĻĢā§āϞā§āϝāĻžāĻ)āĨ¤ āĻāύāĻĢāĻŋāĻ āĻĢāĻžāĻāϞ āϤāĻāύāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻāύ āĻŽāĻžāύāĻā§āϞ⧠āĻŦāĻĄāĻŧ āĻŦāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻšāϝāĻŧ, āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻĒāϰāĻŋāĻŦā§āĻļāĻāĻŋāϤā§āϤāĻŋāĻ āϰāĻžāĻā§āύāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāύāĻĢāĻŋāĻ āϏāĻžāϰā§āĻāĻŋāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ: āϞāĻāĻĄ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ, āĻ āĻĄāĻŋāĻ āϞāĻ, āĻāĻŦāĻ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻĢāϞāĻŦā§āϝāĻžāĻ āĻĒā§āϞā§āϝāĻžāύāĨ¤
āϏāĻŋāĻā§āϰā§āĻ āĻšāϞ⧠āϞāĻžāĻāύ āĻāĻĒāύāĻŋ āĻā§āϰāϏ āĻāϰāĻŦā§āύ āύāĻžāĨ¤ āϏā§āĻā§āϞ⧠āϰāĻŋāĻĒā§āϤā§, āĻāĻŽā§āĻā§ āĻŦāĻž CI āϞāĻā§ āϝāĻžāĻŦā§ āύāĻžāĨ¤ āϏā§āĻāĻžāϰā§āĻāĻāĻĒā§ āĻāĻžāύā§āĻāĻļāύ āϏā§āĻā§āϰāĻŋāĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰāĻž āĻāĻĄāĻŧāĻžāύāĨ¤ CI āϏāĻŋāĻā§āϰā§āĻ āϏā§āĻā§āϰ⧠āϏāĻŋāĻā§āϰā§āĻ āϰāĻžāĻā§āύ āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāĻžāĻāĻŽā§ āĻāύāĻā§āĻā§āĻ āĻāϰā§āύāĨ¤
āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻā§āϰā§āϏā§āĻŦāϞ āĻāϰāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦāĻŋāϞā§āĻĄā§ āĻāĻāĻĄā§āύā§āĻāĻŋāĻāĻŋ āĻāĻŽāĻŦā§āĻĄ āĻāϰā§āύ: āĻāĻŽāĻŋāĻ SHA āϏāĻš āĻā§āϝāĻžāĻ āĻāϰā§āύ, āĻŦāĻŋāϞā§āĻĄ āĻŽā§āĻāĻžāĻĄāĻžāĻāĻž (āĻāĻžāϰā§āϏāύ, āĻāĻŽāĻŋāĻ, āĻŦāĻŋāϞā§āĻĄ āĻāĻžāĻāĻŽ) āĻāĻāĻāĻŋ info endpoint-āĻ āϰāĻžāĻā§āύ, āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ āϞāĻā§ āĻāϰā§āĻāĻžāĻāĻ āĻāϰā§āύāĨ¤ āĻāĻ āĻāĻŽāĻžāύā§āĻĄ āĻŦāĻž āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻĨā§āĻā§ âāĻāĻŋ āĻāϞāĻā§â āĻāĻŦāĻžāĻŦ āĻĒāĻžāĻāϝāĻŧāĻž āϏāĻšāĻ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āϤāĻžāĻšāϞ⧠āĻāĻ āĻĄāĻŋāϏāĻŋāĻĒā§āϞāĻŋāύ āĻāϰāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ: āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āϤāĻāύāĻ āύāĻŋāϰāĻžāĻĒāĻĻ āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āύāĻžāĻŽāĻāϰāĻŖ āĻ āĻāύāĻĢāĻŋāĻ āύāĻŋāϝāĻŧāĻŽ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāϞāĻŋāĻāĻā§ āĻĒā§āύāϰā§ā§āĻĒāĻžāĻĻāύāϝā§āĻā§āϝ āĻāϰā§āĨ¤
Kubernetes āĻŦāĻž VMs-āĻ āĻāĻļā§āĻāϰā§āϝ āĻāĻžāĻĄāĻŧāĻž āĻĄāĻŋāĻĒā§āϞāϝāĻŧ
āĻ āϧāĻŋāĻāĻžāĻāĻļ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻŦā§āϝāϰā§āĻĨāϤāĻž âāĻāĻžāϰāĻžāĻĒ āĻā§āĻĄâ āύāĻž; āĻāĻā§āϞ⧠āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ: āĻāĻŋāύā§āύ āĻāύāĻĢāĻŋāĻ, āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āϏāĻŋāĻā§āϰā§āĻ, āĻŦāĻž āĻāĻŽāύ āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏ āϝāĻž āϏā§āĻāĻžāϰā§āĻ āĻšāϝāĻŧ āĻāĻŋāύā§āϤ⧠āĻāϏāϞ⧠āϰā§āĻĄāĻŋ āύāϝāĻŧāĨ¤ āϞāĻā§āώā§āϝ āϏāϰāϞ: āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āϏāĻŦ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻž, āĻāĻŦāĻ āĻā§āĻŦāϞ āĻāύāĻĢāĻŋāĻ āĻŦāĻĻāϞāĻžāύā§āĨ¤
Kubernetes: āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻā§ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āϰā§āϞāĻāĻāĻ āĻšāĻŋāϏā§āĻŦā§ āĻĻā§āĻā§āύ
Kubernetes-āĻ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āϰā§āϞāĻāĻāĻ āϞāĻā§āώā§āϝ āĻāϰā§āύāĨ¤ āϰā§āϞāĻŋāĻ āĻāĻĒāĻĄā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠āϧā§āϰ⧠āϧā§āϰ⧠āĻĒāĻĄ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϝāĻŧ, āĻāĻŦāĻ readiness āĻ liveness āĻā§āĻ āϝā§āĻ āĻāϰā§āύ āϝāĻžāϤ⧠āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻžāύ⧠āĻāĻāύ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāύ āĻāĻāĻā§ āĻā§āϞ⧠āĻāύāĻā§āĻāύāĻžāϰ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ resource requests āĻ limits āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖâāĻāĻāĻāĻŋ Go āϏāĻžāϰā§āĻāĻŋāϏ āϝāĻž āĻŦāĻĄāĻŧ CI āϰāĻžāύāĻžāϰ⧠āĻāĻžāĻ āĻāϰā§, āĻāĻāĻāĻŋ āĻā§āĻ āύā§āĻĄā§ OOM-killed āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāύāĻĢāĻŋāĻ āĻ āϏāĻŋāĻā§āϰā§āĻ āĻāĻŽā§āĻā§āϰ āĻŦāĻžāĻāϰ⧠āϰāĻžāĻā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻŽāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻŦāĻžāύāĻžāύ, āϤāĻžāϰāĻĒāϰ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāĻžāĻāĻŽā§ āĻĒāϰāĻŋāĻŦā§āĻļ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻŋāĻ āĻāύāĻā§āĻā§āĻ āĻāϰā§āύ (ConfigMaps, Secrets, āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻžāϰ āϏāĻŋāĻā§āϰā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ)āĨ¤ āĻāĻāĻžāĻŦā§ āϏā§āĻā§āĻāĻŋāĻ āĻ āĻĒā§āϰā§āĻĄ āĻāĻāĻ āĻŦāĻŋāĻ āĻāĻžāϞāĻžāϝāĻŧāĨ¤
VMs: systemd āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻ āύā§āĻ āĻāĻŋāĻā§ āĻĻā§āϝāĻŧ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŽā§āĻļāĻŋāύ⧠āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύ, systemd āĻāĻĒāύāĻžāϰ "āĻŽāĻŋāύāĻŋ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻāϰ" āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻāύāĻŋāĻ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§āύ āϏā§āĻĒāώā§āĻ āĻāϝāĻŧāĻžāϰā§āĻāĻŋāĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ, environment file, āĻāĻŦāĻ restart policy āϏāĻšāĨ¤ āϞāĻāĻā§āϞ⧠predictable āϰāĻžāĻā§āύ stdout/stderr-āĻā§ āĻāĻĒāύāĻžāϰ āϞāĻ āĻāĻžāϞā§āĻā§āĻāϰ⧠āĻŦāĻž journald-āĻ āĻĒāĻžāĻ āĻŋāϝāĻŧā§, āϝāĻžāϤ⧠incidents SSH āϏā§āĻā§āϝāĻžāĻā§āĻā§āĻāĻžāϰ āĻšāĻžāύā§āĻā§ āĻĒāϰāĻŋāĻŖāϤ āύāĻž āĻšāϝāĻŧāĨ¤
āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāĻžāĻĄāĻŧāĻžāĻ āύāĻŋāϰāĻžāĻĒāĻĻ āϰā§āϞāĻāĻāĻ āĻāϰāĻžāĻ āϏāĻŽā§āĻāĻŦāĨ¤ āĻāĻāĻāĻŋ āϏāĻšāĻ blue/green āϏā§āĻāĻāĻĒ āĻāĻžāĻ āĻāϰā§: āĻĻā§āĻāĻāĻŋ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ (āĻ āĻĨāĻŦāĻž āĻĻā§āĻāĻŋ VM) āϰāĻžāĻā§āύ, āϞā§āĻĄ āĻŦā§āϝāĻžāϞā§āύā§āϏāĻžāϰ āϏā§āĻāĻ āĻāϰā§āύ, āĻāĻŦāĻ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϏāĻāϏā§āĻāϰāĻŖ āĻĻā§āϰā§āϤ āϰā§āϞāĻŦā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤ āϰāĻžāĻā§āύāĨ¤ āĻā§āϝāĻžāύāĻžāϰāĻŋ āĻ āύā§āϰā§āĻĒ: āĻĒā§āϰāĻĨāĻŽā§ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖāĻā§ āĻā§āĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻĒāĻžāĻ āĻžāύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻāĻŽāĻŋāĻ āĻāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ "āϏāĻŽā§āĻĒāύā§āύ" āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰāĻžāϰ āĻāĻā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻāĻ āĻĒā§āϏā§āĻ-āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āϏā§āĻŽā§āĻ āĻā§āĻ āĻāĻžāϞāĻžāύ:
- āĻšā§āϞāĻĨ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ OK āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻā§ āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋāĻā§āϞ⧠āĻĒā§āĻāĻāĻžāϝāĻŧ
- āĻāĻāĻāĻŋ āĻā§āĻ āĻŦāĻžāϏā§āϤāĻŦ āĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāϞāĻžāύ (āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻāĻāĻŋ āĻā§āϏā§āĻ āϰā§āĻāϰā§āĻĄ āϤā§āϰāĻŋ āĻ āĻĒāĻĄāĻŧāĻž)
- āϏāĻžāϰā§āĻāĻŋāϏā§āϰ version/build ID āĻāĻŽāĻŋāĻā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāĻā§
- āϝāĻĻāĻŋ āĻā§āĻ āĻĢā§āϞ āĻāϰā§, āϰā§āϞ āĻŦā§āϝāĻžāĻ āĻāϰā§āύ āĻāĻŦāĻ āĻ ā§āϝāĻžāϞāĻžāϰā§āĻ āĻĒāĻžāĻ āĻžāύ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āĻāĻ āĻ ā§āϝāĻžāĻĒā§āϰā§āĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĨāĻžāĻā§: āĻāĻāĻŦāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āύ, āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύ, āĻāĻŦāĻ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāύāĻĢāĻŋāĻāĻ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻĄāĻŋāĻāĻā§āĻ āĻāϰā§āĻâāĻ ā§āϝāĻžāĻĄ-āĻšāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āύāϝāĻŧāĨ¤
āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϞāĻā§āϞ⧠āϝāĻž āĻĒāĻžāĻāĻĒāϞāĻžāĻāύāĻā§ āĻ āĻŦāĻŋāĻļā§āĻŦāĻžāϏā§āϝ āĻāϰ⧠āϤā§āϞā§
āĻ āϧāĻŋāĻāĻžāĻāĻļ āĻāĻžāĻāĻž āϰāĻŋāϞāĻŋāĻ "āĻāĻžāϰāĻžāĻĒ āĻā§āĻĄ"-āĻāϰ āĻāĻžāϰāĻŖā§ āύāϝāĻŧāĨ¤ āĻāĻā§āϞ⧠āĻāĻā§ āϝāĻāύ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻĨā§āĻā§ āϏāĻŽāϝāĻŧ āĻāĻŋāύā§āύ āĻāĻāϰāĻŖ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ CI/CD-āĻā§ āĻļāĻžāύā§āϤ āĻ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻāϰāϤ⧠āĻāĻžāύ, āύāĻŋāĻā§āϰ āĻĒā§āϝāĻžāĻāĻžāϰā§āύāĻā§āϞā§āϰ āĻĻāĻŋāĻā§ āϞāĻā§āώā§āϝ āϰāĻžāĻā§āύāĨ¤
āĻāĻāϰāĻŖāĻāϤ āĻā§āϞ āϝāĻž āĻāĻāĻŽāĻāĻž āϤā§āϰā§āĻāĻŋ āĻĻā§āϝāĻŧ
āĻĒā§āϰāϤāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āύāĻŋāĻā§ āĻĨā§āĻā§āĻ āĻāĻžāϞāĻžāύā§āϰ āĻ āĻā§āϝāĻžāϏ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏāĻŋāĻ āϏāĻŽāϏā§āϝāĻžāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāϞ āϞāĻ āĻāϰāĻž āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāĻāĻāĻŋ āĻŦā§āϝāϏā§āϤ āϏāĻžāϰā§āĻāĻŋāϏāĻā§ āύāĻŋāĻā§ āύāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āĻāύā§āϝ āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§ āĻāĻā§āϏāĻĒā§āϞāĻŋāϏāĻŋāĻ āϏā§āĻā§āĻĒā§ āϰāĻžāĻā§āύ, āĻ āύā§āĻŽā§āĻĻāύ āĻĒā§āϰāϝāĻŧā§āĻāύ āϰāĻžāĻā§āύ, āĻāĻŦāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§ āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞāĻžāύ⧠āϝāĻžāĻŦā§ āĻāĻŽāύāĻāĻžāĻŦā§ āĻŦāĻžāύāĻžāύāĨ¤
latest āĻā§āϝāĻžāĻ āĻŦāĻž āĻāύāĻĒāĻŋāύā§āĻĄ āĻŦā§āϏ āĻāĻŽā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĻ āϏāĻšāĻā§ āϰāĻšāϏā§āϝāĻŽāϝāĻŧ āϤā§āϰā§āĻāĻŋ āϏā§āώā§āĻāĻŋ āĻāϰā§āĨ¤ Docker āĻāĻŽā§āĻ āĻ Go āĻāĻžāϰā§āϏāύ āĻĒāĻŋāύ āĻāϰā§āύ āϝāĻžāϤ⧠āĻāĻĒāύāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻĄā§āϰāĻŋāĻĢāĻ āύāĻž āĻāϰā§āĨ¤
āϏāĻŽāϝāĻŧāĻāĻŋāϤā§āϤāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž âāĻā§āĻŽā§āĻĒā§āϰāĻžāϰāĻŋâ āĻšāϝāĻŧā§ āϏā§āĻĨāĻžāϝāĻŧā§ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āĻāĻŦāĻ āĻāĻāĻŋāĻ āĻā§āϏā§āĻ āĻĄā§āĻāĻž āϏā§āĻā§āĻāĻŋāĻ-āĻ āϞāĻŋāĻ āĻšāĻāϝāĻŧāĻžāϰ āĻ āϏā§āĻā§āĻāĻŋāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻĒā§āϰā§āĻĄā§ āĻāĻžāϞāĻžāύā§āϰ āϰāĻžāϏā§āϤāĻžāĨ¤ āĻĒāϰāĻŋāĻŦā§āĻļ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ (āĻ āĻā§āϰā§āĻĄā§āύāĻļāĻŋāϝāĻŧāĻžāϞ) āϰāĻžāĻā§āύâāϏā§āĻāĻŋāĻŽāĻž āĻāĻāĻ āĻšāϞā§āĻāĨ¤
āĻšā§āϞāĻĨ āĻ āϰā§āĻĄāĻŋāύā§āϏ āĻā§āĻ āύāĻž āĻĨāĻžāĻāϞ⧠āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ "āϏāĻĢāϞ" āĻŦāϞ⧠āϰā§āĻāϰā§āĻĄ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻāύ āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻžāĻāĻž āĻĨāĻžāĻā§, āĻāĻŦāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻ āϤāĻŋ āĻĻā§āϰā§āϤ āύāϤā§āύ āĻāĻžāϰā§āϏāύ⧠āϰā§āĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āĻŦāĻžāϏā§āϤāĻŦ āĻāĻāϰāĻŖ āĻŽā§āϞāĻžāύ⧠āĻā§āĻ āϝā§āĻ āĻāϰā§āύ: āĻ ā§āϝāĻžāĻĒ āĻāĻŋ āĻļā§āϰ⧠āĻšāϤ⧠āĻĒāĻžāϰāĻā§, āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āĻāĻžāύā§āĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āϏāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻā§āĨ¤
āĻļā§āώā§, āϏāĻŋāĻā§āϰā§āĻ, āĻāύāĻĢāĻŋāĻ, āĻāĻŦāĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏā§āϰ āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž āϰāĻŋāϞāĻŋāĻāĻā§āϞā§āĻā§ āĻ āύā§āĻŽāĻžāύāĻāĻŋāϤā§āϤāĻŋāĻ āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻžāĻāĻā§ āĻ āĻŦāĻļā§āϝāĻ āϏāĻŋāĻā§āϰā§āĻ āϤā§āϰāĻŋ, āϰā§āĻā§āĻļāύ āĻāĻŦāĻ āĻāύāĻā§āĻāĻļāύā§āϰ āĻŽāĻžāϞāĻŋāĻ āĻšāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻŦā§āϝāϰā§āĻĨāϤāĻž: āĻāĻāĻāĻŋ āĻĻāϞ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŽāĻžāϰā§āĻ āĻāϰā§, āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĒā§āϰāĻĨāĻŽā§ āĻāϞā§āĨ¤ āϏā§āĻā§āĻāĻŋāĻ-āĻ āϤāĻž āĻā§āĻ āĻĄā§āĻāĻžāϰ āĻāĻžāϰāĻŖā§ āϏāĻŽā§āĻĒāύā§āύ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āϏāĻŽāϝāĻŧ āĻ āϤāĻŋāĻā§āϰāĻŽ āĻāϰ⧠āĻāĻžāĻāĻŽāĻāĻāĻ āĻĻā§āϝāĻŧāĨ¤ āĻĒāĻŋāύ āĻāϰāĻž āĻāĻŽā§āĻ, āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻāϞāĻžāĻĻāĻž āϰāĻžāĻāĻž, āĻāĻŦāĻ āĻā§āĻā§āĻĄ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĨāĻžāĻāϞ⧠āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āύāĻŋāϰāĻžāĻĒāĻĻā§ āϰā§āϧ āĻĒā§āϤāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: AppMaster), āĻāĻ āύāĻŋāϝāĻŧāĻŽāĻā§āϞ⧠āĻāϰāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻžāϰāĻŖ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻ āύā§āĻ āĻĢāĻžāĻāϞ āĻāĻāϏāĻžāĻĨā§ āϏā§āĻĒāϰā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āĻāύāĻĒā§āĻ āĻ āĻāĻā§āϏāĻĒā§āϞāĻŋāϏāĻŋāĻ āĻā§āĻ āĻŦāĻĄāĻŧ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞā§āĻā§ āĻā§āĻāĻāĻŋāĻĒā§āϰā§āĻŖ āϰāĻŋāϞāĻŋāĻā§ āĻĒāϰāĻŋāĻŖāϤ āĻšāĻāϝāĻŧāĻž āĻĨā§āĻā§ āϰā§āϧ āĻāϰā§āĨ¤
āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ CI/CD āϏā§āĻāĻāĻĒā§āϰ āĻĻā§āϰā§āϤ āĻā§āĻāϞāĻŋāϏā§āĻ
Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ CI/CD-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻžāĻ-āĻā§āĻ āĻšāĻŋāϏā§āĻŦā§ āύāĻŋāĻā§āϰāĻā§āϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϰāĻļā§āύā§āϰ āϏā§āĻĒāώā§āĻ âāĻšā§āϝāĻžāĻâ āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ, āϰāĻŋāϞāĻŋāĻ āϏāĻšāĻ āĻšāĻŦā§āĨ¤
- āĻ āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻā§āĻĄ āύāϝāĻŧâāĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ-āĻ āϞāĻ āĻāϰā§āύāĨ¤ Go āĻāĻžāϰā§āϏāύ āĻ āĻŦāĻŋāϞā§āĻĄ āĻāύāĻā§āĻāύāĻžāϰ āĻāĻŽā§āĻ āĻĒāĻŋāύ āĻāϰā§āύ, āĻāĻŦāĻ āϞā§āĻāĻžāϞ āĻ CI-āϤ⧠āĻāĻāĻ āϏā§āĻāĻāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
- āĻĒāĻžāĻāĻĒāϞāĻžāĻāύāĻā§ ā§ŠāĻāĻŋ āϏāĻšāĻ āĻāĻŽāĻžāύā§āĻĄā§ āĻāĻžāϞāĻžāύā§āϰ āϝā§āĻā§āϝ āĻāϰā§āύāĨ¤ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§, āĻāĻāĻāĻŋ āĻā§āϏā§āĻ āĻāĻžāϞāĻžāϝāĻŧ, āĻāĻāĻāĻŋ āĻĄā§āĻĒā§āϞāϝāĻŧā§āĻŦāϞ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻā§āĻĒāύā§āύ āĻāϰā§āĨ¤
- āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§āϞā§āĻā§ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āĻĄā§āϰ āĻŽāϤ⧠āĻā§āϰāĻŋāĻ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύā§āϰ āĻāύā§āϝ āϞāĻ āĻĻāĻžāĻŦāĻŋ āĻāϰā§āύ, āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒā§āϰ āĻāύā§āϝ âāϰā§āϞāĻŦā§āϝāĻžāĻâ āĻŽāĻžāύ⧠āĻā§ āϤāĻž āϞāĻŋāĻā§ āϰāĻžāĻā§āύāĨ¤
- āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϝāĻŧ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ āϝā§āĻā§āϞ⧠āĻā§āϰā§āϏ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāĻāĻŦāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āύ, āĻāĻŽāĻŋāĻ SHA āĻĻāĻŋāϝāĻŧā§ āĻā§āϝāĻžāĻ āĻāϰā§āύ, āĻāĻŦāĻ āĻŦāĻŋāϞā§āĻĄ āĻāĻžāĻĄāĻŧāĻž āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻŽāϧā§āϝ āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰā§āĻŽā§āĻ āĻāϰā§āύāĨ¤
- āĻĻā§āϰā§āϤ āĻĢā§āϞ āĻāϰāĻž āĻā§āĻ āϏāĻš āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύāĨ¤ āϰā§āĻĄāĻŋāύā§āϏ/āϞāĻŋāĻāύā§āϏ āĻšā§āϞāĻĨ āĻā§āĻ āϝā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§ āĻāĻāĻāĻŋ āĻā§āĻ āϏā§āĻŽā§āĻ āĻā§āϏā§āĻ āĻāĻžāϞāĻžāύāĨ¤
āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏ āϏā§āĻŽāĻŋāϤ āĻ āĻ āĻĄāĻŋāĻāϝā§āĻā§āϝ āϰāĻžāĻā§āύāĨ¤ CI āĻāĻāĻāĻŋ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ āϏāĻžāϰā§āĻāĻŋāϏ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻŦā§, āϏāĻŋāĻā§āϰā§āĻ āĻā§āύā§āĻĻā§āϰā§āϝāĻŧāĻāĻžāĻŦā§ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āĻšāĻŦā§, āĻāĻŦāĻ āϝā§āĻā§āύ⧠āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻ ā§āϝāĻžāĻāĻļāύ āϏā§āĻĒāώā§āĻ āĻā§āϰā§āĻāϞ āϰāĻžāĻāĻŦā§ (āĻā§, āĻāĻŋ, āĻāĻāύ)āĨ¤
āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻāĻĻāĻžāĻšāϰāĻŖ āĻ āĻāĻ āϏāĻĒā§āϤāĻžāĻšā§ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ
āĻāĻāĻāĻŋ āĻā§āĻ āĻ āĻĒāϏ āĻĻāϞ āĻāĻžāϰ āĻāύ āĻŽāĻŋāϞ⧠āϏāĻĒā§āϤāĻžāĻšā§ āĻāĻāĻŦāĻžāϰ āĻļāĻŋāĻĒ āĻāϰā§āĨ¤ āϤāĻžāϰāĻž āĻĒā§āϰāĻžāϝāĻŧāĻ āϤāĻžāĻĻā§āϰ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻĒā§āϰā§āĻĄāĻžāĻā§āĻ āĻĻāϞ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĨ¤ āϤāĻžāĻĻā§āϰ āϞāĻā§āώā§āϝ āϏāĻšāĻ: āϰāĻžāϤā§āϰ āĻĻāĻŋāĻā§āϰ āĻāĻŽ āĻĢāĻŋāĻā§āϏ āĻāĻŦāĻ āĻāĻŽāύ āϰāĻŋāϞāĻŋāĻ āϝā§āĻā§āϞ⧠āĻāĻžāĻāĻā§ āĻ āĻŦāĻžāĻ āĻāϰ⧠āύāĻžāĨ¤
āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻļā§āĻā§āϰāĻŦāĻžāϰā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ: āϤāĻžāϰāĻž customers-āĻ āĻāĻāĻāĻŋ āύāϤā§āύ āĻĢāĻŋāϞā§āĻĄ āϝā§āĻ āĻāϰ⧠(āϏā§āĻāĻŋāĻŽāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ) āĻāĻŦāĻ āϏā§āĻ āĻĢāĻŋāϞā§āĻĄ āϞā§āĻāĻžāϰ API āĻāĻĒāĻĄā§āĻ āĻāϰ⧠(āĻā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ)āĨ¤ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻā§āϞā§āĻā§ āĻāĻāĻāĻŋ āϰāĻŋāϞāĻŋāĻ āĻšāĻŋāϏā§āĻŦā§ āĻā§āϰāĻŋāĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§, āϏā§āĻ āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻā§ āĻā§āϏā§āĻ āĻāĻžāϞāĻžāϝāĻŧ, āĻāĻŦāĻ āĻĒāϰ⧠āĻŽāĻžāĻāĻā§āϰā§āĻļāύ_apply āĻāϰ⧠āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āĨ¤ āĻāĻāĻžāĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāĻāύāĻ āĻāĻŽāύ āĻā§āĻĄā§āϰ āĻĨā§āĻā§ āĻāĻāĻŋāϝāĻŧā§ āĻĨāĻžāĻāĻŦā§ āύāĻž āϝāĻž āϤāĻž āĻĒā§āϰāϤā§āϝāĻžāĻļāĻž āĻāϰā§, āĻāĻŦāĻ āĻā§āĻĄāĻ āĻāĻāύāĻ āϤāĻžāϰ āĻŽāĻŋāϞāϝā§āĻā§āϤ āϏā§āĻāĻŋāĻŽāĻž āĻāĻžāĻĄāĻŧāĻž āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻšāĻŦā§ āύāĻžāĨ¤
āϝāĻāύ āĻāĻāĻāĻŋ āϏā§āĻāĻŋāĻŽāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĨāĻžāĻā§, āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻāĻāĻŋ āϏā§āĻĢāĻāĻŋ āĻā§āĻ āϝā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻāĻŋ āĻ ā§āϝāĻžāĻĄāĻŋāĻāĻŋāĻ āĻāĻŋ āύāĻž (āϝā§āĻŽāύ nullable āĻāϞāĻžāĻŽ āϝā§āĻ) āĻā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻā§āĻāĻāĻŋāĻĒā§āϰā§āĻŖ āĻāĻžāĻāĻā§āϞ⧠(āĻāϞāĻžāĻŽ āĻĄā§āϰāĻĒ āĻŦāĻž āĻŦāĻĄāĻŧ āĻā§āĻŦāĻŋāϞ āϰāĻŋāĻĒā§āϞā§āϏ) āĻĢā§āϞā§āϝāĻžāĻ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻā§āĻāĻāĻŋāĻĒā§āϰā§āĻŖ āĻšāϝāĻŧ, āϰāĻŋāϞāĻŋāĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāĻā§ āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧāĨ¤ āĻĻāϞ āĻŦāĻž āϤāĻžāĻšāϞ⧠āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§ āύāĻŋāϰāĻžāĻĒāĻĻ āĻāϰ⧠āϞā§āĻā§ āĻŦāĻž āĻāĻāĻāĻŋ āĻĒā§āϞā§āϝāĻžāύā§āĻĄ āĻāĻāύā§āĻĄā§ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāϰā§āĨ¤
āĻā§āϏā§āĻ āĻĢā§āϞ āĻāϰāϞ⧠āĻāĻŋāĻā§āĻ āĻāĻā§āĻŦā§ āύāĻžāĨ¤ āĻāĻāĻ āĻāĻĨāĻž āĻĒā§āϰāĻŋ-āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĢā§āϞ āĻāϰāϞ⧠āĻĒā§āϰāϝā§āĻā§āϝāĨ¤ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻāĻāύāĻ âāĻļā§āϧ⧠āĻāĻ āĻāĻāĻŦāĻžāϰâ āĻŦāϞ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻ ā§āϞāĻŦā§ āύāĻžāĨ¤
āĻ āϧāĻŋāĻāĻžāĻāĻļ āĻĻāϞā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒā§āϰ āϏā§āĻ:
- āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύ (āĻāĻāĻāĻŋ āĻĄā§āĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āϝāĻž āĻāĻĒāύāĻŋ āϏāĻšāĻā§ āϰāĻŋāϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ)
- āĻĒāĻžāĻāĻĒāϞāĻžāĻāύāĻā§ āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻāĻāĻŋ āĻāĻžāϰā§āϏāύā§āĻĄ āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻā§āĻĒāύā§āύ āĻāϰāϤ⧠āĻŦāϞā§āύ
- āĻĄā§āĻā§ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āĻāĻžāϞāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻ āύā§āĻŽā§āĻĻāύ āĻŦāĻžāϧā§āϝāϤ āĻāϰā§āύ
- āĻāϝāĻŧā§āĻ āϏāĻĒā§āϤāĻžāĻš āĻĄā§āĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻšāϞ⧠āϏā§āĻā§āĻāĻŋāĻ āϝā§āĻ āĻāϰā§āύ
- āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āĻā§ āϏāĻŦā§āĻ āĻā§āϏā§āĻ āĻ āϏāĻĢāϞ āϏā§āĻā§āĻāĻŋāĻ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻŦāϞā§āύ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ AppMaster āĻĻāĻŋāϝāĻŧā§ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ, āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻā§āĻļāύāĻā§ āĻāĻāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻā§āĻā§ āϰāĻžāĻā§āύ: regenerate, build, test, migrate āϏā§āĻĢ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻā§, āϤāĻžāϰāĻĒāϰ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύāĨ¤ āĻā§āύāĻžāϰā§āĻā§āĻĄ āϏā§āϰā§āϏāĻā§ āĻ āύā§āϝ āϏā§āϰā§āϏā§āϰ āĻŽāϤ⧠āĻāĻāϰāĻŖ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāϞāĻŋāĻ āĻāĻāĻāĻŋ āĻā§āϝāĻžāĻ āĻāϰāĻž āĻāĻžāϰā§āϏāύ āĻĨā§āĻā§ āĻĒā§āύāϰā§ā§āĻĒāĻžāĻĻāύāϝā§āĻā§āϝ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ, āĻāĻŦāĻ āĻĒā§āϰāϤā§āϝā§āĻāĻŦāĻžāϰ āĻāĻāĻ āϧāĻžāĻĒ āĻ āύā§āϏāϰāĻŖ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
āĻĒā§āϰāĻļā§āύā§āϤā§āϤāϰ
Go āϏāĻāϏā§āĻāϰāĻŖ āĻāĻŦāĻ āĻŦāĻŋāϞā§āĻĄ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻĒāĻŋāύ āĻāϰā§āύ āϝāĻžāϤ⧠āĻāĻāĻ āĻāύāĻĒā§āĻ āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻŦāĻž āĻāĻŽā§āĻ āĻāϤā§āĻĒāύā§āύ āĻāϰā§āĨ¤ āĻāϤ⧠âāĻāĻŽāĻžāϰ āĻŽā§āĻļāĻŋāύ⧠āĻāϞā§â āϧāĻžāĻāĻā§āϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻāĻŽā§ āĻāĻŦāĻ āϤā§āϰā§āĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āϤā§āϰāĻŋ āĻāϰāĻž āϏāĻšāĻ āĻšāϝāĻŧāĨ¤
āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻļāύ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ, āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽāĻĄā§āϞ, āĻāĻŦāĻ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻŦāĻĻāϞ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§âeven āϝāĻĻāĻŋ āĻā§āĻ āĻšāĻžāϤ⧠āĻā§āĻĄ āύāĻž āĻŦāĻĻāϞāĻžāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻ āϏāĻŦ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§ āĻāĻāĻ āĻā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻ āĻžāϝāĻŧ, āϤāĻžāĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻā§āĻāĻāĻŋāĻŽā§āĻā§āϤ āĻĨāĻžāĻā§āĨ¤
āĻāĻāĻŦāĻžāϰ āĻŦāĻŋāϞā§āĻĄ āĻāϰ⧠āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻāĻā§ āĻĄā§āĻ, āϏā§āĻā§āĻ āĻāĻŦāĻ āĻĒā§āϰā§āĻĄā§ āĻĒā§āϰā§āĻŽā§āĻ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠rebuild āĻāϰāϞ⧠āĻāĻĒāύāĻŋ āĻāĻŽāύ āĻāĻŋāĻā§ āĻļāĻŋāĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻž āĻāĻĒāύāĻŋ āĻāĻāύāĻ āĻā§āϏā§āĻ āĻāϰā§āύāύāĻŋ, āĻāĻŽāύāĻāĻŋ āĻāĻāĻ āĻāĻŽāĻŋāĻ āĻĨāĻžāĻāϞā§āĻāĨ¤
āĻĒā§āϰāϤāĻŋ PR/āĻāĻŽāĻŋāĻā§ āĻĻā§āϰā§āϤ āĻā§āĻ āĻāĻžāϞāĻžāύ: āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ, āĻŦā§āϏāĻŋāĻ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āĻ, āĻŦāĻŋāϞā§āĻĄ, āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻāĻāĻāϏāĻš āĻāĻāύāĻŋāĻ āĻā§āϏā§āĻāĨ¤ āĻāĻāĻžāĻā§ āĻāϤ āĻĻā§āϰā§āϤ āϰāĻžāĻā§āύ āϝ⧠āĻŽāĻžāύā§āώ āĻāĻāĻžāĻā§ āĻŦāĻžāĻāĻĒāĻžāϏ āύāĻž āĻāϰā§, āĻāĻŋāύā§āϤ⧠āϤā§āĻŽāύ āĻāĻ ā§āϰāĻ āĻšā§āĻ āϝ⧠āĻāĻžāĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞ⧠āĻĻā§āϰā§āϤ āĻĨāĻžāĻŽāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āϏā§āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻž āϏāĻžāϰā§āĻāĻŋāϏāĻā§ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āĻŽāϤ⧠āĻāύāĻĢāĻŋāĻ āĻĻāĻŋāϝāĻŧā§ āĻŦā§āĻ āĻāϰ⧠āĻāĻŦāĻ PostgreSQL-āĻāϰ āĻŽāϤ⧠āϰāĻŋāϝāĻŧā§āϞ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋāĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻāĻĨāĻž āĻŦāϞā§āĨ¤ āϞāĻā§āώā§āϝ āĻšāĻā§āĻā§ âāĻā§āĻŽā§āĻĒāĻžāĻāϞ āĻšāϞā§āĻ āĻļā§āϰ⧠āĻšāĻŦā§ āύāĻžâ āĻŦāĻž āϏā§āĻĒāώā§āĻ āĻāύāĻā§āϰāĻžāĻā§āĻ āĻŦā§āϰā§āĻāĻā§āϞāĻŋ āϧāϰāĻžāύā§, āĻĒā§āϰ⧠āĻāύā§āĻĄ-āĻā§-āĻāύā§āĻĄ āϏā§āϝā§āĻ āύāĻž āĻāĻžāϞāĻŋāϝāĻŧā§āĨ¤
āĻŽāĻžāĻāĻā§āϰā§āĻļāύāĻā§āϞā§āĻā§ āĻāύā§āĻā§āϰā§āϞāĻĄ āϰāĻŋāϞāĻŋāĻ āϏā§āĻā§āĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻĻā§āĻā§āύ, āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āĻāĻžāϞāĻžāĻŦā§āύ āύāĻžāĨ¤ āϏā§āĻĒāώā§āĻ āϞāĻ āĻĨāĻžāĻāĻž, āĻāĻ-āĻŦāĻžāϰā§āϰ āĻāύā§āϝ āϞāĻ, āĻāĻŦāĻ āĻŦāĻžāϏā§āϤāĻŦ āĻĒā§āϰāϤāĻŋāĻĢāϞāύā§āϰ āĻāύā§āϝ āϏāĻ āĻŋāĻ āĻ āύā§āĻŽā§āĻĻāύ āϰāĻžāĻā§āύâāĻāĻŦāĻ āϰā§āϞāĻŦā§āϝāĻžāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āϏ⧠āĻĨāĻžāĻā§āύ: āĻ āύā§āĻ āϏā§āĻāĻŋāĻŽāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏāĻšāĻā§ āĻāϞā§āĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻžāĨ¤
āϰā§āĻĄāĻŋāύā§āϏ āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠āĻā§āϰāĻžāĻĢāĻŋāĻ āύāϤā§āύ āĻĒāĻĄā§ āϤāĻāύāĻ āϝāĻžāϝāĻŧ āϝāĻāύ āϏāĻžāϰā§āĻāĻŋāϏ āϏāϤā§āϝāĻŋāĻ āϰā§āĻĄāĻŋ; āϞāĻŋāĻāύā§āϏ āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠āĻ āĻŦāϰā§āĻĻā§āϧ āĻāύāĻā§āĻāύāĻžāϰ āϰāĻŋāϏā§āĻāĻžāϰā§āĻ āĻšāϝāĻŧāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻž āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ resource requests/limits āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠CI-āϤ⧠āĻāϞāĻž āϏāĻžāϰā§āĻāĻŋāϏ āĻĒā§āϰā§āĻĄuction-āĻ OOM-kill āύāĻž āĻāĻžāϝāĻŧāĨ¤
āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰ systemd āĻāĻāύāĻŋāĻāĻĢāĻžāĻāϞ āĻāĻŦāĻ āĻāύāϏāĻŋāϏā§āĻā§āύā§āĻ āϰāĻŋāϞāĻŋāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ VM āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻāĨ¤ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻŽāϤā§āĻ āĻāĻāĻ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻŽāĻĄā§āϞ āϰāĻžāĻā§āύ, āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧā§āϰ āĻĒāϰ⧠āĻāĻāĻāĻŋ āĻā§āĻ āϏā§āĻŽā§āĻ āĻā§āĻ āĻāĻžāϞāĻžāύ āϝāĻžāϤ⧠âāϏāĻĢāϞ āϰāĻŋāϏā§āĻāĻžāϰā§āĻâ āĻā§āϤāϰ⧠āĻāĻžāĻāĻžāĻā§āϝāĻŧ āĻĻā§āĻāĻž āύāĻž āĻĻā§āϝāĻŧāĨ¤
āϏāĻŋāĻā§āϰā§āĻāĻā§āϞ⧠āĻāĻāύā§āĻ āϰāĻŋāĻĒā§, āĻŦāĻŋāϞā§āĻĄ āĻāϰā§āĻāĻŋāĻĢā§āϝāĻžāĻā§āĻ āĻŦāĻž CI āϞāĻā§ āϰāĻžāĻāĻŦā§āύ āύāĻžāĨ¤ āĻĄā§āĻĒā§āϞāϝāĻŧ āĻāĻžāĻāĻŽā§ āĻāĻāĻāĻŋ āĻŽā§āϝāĻžāύā§āĻāĻĄ āϏāĻŋāĻā§āϰā§āĻ āϏā§āĻā§āϰ āĻĨā§āĻā§ āĻāύāĻā§āĻā§āĻ āĻāϰā§āύ, āϝāĻžāϰāĻž āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§ āϤāĻžāĻĻā§āϰ āϏā§āĻŽāĻŋāϤ āĻāϰā§āύ, āĻāĻŦāĻ āϰā§āĻā§āĻļāύāĻā§ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻžāĻ āĻŦāĻžāύāĻžāύāĨ¤
āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āύāĻžāϰā§āĻļāύāĻā§ āĻāĻāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻā§āĻā§ āϰāĻžāĻā§āύ: regenerate, build, test, package, āϤāĻžāϰāĻĒāϰ gated āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāĻŦāĻ deployāĨ¤ AppMaster āĻĻāĻŋāϝāĻŧā§ Go āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻā§āύāĻžāϰā§āĻ āĻāϰāϞ⧠āĻāĻ āĻĒā§āϰāĻŦāĻžāĻš āĻāĻĒāύāĻžāĻā§ āĻĻā§āϰā§āϤ āĻāĻŋāύā§āϤ⧠āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤


