タグ

ブックマーク / heartbeats.jp (38)

  • RFCの読み方

    こんにちは。技術開発室の伊藤です。 ハートビーツではメールサーバを自社で運用しています。そのメールサーバの移設を実施するにあたり、移設を対応するチームでさまざまなメールの仕様を理解しておく必要がありました。 メールプロトコルの仕様についてはRFC(Request For Comments)が発行されているため、メールに関するRFCを読んでまとめる勉強会を行いました。 その際にRFCを読むにあたって知っておくとよいことがいくつかあったので紹介します。 RFCとは RFCとはIETF(Internet Engineering Task Force)というインターネット技術の標準化を推進する団体やその他の団体が発行している、インターネット標準や技術提供の文書です。もともとは非公式な文書であることを明確にするため、Request For Comments(コメント募集)という名前にしていたようです

  • サーバ作業を安全に行うための工夫

    こんにちは。 2021年7月にハートビーツに入社後、エンジニアリンググループに所属している北岡です。 以前は同じMSP企業で10年以上勤務しておりましたが、自身のスキル向上などを目的としてハートビーツへ入社しました。 私の転職の経緯やハートビーツへ入社して感じたことなどは今後お話するとして、今回はお客様のLinuxサーバ上で作業する際、私がオペレーション中に意識していることやミスを防ぐために行っていることについて紹介します。 コピー、ペーストのショートカットキーを変更する コピー「Ctrl + c」とペースト「Ctrl + v」はキーが隣り合っており、タイピングミスによってコピーしようとしたつもりがペーストしてしまったということが起こりえます。 メモ帳などで起きた場合は特に問題にはなりませんが、サーバ上で起きると不要なコマンド実行に繋がります。小さなことではありますが防止策をとるべきです。

    サーバ作業を安全に行うための工夫
    peketamin
    peketamin 2022/10/02
  • DNS前史:HOSTS.TXTとドメイン名ができるまで

    こんにちは、技術開発室の滝澤です。 先月(2022年7月)、『Software Design 2022年8月号』の特集記事『WebエンジニアのためのDNS速習講座』に『第2章:DNSの構成要素と名前解決のしくみ』という記事を寄稿しました。第1章でも滝澤が趣味で作成した資料『ドメイン名の歴史』が参考文献として掲載されていました。よい機会なので、ドメイン名ができるまでの歴史について文章としてまとめようと思い、このブログ記事を書きました。 なお、筆者自身はインターネットの原型であるARPANETや80年代のインターネットをリアルタイムには体験してはいないため、RFC(Request for Comments)やインターネット上にある当時のホストアーカイブを元に調査した内容をまとめたものになります。 ARPANETの時代 1969年から1980年代初期にかけてのインターネットの原型となったAR

    peketamin
    peketamin 2022/08/30
    昔BSD MagazineやSoftware Designでこの辺の話を読んだなあ。ありがたや/iPhone 13 miniだけど、右端は欠けてない
  • TLS証明書チェッカーcheck-tls-certの公開

    こんにちは、技術開発室の滝澤です。 TLS証明書チェッカーcheck-tls-certを開発して公開したので紹介します。 このcheck-tls-certについて簡単に説明すると次の通りです。 check-tls-certは、TLS証明書の有効性と証明書チェインの検証するツール 主な用途は、TLS証明書の設置・更新作業の際の各種確認およびTLS証明書の(有効期限を含む)有効性の監視 様々な検査を実施し、各検査結果を出力することで問題箇所を把握しやすい check-tls-certの概要 TLS証明書チェッカーcheck-tls-certはTLS証明書の有効性と証明書チェインを検証します。 主にTLS証明書の設置・更新作業の際の各種確認およびTLS証明書の(有効期限を含む)有効性の監視のために利用できます。 次のサイトで公開しており、ReleaseページからLinux向けとmacOS向けのバ

    peketamin
    peketamin 2021/07/14
  • Webサービス業界・界隈のシステム開発・運用におけるエンジニアの振る舞いや役割分担(2020正月)

    こんにちは。CTOの馬場( @netmarkjp )です。 新年らしい仕事をしてみよう、ということで、 現時点と今後のエンジニア界隈の展望をまとめました。 毎月やっている社内勉強会でも話しましたが、 自社の今後の戦略について考えるネタにするのと、 直近で SRE NEXT 2020 などのイベントがあり、 エンジニアとしてのポジショニングや振る舞いについて考える機会が多そうなので、 そのベースラインとして整理したという意図もあります。 観測範囲や観測者の立ち位置によってわたしと全く異なる見解になる方もいると思うので、 ぜひ情報交換させてください。 最近のWebサービス業界・界隈に関する所感 DevOps以来の「すべて同じ人がプライマリの責任を持つ」流れが極まってきている。 開発も運用も同じ人 というやつ フロントエンド領域 / バックエンド領域 / DBMS領域(RDB、KVS、Docum

    Webサービス業界・界隈のシステム開発・運用におけるエンジニアの振る舞いや役割分担(2020正月)
  • 技術とは・技術者とは・成長とは・倫理とは・結果を出すために重要な考え方......ハートビーツのエンジニアの倫理規定を公開します

    こんにちは。CTOの馬場です。 ハートビーツで社内ドキュメントとして策定した「ハートビーツのエンジニアの倫理規定」を公開します。 技術とは・技術者とは・成長とは・倫理とは・結果を出すために重要な考え方といった内容を含んだ、 CTOとしてのわたしからの・わたしたち中堅/ベテランエンジニアから新規参画者へのメッセージでもあります。 ものごとの考え方やとるべき態度など、属人的な事柄を伝達するための取り組みです。 エンジニアや学生のみなさんには、 ハートビーツとハートビーツのエンジニアの雰囲気を知っていただくきっかけとなれば幸いです。 また各社のCTOやVPoEのみなさんとは、お互いに知見を持ち寄り情報交換・議論したいです。 おそらく似たような悩みを抱え様々な取り組みを実施されているかと思いますので、 情報公開や情報交換、議論などを通じてよりよい業界にしていければと思っています。 ダウンロード:

    peketamin
    peketamin 2019/11/19
  • Pythonタスクランナー Fabric 2 の紹介 - 前編 Fabricの概要 -

    こんにちは、滝澤です。 いくつかのプロジェクトでタスクランナーFabric 2を使う機会がありました。少しですが知見が溜まったので紹介します。 また、Fabric 1.xを利用していた方は互換性も気になると思いますでのその点についても紹介します。 記事が長くなったので3編に分けます。 前編: Fabricの概要 中編: Invokeの使い方 後編: Fabricの使い方 記事は前編の「Fabricの概要」になります。 なお、執筆時点(2018年11月21日)での最新バージョンはFabric 2.4.0、Invoke 1.2.0です。 動作確認はPython 3.7.1にて行っています。 FabricはSSH経由でリモートシェルコマンドを実行するPythonライブラリです。 タスクランナーとして利用できます。 Fabricの簡単な理解のために、実行例を紹介します。 次のような内容のfabf

    peketamin
    peketamin 2018/11/23
  • メトリック収集と分散トレーシングのフレームワーク OpenCensus を使ってみた - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは、滝澤です。 先日、社内ISUCONが開催され、運営側として関わっていました。 その中で、試し解きと技術検証(お遊び)も兼ねて、以前から興味があったメトリック収集と分散トレーシングのフレームワークの OpenCensus を使ってみて、処理時間の可視化をしてみました。 そのときに行った内容などを紹介してみます。 OpenCensusとは OpenCensusはメトリック収集および分散トレーシングを行うためのライブラリ集です。 マイクロサービスやモノリシックなアプリケーションに対して Observability (可観測性)を提供します。 Google社が社内で利用しているメトリック収集およびトレーシングのライブラリ集であるCensusのオープンソース実装として、2018年1月にリリースされました。 提供する機能としては大きく分けて次のものになります。 Metrics (メトリック

    peketamin
    peketamin 2018/09/05
  • aws-cliはs3転送の帯域制御をどのように実現しているのか

    こんにちは。CTOの馬場です。 できるようになった、というのは見たものの、 具体的にどのように実現しているのか気になったので調べてみました。 こういうの、気になりません?わたしは気になります。 最近はコードの追い方の紹介をあまり見ないので、探し方を含めて紹介します。 なお30代後半以降の方にはお馴染みの、 find ... | xargs grep を使っていますが、 GitHubの検索機能でも代替可能です。 5秒でわかる結論 LeakyBucketです aws-cliではなくbotoで実装されています コードの追い方 ここからは地道に追ってみます。 読むだけだと何がなんだか...だと思うので、 操作したりリンクに飛んだりしながら試してみてください。 ※jediやVSCodeで定義にジャンプできる環境がある場合はインストールしてジャンプしていけばもっと楽に追えると思います 下準備 まずはa

    peketamin
    peketamin 2018/02/18
  • 組織が50人超えるためにやったこと 〜研修〜

    こんにちは。ハートビーツの管理部門を担当してます前川です 席が窓際なので気温の低下が更に身に沁みます(近況) ハートビーツは5名のメンバーでスタートした会社で、 何度も組織やいろんな壁にぶつかりながらなんとか70名規模までやってきました 今回は組織が大きくなるために行った研修内容とその失敗例について 以下、スライドに書ききれなかったポイントを書いてきます ・研修制度導入タイミング ・トレーナーの注意点 ・失敗例 ・今後の研修 研修制度導入タイミング 事業やサービスにおいてメンバーのやることが一通り決まってきたタイミングが良かったです (それまではOJTくらいしかできない) ハートビーツにおいては業務の形がほぼ決まり、それを横展開するタイミングで研修が導入しました それまでは探り探り業務を決めていきながら、OJTでその時点の正解を叩き上げで覚えてもらってました その後さまざまな研修を入れてト

    組織が50人超えるためにやったこと 〜研修〜
    peketamin
    peketamin 2018/02/09
  • 組織が50人超えるためにやったこと 〜ボランチ〜

    こんにちは ハートビーツの管理部門を担当してます前川です 席が窓際なので気温の低下が身に沁みます(近況) ハートビーツは5名くらいからスタートした会社でして、 何度も組織やいろんな壁にぶつかりながら毎年少しずつ人が入ってきて下さって今に至ります たぶん組織の人数別で起こる事象って概ね同じかなと思いまして、 今回、30〜50人時に導入したボランチという仕組みについて書いてみます 導入の背景 社員が20名くらいで全員が全員の業務内容を把握してるときは良かったのですが 社員が30名を超えたあたりから、部署が増えオフィスも広がりまして 他の部署の人がなにやってるか分からないとの声がきこえるようになりました 「やべぇ(私の心の声)」 昔からいる人間にとっては、毎年入ってくる人を差分で覚えていけば良いのですが、これから入ってきてくださる方は 一気に数十名の情報を入れて、これまでの経緯やキャラクターを知

    組織が50人超えるためにやったこと 〜ボランチ〜
    peketamin
    peketamin 2017/11/21
  • メールを受け取らないドメイン名に

    example.comゾーンには次の内容で登録されているものとします。 example.com. 86400 IN A 192.0.2.80 送信側メールサーバは次のような順番で処理を行います。 宛先メールアドレス"foo@example.com"のドメイン名"example.com"に対するMXレコードを問い合わせる。 "example.com"に対する回答として0個のMXレコードを受け取る。(MXレコードが登録されていないため。なお、"example.com"そのものは存在するため、回答のステータスとしては"NOERROR"である。) "example.com"に対するAレコードを問い合わせる。(MXレコードが存在しないときには、Aレコードにフォールバックするため) "example.com"に対する回答としてIPアドレス"192.0.2.80"を値とするAレコードを受け取る。 IPア

    メールを受け取らないドメイン名に
    peketamin
    peketamin 2016/12/14
  • nginx-1.9.11で動的モジュールをサポート

    nginxの記事を書くのは久しぶりの滝澤です。 nginxにApache HTTP Serverの動的共有モジュール(Dynamic Shared Object)(DSO)のような機能が欲しいと思っていた人も多いでしょう。筆者もそうです。秘伝のタレのようなビルド用のスクリプト(実際はRPMパッケージのSPECファイル)を保守し続けるのは辛いなと思っていました。 そのような方々に朗報です。2016年2月9日にリリースされたnginx-1.9.11において動的モジュール(Dynamic Modules)がサポートされました。 しかし、Apache HTTP ServerのDSOと比べると、現時点ではまだ制約があります。 記事ではnginx-1.9.11における動的モジュールの説明と制約について説明します。 注: 2017年2月22日にフォローアップ記事「nginxの動的モジュールの最新状況(

    nginx-1.9.11で動的モジュールをサポート
    peketamin
    peketamin 2016/02/12
  • Golangで作ったhttpdの接続数を制限してみよう

    こんにちは。斎藤です。 ここ1〜2年、私は仕事Golangを書くことが増えています。きっかけは、ITインフラをお預かりする中で、お客様のサーバにツールを置く場合でも1つのバイナリさえ置けば良いという手軽さからだったのですが、最近はScalaと並び手軽に並列処理が書けるプログラミング言語として重宝しています。 さて、今回はGolangで作ったhttpdの接続数をLimitListenerを利用して接続数の制限をしてみようというお話です。以下に紹介するお話は、Githubのリポジトリ "github.com/koemu/go-http-max-connections-demo" にデモプログラムを保存しています。Golangのビルド環境がある方は、実際にビルドしながらお試しいただければと思います。 ※Golang 1.5.1でビルドする前提で説明しています モティベーション 仕事でとあるAP

    Golangで作ったhttpdの接続数を制限してみよう
    peketamin
    peketamin 2015/10/20
  • Python+SSHな自動化・デプロイメントツールFabricを活用するTips

    こんにちは。CTOの馬場です。 みんな大好きFabricのTipsです。 Welcome to Fabric! -- Fabric documentation よくデプロイツールとして紹介されますが、 自動化のためのPython+SSH+コマンド実行フレームワークとして柔軟に使えて超便利です。 基的には 手元でのコマンド実行 SSHごしのリモートサーバでのコマンド実行 SSHごしのリモートサーバでsudoしてコマンド実行 ができるツールなのですが、使い方の例を紹介します。 間違いなどあればお近くのハートビーツ社員か @netmarkjp に教えていただけると嬉しいです。 Python 2.7.10 + Fabric 1.10.2 + Paramiko 1.15.2で動作確認しました。 複数のサーバに対して同じユーザ・パスワードでログインする ユーザ名やパスワードを一括指定できます。 鍵認

    Python+SSHな自動化・デプロイメントツールFabricを活用するTips
    peketamin
    peketamin 2015/07/02
  • hb-agent - 構築・監視項目検出自動化ツール hb-agentのご紹介

    こんにちは。斎藤です。 私の記憶では2012年頃から盛り上がり始めた、ITインフラ構築・運用の自動化やコード化のお話ですが、その後みなさまどのような形で推進されていますか?あれから3年ほど経ちまして、当社でも取り組んできた内容を一旦棚卸しできるかなと考え始めています。そうそう、「MSPでのChefの使い方 --- 運用ノウハウをコードに落とす」という記事を書いた日から考えても、2年以上経っています。 そこで、何回かに分けまして、私が担当していたITインフラ構築・運用の自動化・コード化に関する取り組みについてご紹介していきます。 TL;DR hb-agentは、「初期構築作業の自動化」「監視項目洗い出しの自動化」そして「ノウハウをコードに集約」を実現する社内ツールです。 導入を通じて、構築時間の短縮、ノウハウの共有がすすみました。その結果、新しいスタッフが入った時でも習熟度のぶれを押さえ、構

    peketamin
    peketamin 2015/05/15
  • Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう

    こんにちは。斎藤です。 最近、Dockerなどのコンテナ型仮想化技術、Chef, Ansible, Itamae などによるITインフラ構築・運用自動化技術の利用が進んでいます。一方で、何年も動いて「歴史」を積み重ねているシステムも数多くあります。そして、私を含めてそれらの運用に関わる事もあるでしょう。そんな「歴史」のあるシステムも、何とか運用を効率化したいと思う事があるかもしれません。 今日は、バッチジョブや複数サーバに対する運用を効率化するRundeckを取り上げます。「何ができるの?」「はじめかた」そして「利用時の留意点」の3点についてお話しします。 ※OSはCentOS 6系、Rundeck はバージョン 2.4.0、Java VM は Oracle JDK 1.7.0_72 を利用しています。 cronLinux系OSに標準搭載されているジョブスケジューラです。標準で使えるため

    Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう
    peketamin
    peketamin 2015/01/19
  • nginxパッケージの選び方@CentOS6、Ubuntu14.04 - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは。CTOの馬場です。 最近はnginxがパッケージでインストールできるようになってきたので、 いろいろなパッケージのconfigureオプションを比較してみました。 nginx.org公式パッケージ(stable = 1.6.0) @ CentOS6, Ubuntu14.04 nginx.org公式パッケージ(mainline = 1.7.3) @ CentOS6, Ubuntu14.04 Ubuntu公式パッケージ(1.4.6) @ Ubuntu14.04 nginxにはまだDSO機構がないので利用したいモジュールが入ったものを選ぶ必要があります。 バージョン、configureオプションをもとにパッケージを選びましょう。

    peketamin
    peketamin 2014/07/31
  • nginxをdockerで動かす時のTips 3選

    こんにちは。CTOの馬場です。 最近利用する機会が増えてきたdockerネタです。 nginxを動かすときのTipsを3つ紹介します。 foregroudで起動する dockerではコマンドをforegroundで動かさないとコンテナが停止してしまいます。 nginxはデフォルトはデーモンとして動くので、foregroundで動くように設定しましょう。 nginx.confで設定するならこうです。 daemon off; Dockerfileの起動コマンドで指定するならこうです。 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] 動的な設定を外部化する イメージの中に設定値を入れちゃうのはダサいですよね。 コンテナ起動時に動的に設定したいものです。 dockerの場合は docker run 時に -e で環境変数を指定できるので使いましょう。 do

    nginxをdockerで動かす時のTips 3選
    peketamin
    peketamin 2014/07/23
  • Nginx ユーザ会 #0 に行ってきました!

    こんにちは。三浦です。 先日6/18(水)にサイオステクノロジーさんのオフィス内にあるオープンスペースで開催された、「Nginx ユーザ会 #0」に行ってきました。 ハートビーツもユーザ会運営に関わらせていただいています。 会場には100人以上の人が集まり、おいしいビールとごはんをいただきながら初来日されたNginx開発者Igor Sysoev(イゴール・シソエフ)さんが、ひとりで開発していたときから会社設立を決意するまでの経緯や今後の開発の方向性などについてお話を伺いました。 The 1st NGINX Japan User Group meetup! #ngxug pic.twitter.com/J3cc3J4T8E — nginx web server (@nginxorg) 2014, 6月 18 Nginx開発のモチベーション 学生時代は科学、物理学、歴史などいろいろなことに興味

    Nginx ユーザ会 #0 に行ってきました!
    peketamin
    peketamin 2014/06/26