使用 autojump 提升开发效率

查看原文

本文介绍了一个叫做 Autojump 的工具。程序员的日常是不停地敲 cd, ls,这得消耗掉很多时间,使用这个工具,你只要敲例如 j a 就能用最少的键数到达目的地。

当然,这仍然需要你时不时地用 j -i, j -d 等命令调教权重什么的,但一旦调教好了,生产力真是杠杠的。

read more

文档阅读 - GoCD 基本概念

查看原文

这篇文档 描述了 GoCD (一款持续交付工具)系统中的基本概念,通过这些概念我们可以快速感受这个系统的一些设计理念。

  • Task:一般来说对应一条命令。
  • Job: 多个 Tasks 组成一个 Job。Tasks 按定义顺序逐个运行,除非某个 Task 运行失败整个 Job 算作失败。需要注意,每个 Task 有自己独立的运行环境,是个独立程序,这样可以保证 Tasks 之间互相不会影响。
  • Stage:多个 Jobs 组成一个 Stage。Jobs 并发运行,当某个 Job 运行失败其它 Jobs 仍然运行但整个 Stage 算作失败。
  • Pipeline:多个 Stage 组成一个 Pipeline。Stages 按照定义顺序运行 …
read more

Terraform - 一款管理基础设施的自动化工具

查看原文

Terraform 用于快速创建或销毁各种云平台上的实例,它根据你编写的 *.tf 文件创建出需要的实例,运行一些 Provision 的脚本。

  • 可以通过 brew install terraform 在 osx 上获得软件。
  • 通过编写 provider "aws" 等语句声明想要的云平台,它支持几十种平台,例如 aws, googlecloud, azure, digitalocean, heroku 等等.
  • 通过编写 resource XXXXX xxx 语句声明需要的资源,一般来说资源是跟 provider 相关的,aws 有 aws_instance, digitcalocean 有 digitalocean_droplet 等等。
  • 在 resource 中可以声明 depends_on 定义需要先有哪些资源。
  • 你可以写 terraform …
read more

Prometheus Introduction

查看原文

Prometheus 是一款开源的监控和报警工具,出自 SoundCloud,继 Kubernetes 之后成为第二个 Cloud Native Computing Foundation 的项目。

  • Data Model: Prometheus 中的基础数据是和 OpenTSDB 格式兼容的时间序列,以 [a-zA-Z_:][a-zA-Z0-9_:]* 为 Metric 名称,附带诸如 {method="POST", handler="/messages"} 这样的格式作为 Label。每一个数据点都是 [精确到millisecond的时间戳,float64]
  • Query: Query 表达式的数据可用于图表或者自己从 API 拿。
    • 可以直接根据 Metric 名字或者带上标签: metric_name{label="mylabel"} 获取数据。Label 操作符可有 =, !=, =~(正则 …
read more

在 Game Day 破坏和修复你的系统

查看原文

这篇文章介绍了不少公司的传统演练项目:Game Day,在这天工程师们会主动在生产环境上造出故障,借此锻炼应急响应能力。这个词是 Amazon Master of Disaster Jesse_Robbins 提出的,业内 Netflix 也提供了一套叫做 Simian Army 的工具做这件事情。这个活动的核心目标是让系统和团队两方面都有能力很快从灾难中恢复。对于系统而言,要提供自动部署,断路器,扩容等能力,对团队而言,要演练搞挂和修复问题。如果小团队不敢搞,可以放在 staging 或者 testing 环境中做。但还是在生产环境中做这件事情比较性价比高。Game Day 的准备阶段其实比执行阶段更复杂,你要选择好场景,假想好会出现的情况,实施的时候验证是否符合预期。

read more

gron - 一款让 JSON 可以配合grep sed 使用的工具

查看原文

Gron 是一款将 JSON 变成按行输出的工具,与 jq 相比,它功能虽小却能和 grep/sed 这类工具协同配合。从原理上,他把 JSON 对象打印成一个绝对路径再加它的值,例如 {"a":{"b":1}} 被打印成 json.a.b = 1。一般来说,如果 JSON 对象嵌套层次很深,你又不熟悉,又不想一层一层掰开,用这个程序打印出来,用 grep 找到想要的值,你就能看到从根到最后一个节点的所有 key。

安装: brew install json for mac.

read more

Unix Domain Sockets 漫画图解

查看原文

这张六格漫画解析了 Unix Domain Sockets 的使用场景和好处。

  • 可以用操作系统提供的文件权限来限制谁可以通过 socket 发送数据。
  • 允许同机器的两个程序通信,并且可以选用 stream(类似 TCP 连续流数据)或者 datagram(类似 UDP 离散的数据报)。
  • 就算用了 UDP Sockets,它也是可靠的!
  • 可以通过 Unix Domain Sockets 发送文件描述符。

Unix Domain Sockets, by Julia Evans @b0rk

read more

SSH 端口是 22 的来历

查看原文

这是一篇有关 ssh 端口的小故事,外加配置和使用的小短文。在 ssh 发布 1.0 之前,作者尝试要了一个的没人用过的 22 作为默认分配给 ssh 的端口。睡一觉好了这个端口就要到了。要到之后作者发动自己的营销手段,从现在的普及率来看,他完全达到了预设的目标:让 ssh 给尽可能多的人用上。尽管 22 是默认的,但也可以调整:服务端配置 /etc/ssh/sshd_config Port 选项;客户端(包括 ssh, scp, sftp)使用 -p 选项。最后作者不忘谆谆告诫:使用 ssh 作为反向隧道是非常危险的。

read more

« Page 27 / 54 »