Neco は大量の物理サーバーを効率的に管理・運用することを目的とした開発プロジェクトです。 Kubernetes を中心に高度な自律運用の実現を目指しています。
本文書はプロジェクトに参加しているメンバーが身に着けている要素技術を並べたものです。
応募時点ですべてを身に着けている必要はまったくありません。 社内にはチュートリアル資料が多数用意されていますので、必要に応じて学べます。
この「はじめに」は本のレビューを和訳した人による文です。 この文書は以下のリンク先の物を和訳したものです。
https://medium.com/slashdeploy/book-review-release-it-2nd-edition-47eed59ac3e0
この文書は個人のためのレビューを読んだ時のメモです。
https://prometheus.io/ 2.3.2 (2018-07-12)
exporter 周りは大分充実してきたし、retention period に応じたメモリがある程度あればI/Oがひどいことになることはないので運用はまあまあ簡単だと思う。 時系列データも圧縮されるので、300000 メトリクス・解像度 15 秒・14 日間保存で 50GB ぐらいで済んでる。 PromQL を投げたときに CPU を結構食うので、ルールをたくさん書きたいとかめっちゃ PromQL を眺めたいって時は CPU を積んであげるのがオススメ。
long-term storage 周りはそんなにシュッとはしてないので、基本的には 14d ぐらいの短い周期のデータを解像度高く見たいとか、 そんな真剣に長期のメトリクスを眺めなくていいような時とかに使うのが良いと思う。 (まあ本気を出せば long-term storage もできなくないが、運用コストはまあまあ高まると思う。)
package com.github.wreulicke.spring; | |
import java.util.Collections; | |
import java.util.Map; | |
import java.util.concurrent.TimeUnit; | |
import lombok.extern.slf4j.Slf4j; | |
import org.springframework.boot.autoconfigure.web.ServerProperties; | |
import org.springframework.http.HttpStatus; |
#!/bin/bash | |
taskDefinitionName=$1 | |
OPTS="" | |
definition=$(aws ecs describe-task-definition --task-definition ${taskDefinitionName} | jq '.taskDefinition.containerDefinitions[0]') | |
image=$(echo $definition | jq -r '.image') | |
# envvar | |
OPTS="${OPTS}$(echo $definition | jq -r '.environment[] | "-e \(.name)=\"\(.value)\""' | tr '\n' ' ')" |
<source> | |
type in_tail | |
# ... | |
tag raw.eventlog | |
</source> | |
<match raw.**> | |
type forward | |
log_level "#{ENV['DEBUG'] ? 'debug' : 'info'}" |
# Key considerations for algorithm "RSA" ≥ 2048-bit
openssl genrsa -out server.key 2048
# Key considerations for algorithm "ECDSA" ≥ secp384r1
# List ECDSA the supported curves (openssl ecparam -list_curves)