рдРрд╕реЗ Dev/Staging/Prod рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдВ рдЬреЛ рдиреЛтАСрдХреЛрдб рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдЪрд▓реЗрдВ
Dev, staging рдФрд░ prod рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрд╕рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗред рд╕рд░рд▓ рдирд┐рдпрдореЛрдВ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдХреИрд╕реЗ рдЕрд▓рдЧ рд░рдЦреЗрдВ рд╕реАрдЦреЗрдВред

рдХреНрдпреЛрдВ рд╡рд╛рддрд╛рд╡рд░рдг рдЕрд▓рдЧ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ (рдФрд░ рдХрдм рдЯреВрдЯрддрд╛ рд╣реИ)
рдЬрдм рд▓реЛрдЧ dev, staging, рдФрд░ prod рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдПрдХ рд╡рд╛рджрд╛ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ: рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЪреАрдЬрд╝реЗрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдЕрд╕рд▓реА рдЧреНрд░рд╛рд╣рдХреЛрдВ, рдЕрд╕рд▓реА рдбрд╛рдЯрд╛, рдпрд╛ рдЕрд╕рд▓реА рдкреИрд╕реЗ рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓реЗред
рдпрд╣ рд╡рд╛рджрд╛ рддрдм рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм dev рдФрд░ production рдХрд┐рд╕реА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬрд╝ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ API рдХреБрдВрдЬрд┐рдпрд╛рдБред рдПрдХ тАЬрдЫреЛрдЯрд╛ рдЯреЗрд╕реНрдЯтАЭ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдк рдЕрднреНрдпрд╛рд╕ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ред
рд╕реАрдзреА рднрд╛рд╖рд╛ рдореЗрдВ:
- Dev рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рддреЗрдЬрд╝реА рд╕реЗ рдмрдирд╛рддреЗ рдФрд░ рдмрджрд▓рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛрдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
- Staging рдПрдХ рд░рд┐рд╣рд░реНрд╕рд▓ рд╕реНрдкреЗрд╕ рд╣реИ рдЬреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд░рд┐рд▓реАрдЬрд╝ рдХреА рдПрдиреНрдб-рдЯреВ-рдПрдиреНрдб рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдПред
- Prod рд╡рд╣ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЕрд╕рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рднрд╛рдЬрди рдЖрдкрдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдмрджрд▓рд╛рд╡ рдХреЛ рд╣рд╛рдИ-рд░рд┐рд╕реНрдХ рдСрдкрд░реЗрд╢рди рдХреА рддрд░рд╣ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдкрдбрд╝рддрд╛ред
рдПрдХ рддреЗрдЬрд╝ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреА рдЧрд▓рддреА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ: рдХреЛрдИ рдирдпрд╛ рдЪреЗрдХрдЖрдЙрдЯ рдлрд╝реНрд▓реЛ рдЯреЗрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрдк рдкреНрд░реЛрдбрдХреНрд╢рди Stripe рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред тАЬрдЯреЗрд╕реНрдЯтАЭ рдЕрд╕рд▓реА рдЪрд╛рд░реНрдЬ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ, рдЕрд╕рд▓реА рд░рд╕реАрджреЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╕рдкреЛрд░реНрдЯ рдХреЛ рд░рд┐рдлрдВрдб рджреЗрдиреЗ рдореЗрдВ рдкреВрд░рд╛ рджреЛрдкрд╣рд░ рд▓рдЧ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛ рдХреЛрдИ dev рдореЗрдВ рдбреЗрдЯрд╛ рдХреНрд▓реАрдирдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рд╛рдЭрд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реА рд╣реЛрддреА рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд░рд┐рдХреЙрд░реНрдб рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛: рдХреЛрдИ рдИрдореЗрд▓ рдлреАрдЪрд░ рд▓рд╛рдЗрд╡ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдЬрд╛рд░реЛрдВ рдЕрд╕рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ тАЬWelcome!тАЭ рд╕рдВрджреЗрд╢ рднреЗрдЬ рджреЗрддрд╛ рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреВрдЯрдиреЗ рддреАрди рд╣реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ: рд╕рд╛рдЭрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ (рдЯреЗрд╕реНрдЯ рдЕрд╕рд▓реА рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ), рд╕рд╛рдЭрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ (рдЯреЗрд╕реНрдЯ рдЕрд╕рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ), рдФрд░ рд╕рд╛рдЭрд╛ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ (рд╡реЗрдмрд╣реБрдХреНрд╕, рдИрдореЗрд▓, SMS, рдФрд░ рдкреЗрдореЗрдВрдЯреНрд╕ рдЕрд╕рд▓реА рд░реВрдк рд╕реЗ рдлрд╛рдпрд░ рд╣реЛрддреЗ рд╣реИрдВ)ред
AppMaster рдЬреИрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЛ рдЖрд╕рд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реБрд░рдХреНрд╖рд╛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рджрд┐рди рд╕реЗ рд╣реА рдбрд╛рдЯрд╛, рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдХреЛ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рд╕рд░рд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЙрдбрд▓ рдЪреБрдиреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдмрдирд╛рдП рд░рдЦ рд╕рдХреЗрдВ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рддреАрди рд╡рд╛рддрд╛рд╡рд░рдг тАФ dev, staging, prod тАФ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░рдЦрддрд╛ рд╣реИ рдмрд┐рдирд╛ рд╕реЗрдЯрдЕрдк рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рджрд┐рдПред
рдЗрдиреНрд╣реЗрдВ рдЙрд╕реА рдРрдк рдХреА рддреАрди рдЕрд▓рдЧ тАЬрджреБрдирд┐рдпрд╛рдУрдВтАЭ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рд╣рд░ рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕, рдЕрдкрдиреА рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕, рдФрд░ рдЕрдкрдиреА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣, рдПрдХ рдЯреЗрд╕реНрдЯ рд╕рд╛рдЗрдирдЕрдк, рдПрдХ рдмрдЧреНрдб рдСрдЯреЛрдореЗрд╢рди, рдпрд╛ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ API рдХреЙрд▓ рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЗрдЯрд╛ рдХреЛ рдЫреВ рдирд╣реАрдВ рдкрд╛рдПрдЧрд╛ред
рдмрд╣реБрдд рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: тАЬdevтАЭ рдФрд░ тАЬprodтАЭуАВрдЖрдк рдЧрддрд┐ рдФрд░ рд▓рд╛рдЧрдд рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдкрд░ рдЖрдк рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд┐рд╣рд░реНрд╕рд▓ рд╕реНрдкреЗрд╕ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдРрдк рдЖрдкрдХреА рддреБрд░рдВрдд рдЯреАрдо рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЬреЛрдЦрд┐рдо рдЬрд▓реНрджреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рд▓реЛрдЧ, рдЕрдиреБрдкрд╛рд▓рди, рдпрд╛ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдЧрдВрднреАрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рддреАрди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЬрд╝рд░реВрд░рдд рдкрдбрд╝ рд╕рдХрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ UAT (user acceptance testing), рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд sandbox, рдпрд╛ рддрддреНрдХрд╛рд▓ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА hotfix рд╡рд╛рддрд╛рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдФрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдирд╛рдо рдЙрдмрд╛рдК рдФрд░ рдЕрдиреБрдорд╛рдирдиреАрдп рд░рдЦреЗрдВ: dev, staging, uat, prodред тАЬstaging2тАЭ, тАЬfinal-finalтАЭ, рдпрд╛ рдЯреАрдо-рд╡рд┐рд╢реЗрд╖ рд▓реЗрдмрд▓ рд╕реЗ рдмрдЪреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдИ рдФрд░ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рд▓рд╛рдЧрдд рдФрд░ рд╕рдордп рдмрдврд╝рддреЗ рд╣реИрдВ, рдкрд░ рдпрд╣ рдХрд┐рд╕реА рдПрдХ рдкреНрд░реЛрдбрдХреНрд╢рди рдШрдЯрдирд╛ рдХреА рд▓рд╛рдЧрдд рдЬрд┐рддрдирд╛ рдирд╣реАрдВ рдмрдврд╝рддрд╛ред рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛рдмреЗрд╕, рдФрд░ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╡ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдЯрдЕрдк рдЯрд╛рдЗрдо рдХреА рдЙрдореНрдореАрдж рд░рдЦреЗрдВред AppMaster рдЬреИрд╕реЗ рдиреЛ-рдХреЛрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдлрд╝рд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдРрдк рд▓реЙрдЬрд┐рдХ рдХреЛ рдПрдХ рдЬреИрд╕рд╛ рд░рдЦрддреЗ рд╣реБрдП рдХреЗрд╡рд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВред
рдкрд╛рдБрдЪ рдирд┐рдпрдо рдЬреЛ dev, staging, рдФрд░ prod рдХреЛ рд╕рдВрднрд╛рд▓реЗ рд░рдЦрддреЗ рд╣реИрдВ
рдпреЗ рд╡реЗ рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ тАЬрддреАрд╡реНрд░ рдкрд░реАрдХреНрд╖рдгтАЭ рдХреЛ рдЖрдЙрдЯреЗрдЬ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдкрд░ рднреА рд╢рд╛рдВрддрд┐ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред
-
рдХрднреА рднреА рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдЭрд╛ рди рдХрд░реЗрдВред Dev рдФрд░ staging рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рд╡реЗ тАЬread-onlyтАЭ рд╣реЛрдВред рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдЦреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╕реНрдХреАрдорд╛рдПрдБ рд░рдЦреЗрдВред
-
рд╣рд░ рдЬрдЧрд╣ рдЕрд▓рдЧ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, API рдХреБрдВрдЬрд┐рдпрд╛рдБ, рд╡реЗрдмрд╣реБрдХ рд╕рд╛рдЗрдирд┐рдВрдЧ рд╕реАрдХреНрд░реЗрдЯреНрд╕, OAuth рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕, рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреАрдЬрд╝ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреЛрдЦреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдХрд┐рд╕реА dev рдХреБрдВрдЬреА рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрд╛ рдЪреИрдЯ рдореЗрдВ рд▓реАрдХреНрд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬреЛрдЦрд┐рдо рдХреЗрд╡рд▓ dev рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
-
рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдХреЛ рджреЛ рд╕рд┐рд╕реНрдЯрдо рдХреА рддрд░рд╣ рдЯреНрд░реАрдЯ рдХрд░реЗрдВ: рдЯреЗрд╕реНрдЯ рдФрд░ рд▓рд╛рдЗрд╡ред рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдпрд╛ рдЯреЗрд╕реНрдЯ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдЧрд░ рдХреЛрдИ рдкреНрд░рджрд╛рддрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рджреЗрддрд╛, рддреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрд╡рд┐рдЪ рдмрдирд╛рдПрдВ (dev рдореЗрдВ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓реНрд╕ рдбрд┐рд╕реЗрдмрд▓ рдХрд░реЗрдВ, рдбрдореА рд░рд┐рд╕рд┐рдкрд┐рдПрдВрдЯ рдкрд░ рднреЗрдЬреЗрдВ, рдпрд╛ рдХреЙрд▓реНрд╕ рдХреЛ рдлреАрдЪрд░ рдлреНрд▓реИрдЧ рдХреЗ рдкреАрдЫреЗ рд░рдЦреЗрдВ)ред рдпрд╣ рдкреИрд╕реЗ, рд╕рдВрджреЗрд╢ рдФрд░ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
-
рдкреНрд░реЛрдбрдХреНрд╢рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓реЙрдХ рдбрд╛рдЙрди рдХрд░реЗрдВред рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдПрдбрд┐рдЯ рдЕрдзрд┐рдХрд╛рд░ рдХрдо рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЕрдиреБрдореЛрджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдиреЛ-рдХреЛрдб рдЯреВрд▓ рдореЗрдВ тАЬрдЫреЛрдЯреЗтАЭ UI рд╕рдВрдкрд╛рджрдиреЛрдВ рд╕реЗ рднреА рд▓реЙрдЬрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░реЛрдб рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╡рдзрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
-
рдХреЗрд╡рд▓ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдореЛрдЯ рдХрд░реЗрдВред рдмрджрд▓рд╛рд╡ dev тЖТ staging тЖТ prod рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╣реА рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдкреНрд░реЛрдб рдХреЛ рд╕реАрдзреЗ рд╣реЙрдЯ-рдлрд╝рд┐рдХреНрд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реА рдЬрдЧрд╣ рдкрд░ рдлрд╝рд┐рдХреНрд╕ рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрдЧрд▓рд╛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдЙрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рдЖрдк AppMaster рдореЗрдВ рдПрдХ рд╕рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред Dev рдореЗрдВ рдЖрдк рдПрдХ dev PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдПрдХ рдЯреЗрд╕реНрдЯ Stripe рдЕрдХрд╛рдЙрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред Staging рдореЗрдВ рдЖрдк рд╕реНрдХреАрдорд╛ рдХреА рдПрдХ рддрд╛рдЬрд╝рд╛ рдХреЙрдкреА рдФрд░ рдХреЗрд╡рд▓-рд╕реНрдЯреЗрдЬрд┐рдВрдЧ API рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкреВрд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдЬрдм staging рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдП рддрдм рдЖрдк prod рдореЗрдВ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдкреНрд▓реЙрдп рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕: рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд░рдЦреЗрдВ, рд╕реАрдб рдХрд░реЗрдВ, рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ
рдпрджрд┐ dev, staging, рдФрд░ prod рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд╕рд▓ рдореЗрдВ рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдорд╛рдореВрд▓реА рдЯреЗрд╕реНрдЯ рднреА рдЕрд╕рд▓реА рдбреЗрдЯрд╛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдИрдореЗрд▓ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рд╡рд╛рддрд╛рд╡рд░рдг-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрди рдорд╛рдиреЗрдВ, рд╕рд╛рдЭрд╛ рдЯреВрд▓ рдирд╣реАрдВред
рдбреЗрдЯрд╛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рд╕рд╛рдлрд╝ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреА рдЯреАрдо рд╣рд░ рдмрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдирд╛рдПрдЧреА:
- рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ (рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреГрдердХреНрдХрд░рдг): prod рдЕрдкрдирд╛ PostgreSQL рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред Dev рдФрд░ Staging рдХрд╣реАрдВ рдФрд░ рдЪрд▓рддреЗ рд╣реИрдВред
- рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕: рдЙрд╕реА PostgreSQL рд╣реЛрд╕реНрдЯ рдкрд░
app_dev,app_staging,app_prodред - рдЕрд▓рдЧ рд╕реНрдХреАрдорд╛рдПрдБ (рд╕рд┐рд░реНрдлрд╝ рддрднреА рдЬрдм рдЬрд╝рд░реВрд░реА рд╣реЛ): рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ
dev,staging,prodрд╕реНрдХреАрдорд╛рдПрдБред рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ рдорд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВред
рдЬреЛ рднреА рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ, рдирд╛рдореЛрдВ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░рдЦреЗрдВред рдкреНрд░реЛрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдирд╛рдо рдФрд░ рд╣реЛрд╕реНрдЯ рдирд╛рдо рдРрд╕реЗ рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛред
рд╕реАрдб рдбреЗрдЯрд╛: рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░рд┐рдпрд▓, рдиреАрдВрдж рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд
Staging рдХреЛ prod рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░ рдЕрд╕рд▓реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ред рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ: рдПрдХ рдЫреЛрдЯрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реАрдб рдбреЗрдЯрд╛рд╕реЗрдЯ, рдкреНрд░реЛрдбрдХреНрд╢рди рдХрд╛ рдПрдиреЙрдирд┐рдорд╛рдЗрдЬрд╝реНрдб рд╕реНрдиреИрдкрд╢реЙрдЯ, рдпрд╛ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЛ рдЕрд╕рд▓реА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛред
рдПрдХ рд╕рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯрд▓ рдХреЗ рд▓рд┐рдП, рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЯрд┐рдХрдЯ рдЬреИрд╕реЗ тАЬRefund requestтАЭ рдФрд░ тАЬLogin issueтАЭ рдЦреЛрдЬ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реЛрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрджреЗрд╢ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдПред
рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди: рдкрд╣рд▓реЗ staging, рдлрд┐рд░ prod
рд╕реНрдХреАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреИрдЯрд░реНрди рд╣реИ:
- рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреНрд╕ рдкрд╣рд▓реЗ staging рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдБред
- рдкреНрд░реЛрдб рдХреЛ рдЫреВрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреИрдХрдЕрдк/рд░рд┐рд╕реНрдЯреЛрд░ рдкреЙрдЗрдВрдЯ рдмрдирд╛рдПрдВред
- рд╢рд╛рдВрддрд┐ рд╕рдордп рдореЗрдВ prod рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреНрд╕ рдЪрд▓рд╛рдПрдБ, рдФрд░ рд░реЛрд▓рдмреИрдХ рдпреЛрдЬрдирд╛ рд░рдЦреЗрдВред
- рдПрдХ рд╣реА рдХрджрдо рдореЗрдВ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди (рдЬреИрд╕реЗ рдХреЙрд▓рдо рдбреНрд░реЙрдк рдХрд░рдирд╛) рд╕реЗ рдмрдЪреЗрдВред рдЙрд╕реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд░реЗрдВред
AppMaster рдореЗрдВ, Data Designer рдореЗрдВ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡ рдЕрдВрддрддрдГ PostgreSQL рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрджрд▓рд╛рд╡ рдмрдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдкрдмреНрд▓рд┐рд╢ рдХреЛ рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреА рддрд░рд╣ рд╣реА рд╕рдордЭреЗрдВред
рдЧреИрд░-рдкреНрд░реЛрдб рд╕реЗ рдкреНрд░реЛрдб рдХреЗ рд▓рд┐рдП рдЖрдХрд╕реНрдорд┐рдХ рд▓рд┐рдЦрд╛рд╡рдЯ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП: рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рд╕реАрдорд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ dev рдорд╢реАрдиреЗрдВ prod рддрдХ рди рдкрд╣реБрдБрдЪреЗрдВ, рдФрд░ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рд░рдЦреЗрдВред
рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЕрдЯреИрдЪрдореЗрдВрдЯреНрд╕ рди рднреВрд▓реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдмрдХреЗрдЯреНрд╕ рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рд░рдЦреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрд╕реНрдЯ рдЕрдкрд▓реЛрдб рднреА рдЙрддрдиреА рд╣реА рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд╕рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд▓реАрдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рддрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд░реЛреЫред
рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдФрд░ рд╕реАрдХреНрд░реЗрдЯреНрд╕: рдРрдк рдФрд░ рдЪреИрдЯ рд╕реЗ рджреВрд░ рд░рдЦреЗрдВ
рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╡рд╣ рдХреБрдЫ рднреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХреЗ рдХреЙрдкреА рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдБрдЪрд╛рддрд╛ред Dev, Staging, рдФрд░ Prod рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрджреЗрд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ: рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб, OAuth рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕, Stripe рдХреАрдЬрд╝, рдИрдореЗрд▓ рдпрд╛ SMS рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреАрдЬрд╝, рдФрд░ Telegram рдмреЙрдЯ рдЯреЛрдХрдиред
рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рддрд░рд╣ рдЯреНрд░реАрдЯ рдХрд░реЗрдВ: рдЬрд╣рд╛рдВ рдЬрд╝рд░реВрд░рдд рд╣реЛ рдореМрдЬреВрдж рд╣реЛрдВ, рдкрд░ рдХрднреА рдЙрдЬрд╛рдЧрд░ рди рд╣реЛрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдиреЛ-рдХреЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдб рди рдХрд░реЗрдВ, рдЯрд┐рдХрдЯ рдореЗрдВ рдкреЗрд╕реНрдЯ рди рдХрд░реЗрдВ, рдФрд░ рди рд╣реА рдЪреИрдЯ рдореЗрдВ тАЬрдЕрд╕реНрдерд╛рдпреАтАЭ рд░реВрдк рд╕реЗ рд╢реЗрдпрд░ рдХрд░реЗрдВред
рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд┐рдпрдо рд╣реИ: рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг, рдПрдХ рд╕реЗрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕ред рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ (рдпрд╛ рдЖрдкрдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╕реАрдХреНрд░реЗрдЯ рд╕реНрдЯреЛрд░) рдФрд░ рд╕реНрдкрд╖реНрдЯ рдирд╛рдордХрд░рдг рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
DEV_DB_PASSWORD,DEV_OAUTH_CLIENT_SECRET,DEV_STRIPE_SECRET_KEYSTAGING_DB_PASSWORD,STAGING_OAUTH_CLIENT_SECRET,STAGING_STRIPE_SECRET_KEYPROD_DB_PASSWORD,PROD_OAUTH_CLIENT_SECRET,PROD_STRIPE_SECRET_KEY
AppMaster рдореЗрдВ, рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд░рдЦреЗрдВред рдЖрдкрдХрд╛ рдРрдк рд▓реЙрдЬрд┐рдХ рдХреЗрд╡рд▓ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рдХрднреА рди рд░рдЦреЗред
рдХрд┐рд╕реА рдХрд╛ рдПрдХреНрд╕реЗрд╕ рд╕реНрдЯреЛрд░реЗрдЬ рдЬрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЙрддрдирд╛ рд╣реА рджреЗрдЦрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рднреАред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдпрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╕реАрдорд┐рдд рд░рдЦреЗрдВ, рдФрд░ рдПрдХ рд╣рд▓реНрдХрд╛ рдЪреЗрдВрдЬ рд▓реЙрдЧ рд░рдЦреЗрдВ (рдХрд┐рд╕рдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрдм рдФрд░ рдХреНрдпреЛрдВ)ред рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЖрдкрдХреА рд░рд┐рд▓реАрдЬрд╝ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдиреЛрдЯ рдпрд╛рдж рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рд░реЛрдЯреЗрд╢рди рдбрд░рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА teammate рдХреЗ рдЫреЛрдбрд╝рдиреЗ рдкрд░, рдХрд┐рд╕реА рдорд╛рди рдХреЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рд╣реЛрдиреЗ рдкрд░, рд╕рдВрджрд┐рдЧреНрдз рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж, рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рд░реЛрдЯреЗрдЯ рдХрд░реЗрдВред
рд░реЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрди рдлреНрд▓реЛреЫ рдХрд╛ рдкреБрдирдГрдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдЬреЛ рдЙрд╕ рд╕реАрдХреНрд░реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ: рд╕рд╛рдЗрди-рдЗрди (OAuth рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдлреНрд▓реЛрдЬрд╝), рдкреЗрдореЗрдВрдЯреНрд╕ (рдЯреЗрд╕реНрдЯ-рдореЛрдб рдлреНрд▓реЛ), рдИрдореЗрд▓/SMS рдбрд┐рд▓реАрд╡рд░реА (рдПрдХ рдЯреЗрд╕реНрдЯ рдкрддрд╛/рдирдВрдмрд░ рдкрд░), рдФрд░ рдХреЛрдИ рднреА рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЬреЙрдм рдпрд╛ рд╡реЗрдмрд╣реБрдХ рдЬреЛ рддреГрддреАрдп-рдкрдХреНрд╖ APIs рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдЖрдЦрд┐рд░ рдореЗрдВ, рдЖрдХрд╕реНрдорд┐рдХ рд▓реАрдХ рд░реЛрдХреЗрдВред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдпрд╛ тАЬрддреБрд░рдВрдд рдЙрджрд╛рд╣рд░рдгтАЭ рдореЗрдВ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рди рдбрд╛рд▓реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рджрд┐рдЦрд╛рдиреА рд╣реИ, рддреЛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬреИрд╕реЗ PROD_STRIPE_SECRET_KEY=xxxx)ред
рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕: рдЕрд╕рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рд╡реЗ рдЬрдЧрд╣ рд╣реИрдВ рдЬрд╣рд╛рдБ dev, staging, рдФрд░ prod рдЖрдорддреМрд░ рдкрд░ рдЯреВрдЯрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЧрд▓рдд рдХреБрдВрдЬреА рдЕрд╕рд▓реА рдЪрд╛рд░реНрдЬ, рдЕрд╕рд▓реА рдИрдореЗрд▓, рдпрд╛ рдЕрд╕рд▓реА рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреА рд╣реИред рдЧреИрд░-рдкреНрд░реЛрдб рдореЗрдВ рдЖрдкрдХреЗ рдРрдк рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░ рдЧрд╛рд░реНрдбрд░реЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛ рдиреБрдХрд╕рд╛рди рдХреЛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реЛрдВред
рдкреЗрдореЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рдпрдо рд░рдЦреЗрдВ: рд╕рд┐рд░реНрдлрд╝ рдкреНрд░реЛрдбрдХреНрд╢рди рд╣реА рд▓рд╛рдЗрд╡ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред Dev рдФрд░ Staging рдореЗрдВ рдЯреЗрд╕реНрдЯ рдореЛрдб рдФрд░ рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ рдЙрддреНрдкрд╛рдж, рдкреНрд░рд╛рдЗрд╕, рдФрд░ рд╡реЗрдмрд╣реБрдХреНрд╕ рд░рдЦреЗрдВред рдЗрд╕рд╕реЗ рдЖрдк рдкреВрд░рд╛ рдЪреЗрдХрдЖрдЙрдЯ рдлрд╝реНрд▓реЛ рдЪрд▓рд╛ рдкрд╛рдПрдБрдЧреЗ рдмрд┐рдирд╛ рдЕрд╕рд▓реА рдкреИрд╕реЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗред
рдИрдореЗрд▓ рдФрд░ SMS рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЧреИрд░-рдкреНрд░реЛрдб рд╕рдВрджреЗрд╢ рдХреЛ рдЧрд▓рддреА рдорд╛рдиреЗрдВ рдЬрдм рддрдХ рдЖрдк рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рд╛рдмрд┐рдд рди рдХрд░ рджреЗрдВред рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрдВрддрд╡реНрдп рдкрд░ рд░реВрдЯ рдХрд░реЗрдВ (рдЬреИрд╕реЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЗрдирдмреЙрдХреНрд╕ рдпрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдлреЛрди рдирдВрдмрд░), рдпрд╛ рднреЗрдЬрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд░рдЦреЗрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдиреБрдореЛрджрд┐рдд рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк AppMaster рдореЙрдбреНрдпреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣реА рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░реЗрдВ: рдЧреИрд░-рдкреНрд░реЛрдб рдХреЛ рдХрднреА рдЕрд╕рд▓реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реЗрдмрд╣реБрдХреНрд╕ рдХреЛ рдЕрдкрдиреА рдЕрд▓рдЧ рдкреГрдердХреНрдХрд░рдг рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡реЗрд░рд┐рдлрд╛рдИ рдХрд░реЗрдВ, рд╕рд┐рд░реНрдлрд╝ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдирд╣реАрдВред рдЗрд╕рд╕реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░реЛрдбрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ рдирд╣реАрдВ рдорд╛рд░реЗрдЧрд╛ рдФрд░ рдЖрдк рд╕реНрдкреВрдлрд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдкрдХрдбрд╝ рдкрд╛рдПрдБрдЧреЗред
рдЕрдЧрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХрд╛ API рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдСрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рд╕рдЦреНрдд рд░реЗрдЯ рд▓рд┐рдорд┐рдЯреНрд╕ рдФрд░ рд░реАрдб-рдУрдирд▓реА рдкрд░рдорд┐рд╢рдиреНрд╕ рдЬреЛрдбрд╝реЗрдВ рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, рдФрд░ рдЧреИрд░-рдкреНрд░реЛрдб рдХреЙрд▓реНрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ (рдЙрджрд╛., рд╕реНрдкрд╖реНрдЯ рд╣реЗрдбрд░ рдпрд╛ рдЯреИрдЧ)ред
рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддреА рд╣реИ:
- Dev, Staging, рдФрд░ Prod рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЕрдХрд╛рдЙрдВрдЯреНрд╕/рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕
- рдЧреИрд░-рдкреНрд░реЛрдб рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рди рд░рдЦ рд╕рдХреЗрдВ
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЬреЙрдмреНрд╕ рдЧреИрд░-рдкреНрд░реЛрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛрдВ рдпрд╛ рдХреЗрд╡рд▓ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдЪрд▓реЗрдВ
- рд╡реЗрдмрд╣реБрдХ URLs рдФрд░ рд╕рд╛рдЗрдирд┐рдВрдЧ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреВрдареЗ рд╣реЛрдВ
- рдЯреЗрд╕реНрдЯ рд╕рдВрджреЗрд╢ рдФрд░ рдЯреЗрд╕реНрдЯ рдЪрд╛рд░реНрдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЗрдмрд▓ рдХрд┐рдП рдЬрд╛рдПрдБ
рдЙрджрд╛рд╣рд░рдг: рдЖрдкрдХрд╛ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯрд▓ рдирдХрд▓реА рдкреЗрдореЗрдВрдЯ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдирд╛рдПрдБ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдкрд░ рд╣рд░ рд╕рдВрджреЗрд╢ рдЯреАрдо рдЗрдирдмреЙрдХреНрд╕ рдкрд░ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирд╛рдЗрдЯрд▓реА рдЬреЙрдмреНрд╕ рдХреЗрд╡рд▓ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдбреЗрдЯрд╛ рдкрд░ рдЪрд▓реЗрдВрдЧреЗред
рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдФрд░ рдЕрдиреБрдореЛрджрди: рдХреМрди рдХреНрдпрд╛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдХрд╣рд╛рдБ
рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ dev, staging, рдФрд░ prod рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рд░реЗрд▓ рд╣реИред рдиреЛ-рдХреЛрдб рдРрдкреНрд╕ рдореЗрдВ рдХрдИ рдШрдЯрдирд╛рдПрдБ рддрдм рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрдЪреНрдЫрд╛ рдЗрд░рд╛рджреЗ рд░рдЦрддреЗ рд╣реБрдП рдкреНрд░реЛрдб рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдХрдИ рднреВрдорд┐рдХрд╛рдУрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░рдЦреЗрдВред рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рднреА рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрдорддрд┐рдпреЛрдВ рд╕реЗ рд▓рд╛рдн рдЙрдард╛рддреА рд╣реИ: рдХреЛрдИ рдЬреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рдЬреЛ рдЯреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╡реЗ рд▓реЛрдЧ рдЬреЛ dev/staging рдореЗрдВ рдПрдбрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдореВрд╣ рдЬреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдбрд┐рдкреНрд▓реЙрдп рдпрд╛ рдореИрдиреЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░реЛрдбрдХреНрд╢рди рдПрдХреНрд╕реЗрд╕ рдЬрд┐рддрдирд╛ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рднреА рдХрдо рд░рдЦреЗрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд╣рд░ рд╕рдкреНрддрд╛рд╣ рдкреНрд░реЛрдб рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реНрдерд╛рдпреА рдПрдХреНрд╕реЗрд╕ рди рджреЗрдВред рдЬрдм рдХрд┐рд╕реА рдХреЛ рдЕрд╕реНрдерд╛рдпреА рддреМрд░ рдкрд░ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛., рд▓рд╛рдЗрд╡ рдЗрд╢реНрдпреВ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП), рддреЛ рдКрдБрдЪрд╛ рдПрдХреНрд╕реЗрд╕ рдПрдХ рдЫреЛрдЯреЗ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рджреЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВред
рдХреБрдЫ рд╣рд▓реНрдХрд╛ рдЕрдиреБрдореЛрджрди рдХрджрдо рдЬреЛрдбрд╝реЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдХреБрдЫ рднреА рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЛ рдЫреБрдП, рдЦрд╛рд╕рдХрд░ рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрджрд▓рд╛рд╡ред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд░рд┐рд▓реАрдЬрд╝ рддреИрдпрд╛рд░ рдХрд░реЗ, рджреВрд╕рд░рд╛ рдордВрдЬреВрд░ рдХрд░реЗред AppMaster рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░, тАЬpublish to prodтАЭ рдФрд░ тАЬapply schema changesтАЭ рдЬреИрд╕реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╛рдиреЗрдВ, рд╕рд┐рд░реНрдлрд╝ рдХрд┐рд╕реА рднреА рдПрдбрд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдСрдбрд┐рдЯ рдЯреНрд░реЗрд▓ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЬрд▓реНрджреА рддреАрди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХреЗрдВ: рдХрд┐рд╕рдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрдм, рдФрд░ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВред
рдЕрдкрдиреА рд╡рд╛рдкрд╕реА рдпреЛрдЬрдирд╛ (rollback plan) рд╕рд╛рджреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦреЗрдВред рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВ рдХрд┐ рдХреНрдпрд╛ рдЬрд▓реНрджреА рдЙрд▓рдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд┐рдЫрд▓рд╛ рд╡рд░реНрдЬрд╝рди рдкреБрдирдГрдбрд┐рдкреНрд▓реЙрдп рдХрд░рдирд╛, рдлреАрдЪрд░ рдлреНрд▓реИрдЧ рдбрд┐рд╕реЗрдмрд▓ рдХрд░рдирд╛) рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ (рдбреЗрдЯрд╛ рд╣рдЯрд╛рдирд╛, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреНрд╕), рдФрд░ рдХреМрди рд░реЛрд▓рдмреИрдХ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдХреИрд╕реЗ рд░рд┐рдХрд╡рд░реА рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВрдЧреЗред
рдЪрд░рдг-рджрд░-рдЪрд░рдг: рдиреЛ-рдХреЛрдб рдРрдк рдХреЗ рд▓рд┐рдП Dev, Staging, рдФрд░ Prod рд╕реЗрдЯ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрднреА рднреА рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдбреЗрдЯрд╛рдмреЗрд╕, рд╕реАрдХреНрд░реЗрдЯреНрд╕ (API рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдЯреЛрдХрди), рдФрд░ рдХреЛрдИ рднреА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЬреЛ рдЕрд╕рд▓реА рдИрдореЗрд▓ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдХрд╛рд░реНрдб рдЪрд╛рд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдлрд╝ рдПрдХ рдЪреАрдЬрд╝ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд▓рдЧ рдХрд░реЗрдВред
рдПрдХ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╕реЗрдЯрдЕрдк:
-
рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХрд╛ рдирд╛рдордХрд░рдг рдФрд░ рд╕реАрдорд╛рдПрдБ рддрдп рдХрд░реЗрдВред рд╕рдВрдЧрдд рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (Dev, Staging, Prod)ред рддрдп рдХрд░реЗрдВ рдХрд┐ рд╣рд░ рдПрдХ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕, рдЕрдкрдиреА рд╕реАрдХреНрд░реЗрдЯреНрд╕, рдФрд░ рдЕрдкрдиреА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдпрд╛ рдЯреЗрд╕реНрдЯ рдореЛрдб рд╣реЛрдВред
-
рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдРрдк рдХреНрд▓реЛрди рдХрд░реЗрдВред AppMaster рдЬреИрд╕реЗ рдиреЛ-рдХреЛрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ, рдЙрд╕реА рдРрдк рдХреЗ Dev рдФрд░ Staging рд╡рд░реНрдЬрд╝рдиреНрд╕ рдмрдирд╛рдПрдВред рд▓реЙрдЬрд┐рдХ рдПрдХ рдЬреИрд╕рд╛ рд░рдЦреЗрдВ, рдкрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрд▓рдЧ рд░рдЦреЗрдВ (рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, API рдХреБрдВрдЬрд┐рдпрд╛рдБ, рд╡реЗрдмрд╣реБрдХ URLs)ред
-
рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдВ рдФрд░ рд╕реАрдб рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реАрдорд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред рддреАрди рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдВ (рдпрд╛ рдЬрд╝рд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рддреАрди рдЕрд▓рдЧ рд╕реНрдХреАрдорд╛рдПрдБ)ред Dev рдФрд░ Staging рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗрдВред рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реАрдорд╛ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: Staging рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдВ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ Prod рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦреЗ, рдлрд┐рд░ рдЙрд▓реНрдЯрд╛ рдЖрдЬрд╝рдорд╛рдПрдБред
-
рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдореЛрдб рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рд╡реЗрдмрд╣реБрдХ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред рдкреЗрдореЗрдВрдЯреНрд╕ рдЯреЗрд╕реНрдЯ рдореЛрдб рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдИрдореЗрд▓ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЗрдирдмреЙрдХреНрд╕ рдкрд░ рдЬрд╛рдПрдБ, рдореИрд╕реЗрдЬрд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рдЪреИрдирд▓ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗред рдкреВрд░реА рдлрд╝реНрд▓реЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВ (рдпреВрдЬрд╝рд░ рд╕рд╛рдЗрдирдЕрдк, рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ, рдкреЗрдореЗрдВрдЯ рдкреНрд░рдпрд╛рд╕) рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рд╡реЗрдмрд╣реБрдХ рдХреЗрд╡рд▓ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реА рд▓реИрдВрдб рдХрд░реЗрдВред
-
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдЪрд▓рд╛рдПрдБ, рдлрд┐рд░ рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдореЛрдЯ рдХрд░реЗрдВред рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдореЗрдВ рдкреНрд░рдореБрдЦ рдпрд╛рддреНрд░рд╛рдУрдВ, рдЕрдиреБрдорддрд┐рдпреЛрдВ, рдФрд░ рдПрд░рд░ рдкрд╛рдереНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдЬрдм рдпрд╣ рд╕рд╛рдлрд╝ рд╣реЛ, рддреЛ рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди Prod рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (Prod рдореЗрдВ рдХреЗрд╡рд▓ рддреНрд╡рд░рд┐рдд рдлрд┐рдХреНрд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ)ред
рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рдЕрд▓реНрдк-рд╕рдордп рдХреЗ рд▓рд┐рдП рдореЙрдирд┐рдЯрд░ рдХрд░реЗрдВ: рд▓реЙрдЧреНрд╕, рдлреЗрд▓реНрдб рд░рд┐рдХреНрд╡реЗрд╕реНрдЯреНрд╕, рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдбреИрд╢рдмреЛрд░реНрдб рджреЗрдЦреЗрдВред рдЬрдм рддрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рди рджрд┐рдЦреЗ рддрдм рддрдХ рд░реЛрд▓рдмреИрдХ рд╡рд┐рдХрд▓реНрдк рддреИрдпрд╛рд░ рд░рдЦреЗрдВ (рдкрд┐рдЫрд▓рд╛ рдмрд┐рд▓реНрдб, рдкрд┐рдЫрд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ, рдпрд╛ рдлреАрдЪрд░ рдЯреЙрдЧрд▓)ред
рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рджреГрд╢реНрдп: рд╕рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯрд▓ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдирд╛ рдмрд┐рдирд╛ рдЕрд╕рд▓реА рдпреВрдЬрд╝рд░реНрд╕ рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓реЗ
рдПрдХ рдЫреЛрдЯреА рдСрдкреНрд╕ рдЯреАрдо рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯрд▓ рдмрдирд╛ рд░рд╣реА рд╣реИ: рдПрдЬреЗрдВрдЯ рд▓реЙрдЧрд┐рди рдХрд░рддреЗ рд╣реИрдВ, рдЧреНрд░рд╛рд╣рдХ рдвреВрдБрдврддреЗ рд╣реИрдВ, рдПрдб-рдСрди рдХреЗ рд▓рд┐рдП Stripe рдореЗрдВ рд╢реБрд▓реНрдХ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЯрд┐рдХрдЯ рд╕реНрдЯреЗрдЯрд╕ рдмрджрд▓рдиреЗ рдкрд░ рдИрдореЗрд▓ рдЕрдкрдбреЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВред рд╡реЗ рдЗрд╕реЗ рддреАрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЯреЗрд╕реНрдЯ рдХрднреА рднреА рдЕрд╕рд▓реА рдкреИрд╕реЗ рдпрд╛ рдЕрд╕рд▓реА рдЗрдирдмреЙрдХреНрд╕ рдХреЛ рди рдЫреБрдПред
Dev рдореЗрдВ рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирдХрд▓реА рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд▓рдЧ рд╣реИ рдФрд░ рд╕реАрдб рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛ рд╣реИ (рдирдореВрдирд╛ рдЧреНрд░рд╛рд╣рдХ, рдирдореВрдирд╛ рдЯрд┐рдХрдЯ, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдорд╛рдорд▓реЛрдВ рдЬреИрд╕реЗ рдЧреБрдо рдИрдореЗрд▓)ред рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдПрдХ рдЯреЗрд╕реНрдЯ рдпреВрдЬрд╝рд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдпрд╛ рдХреБрдЫ рдЯреЗрд╕реНрдЯ рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИред Stripe рдЯреЗрд╕реНрдЯ рдореЛрдб рдФрд░ рдЯреЗрд╕реНрдЯ рдХрд╛рд░реНрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдИрдореЗрд▓ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
Staging рдореЗрдВ рд▓рдХреНрд╖реНрдп рдЬреЛрдЦрд┐рдо рдХреЗ рдмрд┐рдирд╛ рдирдЬрд╝рджреАрдХреА-рд░рд┐рдпрд▓ рд╣реЛрдирд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд▓рдЧ рд╣реИ, рдкрд░ рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реЗ рд░рд┐рдлреНрд░реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛., рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдЕрдиреЙрдирд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдХреЗ)ред рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдкрд░ рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рд╣реИред Stripe рд╕реНрдЯреЗрдЯ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдкрд░ рдЯреАрдо рдпрдерд╛рд░реНрдердкреВрд░реНрдг рдЪреЗрдХрдЖрдЙрдЯ рдФрд░ рд░рд┐рдлрдВрдб рдлреНрд▓реЛрдЬрд╝ рдЪрд▓рд╛рддреА рд╣реИред рдИрдореЗрд▓ рдХреЗрд╡рд▓ рдЕрдиреБрдореЛрджрд┐рдд рдЖрдВрддрд░рд┐рдХ рдкрддреЛрдВ рдкрд░_allowed_ рд╣реЛрддрд╛ рд╣реИред
Prod рдореЗрдВ рдкреЛрд░реНрдЯрд▓ рд▓реЙрдХ рдбрд╛рдЙрди рд╣реИред рдХреЗрд╡рд▓ рдЕрдиреБрдореЛрджрд┐рдд рдПрдбрдорд┐рди рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиреНрд╕ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдбрд┐рдкреНрд▓реЙрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд╕рд▓реА Stripe рдХреАрдЬрд╝ рдФрд░ рдЕрд╕рд▓реА рдИрдореЗрд▓ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдФрд░ рдСрдбрд┐рдЯ рд▓реЙрдЧреНрд╕ рдЪрд╛рд▓реВ рд╣реИрдВред
рдЕрдм рдПрдХ рдирдпрд╛ рдлреАрдЪрд░: рдПрдХ-рдХреНрд▓рд┐рдХ refund workflowред рдмрд┐рд▓реНрдбрд░ рдЗрд╕реЗ AppMaster рдореЗрдВ Business Process Editor рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ, Dev рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд╛рд░реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪрддрд╛ рд╣реИ, рдФрд░ UI рдХреЙрдкреА рдФрд░ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рджреЗрдЦрддрд╛ рд╣реИред
Staging рдореЗрдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд▓рддреА рджрд┐рдЦрддреА рд╣реИ: рд░рд┐рдлрдВрдб рд▓реЙрдЬрд┐рдХ тАЬticket closedтАЭ рдИрдореЗрд▓ рджреЛ рдмрд╛рд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣реА рд╕реНрдЯреЗрдЯрд╕ рдЪреЗрдВрдЬ рдкрд░ рджреЛ рд╕реНрдЯреЗрдкреНрд╕ рдлрд╛рдпрд░ рд╣реЛ рд░рд╣реЗ рдереЗред рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдпрд╣ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реНрдкреИрдо рдХрд░ рджреЗрддрд╛ рдФрд░ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ред Staging рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЗрдирдмреЙрдХреНрд╕ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреАрдо рдХрдВрдбреАрд╢рди рдареАрдХ рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд░рд┐рдЯреЗрд╕реНрдЯ рдХрд░рддреА рд╣реИред
рд╡реЗ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рдЕрдиреБрдорд╛рди рди рд▓рдЧрд╛рдирд╛ рдкрдбрд╝реЗ: рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдирд╛рдо рдФрд░ рдорд╛рд▓рд┐рдХ, рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХрд╣рд╛рдБ рд░рд╣рддреА рд╣реИрдВ рдФрд░ рдХреМрди рдЙрдиреНрд╣реЗрдВ рд░реЛрдЯреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╣реИ, рд░рд┐рд▓реАрдЬрд╝ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ, рдФрд░ тАЬDev рдореЗрдВ рдЕрд╕рд▓реА рдбреЗрдЯрд╛ рдирд╣реАрдВтАЭ рдирд┐рдпрдоред
рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ рдЬреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рдШрдЯрдирд╛рдПрдБ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ
рдпрд╣рд╛рдВ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдирд╛рдПрдБ рд░рд╣рд╕реНрдпрдордпреА рдмрдЧ рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рдорд┐рдХреНрд╕-рдЕрдк рд╣реИрдВ: рдЧрд▓рдд рдбреЗрдЯрд╛рдмреЗрд╕, рдЧрд▓рдд рдХреА, рдпрд╛ рдЧрд▓рдд рдПрдиреНрдбрдкреЙрдЗрдВрдЯред
рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЬрд╛рд▓ рд╕рд╛рдЭрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдпрд╣ рд╢реБрд░реБрдЖрддреА рджреМрд░ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рдпрд╣ рдПрдХ рдЪреБрдк-рдЪрд╛рдк liability рдмрди рдЬрд╛рддрд╛ рд╣реИ: рдХреЛрдИ рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рдХреЛрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЬрд▓реНрджреА рдЪрд▓ рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдирдпрд╛ рдлрд╝реАрд▓реНрдб рдлрд╝реЙрд░реНрдореЗрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЛрдб рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ред
рдПрдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдореЗрдВ рдкреНрд░реЛрдбрдХреНрд╢рди API рдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкреЗрдореЗрдВрдЯреНрд╕ рдФрд░ рдИрдореЗрд▓ рдпрд╣рд╛рдВ рдмрдбрд╝реЗ рд╣реИрдВред рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЪреЗрдХрдЖрдЙрдЯ рдЕрд╕рд▓реА рдЪрд╛рд░реНрдЬ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдИрдореЗрд▓ рдЯреЗрд╕реНрдЯ рдЕрд╕рд▓реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдкрдХрд╛ рдЯреВрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдпрд╛ рдкреНрд░рддрд┐-рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдХрдИ рдиреЛ-рдХреЛрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ AppMaster рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ), рддреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдРрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рди рдорд╛рдирдХрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдиреЗрдВред
рд╡реЗрдмрд╣реБрдХ рднреНрд░рдо рдХрд░реАрдмреА рд╕рдВрдмрдВрдз рд░рдЦрддрд╛ рд╣реИред рдЯреАрдореЗрдВ рд╡реЗрдмрд╣реБрдХ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдЗрд╡реЗрдВрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдСрд░реНрдбрд░реНрд╕, рдмрд╛рд░-рдмрд╛рд░ тАЬaccount createdтАЭ рдлреНрд▓реЛрдЬрд╝, рдФрд░ рдЙрд▓рдЭреА рд╕рдкреЛрд░реНрдЯ рдЯрд┐рдХрдЯреНрд╕ рдмрдирддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдЦреЛрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЬреЙрдмреНрд╕ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЪреБрдкрдЪрд╛рдк рдЪрд▓рддреЗ рд╣реИрдВред рдПрдХ рдирд╛рдЗрдЯрд▓реА рд╕рд┐рдВрдХ, тАЬрд░рд┐рдорд╛рдЗрдВрдбрд░ рднреЗрдЬреЗрдВтАЭ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдпрд╛ рдСрдЯреЛ-рдХреНрд▓реЛрдЬрд╝ рдкреНрд░реЛрд╕реЗрд╕ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕реЗ рдЪрд▓рдХрд░ рдЕрд╕рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рд┐рдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рднреВрд▓ рджрд┐рдпрд╛ред
рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдФрд░ рдЕрдЧрд▓реЗ рдХрджрдо
рд╢рд┐рдк рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ, рдЖрдк рдРрд╕реЗ рддреЗрдЬрд╝ рдЪреЗрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдо рдорд┐рдХреНрд╕-рдЕрдк рдкрдХрдбрд╝реЗ: рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реА рд╣реИ, рдЧрд▓рдд API рдХреА рдкреЗрд╕реНрдЯ рдХреА рдЧрдпреА рд╣реИ, рдпрд╛ рдХреЛрдИ рдЦрддрд░рдирд╛рдХ рд╡реЗрдмрд╣реБрдХ рд▓рд╛рдЗрд╡ рд░рд╣ рдЧрдпрд╛ рд╣реИред
10 рдорд┐рдирдЯ рдореЗрдВ рд░рди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддреНрд╡рд░рд┐рдд рдЪреЗрдХрд▓рд┐рд╕реНрдЯ:
- рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓рдХреНрд╖реНрдп рд╕рд╣реА рд╣реИ (рд╣реЛрд╕реНрдЯ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо), рдФрд░ рдХрд┐ рдХреЛрдИ рдкреНрд░реЛрдбрдХреНрд╢рди рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдб рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реЛ рд░рд╣реАред
- рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рд░ рд╕реАрдХреНрд░реЗрдЯ рдХреЗрд╡рд▓ рдкреНрд░реЛрдб рдореЗрдВ рдкреНрд░реЛрдбрдХреНрд╢рди-рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХ рд╣реИ (API рдХреАрдЬрд╝, OAuth рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕, рдкреЗрдореЗрдВрдЯ рдХреАрдЬрд╝) рдФрд░ рдЧреИрд░-рдкреНрд░реЛрдб рдХреАрдЬрд╝ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рди рд░рдЦрддреА рд╣реЛрдВред
- рд╡реЗрдмрд╣реБрдХ рдФрд░ рдХреЙрд▓рдмреИрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЪреЗрдХ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреНрд░реЛрдбрдХреНрд╢рди рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯреНрд╕ рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
- рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдореЗрд╕реНрд╕реЗрдЬрд┐рдВрдЧ рд╡реИрд▓рд┐рдбреЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЯреЗрд╕реНрдЯ рдЕрд╕рд▓реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдИрдореЗрд▓ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рди рднреЗрдЬ рд╕рдХреЗред
- рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдБ: рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ, рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдВ, рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ end-to-end рдЪрд▓рд╛рдПрдБ, рдлрд┐рд░ рд▓реЙрдЧреНрд╕ рдореЗрдВ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓реНрд╕ рджреЗрдЦреЗред
рдлрд┐рд░ рдПрдХ рд▓реЛрдЧреЛрдВ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: рдкреНрд░реЛрдбрдХреНрд╢рди рдПрдХреНрд╕реЗрд╕ рд╕реВрдЪреА рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдХрд┐рд╕реА рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдЬрд┐рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдЖрдкрдХрд╛ рдЯреВрд▓ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЫреЛрдЯреЗ рдЯреАрдо рд╣реЛрдиреЗ рдкрд░ рднреА рдкреНрд░реЛрдбрдХреНрд╢рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдореЛрджрди рдХрджрдо рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЗрд╕реЗ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдВрдпрдорд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╛рдореЛрдВ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░реЗрдВ (DEV, STAGING, PROD) рдФрд░ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╡ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдорд╛рд╕рд┐рдХ рд╕рдореАрдХреНрд╖рд╛рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рдЦреЗрдВред рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЗ рд╕рдордп рдХрд░рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рд╣реИред
рдпрджрд┐ рдЖрдк AppMaster рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ PostgreSQL рдХреЙрдиреНрдлрд╝рд┐рдЧ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, auth, Stripe, рдФрд░ email/SMS рдЬреИрд╕реЗ рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХреБрдВрдЬреА рдХреА рдУрд░ рдкреЙрдЗрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд┐рдирд╛ рдРрдк рд▓реЙрдЬрд┐рдХ рдмрджрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдпреЛрдВ (AppMaster Cloud рдпрд╛ рдкреНрд░рдореБрдЦ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛) рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред For more details on the platform itself, AppMasterтАЩs home is appmaster.io.
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди
Use dev to build quickly, staging to test the full release end-to-end in a production-like setup, and prod for real users. The key is that each environment must have its own data, secrets, and integration settings so a test canтАЩt touch real customers.
Start with dev, staging, prod because itтАЩs simple and covers most risks. Add UAT or a dedicated sandbox only when you have a clear need, and keep names consistent so nobody guesses which environment is тАЬthe real one.тАЭ
DonтАЩt share a production database with any non-prod environment, even тАЬread-only.тАЭ The safest default is separate PostgreSQL databases per environment, with names and hosts that are hard to confuse so a wrong connection string stands out immediately.
Use data thatтАЩs realistic but not sensitive. A small controlled seed dataset usually works, and if you copy from production, anonymize personal fields and remove anything you donтАЩt need for testing so staging feels real without exposing customer information.
Keep migrations predictable by applying them to staging first and running a quick smoke test before production. In production, take a backup point first and avoid one-step breaking changes so you can roll forward or revert without scrambling.
Use different secrets in every environment, stored in environment-specific settings rather than inside the app logic. If a dev key leaks, it should only affect dev, and production keys should be viewable and editable by a very small set of people.
Treat every integration as two modes: test/sandbox for dev and staging, and live for production only. For anything that can charge money or message users, add a hard safety switch so non-prod canтАЩt send to real recipients even if someone misconfigures a key.
Give each environment its own webhook URLs and signing secrets, and verify signatures everywhere, not just in production. This prevents staging events from triggering production workflows and helps you catch misroutes early by keeping traffic clearly separated.
Lock production down more than you think: fewer people can deploy, fewer people can change secrets, and releases require a second set of eyes. Even in no-code, a тАЬsmallтАЭ edit can change behavior, so production needs clear permissions and an audit trail.
Keep changes moving in one direction: dev to staging to prod, and avoid editing prod directly. If you need to recover, redeploy the last known-good version and disable risky workflows first, then fix properly in dev and promote the same change back through staging.


