タグ

ブックマーク / christina04.hatenablog.com (7)

  • 開発者ポータル Backstage とは - Carpe Diem

    背景 開発チームが抱えるよくある課題として システムが変化する一方でドキュメントは更新されず腐る メンバーの流入出によって口伝でかろうじて継承された知見も失われる 検索性が良くないと過去のドキュメントが気づかれず、同じような内容のドキュメントが新規量産される 後から参加したメンバーはどちらが正のドキュメントか分からず混乱する といったことが良くあります。 解決方法としては以下のように、GitHub&ルールベースで管理するといった例があります。 future-architect.github.io また組織・システムが大きくなってくると認知負荷を低減するためにドメインで区切るような形でチームの分割が始まりますが、 異なるチームによってシステムが管理され、システムの依存関係を全て知っている人がいなくなる CxOレイヤが大規模イベント前に現状を把握したいときに都度時間がかかってしまう チームごと

    開発者ポータル Backstage とは - Carpe Diem
    kiririmode
    kiririmode 2023/12/30
    マイクロサービスの開発プロセス標準化・共有のspotify製サービス。GitHubと連携して、ドキュメントの標準化やテンプレートの適用を可能とする
  • Dockerの--initフラグについて - Carpe Diem

    概要 dockerのコンテナは指定したコマンドがPID 1で起動されており、使い方によってはシグナルハンドリングできないことがありますよ、という話です。 それによってプロセスをGracefulに終了できなかったりリソースリークが起きたりするので注意する必要があります。 環境 docker v18.09.0 どんな問題が起きる? こちらでとてもわかり易く説明されてます。 Unix プロセスと Docker の罠 - けちゃぶろぐ Dockerケースを要約すると、親、子、孫の3プロセスが起動している状態で ケース 何が起きる 問題点 親が死ぬ 子も孫も強制的に死ぬ 処理中リクエストを ハンドリングできない 子が死ぬ 孫は親に紐付けられるが、 親はそれを知らないので孫はゾンビになる リソースリーク という問題が起きます。 親、子だけのケースであれば前者が起きます。 こんな使い方の時は注意 特に以

    Dockerの--initフラグについて - Carpe Diem
    kiririmode
    kiririmode 2021/03/27
    PID 1でinitを実行しシグナルの伝搬とゾンビの回収をしてくれる。
  • TerraformでECSのService Discoveryを使う - Carpe Diem

    概要 少し前にECSのサービスディスカバリが東京リージョンにも登場しました。 Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に 今回Terraformでの使い方を説明します。 環境 Terraform v0.11.10 terraform-provider-aws v1.50.0 設定 Namespaceの設定 まずnamespaceを用意します。実行するとRoute53のドメインとして登録されます。 今回ECSで使う=内部アクセスのみなのでaws_service_discovery_private_dns_namespaceを利用します。 これはVPC内部からしかDNSクエリを叩けません。 resource "aws_vpc" "example" { cidr_block = "10.10.0.0

    TerraformでECSのService Discoveryを使う - Carpe Diem
    kiririmode
    kiririmode 2020/09/29
    ECSにおけるサービスディスカバリーのterraform実装
  • HashiCorp VaultのDynamic Secrets - Carpe Diem

    概要 HashiCorp VaultにはDynamic Secretsという期限の付いた認証情報を動的に生成してパブリッククラウドやDBへのアクセスをセキュアに保つ仕組みが用意されています。 課題・背景 秘密情報とその周辺の認証を一元化し、適切な暗号化・Auditなどをしっかりしたとしても以下の課題が残っています。 鍵情報を用意してもローテーション運用が大変 退職者が出るたびにローテーションしなきゃいけない 鍵の共有化 影響範囲が分からず削除できない 漏洩しても誰が使ったのか分からない 起動時だけ秘密情報が必要なのに永続的にどこかに残すのがセキュアでない ログやクラッシュレポートに秘密情報が吐き出されてしまったり ref: https://www.hashicorp.com/blog/why-we-need-dynamic-secrets Dynamic Secretsはそれを解決するため

    HashiCorp VaultのDynamic Secrets - Carpe Diem
  • HashiCorp VaultでSSHをCA認証に - Carpe Diem

    背景 AWSを運用しているとEC2のsshのキーペア管理が難しいです。 GCPであればメタデータにsshキーを登録すれば自動で各VMにsshできる仕組みがありますが、AWSは各インスタンスにsshのキーペアを1つだけ登録するようになっているため、複数人で運用するにはぱっと以下の方法が浮かびます。 複数人でキーペアの秘密鍵を共有 authorized_keysに全員の公開鍵を登録 adduserで各メンバーのsshを設定 しかしそれぞれ問題があります。秘密鍵の共有はセキュリティ的に大きな問題がありますし、後の2つは起動時に設定するのが非常に手間です。 仮にLambdaなどで新規サーバに対して設定する処理を自動化しても、あとからジョインしたメンバーは別途対応しなくてはいけません。 そこでsshを公開鍵認証でなく、CA認証を使うことで複数のメンバーでも管理しやすくします。 CA認証は以下の記事で

    HashiCorp VaultでSSHをCA認証に - Carpe Diem
  • .proto ファイルの整形に clang-format を使う - Carpe Diem

    概要 gRPCで通信しようとすると.protoファイルが沢山出てきます。 ただ人によってインデントが異なったりするのは良くないので、何かしらformatterが無いかなと探したら github.com こちらのissueで「Googleではclang-formatを使ってるよ」という回答があったのでそれを使ってみます。 環境 macOS Mojave 10.14.2 clang-format 8.0.0 設定 インストール brew でインストールできます。 $ brew install clang-format 使い方 $ xargs clang-format -i foo.proto で整形できます。ディレクトリ丸ごと実行したい場合は./proto/ディレクトリで定義しているとすると $ find ./proto/ -name "*.proto" | xargs clang-forma

    .proto ファイルの整形に clang-format を使う - Carpe Diem
    kiririmode
    kiririmode 2019/02/03
    protobuf の formatter
  • Golang 1.11 で導入された ListenConfig を使って SO_REUSEPORT を利用する - Carpe Diem

    概要 先日リリースされた1.11でソケットオプションを設定できるようになりました。 これによってLinux 3.9から導入されたSO_REUSEPORTという、同じポートでbindすることが可能になる機能が利用可能になります。 環境 golang 1.11 macOS 10.13.6 (Darwin Kernel Version 17.7.0) Ubuntu 16.04 (4.4.0-87-generic) 何が嬉しい? 一言で言うとGraceful Restartが可能になるという点です。 通常サーバプロセスを再起動するとその瞬間はリクエストを捌けなくなります。 Rolling updateのような事ができる環境であればいいですが、そうではない場合 a) Listenしているsocketのfile descriptorの複製 b) SO_REUSEPORTを使う といった手段でデプロイ時

    Golang 1.11 で導入された ListenConfig を使って SO_REUSEPORT を利用する - Carpe Diem
    kiririmode
    kiririmode 2018/10/14
    goでso_reuseportが設定できるようになっとる…
  • 1