Java开源博客My-Blog之docker容器组件化修改

前言

5月13号上线了自己的个人博客,《Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦》,紧接着也在github上开源了博客的代码,到现在为止,感觉这个项目还是有一点点关注度的,包括博客站点的访问量,github仓库中MyBlog项目的访问量都还不错,总体来说是一种进步且向上的态势。

这是某个24小时内http://blog.hanshuai.xin站点的访问日志分析面板:

但是呢,也渐渐觉得自己的个人想法有些影响了这个项目。在My-Blog博客系统最初的设计和技术选型上,其实docker算是几个技术栈中我比较注重的一个,因为近一年多来比较关注容器化技术,因此,即使是在这个博客项目中,我也较多的将重点放在docker上,不管是开发部署,还是以后的扩展计划上,更多的都是围绕docker容器技术。

不过事与愿违吧,收到的反馈和一些统计数据让我不得不重新思考整个项目,我所关注和重视的东西,其他人可能并不是特别在意和易于接受,于是我就想,我是不是并没有考虑到其他人的感受,项目既然已经开源了,是不是应该不要太个人主义了。

初露端倪

下图是My-Blog的wiki文档,从图中也可以看出原来的偏重点,将docker相关的文档放在前面,当初编写wiki文档时也是如此,开始的时候甚至并没有将非docker方式的部署教程贴出来,而是后来有不少朋友问了之后才写了#3.1这个wiki Page,但是后来发现,这一页的浏览量其实远远超出其他的文档,大家普遍都去查看非docker环境下的部署教程,也一直在问相关问题。

有一位使用了这个项目的朋友跟我说,因为项目中使用了docker技术的原因,他部署项目花了两三天才完成,仅仅是学习docker命令及相关知识就用了差不多两天,时间成本太高,这个功能对于某些朋友来说,甚至有些鸡肋,因为有些人确实只是觉得项目看起来不错,因此打算作为自己的博客模板,但是用起来却是万分复杂,基于此原因应该也有不少朋友打了退堂鼓,虽然我在wiki中也添加了一些非docker方式部署和开放的教程,但是由于个人的偏好及目录结构原因,docker模块与项目的耦合依然很高。

docker组件化修改

这是原结构图:

很明显,docker代码与java代码耦合在一起。

3.1.1版本修改后的目录结构图:

docker相关文件已单独提取出来作为docker-extension,同时配置文件和运行脚本也做了一定的修改,使得docker启动和非docker启动都可以很简单,即使切换起来也不用人为修改代码,按照wiki教程里说的方法即可。

目前项目中,唯一可以看到docker带来的便利及提供的帮助就只有mysql,因此有些朋友可能觉得docker并不是特别酷,后期的话,随着redis、nginx、logstash、elasticsearch、kinaba、kafka...等组件的添加,结合docker-compose进行容器编排,那个时候应该就会以另外一个心态来面对docker技术了,个人觉得docker真的可以算得上一个奇淫技巧,只是需要时间来发现而已,很明显,这个时间不是现在。

个人想法

docker化,个人比较熟悉也比较喜欢,而且操作起来比较方便,因此主观意向比较浓厚,就将docker相关的一些代码和功能都添加进来了,这是最初做这个项目时的想法,但是现在看起来,docker与原有代码目录搅在一起,项目目录看起来比较臃肿,而且计划中,以后会基于docker继续扩展一些功能,如果再去添加其他组件到目录中,应该会更加耦合、更加的"乱"。

再者,有些人并没有docker基础,如果想要使用这个项目,还得去学习docker相关知识,每次思考这个问题的时候,我都会试着以一个第三者的角度去想,渐渐地觉得这个项目确实有点不人性化,我只是想用一下这个博客,我还要去安装docker、学习docker命令?不学的话还不能好好用这个项目搭博客了?

因此想要将docker相关的扩展和组件剥离出来,只作为其中一个组件,"组件"这个说法不知道合适不合适、正不正确,暂时就这么叫吧,这么做的目的是将docker相关代码剥离出来,不耦合于项目中,想要使用docker相关功能的话就用,如果不想用的话完全可以按照原有的操作习惯来部署和开发My-Blog,应该将选择权交给用户,而不是我个人喜欢怎么样就怎么样,既然选择了开源,就应该将心态放开,考虑一下其他人的感受,不能太自私了,多接受别人的意见也不是一件困难的事情。

docker只是一个工具,在项目中是一个锦上添花的作用,并不是一个不可或缺的部分,因此,为了方便其他人,做出了此次的修改,进行了较大的目录结构调整。

结语

首发于我的个人博客,地址在这里

通过这次事件,我觉得不能把我们的想法和习惯强加给其他人,如果一个朋友只想简简单单搭个博客,结果看到这个博客页面和功能还行,满足要求,但是一看代码,各种框架和技术耦合在一起,又要学新东西,会让人萌生退意的。

为的是方便他人,而不是给别人添麻烦。

希望大家提出更多意见,有喜欢这个项目的也很开心邀请你共同加入项目中。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

《架构师》反思:系统可靠性

最近系统学习了一个系统可靠性及其相关知识,今天在这总结一下。 首先,什么是系统的可靠性呢?系统的可靠性是指在规定的时间内及规定的环境下完成规定功能的能力,也...

3105
来自专栏携程技术中心

干货 | 携程第四代架构探秘之运维基础架构升级(上)

作者简介 本文由携程技术中心框架研发部吴其敏、王兴朝,技术保障中心高峻、王潇俊、陈劼联合撰写。 作为国内最大的OTA公司,携程为数以亿计的海内外用户提供优质的旅...

41810
来自专栏Linyb极客之路

性能优化指南:性能优化的一般性原则与方法

  作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能...

852

云原生应用的成熟度模型探讨

原文地址:https://dzone.com/articles/cloud-native-application

41410
来自专栏挖掘大数据

入门必读:Hadoop新手学习指导

零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易。从一开始什么都不懂,到能够搭建集群,开发。整个过程,只要有Linux基础,虚拟机化和java基...

2595
来自专栏JAVA高级架构

饿了么:日订单量超900万的架构设计及演进之路

网站在刚开始的时候大概只是一个想法:一个产业的模型,快速地将它产生出来。“快”是第一位的,不需要花太多精力在架构设计上。在网站进入扩张期才需要对架构投入更多的精...

1112
来自专栏pangguoming

基于NodeJS的全栈式开发

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的...

2903
来自专栏云计算D1net

在PaaS上构建SaaS应用程序时先搞清这些

遗留系统含有成千上万个执行一大批业务功能的服务组件。比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告。为了赶在截至日之前获得这份每...

35411
来自专栏CSDN技术头条

【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学

【导读】徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设。 在过去的工...

20810
来自专栏精讲JAVA

前后端分离实践的架构设计

前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多。我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前...

1233

扫码关注云+社区