继续实施内部NPM套餐的LINE管理策略

みなさんこんにちは。UIT Front-end Dev7チームの吉澤です。主にUITが扱う社内サービスやミドルウェアの開発/運用などを行っています。またDev7チームにはLIFF(LINE Front-end Framework)というLINEが使っているフレームワークの開発をしているメンバもいます。他のUITのチームとは一風変わった特徴的なチームです。

大家好,我是UIT前端开发7组的Yoshizawa。我主要参与UIT处理的内部服务和中间件的开发和运作。Dev7团队中还有一位开发LIFF(LINE前端框架)的成员,这是LINE使用的一个框架。这是一个独特的团队,与其他UIT团队不同。

このチームの業務の1つにUITが管理しているPrivate npm registryの拡張、関連機能開発/運用があります。実はこれに関連した全社的にnpmが使えなくなるという障害が2021/2/15にLINE社内で発生していました。今回はその障害について話しながら私たちUITが管理しているPrivate npm registryについての話を書きます。

这个团队的任务之一是扩展由UIT管理的私有npm注册表,并开发/操作相关功能。事实上,在2021/2/15,LINE内部曾发生过一次与此相关的全公司范围内的npm停工。这次我将谈一谈那次失败,并写一个关于我们UIT正在管理的私人npm注册表的故事。

Private npm registryについて

关于私有的npm注册表

npm(node package manager)に関して改めて説明の必要はない気がしますが、Private npm registryって何だろう?という疑問は浮かぶかもしれません。文字通りnpm, incが管理している公式のregistryとは別に自分たちでnpmのregistryをホスティングしているという話になります。

我想我不需要再解释npm(node软件包管理器),但什么是私人npm注册表?问题 "什么是私人npm注册表?从字面上看,我们是在谈论托管我们自己的npm注册表,与npm公司管理的官方注册表分开。

LINEでは開発で利用している 2つの npm registry が存在します。1つは全社的にpackage repositoryとして利用している Sonatype Nexus(以下Nexus)で提供されるもの、もう1つはこの記事で取り上げるVerdaccioというOSSを用いたPrivate npm registry(以下Verdaccio)です。後者は私たちのチームでホスティングして運用しています。

在LINE,有两个npm注册处用于开发:一个是由Sonatype Nexus(以下简称Nexus)提供的,它被用作全公司的软件包库,另一个是另一个是使用OSS Verdaccio的私人npm注册表(以下简称Verdaccio),这是本文的主题。后者是由我们的团队主持和运作的。

Private npm registryに関してのメリットとしては次のようなことが挙げられます。

私人npm注册表的优势包括

  1. private packageの管理がしやすくなること
  2. 更容易管理私人包裹。
  3. registry.npmjs.orgへ送ったリクエストのレスポンスをcacheできること
  4. 缓存发送到registry.npmjs.org的请求的响应能力。
  5. リバースプロキシを導入することで任意のロジックが仕込めること
  6. 通过引入反向代理,可以植入任意逻辑。

それぞれのメリットについて順に解説します。

下面依次解释每一种的好处。

まず、1に関してですが、公式のnpmでもprivate packageは作成することができます。しかし人数の増減や権限管理など細かいことを考えると自前でPrivate npm registryをホスティングした方が効率的です。特に権限管理に関しては私たちの運用上問題になることが多いです。導入当時Nexusの権限管理の仕組みが私たちが要件として求める水準のものが提供されておらず、新たに別にVerdaccioを私たちがホスティングするようになったという背景があります。Verdaccio導入に関しての経緯は過去にpodcastで話をしております。もしよろしければこちらのリンクから参照ください。

首先,关于第1点,私人软件包也可以用官方npm创建。然而,在考虑到用户数量的增减和权限管理等细节时,托管自己的私有npm注册表会更有效率。特别是,权力管理往往是我们业务中的一个问题。我们在过去的播客中谈到了实施Verdaccio的过程。如果你想阅读更多相关信息,请点击这个链接

続いて2に関してですが、Private npm registryを使うことで不要なリクエストを公式のregistryであるregistry.npmjs.orgに送る必要がなくなります。Private npm re...

开通本站会员,查看完整译文。

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-22 18:28
浙ICP备14020137号-1 $Map of visitor$