{"id":80102,"date":"2021-08-16T11:34:55","date_gmt":"2021-08-16T09:34:55","guid":{"rendered":"https:\/\/jfrog.com\/?p=80102"},"modified":"2021-08-16T11:34:55","modified_gmt":"2021-08-16T09:34:55","slug":"why-goproxy-matters-and-which-to-pick","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/","title":{"rendered":"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-57979\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210610\/GoProxyKnotBlog-04.png\" alt=\"\" width=\"864\" height=\"300\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210610\/GoProxyKnotBlog-04.png?speedsize=w_864 864w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210610\/GoProxyKnotBlog-04.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210610\/GoProxyKnotBlog-04.png?speedsize=w_768 768w\" sizes=\"(max-width: 864px) 100vw, 864px\" \/><\/p>\n<p><em><strong>Remarque\u00a0:\u00a0<\/strong>ce blog a \u00e9t\u00e9 mis \u00e0 jour pour illustrer la <a href=\"https:\/\/jfrog.com\/fr\/blog\/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter\/\" target=\"_blank\" rel=\"noopener noreferrer\">mise hors service de JFrog\u00a0GoCenter<\/a>.<\/em><\/p>\n<p><span style=\"font-weight: 400\">\u00c0 partir de la version 1.13 de\u00a0Go, les modules Go sont le gestionnaire de paquets standard dans Golang, activ\u00e9 automatiquement \u00e0 l\u2019installation avec un GOPROXY par d\u00e9faut.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Mais avec ce GOPROXY ainsi que vos propres paquets de modules\u00a0Go que vous devez conserver \u00e0 l\u2019abri des regards, quel type de configuration devez-vous choisir\u00a0? Comment \u00e9viter que vos ressources Golang publiques et priv\u00e9es ne deviennent un n\u0153ud enchev\u00eatr\u00e9\u00a0?<\/span><\/p>\n<p><span style=\"font-weight: 400\">Voyons \u00e0 quoi sert un GOPROXY et comment le configurer pour obtenir un syst\u00e8me rapide, fiable et s\u00fbr.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Qu\u2019est-ce qu\u2019un GOPROXY\u00a0?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Un GOPROXY contr\u00f4le la source de vos t\u00e9l\u00e9chargements de modules\u00a0Go et peut aider \u00e0 garantir des builds reproductibles et s\u00e9curis\u00e9s.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pour d\u00e9velopper en Golang avant l\u2019\u00e8re GOPROXY, les d\u00e9pendances des modules \u00e9taient t\u00e9l\u00e9charg\u00e9es directement depuis leurs d\u00e9p\u00f4ts source dans des syst\u00e8mes VCS tels que GitHub, Bitbucket, Bazaar, Mercurial ou SVN. Les d\u00e9pendances externes sont g\u00e9n\u00e9ralement t\u00e9l\u00e9charg\u00e9es \u00e0 partir de d\u00e9p\u00f4ts sources publics. Les d\u00e9pendances priv\u00e9es doivent s\u2019authentifier aupr\u00e8s du syst\u00e8me VCS o\u00f9 elles sont stock\u00e9es pour t\u00e9l\u00e9charger les fichiers sources du module.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-58029\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1-1024x531.png\" alt=\"\" width=\"1024\" height=\"531\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1.png?speedsize=w_768 768w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1.png?speedsize=w_1536 1536w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06184133\/GoProxyKnot-Diagram-1.png?speedsize=w_1600 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Bien que le workflow ci-dessus ait \u00e9t\u00e9 largement utilis\u00e9, il ne r\u00e9pondait pas aux deux exigences fondamentales d\u2019un processus de build et de d\u00e9veloppement d\u00e9terministe et s\u00e9curis\u00e9\u00a0: immuabilit\u00e9 et disponibilit\u00e9. Les modules peuvent \u00eatre effac\u00e9s par l\u2019auteur ou les versions peuvent \u00eatre modifi\u00e9es. Bien que ces sc\u00e9narios soient consid\u00e9r\u00e9s comme de mauvaises pratiques, ils se produisent fr\u00e9quemment.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Utilisation d\u2019un GOPROXY\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Le fait de configurer un GOPROXY pour votre environnement de d\u00e9veloppement ou de CI\u00a0Golang redirige les requ\u00eates de t\u00e9l\u00e9chargement de modules\u00a0Go vers un d\u00e9p\u00f4t en cache.<\/span><\/p>\n<p><span style=\"font-weight: 400\">L\u2019utilisation d\u2019un GOPROXY pour les d\u00e9pendances des modules contribue \u00e0 mettre en \u0153uvre l\u2019exigence d\u2019immuabilit\u00e9. En renvoyant le module \u00e0 partir du cache du GOPROXY, il fournit toujours le m\u00eame code pour une version demand\u00e9e, m\u00eame si le module a \u00e9t\u00e9 modifi\u00e9 de mani\u00e8re inappropri\u00e9e plus r\u00e9cemment dans le d\u00e9p\u00f4t VCS.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Le cache du GOPROXY permet \u00e9galement de s\u2019assurer que le module est toujours disponible, m\u00eame si l\u2019original se trouvant dans le d\u00e9p\u00f4t VCS est d\u00e9truit.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Il existe diff\u00e9rentes fa\u00e7ons d\u2019utiliser GOPROXY, en fonction de la source des d\u00e9pendances des modules\u00a0Go que vous pr\u00e9voyez d\u2019utiliser.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">GOPROXY\u00a0public<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Un GOPROXY\u00a0public est un d\u00e9p\u00f4t centralis\u00e9 disponible pour les d\u00e9veloppeurs\u00a0Golang \u00e0 travers le monde. Il h\u00e9berge des modules\u00a0Go open source qui ont \u00e9t\u00e9 mis \u00e0 disposition par des tiers dans des d\u00e9p\u00f4ts de projets VCS accessibles au public. La plupart, comme <code>proxy.golang.org<\/code> sont fournis gratuitement \u00e0 la communaut\u00e9 des d\u00e9veloppeurs\u00a0Golang.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-74164\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210740\/GoProxyKnot-Diagram-2.png\" alt=\"\" width=\"1024\" height=\"547\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210740\/GoProxyKnot-Diagram-2.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210740\/GoProxyKnot-Diagram-2.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210740\/GoProxyKnot-Diagram-2.png?speedsize=w_768 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Pour utiliser un GOPROXY\u00a0public, il suffit de configurer la variable d\u2019environnement\u00a0Golang avec son URL\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ export GOPROXY=https:\/\/proxy.golang.org<\/span><\/pre>\n<\/div>\n<p><span style=\"font-weight: 400\">Le param\u00e8tre ci-dessus redirige toutes les demandes de t\u00e9l\u00e9chargement de module vers le d\u00e9p\u00f4t de modules\u00a0Go g\u00e9r\u00e9 par l\u2019\u00e9quipe\u00a0Golang. <\/span><a href=\"https:\/\/jfrog.com\/fr\/blog\/build-times-matter-speed-is-everything\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">Les t\u00e9l\u00e9chargements \u00e0 partir d\u2019un GOPROXY\u00a0public peuvent \u00eatre beaucoup plus rapides<\/span><\/a><span style=\"font-weight: 400\"> que ceux effectu\u00e9s directement \u00e0 partir du VCS, en <\/span><span style=\"font-weight: 400\">t\u00e9l\u00e9chargeant un fichier d\u2019archive de module<\/span><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En plus de faciliter les t\u00e9l\u00e9chargements, un GOPROXY\u00a0public peut \u00e9galement fournir aux d\u00e9veloppeurs\u00a0GoLang des informations plus d\u00e9taill\u00e9es sur les modules qu\u2019il contient. L\u2019interface utilisateur de <a href=\"https:\/\/pkg.go.dev\/\" target=\"_blank\" rel=\"noopener noreferrer\">pkg.go.dev<\/a><\/span><span style=\"font-weight: 400\"> permet de rechercher des modules et fournit quelques statistiques de base.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Modules\u00a0Go Priv\u00e9s<\/span><\/h3>\n<p><span style=\"font-weight: 400\">En g\u00e9n\u00e9ral, les projets GoLang utilisent \u00e0 la fois des d\u00e9pendances de modules open source et priv\u00e9s. Certains utilisateurs utilisent la variable d\u2019environnement\u00a0GOPRIVATE pour sp\u00e9cifier une liste de chemins qui doivent contourner\u00a0GOPROXY et GOSUMDB et t\u00e9l\u00e9charger des modules priv\u00e9s directement depuis ces d\u00e9p\u00f4ts\u00a0VCS. Par exemple, on peut utiliser <code>proxy.golang.org<\/code> pour r\u00e9cup\u00e9rer tous les modules open source mais demander que les modules priv\u00e9s proviennent uniquement des serveurs de votre entreprise.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-74165\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210814\/GoProxyKnot-Diagram-3.png\" alt=\"\" width=\"1024\" height=\"477\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210814\/GoProxyKnot-Diagram-3.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210814\/GoProxyKnot-Diagram-3.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210814\/GoProxyKnot-Diagram-3.png?speedsize=w_768 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Pour utiliser ce GOPROXY public avec des modules priv\u00e9s, il faut d\u00e9finir les variables d\u2019environnement Golang\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ export GOPROXY=https:\/\/proxy.golang.org,direct\r\n$ export GOPRIVATE=*.internal.mycompany.com<\/span><\/pre>\n<\/div>\n<p><span style=\"font-weight: 400\">Cette utilisation de GOPRIVATE garantit \u00e9galement que l\u2019utilisation de ces modules priv\u00e9s n\u2019est pas \u00ab\u00a0divulgu\u00e9e\u00a0\u00bb par le biais de requ\u00eates adress\u00e9es \u00e0 un serveur public GOPROXY et de base de donn\u00e9es de checksums sur un r\u00e9seau ouvert. Une autre alternative consiste \u00e0 utiliser la variable GONOSUMDB qui inclut des r\u00e9f\u00e9rences \u00e0 des modules Go priv\u00e9s. Bien que cette configuration permette au client Go de r\u00e9soudre les d\u00e9pendances des modules publics et priv\u00e9s, elle n\u2019applique pas les exigences d\u2019immuabilit\u00e9 ou de disponibilit\u00e9 pour les modules priv\u00e9s.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">GOPROXY\u00a0Priv\u00e9<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Un GOPROXY\u00a0priv\u00e9 permet de stocker des modules Go publics et priv\u00e9s sur votre propre infrastructure.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Les modules publics sont mis en cache localement par l\u2019interm\u00e9diaire d\u2019un GOPROXY\u00a0public dans un gestionnaire de d\u00e9p\u00f4ts de binaires comme JFrog\u00a0Artifactory. Les modules priv\u00e9s sont \u00e9galement mis en cache dans un d\u00e9p\u00f4t \u00e0 partir de leurs d\u00e9p\u00f4ts\u00a0VCS. De cette fa\u00e7on, l\u2019immuabilit\u00e9 et la disponibilit\u00e9 peuvent \u00eatre garanties pour les modules\u00a0Go publics et priv\u00e9s.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans Artifactory, une combinaison d\u2019un d\u00e9p\u00f4t distant pour <code>proxy.golang.org<\/code>, un d\u00e9p\u00f4t de module Go distant qui pointe vers des d\u00e9p\u00f4ts GitHub priv\u00e9s (pour les modules priv\u00e9s) et un d\u00e9p\u00f4t de module\u00a0Go local peuvent \u00eatre combin\u00e9s en un seul d\u00e9p\u00f4t virtuel, auquel on acc\u00e8de comme une seule entit\u00e9.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-74166\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210854\/GoProxyKnot-Diagram-4.png\" alt=\"\" width=\"1024\" height=\"607\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210854\/GoProxyKnot-Diagram-4.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210854\/GoProxyKnot-Diagram-4.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/26210854\/GoProxyKnot-Diagram-4.png?speedsize=w_768 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Pour d\u00e9finir votre GOPROXY pour un d\u00e9p\u00f4t virtuel nomm\u00e9 \u00ab\u00a0go\u00a0\u00bb dans Artifactory\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ export GOPROXY=&quot;https:\/\/:@my.artifactory.server\/artifactory\/api\/go\/go\r\n$ export GONOSUMDB=&quot;github.com\/mycompany\/*,github.com\/mypersonal\/*\u00a0\u00bb<\/span><\/pre>\n<\/div>\n<p><span style=\"font-weight: 400\">Puisque les modules de vos d\u00e9p\u00f4ts VCS priv\u00e9s n\u2019auront pas d\u2019entr\u00e9es dans la base de donn\u00e9es publique des checksums \u00e0 l\u2019adresse <code>sum.golang.org<\/code>, ils doivent \u00eatre exclus de cette v\u00e9rification par le client go. Vous pouvez y parvenir en d\u00e9finissant GONOSUMDB dans vos d\u00e9p\u00f4ts VCS priv\u00e9s, ce qui emp\u00eacher \u00e9vitera que vos commandes <code>go get<\/code> pour ces modules priv\u00e9s n\u2019\u00e9chouent en raison d\u2019une non-concordance des checksums.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans cette configuration, vous vous assurez qu\u2019aucune de vos r\u00e9f\u00e9rences aux modules priv\u00e9s n\u2019est \u00ab\u00a0divulgu\u00e9e\u00a0\u00bb, tout en appliquant l\u2019immuabilit\u00e9 et la disponibilit\u00e9 des modules publics et priv\u00e9s.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Couper les N\u0153uds<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Comme vous pouvez le constater, l\u2019utilisation d\u2019un GOPROXY priv\u00e9 offre davantage de certitude, de fiabilit\u00e9 et de s\u00e9curit\u00e9.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">La proximit\u00e9 r\u00e9seau de votre GOPROXY priv\u00e9 avec vos outils de build peut \u00e9galement acc\u00e9l\u00e9rer la r\u00e9solution des d\u00e9pendances des modules. JFrog\u00a0Artifactory peut \u00eatre install\u00e9 l\u00e0 o\u00f9 vous en avez le plus besoin\u00a0: sur site ou dans le cloud, ou en tant qu\u2019abonnement SaaS sur les trois principaux fournisseurs de cloud public.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ces avantages ne se limitent pas non plus \u00e0 la communaut\u00e9 des d\u00e9veloppeurs Go. La plupart des entreprises technologiques utilisent plus d\u2019un langage et plusieurs gestionnaires de packages. Par exemple, si le code est \u00e9crit en Golang, npm peut \u00eatre utilis\u00e9 pour l\u2019interface utilisateur, Docker peut \u00eatre utilis\u00e9 pour distribuer des bits et Helm peut \u00eatre utilis\u00e9 pour d\u00e9ployer des applications sur K8s.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Avec la prise en charge de plus de 27\u00a0types de packages, Artifactory peut favoriser un processus de d\u00e9veloppement logiciel d\u00e9terministe, stable et s\u00e9curis\u00e9 pour toutes les applications. Nous vous proposons de faire un essai gratuit et de d\u00e9couvrir comment Artifactory peut vous permettre de vous orienter et d\u2019assurer la libre circulation de vos logiciels.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Remarque\u00a0:\u00a0ce blog a \u00e9t\u00e9 mis \u00e0 jour pour illustrer la mise hors service de JFrog\u00a0GoCenter. \u00c0 partir de la version 1.13 de\u00a0Go, les modules Go sont le gestionnaire de paquets standard dans Golang, activ\u00e9 automatiquement \u00e0 l\u2019installation avec un GOPROXY par d\u00e9faut.\u00a0 Mais avec ce GOPROXY ainsi que vos propres paquets de modules\u00a0Go que vous &hellip;<\/p>\n","protected":false},"author":140,"featured_media":57982,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[9397,9370],"tags":[],"class_list":["post-80102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-go","category-artifactory-fr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Choisir votre GOPROXY pour Modules Go\u00a0|\u00a0JFrog Artifactory<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment configurer votre GOPROXY pour les modules Go publics et priv\u00e9s, afin de cr\u00e9er un syst\u00e8me de d\u00e9veloppement Golang rapide, fiable et s\u00e9curis\u00e9.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80102\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Choisir votre GOPROXY pour modules\u00a0Go\" \/>\n<meta property=\"og:description\" content=\"Voyons \u00e0 quoi sert un GOPROXY et comment le configurer pour obtenir un syst\u00e8me rapide, fiable et s\u00fbr.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-16T09:34:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210851\/GoProxyKnotBlog-01.png\" \/>\n<meta name=\"author\" content=\"giannit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?\" \/>\n<meta name=\"twitter:description\" content=\"Comment \u00e9viter que vos ressources Golang publiques et priv\u00e9es ne deviennent un n\u0153ud enchev\u00eatr\u00e9 gr\u00e2ce aux options de module\u00a0Go comme JFrog\u00a0GoCenter\u00a0?\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06214659\/Why-Go-Proxy-Matters.png\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"giannit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\"},\"author\":{\"name\":\"giannit\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af\"},\"headline\":\"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?\",\"datePublished\":\"2021-08-16T09:34:55+00:00\",\"dateModified\":\"2021-08-16T09:34:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\"},\"wordCount\":1333,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png\",\"articleSection\":[\"Go\",\"Artifactory\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\",\"name\":\"Choisir votre GOPROXY pour Modules Go\u00a0|\u00a0JFrog Artifactory\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png\",\"datePublished\":\"2021-08-16T09:34:55+00:00\",\"dateModified\":\"2021-08-16T09:34:55+00:00\",\"description\":\"D\u00e9couvrez comment configurer votre GOPROXY pour les modules Go publics et priv\u00e9s, afin de cr\u00e9er un syst\u00e8me de d\u00e9veloppement Golang rapide, fiable et s\u00e9curis\u00e9.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png\",\"width\":204,\"height\":148,\"caption\":\"Blog Go\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af\",\"name\":\"giannit\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g\",\"caption\":\"giannit\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Choisir votre GOPROXY pour Modules Go\u00a0|\u00a0JFrog Artifactory","description":"D\u00e9couvrez comment configurer votre GOPROXY pour les modules Go publics et priv\u00e9s, afin de cr\u00e9er un syst\u00e8me de d\u00e9veloppement Golang rapide, fiable et s\u00e9curis\u00e9.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80102","og_locale":"fr_FR","og_type":"article","og_title":"Choisir votre GOPROXY pour modules\u00a0Go","og_description":"Voyons \u00e0 quoi sert un GOPROXY et comment le configurer pour obtenir un syst\u00e8me rapide, fiable et s\u00fbr.","og_url":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2021-08-16T09:34:55+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210851\/GoProxyKnotBlog-01.png"}],"author":"giannit","twitter_card":"summary_large_image","twitter_title":"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?","twitter_description":"Comment \u00e9viter que vos ressources Golang publiques et priv\u00e9es ne deviennent un n\u0153ud enchev\u00eatr\u00e9 gr\u00e2ce aux options de module\u00a0Go comme JFrog\u00a0GoCenter\u00a0?","twitter_image":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/06214659\/Why-Go-Proxy-Matters.png","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"giannit","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/"},"author":{"name":"giannit","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af"},"headline":"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?","datePublished":"2021-08-16T09:34:55+00:00","dateModified":"2021-08-16T09:34:55+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/"},"wordCount":1333,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png","articleSection":["Go","Artifactory"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/","url":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/","name":"Choisir votre GOPROXY pour Modules Go\u00a0|\u00a0JFrog Artifactory","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png","datePublished":"2021-08-16T09:34:55+00:00","dateModified":"2021-08-16T09:34:55+00:00","description":"D\u00e9couvrez comment configurer votre GOPROXY pour les modules Go publics et priv\u00e9s, afin de cr\u00e9er un syst\u00e8me de d\u00e9veloppement Golang rapide, fiable et s\u00e9curis\u00e9.","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#primaryimage","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/05\/05210724\/GoProxyKnotBlog-05.png","width":204,"height":148,"caption":"Blog Go"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Pourquoi un GOPROXY est-il important et lequel choisir\u00a0?"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af","name":"giannit","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g","caption":"giannit"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/140"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=80102"}],"version-history":[{"count":1,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80102\/revisions"}],"predecessor-version":[{"id":80103,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80102\/revisions\/80103"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media\/57982"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=80102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=80102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=80102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}