タグ

ブックマーク / developer.hatenastaff.com (26)

  • Postfixのログ監視で注意すべきSMTPのステータス仕様について - Hatena Developer Blog

    システムプラットフォームチーム SREのid:MysticDollです。 この記事は、はてなの SRE が毎月交代で書いている SRE 連載の5月号です。先月分は id:heleeen さんの Mackerel で行った障害対応演習を紹介します でした。 先月 Platform Engineering Meetup #8 にて 「はてなにおけるメール基盤とDMARC対応」というタイトルで登壇させて頂きました。 speakerdeck.com この記事では資料では紹介しきれなかった、メール送信基盤の監視で気をつけるべきSMTPのステータスの仕様とそれらを踏まえた監視方法について紹介します。 メールのステータス形式 SMTP Reply Code 1桁目 2桁目 3桁目 DSN 1つ目 2つ目 3つ目 Postfixのログからのエラーのメトリクス化 まとめ メールのステータス形式 SMTPにお

    Postfixのログ監視で注意すべきSMTPのステータス仕様について - Hatena Developer Blog
    hiroomi
    hiroomi 2024/06/01
  • 複数の言語で同じWebサービスを実装して技術特性の違いを見てみた - Hatena Developer Blog

    開発合宿運営チームの id:yutailang0119 と id:maku693 です。はてなでは四半期に一度、技術グループ主導で開発合宿を開催しています(過去の合宿の様子は「開発合宿」カテゴリーにまとまっています)。 2023年4月に実施した開発合宿では、参加者が複数のチームに分かれ、それぞれ異なるプログラミング言語で同じお題のWebサービスを開発しました。言語ごとの特性を比較し、今後の技術選定に生かす取り組みです。 この記事ではその開催レポートをお届けします。 開発言語の特性を理解したい さまざまな技術要素を2日で実装できるお題に 参加チームやコミュニケーションでの工夫 順調に開発が進んだ合宿当日 技術勉強会で「成果物を見る会」を実施 開発合宿を終えて プログラミング言語ごとの使用ライブラリ TypeScript Go Ruby Scala 開発言語の特性を理解したい はてなではたくさ

    複数の言語で同じWebサービスを実装して技術特性の違いを見てみた - Hatena Developer Blog
    hiroomi
    hiroomi 2023/06/14
  • YAPC::Kyoto 2023ノベルティのPerl Poemを読み解く - Hatena Developer Blog

    チーフエンジニアエンジニアリングマネージャのid:taraoです。先日開催されたYAPC::Kyoto 2023にはたくさんの方にご参加いただけまして、ありがとうございました。 トートバッグに書かれたPerlコード YAPC::Kyoto 2023には、はてなもスポンサーとして参加しており、会場で配布されたトートバッグのデザインも提供していました。そのバッグの片面にPerlのコードが書かれていたことにはお気づきいただけたでしょうか? コードを書き写すと以下のようになります。 use feature qw(try); try { Something->new; } catch ($your_dream) { tell $your_dream and seek our $future, @ YAPC::Kyoto, 2023; } 今回のカンファレンスのテーマは「try/catch」だったの

    YAPC::Kyoto 2023ノベルティのPerl Poemを読み解く - Hatena Developer Blog
    hiroomi
    hiroomi 2023/03/28
  • Let's Encrypt 証明書の自動更新システムを作る - Hatena Developer Blog

    この記事は はてなエンジニア Advent Calendar 2018 11日目の記事です. こんにちは,システムプラットフォーム部でSREをしているid:cohalzです. はてなでは証明書を自動更新してくれる仕組みを作っており,今回はその紹介をします. はてなの証明書自動更新といえば,はてなブログの独自ドメインにおける証明書自動更新システムのことを思い浮かべる人もいるかも知れません. 今回紹介するのは,そのシステムとは違う,開発チーム用に向けて作成したシステムとなります. ここではブログの方のシステムについて紹介は行いませんが,少し前にGeekOut様にてはてなブログのHTTPS化に関する記事が公開されましたのでそちらをご覧ください. geek-out.jp ブログのシステムと何が違うのか まずはじめに,何故ブログと別のシステムを作成したかについて説明します. 大きな違いはシステムで使

    Let's Encrypt 証明書の自動更新システムを作る - Hatena Developer Blog
    hiroomi
    hiroomi 2021/10/26
    “AWS Lambdaで動作する証明書更新システム”
  • 数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog

    こんにちは id:cohalz です。はてなブログでは2021年4月の公式ブログで、すべてのブログをHTTPSに一化していくことを案内しました。 ▶ 「HTTPS配信」への切り替えと、ブログの表示の確認をお願いいたします この時点でまだ数百万件のHTTPのブログが残っている状態でしたが、2021年8月には上記の案内に追記したように、全ブログでHTTPS化を完了できました。 完了までに行ってきたことをこの記事で振り返ってみようと思います。 はてなブログのHTTPS化のこれまで はてなブログのHTTPS化は、2017年9月に最初のお知らせを行ってスタートしました。 当初の予定より時間がかかりましたが、2018年2月にHTTPS配信の提供を開始し、これ以降に作成されたブログは最初からHTTPSのみで配信されています。また、それ以前に作成されたブログでも、ユーザ側で設定を変更することで自分のブロ

    数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog
    hiroomi
    hiroomi 2021/10/25
    “有償の証明書は購買から入れ替えまでのフローに多くの手順が必要で、自動化も難しい状態でした。その点、Let's Encryptの証明書は自動更新を前提”
  • Pull Requestから社内全チームの開発パフォーマンス指標を可視化し、開発チーム改善に活かそう - Hatena Developer Blog

    こんにちは。id:shiba_yu36です。MackerelチームでWebアプリケーションエンジニアをしています。最近の開発合宿で、id:syou6162やid:polamjagと一緒に、社内の全チームの開発パフォーマンスを表す指標をGitHubのPull Requestから可視化し、開発チームの改善に活かせるようにしました。今回はその紹介をします。 説明するサンプルコードは、次のレポジトリで公開しているので参考にしてください。ここではGitHubhatenaオーガニゼーションで集計していますが、forkして少し手直しすれば、別のオーガニゼーションの集計も可能になっています。 hatena/pull-request-analysis-sample 開発チームの改善におけるいくつかの課題感 開発チームのパフォーマンス指標に何を使うか 4つの指標のうち何からまず集計するか 変更のリードタイム

    Pull Requestから社内全チームの開発パフォーマンス指標を可視化し、開発チーム改善に活かそう - Hatena Developer Blog
    hiroomi
    hiroomi 2021/03/04
  • Elasticsearchクラスタを再構築し、無停止で切り替えるベストプラクティス - Hatena Developer Blog

    はてなブックマークチームのid:taraoです。はてなブックマークでは、以前はオンプレミスなElasticsearchクラスタを運用していましたが、AWS上にAmazon Elasticsearch Serviceのクラスタを構築して切り替えました。この切り替えではクラスタの再構築に限らず、アップグレードやマッピングの変更にも使える一般的な方法を採用しました。 この記事では、その具体的な方法を紹介します。 一般的な方法を採用したい目的と背景 検討したクラスタ再構築や切り替えの方法 1. ローリングアップグレード 2. スナップショット・リストア 3. クラスタ横断レプリケーション 4. Reindex API 5. アプリケーションコードによる再インデキシング 目的・条件による取りうる方法のまとめ 採用した再インデキシング手法の詳細 ダブルライトをどのように実現するか 非同期ダブルライトの

    Elasticsearchクラスタを再構築し、無停止で切り替えるベストプラクティス - Hatena Developer Blog
    hiroomi
    hiroomi 2020/08/21
  • コーポレートサイトを誰にも気づかれず静的化したときの技術選択について - Hatena Developer Blog

    こんにちは〜。チーフエンジニアのid:cockscombです。 最近、同僚のid:yashigani_wとともに、はてなのコーポレートサイトを静的サイトとして再構築しました。ちょっとした仕事ではありますが、経験によって得られた暗黙知を形式知へ昇華するため、ここに紹介します。 はてなのコーポレートサイトとは サイトを静的化するメリット どのようにサイトの静的化を進めたか 1. 静的ファイルをNext.jsで生成 2. 運用を自動化したい 3. ホスティングサービスを選択する 4. 動的なコンテンツを表示する リリースと振り返り ホスティングサービスに関する補足 はてなのコーポレートサイトとは 弊社のコーポレートサイトは一般的なそれと同様に、株式会社としての「はてな」に関心を持っていただいた方々とコミュニケーションするための窓口です。会社情報を提供したり、あるいはプレスリリースなどの情報を公開

    コーポレートサイトを誰にも気づかれず静的化したときの技術選択について - Hatena Developer Blog
    hiroomi
    hiroomi 2020/07/22
  • デプロイ今昔 - Hatena Developer Blog

    こんにちは。はてなのアプリケーションエンジニアの id:onk です。 最近、若手エンジニアを中心に、いろいろな技術を見つめ直すワーキンググループをやっています。今回は、その中から「デプロイ」の会で発表されたことをまとめました(なお、私は会のとりまとめをやっている非若手です)。 デプロイのライフサイクルの違い Infrastructure Platformでのデプロイ Application Runtime Platformでのデプロイ Applicationsのデプロイ デプロイ方式はどのように変化してきたか In place から Blue/Green へ Immutable Infrastructure という考え方 オートスケールへの対応 push 型デプロイと pull 型デプロイ コンテナによるデプロイの現況 コントロールプレーンによって何が変わったか ECS におけるデプロイ

    デプロイ今昔 - Hatena Developer Blog
    hiroomi
    hiroomi 2020/06/26
  • https://developer.hatenastaff.com/entry/2019/01/15/120431

    https://developer.hatenastaff.com/entry/2019/01/15/120431
    hiroomi
    hiroomi 2019/01/15
  • 社内障害情報共有のススメ - Hatena Developer Blog

    こんにちは、アプリケーションエンジニアのid:shiba_yu36です。今日は社内で数年ほど取り組んでいる障害情報の社内共有についてご紹介したいと思います。 障害情報を社内共有する理由 サービスを運営しているなら、出来る限りサービスが一時的に止まってしまうなどの障害を起こさないように事前に対策を取るなど気をつけるべきです。しかし、どれだけ事前に対策をとっても、急激なアクセスの増加や、意図しないバグの混入、オペレーションのミスなどを理由として、障害を起こしてしまうことがあります。 障害が起きた時、それに暫定的に対応して終わりとしてしまうことも多いです。しかし、復旧した後大事なのは、障害に対して適切に振り返りをし、同じサービスで同様の理由で障害を起こさない、また社内で同様の理由の障害を未然に防ぐことです。 そこで、はてなでは障害の暫定対応をした後は、障害の振り返りや他チームへの知識共有のために

    社内障害情報共有のススメ - Hatena Developer Blog
    hiroomi
    hiroomi 2018/02/19
    障害以外にも使えそうと、developer blogに書いてあるのが惜しいぐらい。
  • Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の

    Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
    hiroomi
    hiroomi 2017/12/22
  • 「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog

    はてなのアプリケーションエンジニアのid:shiba_yu36です。社内技術勉強会で「新機能作成時に開発ブランチに細かくmergeしていく戦略」という発表をしたので、資料を公開します。 speakerdeck.com 以下、簡単に文字でまとめておきます。 戦略 ユーザーに新機能が見えないようにする工夫をし、新機能のbranchもどんどん開発ブランチにmergeしていく mergeされたものは随時番にリリースされるが、ユーザーに見えない工夫をしているので問題なし PRは可能な限り細かくする 機能が完成したら最後にユーザーに新機能を見えるようなPRを作り、mergeしてリリースする なぜこの戦略を使うのかいろんな失敗を経験して、この戦略を最近使っている。 失敗パターンその1: 巨大PRパターン 失敗パターンその2: 新機能リリースブランチパターン 失敗パターンその1: 巨大PRパターン 新機

    「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
    hiroomi
    hiroomi 2017/08/08
  • はてな社内で10年間運用されていた広告配信システムを刷新し、ネイティブ広告枠に対応しました - Hatena Developer Blog

    アプリケーションエンジニアのid:yanbeです。2011年にはてなに入社し、以後、はてなブックマークのエンジニアやディレクターなどを経て、最近では、社内で利用する広告入稿システムと、その広告を配信するシステムを開発するチームに所属しています。 はてなでは、Webサービスの収益化の手段の一つとして、Google AdSenseなどのアドネットワークによる広告掲載のほかに、広告主との直接契約や広告代理店を介した広告掲載もおこなっています。 後者の具体的な例としては、はてなブックマーク公式スマートフォンアプリの人気エントリーを開くと、一覧に[PR]表記とともに差し込まれる広告枠*1です。 スマートフォンアプリの他に、はてなブックマークのPC版やスマートフォン版にも、このような広告枠が複数存在します。各プラットフォームに設置されている広告枠の掲載状況を効率的に管理するために、はてな社内では「広告

    はてな社内で10年間運用されていた広告配信システムを刷新し、ネイティブ広告枠に対応しました - Hatena Developer Blog
    hiroomi
    hiroomi 2017/07/11
  • はてなブックマークAndroidアプリのリノベーションを振り返る - Hatena Developer Blog

    こんにちは、アプリケーションエンジニアのid:takuji31です。今年の4月にはてなブックマークのチームにjoinし、はてなブックマークAndroidアプリのリノベーションを担当しました。 4月の末にはてなブックマークAndroidアプリのリノベーションが一通り完了しました。今日は大規模なアプリのリノベーションを完了して、実際にどうなったかを振り返ります。 はてなブックマークAndroidアプリのリノベーションについて 成果 画面ごとに優先順位をつけて、リファクタリングするものを選択した Activity/Fragment、ロジック部分のリファクタリングを行った 週に1回の定期リリースを行った やっていないこと 大きく変更が加わらないであろう画面のリノベーション 実際にやって見えた課題 大規模なアプリのコードをリファクタリングする見積の難しさ 設計の例外 途中参加したメンバーとしてリノベ

    はてなブックマークAndroidアプリのリノベーションを振り返る - Hatena Developer Blog
    hiroomi
    hiroomi 2017/05/29
  • 開発速度と品質のトレードオフの判断基準の合意 - Hatena Developer Blog

    Webサービスの開発は、ユーザ/顧客へ価値を早く届けるため、競合より早くリリースするため、人的リソースを無駄使いしないためなど、とにかく素早く進めたいものですね。一方で、開発を急ぐあまり品質を犠牲にすればかえって価値が失われたり、技術的負債が溜まって長期的なコストが大幅に増大する可能性もあります。開発速度とプロダクト品質は基的にはトレードオフの関係にあるのでしょう。 開発速度と品質のどちらを優先するかはプロダクトの性質や、チームもしくは会社の状況によって異なるとおもいます。この状況の認識がチームメンバー間でずれていると、チームのパフォーマンスを最大限に発揮できないばかりか、チーム内の関係悪化も招きかねません。エンジニアたちとプロダクトオーナーの間の対立のようなありがちな問題の原因の一つかもしれません。 そこで、開発速度と品質のトレードオフをどう判断すべきかの基準を明確にして、原則それに従

    開発速度と品質のトレードオフの判断基準の合意 - Hatena Developer Blog
    hiroomi
    hiroomi 2016/12/25
  • 文字列アルゴリズムの学びかた - Hatena Developer Blog

    こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに

    文字列アルゴリズムの学びかた - Hatena Developer Blog
    hiroomi
    hiroomi 2016/12/23
  • 2016年ウェブオペレーションエンジニアの新卒研修 - Hatena Developer Blog

    ウェブオペレーションエンジニアの id:y_uuki です。2016年度のウェブオペレーションエンジニアの新卒研修を紹介します。 今年はウェブオペレーションエンジニアとして2名(id:masayoshi id:taketo957)が新卒として入社しました。若手のインフラ系エンジニアが少ないと言われる昨今で、もともと7人のインフラチームに2人も新卒が加わることはなかなか珍しいのではないでしょうか。 今年の新卒エンジニアは 2016年度はてな新人エンジニア研修を行いました - Hatena Developer Blog のエントリで紹介した新人エンジニア研修の後に、チームに配属されました。通例であれば、チーム配属後はOJTという名目で即実戦投入されます。しかし、今回は、OJTの前段に2週間程度の研修期間を設けてみました。 研修の動機 ウェブオペレーションエンジニアは、一般的なコンピュータサイエ

    2016年ウェブオペレーションエンジニアの新卒研修 - Hatena Developer Blog
    hiroomi
    hiroomi 2016/07/25
  • AWS EC2でのHTTP/2 or SPDY導入方法 - Hatena Developer Blog

    東京でウェブオペレーションエンジニアをしている id:dekokun です。 ここ数年、HTTP/2 or SPDYが話題ですよね。nginxが1.9.5からSPDY対応を切ってHTTP/2の設定ができるようになったり、はてなでも以下ブログにも記載されているように、SPDY or HTTP/2も積極的に導入していっています。 developer.hatenastaff.com 先日、AWSの環境にてSPDYを導入したのですが、導入していくまでにはやはり若干の苦労がありました。そこで、SPDY or HTTP/2をどのように導入していったか及びそこで起きた問題点の解決策等をまとめようと思います。 なお、この記事では"HTTP/2 or SPDY"と書いていますが、SPDYはHTTP/2にその座を譲ろうとしている立場となっています。具体的には、今年の5月にChromeがSPDYのサポートを切る

    AWS EC2でのHTTP/2 or SPDY導入方法 - Hatena Developer Blog
  • Googleスプレッドシートをcronのように使いSlackに投稿する - Hatena Developer Blog

    はてなチーフエンジニアの id:motemen です。 以前の記事で紹介したようにはてな技術グループおよびデザイングループでは毎週社内で勉強会を開催していますが、これを運営していくにあたってひとつ課題であったのが毎週のリマインドでした。 developer.hatenastaff.com 毎回発表者が違いますから、あらかじめ皆に「今日は○○さんの××という発表です!」と周知して期待を高めたいですし、また次回の発表者には予告をして発表の準備を進めておいておかなければなりません。発表者・タイトル・日付などを記したスプレッドシートがマスターデータとしてあったので、元々は私が人手で、Googleスプレッドシートに記載した発表順を見ながらSlackに共有していました。しかしやはり個人による運用だと予告忘れがあったり、周知のタイミングが朝なり夕方なりまちまちであったりと、参加者にも不便を強いていたし、

    Googleスプレッドシートをcronのように使いSlackに投稿する - Hatena Developer Blog