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

  • 電子メール技術移転:メールプロトコル勉強会をチームで開催してみた

    こんにちは、技術開発室の滝澤です。 技術開発室の基盤システム担当チームで電子メールプロトコル勉強会を開催したので、その概要について紹介します。 この記事ではプロトコルの内容についてではなく、どのようなことを行ったかを紹介します。どのRFCを調べてもらったかについてはおまけに掲載しましたので、もしメールプロトコルについて学習したい人や組織の参考になれば幸いです。 背景 先月(2022年11月)に技術開発室の基盤システム担当のメンバーで自社のメールサーバーの構築・移設を完了させました。 メンバー構成としてはベテラン1人(わたし)と中堅1人と新人2人です。メールサーバーに関しては、わたし以外のメンバーは運用のみ経験があるか、構築・運用経験が全くないようなメンバーでした。そのため、この移設プロジェクト開始時の最大の課題は、メンバーへの電子メール(以降、単にメールと呼ぶ)に関する技術移転と技術習得で

    nishitki
    nishitki 2022/12/28
  • The ETTO Principle(効率-徹底性トレードオフ原則)とITシステムの運用

    こんにちは、滝澤です。 今回は"The ETTO Principle"(効率-徹底性トレードオフ原則)について紹介します。ここでは「ETTO原則」と呼ぶことにしましょう。 ETTO原則はレジリエンス・エンジニアリングで著名なエリック・ホルナゲル氏(Erik Hollnagel)が提唱したもので、効率性(Efficiency)と徹底性(Thoroughness)はトレードオフの関係にあるというものです。 これは、元々は安全に関する分野での話ではあるのですが、IT分野においても無縁というわけではありません。そのあたりの話を紹介します。 記事を3行でまとめると次のようになります。 ETTO原則により効率性と徹底性はトレードオフの関係にある。 ITシステムの運用の例として作業手順書作成の例を示し、効率性と徹底性のバランスを考える必要があることを示した。 システム障害と根原因分析について紹介し、

    nishitki
    nishitki 2020/12/02
  • マルチクラウド構成におけるMySQL Group Replicationの利用事例紹介

    こんにちは、滝澤です。 前回の記事『WireGuardによるマルチクラウド構成VPNの事例紹介』に引き続き、社内事例を紹介します。 弊社ハートビーツではMSP(Managed Service Provider)サービスの可用性向上のために、社内基盤をマルチクラウド構成で運用しています。 複数のクラウド拠点のネットワーク間をWireGuardというVPNトンネルのソフトウェアで接続しています。 さらに、リレーショナルデータベース管理システムにはMySQLを利用しており、MySQLのレプリケーション機能の一つであるGroup Replicationを使って拠点内および拠点間における冗長化を行っています。 今回はこのMySQL Group Replicationの利用事例を紹介します。 行っていることをまとめると次のようになります。 マルチクラウド構成(Azure, AWS, GCP)において、

    nishitki
    nishitki 2020/08/31
  • OctoDNSとGitLab CI/CDを利用した複数DNSプロバイダー構成の運用 - 前編:OctoDNSの紹介

    こんにちは、滝澤です。 昨年(2019年)11月に開催された日DNSオペレーターズグループのDNSOPS.JP BoFで発表した話を改めてブログで紹介します。 3行で説明すると次のような内容になります。 DNSゾーン管理ツール OctoDNS と SCM(ソースコード管理)ツール GitLab のCI/CD機能を使って、 複数DNSプロバイダー構成を運用する事例を紹介します。 前後編に分けて紹介します。 前編: OctoDNSの紹介 後編: GitLab CI/CDの利用 記事はは前編の「OctoDNSの紹介」になります。 OctoDNSでは以下のことができます。 複数のDNSプロバイダー間でゾーン情報を同期できる。 DNSプロバイダーの移行作業にも利用できる。 同期元としてゾーンファイルやゾーン転送を利用できるため、オンプレミスからDNSプロバイダーへの移行作業にも利用できる。 D

    nishitki
    nishitki 2020/02/25
  • 組織が50人超えるためにやったこと 〜研修〜

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

    組織が50人超えるためにやったこと 〜研修〜
    nishitki
    nishitki 2018/02/09
  • バウンスメール解析ライブラリSisimaiの出力からバウンスメールの集計と通知を行う

    OSS紹介アドベントカレンダー の19日目の記事です。 こんにちは、滝澤です。 去年の今頃もメール関連の記事(Null MXについて)を書いていましたが、再びメール関連の記事を書きます。 今回は、メーリングリストのバウンスメールをバウンスメール解析ライブラリSisimaiを使って解析し、その出力を集計して、Slackに通知するようにした事例を紹介します。 Sisimaiとは 公式サイトの説明が簡潔なので引用します。 SisimaiはbounceHammerの後継となるバウンスメール(エラーメール)解析ライブラリ (PerlモジュールとRuby Gem)であり、RFC5322に準拠した バウンスメールを解析し、JSONなどの構造化されたデータとして出力します。 Sisimaiはライブラリとして利用することも、次のようにコマンドラインで利用することもできます。 $ ruby -rsisimai

    nishitki
    nishitki 2017/12/19
  • graphiteの時系列データをpandasとscikit-learnで予測して月次レポート化する仕組み

    こんにちはCTOの馬場です。 弊社では業種柄、サーバごとのCPU利用率などたくさんの時系列メトリックデータを持っています。 以前はこの収集・閲覧にcactiを利用していましたが、最近はgrafana + graphiteを利用しています。 (ちなみにこれらは全て自社製OSS監視エージェントのhappo経由で収集されます) 今回はこのデータの活用例として弊社で実装している解析・レポーティングについて簡単に紹介します。 できること 全体としては月次レポートを作るしくみです。 月次レポートを自動生成 月次レポートに、前月の実績値が閾値超過しているグラフを掲載 月次レポートに、前月の実績値からの予測値が1ヶ月以内に閾値超過するグラフを掲載 下2つは今回作ったgraphdというアプリケーションで実現しています。 ※オレンジが閾値、赤が予測 動作概要 ハートビーツでは HTTPS(HTTP)+JSON

    graphiteの時系列データをpandasとscikit-learnで予測して月次レポート化する仕組み
    nishitki
    nishitki 2017/07/25
  • Golang製リソースロックchatbot「locket」の紹介

    こんにちはCTOの馬場です。 ハートビーツではPythonGolangを推奨プログラミング言語としています。 インフラがメインの会社っぽいでしょう? 社内チャットツールとしてSlackを使っているので、 chatbotを作って便利に使っています。 今回はGolangで自作したリソースロックのためのchatbotである 「locket」を紹介します。 lock-it => locket という感じの命名です。 いまのところOSSにしていませんが、 弊社のお客さまであればバイナリは提供できると思うのでご相談ください。 locketでできること システム運用上、作業Aと作業Bを並走させてはいけない、というシーンはよくありますよね。BINDの設定変更とか。 どちらもソフトウェアで完結できる処理であればキューイングして自動処理できますが、片方が手作業の場合はそうもいきません。なんだかんだで声掛けし

    Golang製リソースロックchatbot「locket」の紹介
    nishitki
    nishitki 2017/06/12
  • nginxの動的モジュールの最新状況(2017年2月版)

    StreamモジュールとMailモジュールについては、nginxバイナリに静的にビルドされて組み込まれています。 なお、nginxバイナリと動的モジュールの両方とも、後述するconfigure時のオプション「--with-compat」付きでビルドされています。 nginxバイナリとモジュールのsignatureが異なると動作しない 動的モジュールが実装された当初から「nginxバイナリとモジュールのsignatureが異なると動作しない」という制約があります。 このことについては昨年の記事「nginx-1.9.11で動的モジュールをサポート」において次のように説明しました。 nginxバイナリと異なる環境でビルドされた動的モジュールを組み合わせて動かすことはできません。 これにより困ることの例としては、公式サイトやディストリビューションからnginxのRPMパッケージをインストールした環

    nginxの動的モジュールの最新状況(2017年2月版)
    nishitki
    nishitki 2017/02/23
  • nginx連載1回目: nginxの紹介

    皆様、初めまして。滝澤と申します。今月からここで記事を書いていきますのでよろしくお願いします。 ここ1,2年で注目を集めているWebサーバnginxについて今回から数回にわたってを紹介していきます。 nginxについて初めて知った、あるいは、名前は聞いたことがあるんだけど使ったことはない、といった方のために、1回目のこの記事ではnginxの概要を、2回目の記事ではインストールと設定について紹介します。 nginxとは nginxロシアのIgor Sysoev氏によって開発されているWebサーバ兼リバースプロキシのソフトウェアです。「エンジン エックス」(engine x)と呼びます。 2002年に開発が始まり、2004年に公開され、今では約10%のシェアを持つまでに成長しています。facebookやWordPress.ORGなどの大規模サイトでの導入実績もあり、導入するWebサーバの選択

    nishitki
    nishitki 2016/12/21
  • 外形監視におけるフルリゾルバーのキャッシュ保持期間

    こんにちは、滝澤です。 みなさん、提供しているサービスの外形監視を行っていますか。 DNSレコードの変更ミスやドメイン名の失効などを起因とする障害に早く気づけるようになっていますか。 ということで、今回は外形監視におけるフルリゾルバー(キャッシュDNSサーバー)のキャッシュ保持期間について考えてみます。 外形監視とフルリゾルバーについて 外形監視とは何かを一言でまとめると、「システムの外部から、システムが提供していサービスが正常に動作しているかを監視する」ことです。 このとき、「ユーザーと同じような方法でアクセスする」ことが重要となります。 アプリケーションのサービスへのアクセス方法 ウェブブラウザーのようなユーザー側のアプリケーションがサービスに接続するときには、次の図のようにサービスのドメイン名の名前解決を行い、取得したIPアドレスに対して接続を行います。 このとき、名前の解決は次のよ

    外形監視におけるフルリゾルバーのキャッシュ保持期間
    nishitki
    nishitki 2016/12/20
  • 継続的テストとしての監視実装例

    その昔hbstudyで @kazuho さんは言いました 「監視は継続的なテストである」 というわけでこんにちはCTOの馬場です。 今回は弊社で実際に適用しているテストケースを紹介します。 ハートビーツと監視システム ハートビーツでは永らくNagiosを使って2拠点から同内容の監視をしています。 最適な監視を実現するためにはNagiosの監視の実体である Nagiosプラグインを自作する必要があり、 ハートビーツでは特に別途費用をいただかず必要なNagiosプラグインを実装しています。 ソースコードは社のGitLabで管理していて、 hb-nagios-plugins グループ配下には100近いリポジトリがあり、 さらにこの他にも案件固有の監視項目用に個別のリポジトリがあります。 要するにたくさんですね。 さきほどざっと hb-nagios-plugins グループ配下のファイル数を確認し

    継続的テストとしての監視実装例
    nishitki
    nishitki 2016/11/17
  • Tsungで負荷テストしよう(1) - 基礎知識

    こんにちは。CTOの馬場です。 負荷テストツール Tsung の話です。 HTTP負荷テストツールだと JMeter や ab 、httperfあたりが有名ですね。 新しいところだとTsungやGatlingでしょうか。 私は去年くらいからTsungをよく使っているので紹介します。 このエントリは第1回です。 Tsungで負荷テストしよう(1) - 基礎知識 Tsungで負荷テストしよう(2) - 実践Tips Tsungで負荷テストしよう(3) - リアルな負荷のためのTips Tsung のお勧めポイント まずはTsungのお勧めポイントから。 負荷をかける側に必要なマシンスペックが低い 負荷をかけるとき、JMeterよりTsungのほうが同じサーバでより大きな負荷を生成することができます。 もちろん必要な負荷が1台で生成しきれない場合は複数台で連動して負荷を生成することができます。

    Tsungで負荷テストしよう(1) - 基礎知識
    nishitki
    nishitki 2016/10/26
  • クリティカルシンキングのススメ

    こんにちは。CTOの馬場です。 みなさん、クリティカルシンキングしてますか? クリティカルシンキングというとどうにも意識高い感じがしますが、 実のところエンジニアが現場で使える超実践的スキルなのです。 弊社では会社のお金でグロービスのクリティカルシンキング講座を単科受講してもらうことが多いです。 経営層だけでなく、エンジニアチームや24/365チームのリーダークラスも受講しています。 クリティカルシンキングの効果 普段からクリティカルシンキングが実践できるようになると仕事の手戻りが圧倒的に少なくなります。 作業にせよコミュニケーションにせよ、 何かにつけて考慮漏れが減り検討が深くなるので効果絶大です。 クリティカルシンキングを身につけるということ 講座では経営層に向いたネタ(売上がどうだとか利益がこうだとか)がほとんどなのですが、 「クリティカルシンキングという方法論を身につける」 ことを

    クリティカルシンキングのススメ
    nishitki
    nishitki 2016/10/14
  • 株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP

    運用監視も エンジニアが対応 これまでの経験を元に、お客様の業務を全面的にサポート。運用監視もエンジニアによる24時間体制で状況変化・障害発生を早期に検知し、対応します。 幅広い対応力 技術担当者が不在、または別の業務に専念したい場合も、ハートビーツのエンジニアがインフラ管理〜コンサルティングまで対応、ご要望にお応えします。

    株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP
    nishitki
    nishitki 2016/09/30
  • HBエンジニアハック vol.1 - これからのインフラエンジニアってどんな感じなの?ってCTOに聞いてみた

    こんにちは。みうらです。 普段はエンジニアによる技術ネタがメインのインフラエンジニアWayですが、今日はいつもと少し趣向を変えて、人材とか採用という観点からハートビーツエンジニアをハックしてみようと思います。 実際ハートビーツのエンジニアってどうなの?どんな感じで働いているの?みたいなところに切り込むことで、少しでもエンジニアとしての働き方の参考になればうれしいです。 なんで今、中途採用がんばるの? つい先日6/27にwantedlyで中途採用の募集を新しくオープンしました。 ありがたいことにオープン直後からさっそく何人かの方に応募をいただいています。 中途採用に特化しているかのようなぺージになっていますが、実際のところはハートビーツでは1年を通して、いつでも積極的に採用活動をしています。 今回は、ターゲットを絞って採用チームの力をつぎ込んでみよう!という試み、というだけだったりします。

    HBエンジニアハック vol.1 - これからのインフラエンジニアってどんな感じなの?ってCTOに聞いてみた
    nishitki
    nishitki 2016/08/12
  • nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定

    株式会社ハートビーツのITインフラエンジニアがお届けするnginx連載の6回目。今回はnginxのTLS/SSLについての設定を確認していきます。以降、"TLS/SSL"のことを単に"SSL"と書きます。 nginx.orgのパッケージからインストールしたnginxが提供している設定ファイルexample_ssl.confをサンプルとして説明します。なお、一部修正をしております。 server { listen 443; server_name example.jp; ssl on; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/cert.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ci

    nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定
    nishitki
    nishitki 2016/06/27
  • Docker と infrataster で nginx の振る舞いをテストする

    こんにちは。吉川 ( @rrreeeyyy ) です。今期オススメのアニメはリゼロです。 Nginx は設定ファイルの記述力も高い、大変便利な Web サーバです。 便利な反面、設定ファイルの複雑化や、設定に依っては意図しない挙動を引き起こしてしまうこともあります。 そこで稿では docker 並びに infrataster を使用し、 Nginx の挙動をテストすることによって、安全に Nginx の設定を記述する方法について紹介します。 テスト対象の Nginx の仕様 今回は例として、次のような仕様の Nginx のテストについて考えます。 ネットワーク帯は 10.0.0.0/16 を使用している Nginx の前段として L7 ロードバランサが存在している L7 ロードバランサが https を終端している Nginx 自体は 80 番ポートと 8080 番ポートにて待ち受けてい

    Docker と infrataster で nginx の振る舞いをテストする
    nishitki
    nishitki 2016/06/17
  • hb-acns - サーバ監視・メトリック取得設定の自動化システムのご紹介 - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは。斎藤です。 前回につづき、当社で実践しているITインフラ構築・運用の自動化やコード化のお話になります。今回は、hb-acns(あくねす、といいます)といって、当社の監視・メトリック取得設定の自動化を行う内製のシステムについてご紹介します。 ※最後にお知らせがあります TL;DR データセンタ・IaaS事業者が入り乱れている中で、既存ツールで自動化するのが難しかった。また、既存業務をできる限り維持したい。そこで内製した。 hb-acns は軽量なエージェントとサーバで構成される。そのうえで、既存の監視システムに設定を自動登録できるシステムとなっている。 監視設定時間が1/10に短縮されるなど、大きな導入効果が得られた。 Issue, PRベースで開発を進めることで、利用者が自分のツールとして理解し、利用するようになり、そして改善に協力してもらえた。 動機 幾多にもある案件をどうこ

    hb-acns - サーバ監視・メトリック取得設定の自動化システムのご紹介 - インフラエンジニアway - Powered by HEARTBEATS
    nishitki
    nishitki 2015/06/10
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    nishitki
    nishitki 2015/02/16