SlideShare a Scribd company logo
1 of 59
A lightweight private npm proxy registry
Ayush Sharma & Juan Picado
trivago open-source conference
Dec 2nd 2019
Juan Picado
• Front-End Engineer at eBay
• Maintainer at Verdaccio
• Berlin 🇩🇪
• @jotadeveloper
Ayush Sharma
• Software Engineer at trivago
• Maintainer at Verdaccio
• Düsseldorf 🇩🇪
• @ayusharma_
Plan
- The problems
- An introduction to Verdaccio ( by Juan )
- Live demo with Verdaccio
- Q & A
Front-End
Tooling
Back-End
What is a registry?
All projects meet in the registry
Node.js Package Managers
npm Inc
Facebook, Google, Exponent, Tilde
Zoltan Kochan
General workflow
Public registry eg. NPM Inc
Mostly we interact with public registries directly.
All packages
come from
the registry
https://twitter.com/bitandbang/status/1134872073896169472
Concept of a private registry
Public Remote(s)
You are missing a lot
The Problem(s)
Availability
The main registry might remove packages by
mistake
https://blog.npmjs.org/post/169432444640/npm-operational-incident-6-jan-2018
Control / Sharing / Integration
Your code is just small part of your Application
https://twitter.com/liran_tal/status/10677753762298347
A modern application is highly modularized
https://twitter.com/housecor/status/1078634947831914496
97% of the code your app uses is shared
https://twitter.com/housecor/status/1078634947831914496
create-react-app has ~100k weekly downloads.
https://twitter.com/rauchg/status/807626710350839808
You need private registry to write integration tests.
Security
You might have made a mistake
https://twitter.com/seldo/status/791061480904855552
You might have made a mistake
https://blog.npmjs.org/post/101934969510/oh-no-i-accidentally-published-private-data-to
Affordability / Pricing
Self Hosted SaaS
💰💰💰 💰💰
SaaS uses volumed based pricing
FOSS
Case Study
“We ran the math, npm charges
$7/customer/mo and every user has to have a
paid account; verdaccio can effortlessly scale to
hundreds of users and tens of packages a month”
“We use it in production on a single
DigitalOcean droplet, $5/mo”
https://sheetjs.com/
Quick recap to problems
- Availability
- Control
- Security
- Affordability
- Latency ( Not a big factor )
- Firewall ( In China )
A lightweight private npm proxy registry
• Lightweight Private Registry
• Proxy (Uplinks)
• Cache (Storage)
• Entirely Optional Configuration
• Pluggable Application
• Web User Interface
• MIT License
What’s Verdaccio?
Installation
node > 8
Docker and Kubernetes
6.600.000 pulls
https://github.com/verdaccio/docker-examples
Private Registry
All benefits of npmjs registry without sending the
code to the public
@scopes and .npmrc
It is hard to maintain and insecure
Uplinks
Handle the distribution efficiently
pnpm install --registry http://verdaccio.npm.tool
Accessing secured registries
Uplinks
Storage can be hosted in the cloud
Storage
Web Interface
React, Typescript, Material-UI
Plugins
Build plugin your own plugin
https://verdaccio.org/docs/en/dev-plugins
E2E Tests
Testing packages before publishing them
E2E
Verdaccio helps avoiding mistakes
https://twitter.com/adamlacombe/status/1084968234607144961
E2E
create-react-app
E2E
Keep in Touch
• http://chat.verdaccio.org
• https://opencollective.com/verdaccio
• https://twitter.com/verdaccio_npm
• https://github.com/verdaccio
https://verdaccio.org/docs/en/talks
Thanks

More Related Content

What's hot

Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Usersnap
 
Introducing managed infrastructure services from Digital Network and OVHcloud
Introducing managed infrastructure services from Digital Network and OVHcloudIntroducing managed infrastructure services from Digital Network and OVHcloud
Introducing managed infrastructure services from Digital Network and OVHcloudOVHcloud
 
Find WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profilingFind WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profilingOtto Kekäläinen
 
WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017Otto Kekäläinen
 
Dynomite Eureka Registry With Prana
Dynomite Eureka Registry With PranaDynomite Eureka Registry With Prana
Dynomite Eureka Registry With PranaDiego Pacheco
 
Testing and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressionsTesting and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressionsOtto Kekäläinen
 
stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?NETWAYS
 
