harbor作为一个中国人编写的项目,被CNCF组织接收,应该有着伟大的意义吧.简单的看了下harbor的源码,十分的庞大. 那么面对这个庞然大物,怎么办? 要么放弃,要么面对.
面对复杂的事物,我们首先要做的就是理出主要矛盾,然后解决了主要矛盾,次要矛盾要就不攻自破.这是哲学上的一个解决问题的思路.在此,就以此方法论作为指导思想.
先来看下文件系统
···
.
├── AUTHORS
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── NOTICE
├── README.md
├── ROADMAP.md
├── VERSION
├── contrib
│ ├── Configure_mirror.md
│ ├── README.md
│ ├── deploying_using_docker_machine.md
│ ├── prebuild-install
│ ├── registryapi
│ └── sdk
├── docs
│ ├── README.md
│ ├── compile_guide.md
│ ├── configure_https.md
│ ├── configure_swagger.md
│ ├── customize_token_service.md
│ ├── developer_guide_i18n.md
│ ├── img
│ ├── installation_guide.md
│ ├── kubernetes_deployment.md
│ ├── migration_guide.md
│ ├── prepare-swagger.sh
│ ├── swagger.yaml
│ ├── use_make.md
│ ├── use_notary.md
│ └── user_guide.md
├── make
│ ├── checkenv.sh
│ ├── common
│ ├── dev
│ ├── docker-compose.notary.yml
│ ├── docker-compose.tpl
│ ├── harbor.cfg
│ ├── install.sh
│ ├── kubernetes
│ ├── photon
│ ├── prepare
│ └── pushimage.sh
├── partners.md
├── src
│ ├── adminserver
│ ├── common
│ ├── favicon.ico
│ ├── jobservice
│ ├── ui
│ ├── ui_ng
│ └── vendor
├── tests
│ ├── apitests
│ ├── ca.crt
│ ├── coverage4gotest.sh
│ ├── docker-compose.test.yml
│ ├── generateCerts.sh
│ ├── hostcfg.sh
│ ├── ldap_test.ldif
│ ├── ldapprepare.sh
│ ├── notarytest.sh
│ ├── pushimage.sh
│ ├── startuptest.sh
│ ├── swaggerchecker.sh
│ ├── testcases
│ ├── testprepare.sh
│ └── userlogintest.sh
└── tools
├── copyright
├── migration
└── ova
25 directories, 48 files
···
从这个目录系统中,可以看出,主要涉及三大部分.源码,构建打包,部署
从源码,到构建再到部署,这一过程模型,可以简单的总结为了一个聚合的过程.但在源码分析中,我们要结合功能,倒着展开,也就是由宏观到微观.
源码
这一板块是核心.开发语言主要是go和angular使用的typeScript.对于这两方面语言对于go语言,还会写一系列文章进行展开.angular技术只做简单的了解.后续的文章主要针对该内容进行展开.
构建/打包
这一块是进行代码展开的核心,主要对构建工具make进行展开.中间涉及到一些shell相关的内容.
部署
harhor的部署主要是将各个组件打包成容器,通过docker-compose做编排,在目录结构中,有通过kubernetes部署,后续也会对kubernetes作为一个专题进行展开.
对于以上技术,现在的技术能力和水平也许还不能完全驾驭了,主要的目的,也是想通过对harbor这个开源项目作为一个驱动,对这些技术能有一个全面的认识和学习.以求达到更高的技术水平.
在这一篇文章中,主要对harbor这个项目进行一个大的分解以及今后写作方向的一个规划,在今后的系列中,将对各个模块做进一步的展开,遇到问题解决问题,理论不足,补理论.
最后,希望自己能够坚持下去,完成这一目标.加油!!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。