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 删除。