Groovy there's a docker in my application pipeline
Groovy there's a docker in my application pipelineGroovy there's a docker in my application pipeline
Groovy there's a docker in my application pipelineKris Buytaert
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Serverless architectures with Fn Project
Serverless architectures with Fn ProjectServerless architectures with Fn Project
Serverless architectures with Fn ProjectSven Bernhardt
 

What's hot (12)

Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
 
Introducing managed infrastructure services from Digital Network and OVHcloud
Introducing managed infrastructure services from Digital Network and OVHcloudIntroducing managed infrastructure services from Digital Network and OVHcloud
Introducing managed infrastructure services from Digital Network and OVHcloud
 
Find WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profilingFind WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profiling
 
WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017
 
Dynomite Eureka Registry With Prana
Dynomite Eureka Registry With PranaDynomite Eureka Registry With Prana
Dynomite Eureka Registry With Prana
 
Testing and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressionsTesting and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressions
 
stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?
 
Groovy there's a docker in my application pipeline
Groovy there's a docker in my application pipelineGroovy there's a docker in my application pipeline
Groovy there's a docker in my application pipeline
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Serverless architectures with Fn Project
Serverless architectures with Fn ProjectServerless architectures with Fn Project
Serverless architectures with Fn Project
 
Microservices
MicroservicesMicroservices
Microservices
 
Vertx in production
Vertx in productionVertx in production
Vertx in production
 

Similar to Introduction to Verdaccio - Trivago 2019

Introduccion Verdaccio ViennaJS
Introduccion Verdaccio ViennaJSIntroduccion Verdaccio ViennaJS
Introduccion Verdaccio ViennaJSJuan Picado
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureYshay Yaacobi
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYEnterprise Management Associates
 
Introduction to PaaS and Heroku
Introduction to PaaS and HerokuIntroduction to PaaS and Heroku
Introduction to PaaS and HerokuTapio Rautonen
 
Introduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural PatternsIntroduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural PatternsMathieu Mailhos
 
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...GetInData
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Securitygjdevos
 
Automated everything - Setting up an openQRM Cloud
Automated everything - Setting up an openQRM CloudAutomated everything - Setting up an openQRM Cloud
Automated everything - Setting up an openQRM CloudopenQRM Enterprise GmbH
 
Modules and artifacts in NPM by Anton Cherednikov
Modules and artifacts in NPM by Anton CherednikovModules and artifacts in NPM by Anton Cherednikov
Modules and artifacts in NPM by Anton CherednikovOdessaJS Conf
 
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16AppDynamics
 
Q Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - ConjurQ Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - Conjurconjur_inc
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2aspyker
 
NetflixOSS Meetup season 3 episode 2
NetflixOSS Meetup season 3 episode 2NetflixOSS Meetup season 3 episode 2
NetflixOSS Meetup season 3 episode 2Ruslan Meshenberg
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: KeynoteDocker-Hanoi
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Brian Brazil
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesQAware GmbH
 
Deep dive into Verdaccio - NodeTLV 2022 - Israel
Deep dive into Verdaccio - NodeTLV 2022 - IsraelDeep dive into Verdaccio - NodeTLV 2022 - Israel
Deep dive into Verdaccio - NodeTLV 2022 - IsraelJuan Picado
 

Similar to Introduction to Verdaccio - Trivago 2019 (20)

Introduccion Verdaccio ViennaJS
Introduccion Verdaccio ViennaJSIntroduccion Verdaccio ViennaJS
Introduccion Verdaccio ViennaJS
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Introduction to PaaS and Heroku
Introduction to PaaS and HerokuIntroduction to PaaS and Heroku
Introduction to PaaS and Heroku
 
Introduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural PatternsIntroduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural Patterns
 
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
Automated everything - Setting up an openQRM Cloud
Automated everything - Setting up an openQRM CloudAutomated everything - Setting up an openQRM Cloud
Automated everything - Setting up an openQRM Cloud
 
Modules and artifacts in NPM by Anton Cherednikov
Modules and artifacts in NPM by Anton CherednikovModules and artifacts in NPM by Anton Cherednikov
Modules and artifacts in NPM by Anton Cherednikov
 
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
 
Q Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - ConjurQ Con New York 2015 Presentation - Conjur
Q Con New York 2015 Presentation - Conjur
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2
 
