рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддреИрдирд╛рддреА рдХреЛ рд╕рд░рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ - рдПрдХ рдирдпрд╛ рдЦреБрд▓рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреЗрд╢ рдХрд┐рдпрд╛

Microsoft рдФрд░ Docker рдиреЗ рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ (CNAB) рдУрдкрди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдореБрдЦреА рддрд░реАрдХрд╛ рдмрддрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ CNAB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА рдФрд░ рдпрд╣ рдХреНрдпрд╛ рд╣реИред


/ рдлреЛрдЯреЛ tsuna72 рд╕реАрд╕реА рджреНрд╡рд╛рд░рд╛

CNAB рдХреНрдпрд╛ рд╣реИ?


рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд╡рд┐рддрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ (рдПрдкреАрдЖрдИ, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди, рдХрдВрдЯреЗрдирд░) рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдХрд╛рд░реНрдп рдбреЙрдХрд░ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХреЗ рдорд╛рдирдХ рдХрд╛рд░реНрдп рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, CNAB рдПрдХ рдкреИрдХреЗрдЬ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣реЗрд▓реНрдо, рд╕реНрд╡рд╛рд░реНрдо, рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдпреЗ рдкреИрдХреЗрдЬ JSON рдФрд░ OpenPGP рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред

рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдб рджреЛрдиреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЖрдИрдЯреА рджрд┐рдЧреНрдЧрдЬ рдиреЗ рдЕрдкрдирд╛ рдПрдХ рдЙрдкрдХрд░рдг рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред Microsoft рдореЗрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди Duffle рдХреНрд▓рд╛рдЗрдВрдЯ рдерд╛, Docker рдкрд░, Docker рдРрдк ред

рдЙрджрд╛рд╣рд░рдг


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рдХрд╣рд╛, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред CNAB рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдкрд░рд┐рднрд╛рд╖рд╛ (рдмрдВрдбрд▓) рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЫрд╡рд┐ ( рдордВрдЧрд▓рд╛рдЪрд░рдг рдЫрд╡рд┐ ) рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреИрдХреЗрдЬ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ (рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг GitHub рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рд╣реИ ):

{ "schemaVersion": "v1.0.0-WD", "name": "helloworld", "version": "0.1.2", "description": "An example 'thin' helloworld Cloud-Native Application Bundle", "maintainers": [ { "name": "Matt Butcher", "email": "technosophos@gmail.com", "url": "https://example.com" } ], "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aaaaaaa..." } ], "images": [ { "image": "technosophos/microservice:1.2.3", "description": "my microservice", "digest": "sha256:aaaaaaaaaaaa...", "uri": "urn:image1uri", "refs": [ { "path": "image1path", "field": "image.1.field" } ] } ], "parameters": { "backend_port" : { "type" : "int", "defaultValue": 80, "minValue": 10, "maxValue": 10240, "metadata": { "description": "The port that the back-end will listen on" } } }, "credentials": { "kubeconfig": { "path": "/home/.kube/config", }, "image_token": { "env": "AZ_IMAGE_TOKEN", }, "hostkey": { "path": "/etc/hostkey.txt", "env": "HOST_KEY" } } } 

рдпрд╣ рдмреНрд▓реЙрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП "рдЦреЛрдЬ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рд╛рд░реВрдк рдбреЙрдХ рдпрд╛ oci рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕ рдордВрдЪ рдкрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рднреАред

рдФрд░ рдпрд╣рд╛рдБ рдЫрд╡рд┐ рдХреЛ рд╕реАрдзреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aca460afa270d4c527981ef9ca4989346c56cf9b20217dcea37df1ece8120685" } ] 

рдЗрд╕рдХрд╛ рдХрд╛рдо рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпреЗ рдШрдЯрдХ рдХрдВрдЯреЗрдирд░, рдлрд╝рдВрдХреНрд╢рдВрд╕, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

Microsoft рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдПрдХ рдЕрд▓рдЧ рд╡реАрдбрд┐рдпреЛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдкрд░ рдХрдИ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рд╣реИрдВред

рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИ


CNAB рдПрдХрдорд╛рддреНрд░ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рди рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕рдкреНрд▓реЗрди рдореИрдиреЗрдЬрд░ рдФрд░ рдПрдХ рд╣реЗрд▓рдо рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, CNAB рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рд╡реИрд╕реЗ, CNAB рднреА рд╣реЗрд▓реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ: GitHub рдкрд░ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдЗрд╕ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХреЗ рдХрд╛рд░рдг, рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рдирдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдкреНрд░рддрд┐ рдЙрддреНрд╕рд╛рд╣реА рд░рд╣рд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ CNAB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЙрдирдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИред

рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдирдП рд╕рдорд╛рдзрд╛рди рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рдХрд┐ CNAB рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рднрд╛рдЧреНрдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдХрдореА (рдЬреИрд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕) рдХреЗ рдХрд╛рд░рдг рднреВрд▓ рдЧрдП рдереЗред рд╕рдВрджреЗрд╣ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдзрд╛рди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдХрд░ рд╕рдорд╛рдЪрд╛рд░ рдкрд░ рд╡рд┐рд╖рдпрдЧрдд рд╕реВрддреНрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд╛рдЗрдЯ рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджрд┐рдП рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рд╕реБрдирд╛ред

рдЕрдм рддрдХ, CNAB рд╡рд┐рдХрд╛рд╕ рдХреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рдЪрд░рдг рдореЗрдВ рд╣реИ ред Microsoft рдФрд░ Docker рджреЛрдиреЛрдВ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдИрдЯреА рджрд┐рдЧреНрдЧрдЬ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдирдП рдЙрдкрдХрд░рдг рдХреЛ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХ рдмрдирд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреА рд╣реИред рдЗрд╕реА рд╕рдордп, рджреЛрдиреЛрдВ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдЕрдкрдиреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред



рд╣рдорд╛рд░реЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдмреНрд▓реЙрдЧ рд╕реЗ рдкреЛрд╕реНрдЯ:


рд╣рдорд╛рд░реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рд╕реЗ рдкреЛрд╕реНрдЯ:

Source: https://habr.com/ru/post/hi436536/


All Articles