当前位置: 首页 > news >正文

马鞍山网站设计价格阿里云除了做网站还能用来干什么

马鞍山网站设计价格,阿里云除了做网站还能用来干什么,scf900色带,网站建设基本步骤2019独角兽企业重金招聘Python工程师标准 上周我们介绍了Harbor开源企业级容器Registry的架构#xff0c;获得了社区很多朋友的反馈和建议#xff0c;再次一并感谢#xff0c;希望和大家一起#xff0c;共同建设一个优秀的开源项目。本文请Harbor项目工程师尹… 2019独角兽企业重金招聘Python工程师标准 上周我们介绍了Harbor开源企业级容器Registry的架构获得了社区很多朋友的反馈和建议再次一并感谢希望和大家一起共同建设一个优秀的开源项目。本文请Harbor项目工程师尹文开介绍源码结构帮助开发和运维人员理解代码的工作原理。 Harbor项目概览 容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑在企业私有环境内部署的Registry服务是非常必要的。Harbor(https://github.com/vmware/harbor)是由VMware中国研发团队为企业用户设计的Registry Server开源项目包括了权限管理(RBAC)、图形管理界面、LDAP/AD集成、审计、自我注册、HA等企业必需的功能同时针对中国用户的特点原生支持中文并计划实现镜像复制(roadmap)等功能。本文主要介绍Harbor项目的源码结构帮助开发和运维人员理解其工作原理。 主要组件 Harbor系统由五个容器组成Proxy、Core Services包含UI, tokenservice和webhook、Database、Registry和Log Collector。Proxy提供反向代理服务用户的不同请求由Proxy分发到后端的UI或者Registry。Harbor中使用的是官方的nginx镜像。Core Services是Harbor项目的核心组件主要提供权限管理、审计、管理界面UI、token service以及可供其他系统调用的API等功能。Database提供数据持久化服务采用了官方的mysql镜像。Registry是Docker官方的开源的Registry镜像主要提供镜像的存储和分发功能。Log Collector负责收集其他容器的日志并进行日志轮转。各个容器之间的关系如下图所示 源码结构 以下所述主要为Core Services组件的源码结构通过根目录下的Dockerfile可以构建出Core Services的镜像。另外Deploy目录下的db和log分别对应Database和Log Collector的Dockerfile镜像构建文件而Nginx和Registry则都是采用的官方镜像。| -- api Harbor提供的外部调用的API| -- auth 认证模块目前提供两种方式数据库和LDAP| -- db 数据库认证| -- ldap LDAP认证| -- controllers 控制器相关代码| -- dao 数据持久层| -- Deploy 部署相关代码| -- db 构建Database镜像的源码| -- log 构建Log Collector镜像的源码| -- docker-compose.yml 运行Harbor的docker compose文件| -- docs 文档| -- log log工具| -- models 数据库映射的模型代码| -- routers 路由相关代码| -- service 服务| -- notification.go 处理Registry发来的镜像上传或下载等事件| -- token.go 为Registry提供鉴权服务| -- static js、css等文件| -- utils 工具类| -- vendor 依赖的第三方源码| -- views html模版文件| -- Dockerfile 构建Core Services镜像的Dockerfile| -- main.go 入口函数 源码分析 下面以获取项目列表和获取某个项目的详细信息为例来分析Harbor源码。Harbor项目使用了go语言开发WEB框架采用beego。main.go、routers目录和controllers目录分别对应了入口函数、路由函数目录和控制器函数目录。当Core Services启动时routers目录下的相应函数会将各个控制器与其所对应的用户请求URL进行注册这样当不同的用户请求到达的时候不同的控制器逻辑就会被触发。主要处理流程如下图所示当获取项目列表时会发送请求http://hostname/api/projects/该请求首先到达Nginx。Nginx的配置文件如下server {listen 80;location / {proxy_passhttp://ui/;…}location /v1/ {return 404;}location /v2/ {proxy_passhttp://registry/v2/;…}location/service/ {proxy_passhttp://ui/service/;…}}根据配置文件该请求会被转发到http://ui/也即Core Services中的UI。根据UI中routers/router.go中定义的规则beego.Router( /api/projects/?:id,api.ProjectAPI{} )可知该请求最终是由api包中的ProjectAPI的Get方法来处理的。ProjectAPI结构体的定义如下typeProjectAPI struct {BaseAPIuserID intprojectID int64}在beego中控制器处理用户请求的方法执行之前首先会执行Prepare()方法来进行一些准备或者校验操作ProjectAPI定义的Prepare()方法如下func(p *ProjectAPI) Prepare() {p.userID p.ValidateUser()…}Prepare()中调用BaseAPI中的ValidateUser方法检查用户的合法性并将用户ID赋值给ProjectAPI的userID属性。之后执行Get方法来处理用户的请求func(p *ProjectAPI) Get() {queryProject :models.Project{UserID: p.userID}…projectList, err :dao.QueryProject(queryProject)…for i : 0; i len(projectList); i{if isProjectAdmin(p.userID,projectList[i].ProjectID) {projectList[i].Togglable true}}p.Data[json] projectListp.ServeJSON()}Get方法中调用dao包中的QueryProject()方法来获取项目列表之后遍历列表判断该用户是否对此项目具有administrator的权限最终返回项目列表的JSON数据此次用户请求处理完毕。当获取某个项目的详细信息时会发送请求http://hostname/registry/detail该请求同样会经过Nginx和Router并最终到达其对应的Controller的处理方法如下func (idc *ItemDetailController) Get() {//具体处理逻辑…idc.ForwardTo(page_title_item_details,item-detail)}具体的处理逻辑此处忽略。该方法的最后一步调用idc.ForwardTo(“page_title_item_details”,”item-detail”)定位对应的HTML模版文件。模版文件默认的存放目录为views“item-detail”为模板文件名因此该语句最终定位到views/item-detail.tpl的文件。经过数据填充最终生成对应的HTML文件并返回。欢迎广大用户使用Harbor项目并反馈意见和建议也欢迎加入我们贡献代码。如果您是Harbor的用户或开发者请长按下面二维码加入Harbor开源项目群以方便沟通。Github网址https://github.com/vmware/harbor 转载于:https://my.oschina.net/vmwareharbor/blog/656603
http://www.zqtcl.cn/news/605821/

