JWeb 简单的方式部署静态资源

JWeb 是一个基于Spring Boot的简单服务。提供Shell脚本,以简单的方式部署以及运行静态资源

某天晚上睡不着,充电。突然脑抽了一下,node能做到命令行快速的运行静态资源,例如docsify-cli,能通过docsify serve your-static-dir直接部署静态资源,于是我想的是,相似的功能,java也能实现的把

直接部署静态资源,在开发过程中是很有必要的,例如测试跨域问题,您必须另外起个服务。如果是下载web服务器,并将资源拖拽过去的方式,就有点麻烦咯

Dart与Node对比

简介

node

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。

dart

Dart是谷歌开发的计算机编程语言,后来被Ecma(ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。
Dart是面向对象的、类定义的、单继承的语言。它的语法类似C语言,可以转译为JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reified generics)、可选类型(optional typing)和sound type system。

TICK Stack 实践之监控服务器

TICK Stack是由一系列的服务组成的监控分析处理数据的解决方案,一般用于系统监控,或者收集处理与时间紧密相关的数据。

它包含了以下服务:

  • Telegraf 是一个插件驱动的代理服务,用于收集并提供系统数据(如CPU、内存等)
  • InfluxDB 是一个时序数据库,为满足高负载的读写而开发的数据库
  • Chronograf 通过图表可视化分析数据的服务
  • Kapacitor 是数据处理服务,用于批处理数据以及必要时提醒用户等

利用Jmeter进行压力测试

压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。目前互联网的环境下,压力测试是必不可少的,其中Apache JMeter是目前主流的开源的压力测试工具。

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Git工作流

选择Git工作流,和如何配合工作流工作,这是软件行业经常碰到的问题。不同的Leader会有不同方案,有好有坏。当然能应用进实际开发中的流程,只要实际操作人员足够的仔细便不会出现问题,例如最常用的Vincent Driessen提出的Git工作流

接下来,将介绍这个Git工作流,以及它所衍生出来的其它不错的工作流(GitHub Flow与GitLab Flow)

Certbot 为你的HTTP服务加一层SSL协议

谷歌Chrome安全产品经理艾米丽·谢克特(Emily Schechter)发表博文,证实当该公司在7月发布Chrome 68浏览器时,该浏览器将把所有未采用HTTPS(安全套接字层超文本传输协议)加密的网站都标记为“不安全”网站。

Chrome作为浏览器界的巨头,做出如此的决定,将极大的推进HTTPS的进程,我们自然也应该跟进,一同建立更安全的网络环境。但一般证书都是较为昂贵的,因此互联网安全研究小组Internet Security Research Group(ISRG)以及Linux基金会等,提供了公益的项目,用于加速HTTPS的发展

Spring Boot使用GitLab CI自动部署

定义场景

spring boot应用在手动部署过程中主要分为两步,打包编译与上传部署(也可能存在测试环境,但由于该项目目前只有我开发,并未写测试用例)。同样的在gitlab-ci文件中也定义相应的两步骤

1
2
3
stages:
- build
- deploy

Spring Boot 自动重启脚本

一个脚本,自动从GitLab上下载jar,同时重启服务。为后续的CI自动部署做准备

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
#defined
echo "通过GitLab-CI下载jar"
wget -O bill-server.jar "https://gitlab.com/dream-room/bill-server/-/jobs/artifacts/$1/raw/target/bill-server.jar?job=release-build"
echo "查询已存在进程"
pgrep -af bill-server
echo "结束已存在进程"
pkill -f bill-server
echo "开始运行$1"
nohup java -jar bill-server.jar &
echo "更新结束"

运行

1
sh bill-start.sh release-0.0.3

测试驱动开发(TDD)的实践

测试驱动开发(TDD)是一种很好的方法论,虽然在国内并不被重视。但仍然想抽时间写一篇关于测试驱动开发的文档。

OK,最好的描述方式应该分为三部分吧,是什么?为什么?怎么做?那么就从这三部分,分别的描述测试驱动开发方法论。