NetflixOSS Meetup season 3 episode 2
NetflixOSS Meetup season 3 episode 2NetflixOSS Meetup season 3 episode 2
NetflixOSS Meetup season 3 episode 2
 
Node js meetup
Node js meetupNode js meetup
Node js meetup
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
 
Supply Chainsaw
Supply ChainsawSupply Chainsaw
Supply Chainsaw
 
Deep dive into Verdaccio - NodeTLV 2022 - Israel
Deep dive into Verdaccio - NodeTLV 2022 - IsraelDeep dive into Verdaccio - NodeTLV 2022 - Israel
Deep dive into Verdaccio - NodeTLV 2022 - Israel
 

Recently uploaded

Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls DubaiEscorts Call Girls
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceDelhi Call girls
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 

Introduction to Verdaccio - Trivago 2019

Editor's Notes

  1. We will start with the problem about registries in javascript ecosystem, then Juan will give you a brief introduction to verdaccio, if we get some time left in the end then we’ll give you a demo with Q&A.
  2. Before we start to talk about Verdaccio. I would like to talk about NPM registry. Does anyone know what a registry is? That’s right! Thanks! So a npm registry is a public collection of packages of open-source code for Node.js. It’s used by backend and Frontend developers!
  3. And...How can we install the packages that are in the registry? I am sure most of you use NPM right? Although NPM is the most used manager to install packages, there are a number of alternatives as Yarn created by group of companies and Pnpm, a very nice open source solution. So for you it doesn't matter which library to install your package, they will do the same thing: send requests to NPM registry. https://code.fb.com/web/yarn-a-new-package-manager-for-javascript/
  4. When we do install npm install, we mostly interact with public registries. Mostly we use npmjs as a default registry.
  5. But, What’s important here today the registry, IT IS WHAT MATTERS, nothing else, independently you are using as a client, all of then are useless without a registry. You can actually install tarballs by you own just having a registry available.
  6. We explain the flow that a request follows. The node management tool does a request. I.e npm / yarn / pnpm The registry receive the request and after compute the right remote try go get an updated resource. If it founds something updates the cache. Finally the registry responses the initial request Have you notice something in this flow? Client tools only works with one registry at the time. That is the power of registry. It can interacts with different remotes. It can point to npm / github package / yarn package registry all together.
  7. I find this tweet pretty interesting. Since npm started to be a trend, we based our application architectured to be based on one public registry and sharing has become a culture and this leads to some problems as the tweet says.
  8. Now, We’ll cover the most common scenarios and problems which can be solved by having a private registry.
  9. So the first major problem is availability. It means when you need something and that thing is not available to you.
  10. So you love travelling and you are in train. And you decide to work from train because you are a very committed developer.
  11. Then you go to your project directory and update everything.
  12. And you hit npm install in termnial.
  13. You get this beautiful error message in your terminal. After sometime you figure out that your internet is not working.
  14. Edward told me yesterday that you should have a cat in your presentations. So here the cat.
  15. Now, You turn on your personal hotspot and you connect your laptop with internet.
  16. And npm install again.
  17. And then other error message. You just realised that you are having a very rough day. And it says that NPM is down. Now you are stuck and can not work anymore.
  18. Since NPM tries their best keep the registry up but sometimes it fails. And you do not have any other option to wait for it working if you do not have a private registry.
  19. One unusual problem, but possible is this one: Last year...in 2018...some NPM employee by mistake removed some important packages from the registry...after that the users could not build their applications anymore. Now you can think how much business you can lose if you are directly relying on npm.
  20. Control means how much authorization you have on your packages. Sharing means what happened when you publish your packages and how they fulfill the compatibility or they integrate with other packages.
  21. Nowadays we work with really complex applications, composed with decens or thousands of dependencies as we can observe in the following graph. If we observe the content might be really hard to find your own code which usually represent no more than 3% of the whole bundle.
  22. If we have a zoom in into the bundle we can perfectly observe that we relies on modules, shared for others developers through a public repository.
  23. Now you can see that how much code you own and how much you are dependent on the public registries like npm, github, yarnpkg. And if they are down, you are down.
  24. Also, If you are directly publishing to public registries, you have some sort of responsibility. In the following tweet can you imagine if something happens in create-react-app that can put some businesses on risk. That’s why it is very very important to make sure integration before publishing to npm.
  25. In this world of move fast break things, we need some integration tests to make sure the compatibility with different versions and other packages in Javascript ecosystem. But the question is how can you write integration tests for package compatibility. First, You need to publish them. A private registry can help you to write some integration tests. We’ll cover E2E tests using verdaccio in later section.
  26. Another possible bad scenario: NPM has a two-factor authentication, but it’s not enable by default...so when you write the command: npm publish, in a matter of seconds the package will be published ... and you know ... once on the internet, always on the internet! Especially in the case of NPM that has many mirrors like yarn ... You can send an email to the support, they will write a nice disable description in the published package, but they can not do much. They can not unpublish your package.
  27. The registry run by npm Inc. is not the only npm registry. there are several thousand mirrors of the registry, run by various private individuals for their own purposes. When you publish any public package, it is replicated to all of these registries within 2-3 seconds.
  28. There are three types of alternatives present in the market. The final choice might depends of many variables only you know. But The self hosted is jFrog artifactory which can cost 30K $ per year. Sass is npm enterprise / github package registry which can cost around 7$ per user per month. But it really depends on your use case. But we’re here representing the FOSS and Verdaccio at this point, one of the best alternative for it. Becuase it is free. Just pay the server cost.
  29. Registry as a Business If you are running a business where distribute npm package is esencial you might look in to the experience of SheetJS. SheetJS (open source) has shared their experience and the result for them is a success. npm force that every user has to have paid account if you are willing to distribute through their SaaS platform Using a Droplet for just 5$ / month you can have a registry in production and save a money
  30. As my partner has explained, there are a lot of points of pain that many services cannot solve and here is the solution I purpose, Verdaccio.
  31. As my partner has explained, there are a lot of points of pain that many services cannot solve and here is the solution I purpose, Verdaccio.
  32. As my partner has explained, there are a lot of points of pain that many services cannot solve and here is the solution I purpose, Verdaccio.
  33. As my partner has explained, there are a lot of points of pain that many services cannot solve and here is the solution I purpose, Verdaccio.
  34. What’s is Verdaccio? The basic definition is a private registry where you can publish your packages It acts as a proxy, by default npmjs but you can hook as much you want and apply different rules to some of them It caches packages, here is the magic of the offline mode. Configuration is optional, the default one enough to getting start We allow plugins, verdaccio is small, you can make it big It has an beautiful UI MIT License to avoid any compatibility issue
  35. Install verdaccio is really simple, just install the package globally and you are set. If you are a wild developer willing to use the latest features use the “next” tag.
  36. We have an official Docker Image and is pretty straightforward to install. More than 6 millions of pulls by now are using in their projects and companies. It’s the most popular way to use Verdaccio. If you want to see more detailed examples, I’d recommend look in your Docker examples repository.
  37. Verdaccio provides all benefits of npm registry but with couple of differences: You keep the full control of it You can host private packages even if the are not scoped You can override public packages even if the name collides You can --force publish packages You can control access for publish and access packages Verdaccio does not publish on public registry, always is local.
  38. Disadvantages of this approach One scope cannot point two registries It does not accept Regular Expressions, Verdaccio does !! It’s hard to maintain and inscure
  39. Verdaccio has the advantage to route any package name, independently whether is scoped or not to a specific remote registry. One package can be fetched from multiple registries (as a fallback) Verdaccio handles the distribution efficiently
  40. Remote registries might be protected, for such reason the uplinks provides easy set up of HTTP Headers for Authentication. Add as much headers you need, no limit. Grab a token from some available environment variable Define token directly within the config file
  41. If you need to scale, then it’s more appropriate use a different sort of storage, for instance, an Amazon S3 bucket. Using this plugin will allows you to scale verdaccio in multiple processes delegating the persistence in the cloud.
  42. Web Verdaccio provides a nice UI for searching and browsing your private packages, we are working on improve it and add more features. We use React, Flow and Material-UI as primary tools for development.
  43. Share your plugin with the community We provide Types (in Flow and Typescript) to make this process smooth as possible Check our documentation for further information
  44. If you are in the mono repo wave, I totally recommend testing your packages before publish them. I cannot go into too much details but let me tell a small story.
  45. Here we have an co-creator of IONIC Framework, he was updating build scripts and in order to do not a mistake he turned off the wifi!! Smart guy !! But he might be smarter ! There is a better way to avoid mistakes. Using Verdaccio as a mock registry.
  46. This a list of project which are currently using Verdaccio as E2E testing.
  47. This a list of project which are currently using Verdaccio as E2E testing.