HEARTBEATS

技術の最近のブログ記事

          

文字エンコーディングの検出方法

   

こんにちは、技術開発室の滝澤です。

最近(2021年春)、Go言語でメールパーサーを書く機会があり、備忘録的な意味でも知見をまとめておこうかなと思い、この記事を書きました。

メールパーサーを書いていて考慮しないといけないことの一つは、文字エンコーディング(charset)が正しく指定されていないメールがときどきあることです。 MIME(Multipurpose Internet Mail Extensions)関連のインターネット標準であるRFCが公開された1990年代や世間一般にインターネットメールが利用され始めた2000年代初期ならともかくとして、2021年にもなってまだその点を考慮しないといけないのはなかなかつらいことです。 そのようなメールを取り扱うときには、文字エンコーディングの検出を行う必要があります。本記事ではその文字エンコーディングの検出方法について書いてみました。

なお、本記事では文字エンコーディングや文字コード関連の用語の説明は行っていませんのでご了承ください。 文字コード関連の知識があることが前提で記述しています。

          

クラウドと可用性

   

こんにちは、技術開発室の滝澤です。 今回はクラウドと可用性についてのポエムを書いてみたいと思います。

まとめを最初に書くと次のようになります。

  • 原則としては、ゾーン冗長構成にすることで可用性は向上する。
  • クラウド事業者側のソフトウェアのバグやヒューマンエラーなどが原因の障害ではゾーン冗長構成でも回避できない場合がある。
  • マルチリージョン構成やマルチクラウド構成は本当にそのレベルの可用性が必要かどうかを検討する。
          

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

   

こんにちは、滝澤です。

今回は"The ETTO Principle"(効率-徹底性トレードオフ原則)について紹介します。ここでは「ETTO原則」と呼ぶことにしましょう。 ETTO原則はレジリエンス・エンジニアリングで著名なエリック・ホルナゲル氏(Erik Hollnagel)が提唱したもので、効率性(Efficiency)と徹底性(Thoroughness)はトレードオフの関係にあるというものです。 これは、元々は安全に関する分野での話ではあるのですが、IT分野においても無縁というわけではありません。そのあたりの話を紹介します。

本記事を3行でまとめると次のようになります。

  • ETTO原則により効率性と徹底性はトレードオフの関係にある。
  • ITシステムの運用の例として作業手順書作成の例を示し、効率性と徹底性のバランスを考える必要があることを示した。
  • システム障害と根本原因分析について紹介し、根本原因分析を徹底的に行うのが難しいということを示した。
          

DNSプロトコルのここ数年のトピック紹介

   

こんにちは、滝澤です。

筆者の趣味として調べているDNSのプロトコルのここ数年のトピックについて紹介してみます。

ほぼ毎年、DNSに関連する新しいRFC(インターネットに関する技術仕様)が公開され、仕様が更新されたり、新しい仕様が追加されたりしています。 ここ数年のトピックについてまとめてみたいと思い立ち、この記事を書きました。

なお、この記事は2020年8月時点での情報となります。すべてを網羅しているわけではありません。

ちなみに、筆者は次のサイトを公開している人でもあります。

          

マルチクラウド構成におけるMySQL Group Replicationの利用事例紹介

   

こんにちは、滝澤です。

前回の記事『WireGuardによるマルチクラウド構成VPNの事例紹介』に引き続き、社内事例を紹介します。

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

今回はこのMySQL Group Replicationの利用事例を紹介します。

行っていることをまとめると次のようになります。

  • マルチクラウド構成(Azure, AWS, GCP)において、MySQLサーバーの冗長化としてMySQL Group Replicationを利用している。
  • マルチプライマリーモード(multi-primary mode)で運用しており、アプリケーションからは同じ拠点内のMySQLサーバーをActive/Passive構成として利用している。
  • MySQL用の監視プラグインに対して、MySQL Group Replicationのステータス監視の機能を開発して追加した。

株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。



ハートビーツをフォロー

  • Twitter:HEARTBEATS
  • Facebook:HEARTBEATS
  • HATENA:HEARTBEATS
  • RSS:HEARTBEATS

殿堂入り記事