{"id":76764,"date":"2020-04-04T13:42:24","date_gmt":"2020-04-04T11:42:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee"},"modified":"2020-04-04T13:42:24","modified_gmt":"2020-04-04T11:42:24","slug":"reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","title":{"rendered":"Utg\u00e5van av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Utg\u00e5van av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden\" src=\"\/wp-content\/uploads\/2020\/04\/c7c26e4a0b7bddb90ba087a4db7175dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/\">werf<\/a><\/noindex> \u2014 v\u00e5rt GitOps CLI-verktyg med \u00f6ppen k\u00e4llkod f\u00f6r byggande och leverans av applikationer till Kubernetes. Som vi lovade, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/481306\/\">utgivningen av version v1.0<\/a><\/noindex> markerade b\u00f6rjan p\u00e5 till\u00e4gget av nya funktioner till werf och en \u00f6versyn av de traditionella metoderna. Nu \u00e4r vi glada att presentera release v1.1, som \u00e4r ett stort steg fram\u00e5t och en grund f\u00f6r framtiden. <i>byggverktyg<\/i> werf. Versionen \u00e4r f\u00f6r n\u00e4rvarande tillg\u00e4nglig i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf#backward-compatibility-promise\">kanal 1.1 ea<\/a><\/noindex>.<\/p>\n<p>K\u00e4rnan i versionen \u00e4r den nya arkitekturen f\u00f6r steg-lagring och optimeringen av arbetet f\u00f6r b\u00e5da byggverktygen (f\u00f6r Stapel och Dockerfile). Den nya arkitekturen f\u00f6r lagring \u00f6ppnar m\u00f6jligheter f\u00f6r att genomf\u00f6ra distribuerade byggnader fr\u00e5n flera v\u00e4rdar och parallella byggprocesser p\u00e5 en v\u00e4rd.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Optimeringen av arbetet inneb\u00e4r att on\u00f6diga ber\u00e4kningar i steget f\u00f6r att ber\u00e4kna steg-signaturer avl\u00e4gsnas och mekanismerna f\u00f6r att ber\u00e4kna fil-checksummer g\u00f6rs mer effektiva. Denna optimering minskar den genomsnittliga byggtiden f\u00f6r projekt som anv\u00e4nder werf. Och tomma byggnader, n\u00e4r alla steg finns i cache, <i>stages-storage<\/i>, \u00e4r nu verkligen snabba. I de flesta fall kommer en omstart av byggnaden att ske snabbare \u00e4n p\u00e5 1 sekund! Detta g\u00e4ller \u00e4ven verifieringsprocedurerna f\u00f6r steg under arbetet med teamet. <code>werf deploy<\/code> och <code>werf run<\/code>.<\/p>\n<p>I denna release introducerades ocks\u00e5 en strategi f\u00f6r m\u00e4rkning av bilder baserat p\u00e5 inneh\u00e5ll \u2014 <i>content-based tagging<\/i>, som nu \u00e4r aktiverad som standard och \u00e4r den enda rekommenderade.<\/p>\n<p>L\u00e5t oss ta en n\u00e4rmare titt p\u00e5 de viktigaste nyheterna i werf v1.1, och samtidigt ber\u00e4tta om framtidsplaner.<\/p>\n<h2>Vad har f\u00f6r\u00e4ndrats i werf v1.1?<\/h2>\n<p><\/p>\n<h3>Nytt namnformat f\u00f6r steg och algoritm f\u00f6r urval av steg fr\u00e5n cache<\/h3>\n<p>\nEn ny regel f\u00f6r att generera namn p\u00e5 steg. Nu genererar varje byggt steg ett unikt namn som best\u00e5r av tv\u00e5 delar: signatur (som i v1.0) plus en unik tidsst\u00e4mpel.<\/p>\n<p>Till exempel kan det fullst\u00e4ndiga namnet p\u00e5 stegbilden se ut s\u00e5 h\u00e4r:<\/p>\n<p><code>werf-stages-storage\/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835<\/code><\/p>\n<p>\u2026 eller i generell form:<\/p>\n<p><code>werf-stages-storage\/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC<\/code><\/p>\n<p>H\u00e4r:<\/p>\n<ul>\n<li> <code>SIGNATURE<\/code> \u2014 detta \u00e4r signaturen f\u00f6r steget, som representerar identifieraren f\u00f6r stegets inneh\u00e5ll och beror p\u00e5 historiken f\u00f6r \u00e4ndringar i Git som ledde till detta inneh\u00e5ll;<\/li>\n<li> <code>TIMESTAMP_MILLISEC<\/code> \u2014 detta \u00e4r en garanterat unik identifierare f\u00f6r bilden, som genereras vid byggandet av en ny bild.<\/li>\n<\/ul>\n<p>\nAlgoritmen f\u00f6r att v\u00e4lja steg fr\u00e5n cache baseras p\u00e5 att kontrollera sl\u00e4ktskap mellan Git-commit.<\/p>\n<ol>\n<li> Werf ber\u00e4knar signaturen f\u00f6r en viss fas.<\/li>\n<li> I <i>stages-storage<\/i> Det kan finnas flera faser med denna signatur. Werf v\u00e4ljer alla l\u00e4mpliga faser baserat p\u00e5 signaturen.<\/li>\n<li> Om den aktuella fasen \u00e4r kopplad till Git (git-archive, anpassad fas med Git-patchar: <code>install<\/code>, <code>beforeSetup<\/code>, <code>setup<\/code>; eller git-latest-patch), v\u00e4ljer werf endast de faser som \u00e4r kopplade till en commit som \u00e4r en f\u00f6rfader till den aktuella commit (f\u00f6r vilken byggprocessen har anropats).<\/li>\n<li> Av de \u00e5terst\u00e5ende l\u00e4mpliga faser v\u00e4ljs en - den \u00e4ldsta baserat p\u00e5 skapelsedatum.<\/li>\n<\/ol>\n<p>\nFasen f\u00f6r olika Git-grenar kan ha samma signatur. Men werf f\u00f6rhindrar anv\u00e4ndning av cache som \u00e4r kopplad till olika grenar mellan dessa grenar, \u00e4ven om signaturerna \u00f6verensst\u00e4mmer.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/stages_and_images.html#%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%B4%D0%B8%D0%B9\">\u2192 Dokumentation<\/a><\/noindex>.<\/p>\n<h3>Ny algoritm f\u00f6r skapande och lagring av faser i fassystemet<\/h3>\n<p>\nOm werf inte hittar en l\u00e4mplig fas i cachen n\u00e4r den f\u00f6rs\u00f6ker plocka faser, initieras processen f\u00f6r att bygga en ny fas.<\/p>\n<p>Observera att flera processer (p\u00e5 en eller flera v\u00e4rdar) kan b\u00f6rja bygga samma fas vid ungef\u00e4r samma tidpunkt. Werf anv\u00e4nder en algoritm f\u00f6r optimistisk l\u00e5sning <i>stages-storage<\/i> vid tidpunkten f\u00f6r lagring av den nybyggda bilden i <i>stages-storage<\/i>. S\u00e5 n\u00e4r den nya fasen \u00e4r f\u00e4rdigbyggd, l\u00e5ser werf <i>stages-storage<\/i> och sparar den nybyggda bilden endast om det inte redan finns en l\u00e4mplig bild d\u00e4r <i>(enligt signaturen och andra parametrar - se den nya algoritmen f\u00f6r att plocka faser fr\u00e5n cachen)<\/i>.<\/p>\n<p>Den nybyggda bilden kommer garanterat att ha ett unikt identifieringsnummer enligt <code>TIMESTAMP_MILLISEC<\/code> <i>(se det nya namngivningsformatet f\u00f6r faser)<\/i>. Om en l\u00e4mplig bild i <i>stages-storage<\/i> hittas, kommer werf att avf\u00e4rda den nybyggda bilden och anv\u00e4nda bilden fr\u00e5n cachen.<\/p>\n<p>Med andra ord: den f\u00f6rsta processen som slutf\u00f6r byggandet av bilden (den snabbaste) f\u00e5r r\u00e4tt att spara den i stages-storage (och endast denna bild kommer att anv\u00e4ndas f\u00f6r alla byggprocesser). Den l\u00e5ngsamma byggprocessen kommer aldrig att blockera den snabbare processen fr\u00e5n att spara resultaten av byggandet av den aktuella fasen och g\u00e5 vidare till byggandet av n\u00e4sta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/stages_and_images.html#%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%B8-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%B4%D0%B8%D0%B9\">\u2192 Dokumentation<\/a><\/noindex>.<\/p>\n<h3>Prestandan f\u00f6r Dockerfile-kompilatorn har f\u00f6rb\u00e4ttrats<\/h3>\n<p>\nF\u00f6r n\u00e4rvarande best\u00e5r konvergen av faser f\u00f6r bilden som byggs fr\u00e5n Dockerfile av en fas - <code>dockerfile<\/code>. Vid ber\u00e4kning av signaturen beaktas kontrollsumman av filerna. <code>context<\/code>, som kommer att anv\u00e4ndas vid byggandet. Fram till denna f\u00f6rb\u00e4ttring gick werf rekursivt igenom alla filer och fick en kontrollsumma genom att summera kontexten och modulen av varje fil. Fr\u00e5n och med version v1.1 kan werf anv\u00e4nda ber\u00e4knade kontrollsummor som lagras i Git-f\u00f6rr\u00e5det.<\/p>\n<p>I grunden f\u00f6r algoritmen \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-ls-tree\">git ls-tree<\/a><\/noindex>. Algoritmen tar h\u00e4nsyn till poster i <code>.dockerignore<\/code> och g\u00e5r rekursivt genom filtr\u00e4det endast n\u00e4r det beh\u00f6vs. P\u00e5 s\u00e5 s\u00e4tt har vi kopplat bort l\u00e4sningen av filsystemet, och algoritmens beroende av storlek <code>context<\/code> \u00e4r inte v\u00e4sentligt.<\/p>\n<p>Algoritmen kontrollerar ocks\u00e5 untracked-filer och tar vid behov h\u00e4nsyn till dem i kontrollsumman.<\/p>\n<h3>Prestandan har f\u00f6rb\u00e4ttrats vid import av filer<\/h3>\n<p>\nI wersjoner av werf v1.1 anv\u00e4nds en rsync-server vid <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/configuration\/stapel_image\/import_directive.html\">import av filer fr\u00e5n artefakter och bilder<\/a><\/noindex>. Tidigare utf\u00f6rdes importen i tv\u00e5 steg med anv\u00e4ndning av monterad katalog fr\u00e5n v\u00e4rdsystemet.<\/p>\n<p>Prestanda f\u00f6r importer p\u00e5 macOS \u00e4r inte l\u00e4ngre begr\u00e4nsad av Docker-volymer, utan importer utf\u00f6rs p\u00e5 samma tid som i Linux och Windows.<\/p>\n<h3>Inneh\u00e5llsbaserad m\u00e4rkning<\/h3>\n<p>\nWerf v1.1 st\u00f6djer s\u00e5 kallad m\u00e4rkning baserad p\u00e5 inneh\u00e5llet av bilden \u2014 <i>content-based tagging<\/i>. Taggar f\u00f6r de resulterande Docker-bilderna beror p\u00e5 inneh\u00e5llet i dessa bilder.<\/p>\n<p>N\u00e4r kommandot <code>werf publish --tags-by-stages-signature<\/code> eller <code>werf ci-env --tagging-strategy=stages-signature<\/code> de publicerade bilderna kommer att m\u00e4rkas med den s\u00e5 kallade <b>stadiesignaturen<\/b> f\u00f6r bilden. Varje bild m\u00e4rks med sin egen stadiesignatur, som ber\u00e4knas enligt samma regler som den vanliga signaturen f\u00f6r varje steg var f\u00f6r sig, men som \u00e4r en \u00f6vergripande identifierare f\u00f6r bilden.<\/p>\n<p>Stadiesignaturen f\u00f6r bilden beror p\u00e5:<\/p>\n<ol>\n<li> inneh\u00e5llet i denna bild;<\/li>\n<li> historiken av \u00e4ndringar i Git, som ledde till detta inneh\u00e5ll.<\/li>\n<\/ol>\n<p>\nI Git-f\u00f6rr\u00e5det finns det alltid tomma commits som inte \u00e4ndrar inneh\u00e5llet i bildens filer. Till exempel commits endast med kommentarer eller merge-commits, eller commits som \u00e4ndrar de filer i Git som inte kommer att importeras till bilden.<\/p>\n<p>Genom att anv\u00e4nda inneh\u00e5llsbaserad m\u00e4rkning l\u00f6ses problemen med on\u00f6dig omstart av applikationens poddar i Kubernetes p\u00e5 grund av \u00e4ndringar i bildnamnet, \u00e4ven om inneh\u00e5llet i bilden inte har f\u00f6r\u00e4ndrats. Detta \u00e4r f\u00f6r \u00f6vrigt en av anledningarna till att det \u00e4r sv\u00e5rt att lagra flera mikrotj\u00e4nster av samma applikation i ett enda Git-repo.<\/p>\n<p>Inneh\u00e5llsbaserad m\u00e4rkning \u00e4r ocks\u00e5 en mer p\u00e5litlig metod f\u00f6r m\u00e4rkning \u00e4n m\u00e4rkning baserad p\u00e5 Git-grenar, eftersom inneh\u00e5llet i de resulterande bilderna inte beror p\u00e5 ordningen i vilken pipelinerna i CI-systemet k\u00f6rs f\u00f6r att bygga flera commits fr\u00e5n samma gren.<\/p>\n<p><b>Det \u00e4r viktigt<\/b>: fr\u00e5n och med nu <i>stages-signature<\/i> \u2014 detta \u00e4r <b>den enda rekommenderade taggningsstrategin<\/b>. Denna kommer att anv\u00e4ndas som standard i teamet <code>werf ci-env<\/code> (om inte en annan taggningsschema anges specifikt).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/publish_process.html#%D1%82%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%BC%D1%83\">\u2192 Dokumentation<\/a><\/noindex>. Denna funktion kommer ocks\u00e5 att f\u00e5 en separat publikation. <b>UPPDATERAD<\/b> (3 april): Artikel med detaljer <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/495112\/\">i sin helhet i \"Vladikavkaz Mathematical Journal\".<\/a><\/noindex>.<\/p>\n<h3>Loggniv\u00e5er<\/h3>\n<p>\nAnv\u00e4ndaren har nu m\u00f6jlighet att kontrollera utmatningen, st\u00e4lla in loggniv\u00e5er och arbeta med fels\u00f6kningsinformation. Nyttiga alternativ har lagts till <code>--log-quiet<\/code>, <code>--log-verbose<\/code>, <code>--log-debug<\/code>.<\/p>\n<p>Som standard inneh\u00e5ller utmatningen minimalt med information:<\/p>\n<p><img decoding=\"async\" alt=\"Utg\u00e5van av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden\" src=\"\/wp-content\/uploads\/2020\/04\/58e981b2e0c579ddde817eadc1732874.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMed detaljerad utmatning (<code>--log-verbose<\/code>) kan man f\u00f6lja hur werf fungerar:<\/p>\n<p><img decoding=\"async\" alt=\"Utg\u00e5van av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden\" src=\"\/wp-content\/uploads\/2020\/04\/487ed5dfc5df0178f7c09f8da697ceff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetaljerad utmatning (<code>--log-debug<\/code>), f\u00f6rutom fels\u00f6kningsinformationen fr\u00e5n werf, inneh\u00e5ller \u00e4ven loggar fr\u00e5n de anv\u00e4nda biblioteken. Man kan exempelvis se hur interaktionen med Docker Registry g\u00e5r till och \u00e4ven notera var det g\u00e5r \u00e5t mycket tid:<\/p>\n<p><img decoding=\"async\" alt=\"Utg\u00e5van av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden\" src=\"\/wp-content\/uploads\/2020\/04\/99c1f3c2ab3803ff11fae1f2d5c9a5af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Framtida planer<\/h2>\n<p>\n<b>Varning!<\/b> De m\u00f6jligheter som beskrivs nedan och m\u00e4rkts med <b>v1.1<\/b> kommer att finnas tillg\u00e4ngliga i denna version, m\u00e5nga av dem \u2014 inom kort. Uppdateringar kommer genom automatiska uppdateringar <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">vid anv\u00e4ndning av multiwerf<\/a><\/noindex>. Dessa funktioner p\u00e5verkar inte den stabila delen av funktionerna i v1.1, och deras introduktion kr\u00e4ver ingen manuell inblandning fr\u00e5n anv\u00e4ndarens sida i redan existerande konfigurationer.<\/p>\n<h3>Fullt st\u00f6d f\u00f6r olika implementationer av Docker Registry (NYTT)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Tidsplan: mars<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2199\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nM\u00e5let \u00e4r att anv\u00e4ndaren ska kunna anv\u00e4nda valfri implementation utan begr\u00e4nsningar vid anv\u00e4ndning av werf. <\/p>\n<p>F\u00f6r n\u00e4rvarande har vi identifierat f\u00f6ljande upps\u00e4ttning l\u00f6sningar som vi avser att garantera fullt st\u00f6d f\u00f6r:<\/p>\n<ul>\n<li> Default (library\/registry)*,<\/li>\n<li> AWS ECR,<\/li>\n<li> Azure*,<\/li>\n<li> Docker Hub,<\/li>\n<li> GCR*,<\/li>\n<li> GitHub Packages,<\/li>\n<li> GitLab Registry*,<\/li>\n<li> Harbor*,<\/li>\n<li> Quay.<\/li>\n<\/ul>\n<p>\nL\u00f6sningar markerade med stj\u00e4rna \u00e4r redan helt st\u00f6dja av werf. F\u00f6r de andra finns det st\u00f6d, men med begr\u00e4nsningar.<\/p>\n<p>Tv\u00e5 huvudproblem kan identifieras:<\/p>\n<ul>\n<li> Vissa l\u00f6sningar st\u00f6der inte borttagning av taggar med hj\u00e4lp av Docker Registry API, vilket g\u00f6r det om\u00f6jligt f\u00f6r anv\u00e4ndare att anv\u00e4nda den automatiska rensningen som implementerats i werf. Detta g\u00e4ller AWS ECR, Docker Hub och GitHub Packages.<\/li>\n<li> Vissa l\u00f6sningar st\u00f6der inte s\u00e5 kallade nested repositories (Docker Hub, GitHub Packages och Quay) eller st\u00f6der dem men anv\u00e4ndaren m\u00e5ste skapa dem manuellt via UI eller API (AWS ECR).<\/li>\n<\/ul>\n<p>\nDessa och andra problem planerar vi att l\u00f6sa med hj\u00e4lp av inbyggda API:er i l\u00f6sningarna. Denna uppgift omfattar \u00e4ven testt\u00e4ckning av hela arbetscykeln f\u00f6r werf f\u00f6r var och en av dem.<\/p>\n<h3>Distribuerad byggande av bilder (\u2191)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.2 v1.1 (prioriteringen f\u00f6r implementeringen av denna funktion har \u00f6kat)<\/i><\/li>\n<li> <i>Tidsramar: mars-april mars<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/1614\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nF\u00f6r n\u00e4rvarande kan werf v1.0 och v1.1 endast anv\u00e4ndas p\u00e5 en dedikerad v\u00e4rd f\u00f6r operationer med byggande och publicering av bilder samt deployment av applikationer i Kubernetes.<\/p>\n<p>F\u00f6r att \u00f6ppna m\u00f6jligheterna f\u00f6r distribuerat arbete med werf, n\u00e4r byggande och deployment av applikationer i Kubernetes startas p\u00e5 flera slumpm\u00e4ssiga v\u00e4rdar och dessa v\u00e4rdar inte beh\u00e5ller sitt tillst\u00e5nd mellan byggnader (tillf\u00e4lliga runner), kr\u00e4vs det att werf implementerar m\u00f6jligheten att anv\u00e4nda Docker Registry som lagring av steg.<\/p>\n<p>Tidigare, n\u00e4r projektet werf fortfarande kallades dapp, fanns det denna m\u00f6jlighet. Men vi st\u00f6ttes p\u00e5 flera problem som m\u00e5ste beaktas vid implementeringen av denna funktion i werf.<\/p>\n<p><b>Anm\u00e4rkning<\/b>. Denna funktionalitet f\u00f6ruts\u00e4tter inte att byggaren arbetar inom Kubernetes-poddar, eftersom det skulle kr\u00e4va att man avl\u00e4gsnar beroendet av den lokala Docker-servern (det finns ingen \u00e5tkomst till den lokala Docker-servern i Kubernetes-podden, eftersom sj\u00e4lva processen k\u00f6rs i en container, och werf st\u00f6djer inte och kommer inte att st\u00f6dja arbete med Docker-servern \u00f6ver n\u00e4tverket). St\u00f6d f\u00f6r arbete i Kubernetes kommer att implementeras separat.<\/p>\n<h3>Officiellt st\u00f6d f\u00f6r GitHub Actions (NYTT)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Tidsplan: mars<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2210\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nInkluderar dokumentationen f\u00f6r werf (avsnitt <i>referens<\/i> och <i>guide<\/i>), samt officiell GitHub Action f\u00f6r arbete med werf.<\/p>\n<p>Dessutom kommer det att m\u00f6jligg\u00f6ra att werf arbetar p\u00e5 tempor\u00e4ra runner.<\/p>\n<p>Interaktionen mellan anv\u00e4ndaren och CI-systemet kommer att baseras p\u00e5 att s\u00e4tta etiketter p\u00e5 pull-f\u00f6rfr\u00e5gningar f\u00f6r att initiera vissa \u00e5tg\u00e4rder f\u00f6r byggande\/ut\u00f6kan av applikationen.<\/p>\n<h3>Lokal utveckling och distribution av applikationer med werf (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Tidsramar: januari-februari april<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/1940\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nHuvudm\u00e5let \u00e4r att uppn\u00e5 en enhetlig och standardiserad konfiguration f\u00f6r distribution av applikationer b\u00e5de lokalt och i produktion, utan komplicerade \u00e5tg\u00e4rder, \"ur l\u00e5dan\".<\/p>\n<p>Werf kr\u00e4ver ocks\u00e5 ett arbetsl\u00e4ge d\u00e4r det \u00e4r bekv\u00e4mt att redigera applikationskoden och omedelbart f\u00e5 \u00e5terkoppling fr\u00e5n den k\u00f6rande applikationen f\u00f6r fels\u00f6kning.<\/p>\n<h3>Ny rensningsalgoritm (NYTT)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Tidsramar: april<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2212\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nI den aktuella versionen av werf v1.1 ing\u00e5r inte rensning av bilder f\u00f6r inneh\u00e5llsbaserat taggning - dessa bilder kommer att samlas. <code>\u2014 borttagning av instansen.<\/code> I den nuvarande versionen av werf (v1.0 och v1.1) anv\u00e4nds olika rensningspolicyer f\u00f6r bilder publicerade enligt taggningsscheman: Git-gren, Git-tag eller Git-commit.<\/p>\n<p>En ny enhetlig algoritm f\u00f6r rensning av bilder baserad p\u00e5 Git-commit-historik har tagits fram f\u00f6r alla taggningsscheman:<\/p>\n<p>Beh\u00e5ll inte fler \u00e4n N1 bilder kopplade till de N2 senaste commits f\u00f6r var och en av git HEAD (grenar och taggar).<\/p>\n<ul>\n<li> Beh\u00e5ll inte fler \u00e4n N1 stadiebilder kopplade till de N2 senaste commits f\u00f6r var och en av git HEAD (grenar och taggar).<\/li>\n<li> Beh\u00e5ll alla bilder som anv\u00e4nds i n\u00e5gra resurser i Kubernetes-klustret (alla kube-kontexter i konfigurationsfilen och namespaces skannas; detta beteende kan begr\u00e4nsas med speciella alternativ).<\/li>\n<li> Lagra alla bilder som anv\u00e4nds i n\u00e5got av Kubernetes-klustrets resurser (alla kube-kontexter i konfigurationsfilen och namespace skannas; detta beteende kan begr\u00e4nsas med specifika alternativ).<\/li>\n<li> En bild kan raderas om den inte \u00e4r kopplad till n\u00e5gon HEAD fr\u00e5n git (till exempel eftersom den motsvarande HEAD har tagits bort) och inte anv\u00e4nds i n\u00e5got av manifesten i Kubernetes-klustret och i Helm-releaser.<\/li>\n<li> Parallell byggande av bilder (\u2193)<\/li>\n<\/ul>\n<p><\/p>\n<h3>Tidsramar: januari-februari april*<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Den aktuella versionen av werf bygger bilder och artefakter som beskrivs i<\/i><\/li>\n<\/ul>\n<p>\n, i f\u00f6ljd. Det \u00e4r n\u00f6dv\u00e4ndigt att parallellisera byggprocessen av oberoende stadier av bilder och artefakter samt s\u00e4kerst\u00e4lla en bekv\u00e4m och informativ utdata. <code>werf.yaml<\/code>* Not: tidsramen har flyttats p\u00e5 grund av \u00f6kad prioritet f\u00f6r genomf\u00f6randet av distribuerad byggnation, vilket kommer att ge fler m\u00f6jligheter f\u00f6r horisontell skalning och anv\u00e4ndning av werf med GitHub Actions. Parallell byggnation \u00e4r n\u00e4sta steg mot optimering, vilket ger vertikal skalbarhet vid byggandet av ett enda projekt.<\/p>\n<p><i>\u00d6verg\u00e5ng till Helm 3 (\u2193)<\/i><\/p>\n<h3>Version: v1.2<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Tidsramar: februari-mars maj*<\/i><\/li>\n<li> <i>Inkluderar en \u00f6verg\u00e5ng till en ny kodbas<\/i><\/li>\n<\/ul>\n<p>\noch en bepr\u00f6vad, bekv\u00e4m metod f\u00f6r migrering av befintliga installationer. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/475722\/\">Helm 3<\/a><\/noindex> och bepr\u00f6vad, smidig metod f\u00f6r att migrera befintliga installationer.<\/p>\n<p><i>* Notera: \u00d6verg\u00e5ngen till Helm 3 kommer inte att tillf\u00f6ra n\u00e5gra avsev\u00e4rda funktioner i werf, eftersom alla nyckelfunktioner i Helm 3 (3-v\u00e4gs-sammanslagning och avsaknad av tiller) redan \u00e4r implementerade i werf. Dessutom har werf <noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/documentation\/reference\/deploy_process\/differences_with_helm.html\">ytterligare funktioner<\/a><\/noindex> ut\u00f6ver de angivna. Dock f\u00f6rblir denna \u00f6verg\u00e5ng i v\u00e5ra planer och kommer att genomf\u00f6ras.<\/i><\/p>\n<h3>Jsonnet f\u00f6r att beskriva Kubernetes-konfiguration (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Tidsramar: februari-mars maj*<\/i><\/li>\n<li> <i>Tidsramar: januari-februari, april-maj<\/i><\/li>\n<\/ul>\n<p>\nWerf kommer att st\u00f6dja beskrivningen av konfiguration f\u00f6r Kubernetes i Jsonnet-format. Samtidigt kommer werf att f\u00f6rbli kompatibelt med Helm och det kommer att finnas m\u00f6jlighet att v\u00e4lja beskrivningsformat.<\/p>\n<p>Anledningen \u00e4r att mallarna i Go spr\u00e5ket, enligt m\u00e5nga, har en h\u00f6g inl\u00e4rningstr\u00f6skel och f\u00f6rst\u00e5elsen av koden i dessa mallar lider ocks\u00e5.<\/p>\n<p>Det \u00f6verv\u00e4gs ocks\u00e5 att implementera andra system f\u00f6r beskrivning av Kubernetes-konfiguration (t.ex. Kustomize).<\/p>\n<h3>Arbete inom Kubernetes (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Tidsramar: februari-mars maj*<\/i><\/li>\n<li> <i>Tidsramar: april-maj, maj-juni<\/i><\/li>\n<\/ul>\n<p>\nM\u00e5l: att s\u00e4kerst\u00e4lla byggandet av bilder och leverans av applikationen med hj\u00e4lp av runner i Kubernetes. D.v.s. byggandet av nya bilder, deras publicering, reng\u00f6ring och distribution kan ske direkt fr\u00e5n poddar i Kubernetes.<\/p>\n<p>F\u00f6r att genomf\u00f6ra denna m\u00f6jlighet kr\u00e4vs f\u00f6rst en f\u00f6rm\u00e5ga till distribuerad byggnation av bilder <i>(se punkt ovan)<\/i>.<\/p>\n<p>Det kr\u00e4vs ocks\u00e5 st\u00f6d f\u00f6r arbetss\u00e4ttet d\u00e4r byggaren fungerar utan Docker-server (d.v.s. Kaniko-liknande byggande eller byggnation i anv\u00e4ndarrum).<\/p>\n<p>Werf kommer att st\u00f6dja byggnation i Kubernetes inte bara med hj\u00e4lp av Dockerfile, utan ocks\u00e5 med sin egen byggare Stapel med inkrementella ombyggnader och Ansible.<\/p>\n<h2>Ett steg mot \u00f6ppen utveckling<\/h2>\n<p>\nVi \u00e4lskar v\u00e5rt samh\u00e4lle (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">GitHub<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/werf_ru\">Telegram<\/a><\/noindex>) och vill att fler m\u00e4nniskor ska hj\u00e4lpa till att g\u00f6ra werf b\u00e4ttre, f\u00f6rst\u00e5 i vilken riktning vi g\u00e5r och delta i utvecklingen.<\/p>\n<p>Det har nyligen beslutats att g\u00e5 \u00f6ver till <noindex><a rel=\"nofollow\" href=\"https:\/\/help.github.com\/en\/github\/managing-your-work-on-github\/about-project-boards\">GitHub projektbr\u00e4dor<\/a><\/noindex> f\u00f6r att \u00f6ppna upp v\u00e5r teams arbetsprocess. Nu kan man se de n\u00e4rmaste planerna samt de aktuella arbetena inom f\u00f6ljande omr\u00e5den:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/9\">Dokumentation och Webbplats<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/7\">Testning<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/6\">Buggar och D\u00e5lig UX<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/5\">1.1<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nEtt stort arbete har utf\u00f6rts med issues:<\/p>\n<ul>\n<li> Obsoleta har tagits bort.<\/li>\n<li> De befintliga har formats om till ett enhetligt format med tillr\u00e4cklig m\u00e4ngd detaljer och insikter.<\/li>\n<li> Nya issues med id\u00e9er och f\u00f6rslag har lagts till.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Hur man aktiverar version v1.1<\/h2>\n<p>\nVersionen \u00e4r f\u00f6r n\u00e4rvarande tillg\u00e4nglig i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf#backward-compatibility-promise\">kanal 1.1 ea<\/a><\/noindex> (i kanalerna <i>stable<\/i> och <i>rock-solid<\/i> utg\u00e5vor kommer att g\u00f6ras tillg\u00e4ngliga allteftersom stabiliseringen sker, men <i>ea<\/i> \u00e4r redan tillr\u00e4ckligt stabil f\u00f6r anv\u00e4ndning, eftersom den har passerat genom kanaler. <i>alpha<\/i> och <i>beta<\/i>). Aktiveras <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">genom multiwerf<\/a><\/noindex> p\u00e5 f\u00f6ljande s\u00e4tt:<\/p>\n<pre><code class=\"bash\">source $(multiwerf use 1.1 ea)\nwerf KOMMAND ...<\/code><\/pre>\n<p><\/p>\n<h2>Slutsats<\/h2>\n<p>\nDen nya lagringsarkitekturen f\u00f6r steg och optimering av byggverktygen f\u00f6r Stapel och Dockerfile byggare \u00f6ppnar m\u00f6jligheter att genomf\u00f6ra distribuerade och parallella byggnationer i werf. Dessa m\u00f6jligheter kommer snart att vara tillg\u00e4ngliga i samma release av v1.1 och bli automatiskt tillg\u00e4ngliga genom autouppdateringssystemet (f\u00f6r anv\u00e4ndare <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">multiwerf<\/a><\/noindex>). <\/p>\n<p>I denna release har en taggstrategi baserat p\u00e5 inneh\u00e5llet i bilder lagts till \u2014 <i>content-based tagging<\/i>, \u2014 vilket blivit standardstrategin. En logg \u00f6ver de viktigaste kommandona har ocks\u00e5 omarbetats: <code>werf build<\/code>, <code>werf publish<\/code>, <code>werf deploy<\/code>, <code>werf dismiss<\/code>, <code>werf cleanup<\/code>.<\/p>\n<p>Ett n\u00e4sta betydande steg kommer att vara till\u00e4gget av distribuerade byggningar. Distribuerade byggningar har sedan v1.0 blivit en mer prioriterad uppgift \u00e4n parallella byggningar, eftersom de tillf\u00f6r mer v\u00e4rde till werf: vertikal skalning av byggverktyg och st\u00f6d f\u00f6r tillf\u00e4lliga byggverktyg i olika CI\/CD-system, samt m\u00f6jligheten att erbjuda officiellt st\u00f6d f\u00f6r GitHub Actions. D\u00e4rf\u00f6r har tidsplaneringen f\u00f6r implementeringen av parallella byggningar flyttats. Men vi arbetar f\u00f6r att snabbt kunna realisera b\u00e5da m\u00f6jligheterna.<\/p>\n<p>H\u00e5ll dig uppdaterad! Och gl\u00f6m inte att bes\u00f6ka oss p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">GitHub<\/a><\/noindex>, f\u00f6r att skapa en issue, hitta en som redan finns och ge den ett plus, skapa en PR eller bara f\u00f6lja projektets utveckling.<\/p>\n<h2>P.S.<\/h2>\n<p>\nL\u00e4s \u00e4ven i v\u00e5r blogg:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/481306\/\">Vi presenterar werf 1.0 stabil: vad har GitOps med detta att g\u00f6ra, status och planer<\/a><\/noindex>\u00bb<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 v\u00e5rt verktyg f\u00f6r CI\/CD i Kubernetes (\u00f6versikt och videof\u00f6rel\u00e4sning)<\/a><\/noindex>\u00bb;<\/li>\n<li> Noteringar om nyheter i werf:\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/476646\/\">3-v\u00e4gs sammanslagning i werf: distribution i Kubernetes med Helm \"p\u00e5 steroider\"<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468049\/\">Anv\u00e4ndningen av werf f\u00f6r distribution av komplexa Helm-diagram<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465131\/\">St\u00f6d f\u00f6r monorepo och multirepo i werf och vad Docker Registry har med det att g\u00f6ra<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/463613\/\">Att samla Docker-bilder i werf \u00e4r nu ocks\u00e5 m\u00f6jligt med en vanlig Dockerfile<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/493170\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>werf \u2014 \u043d\u0430\u0448\u0430 GitOps CLI-\u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 Kubernetes. \u041a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b\u0438, \u0432\u044b\u0445\u043e\u0434 \u0432\u0435\u0440\u0441\u0438\u0438 v1.0 \u0437\u043d\u0430\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u043d\u0430\u0447\u0430\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 werf \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043b\u0438\u0437 v1.1, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u0438 \u0437\u0430\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 werf. \u0412\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":76765,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-76764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 werf 1.1: \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-04T11:42:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-04T11:42:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Release av werf 1.1: f\u00f6rb\u00e4ttringar i byggverktyget idag och planer f\u00f6r framtiden | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 werf 1.1: \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-04T11:42:24+00:00","article:modified_time":"2020-04-04T11:42:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76764","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:30:23","updated":"2022-09-28 14:39:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/76764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=76764"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/76764\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/76765"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=76764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=76764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=76764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}