相关文章:

  • 34线城市做网站推广网站页面如何设计图
  • 成都网站建设前十广州开发网站设计
  • qq人脸解冻自助网站加工平台推荐
  • 中国室内设计联盟网官网网站专题页优化
  • 设计模板图热狗网站关键词优化
  • 无锡网站开发公司重庆网站有哪些
  • 做网站找什么公司工作网站开发思维导图内容
  • 有人知道做网站吗?wordpress多站点cdn
  • 网站风格特点大型外包公司有哪些
  • 如何网站seo用asp做网站有哪控件
  • 网站建设需要哪些成本wordpress商城建站教程
  • 做网络的网站很重要吗网站认证费用
  • flash网站项目背景网页截图快捷键可拉动
  • 郑州企业建设网站北京企业网站模板建站开发
  • 宣传旅游网站建设的观点是什么公众号怎么推广和引流
  • 企业网站制作多少钱山西网络营销方案
  • 焦作住房和城乡建设局网站旅行网站模板
  • 男做基视频网站国家重点高新技术企业名单
  • 公司官方网站开发网站建设电子商务
  • seo网站优化系统搜索引擎优化排名案例
  • 郑州网站建设工作室网站建设全流程 知乎
  • 如何利用源码做网站外贸网站制作推广
  • 国内做网站哪家公司好免费查找资料的网站
  • 自己做的网站百度搜不到搭建网站seo
  • 奇墙网站建设高端网站建设公司联系电话
  • 宁波那家公司做网站好中企动力科技股份有限公司招聘
  • 水果网站推广网站首页静态好还是动态好
  • iis网站属性小程序源码无需服务器
  • 景区网站建设材料代运营有哪些套路坑
  • 六安电商网站建设哪家好有关做美食的网站