この記事は はてなエンジニア Advent Calendar 2021 11日目の記事です。 コンテナのベースイメージとしてdistrolessを選択肢にするということがここ最近増えてきました。 そんなdistrolessを非rootユーザで使おうとしたらとても簡単だったのでその紹介です。 どのくらい簡単かというと、Goのアプリケーションであれば以下のように変えるだけで対応できます。(コメントアウト部分は元々のrootユーザで動かしていた場合のもの) FROM golang:1.17 as builder WORKDIR /go/src COPY go.mod go.sum . RUN go mod download COPY . . RUN go build -o /out/myapp . # FROM gcr.io/distroless/static:latest FROM gcr.i
Paul Louth had a great development team at Meddbase, the healthcare software company he founded in 2005. But as the company grew, so did their bug count. That’s expected, up to a point. More code and more features mean more defects. But the defect rate was growing faster than Louth expected. “We were seeing more and more of the same types of bugs,” Louth says. “It was clear that there was an issue
パイプライン処理とは GUIは非常に直感的です。はじめて使うアプリであっても、なんとなくそれなりに動かせてしまうという点で、優れたインターフェイスと言えます。しかし効率を突き詰めると、軍配が上がるのはGUIよりもCLIでしょう。本連載の読者であれば、UnixライクなOSのCLIが持つパワーについては当然ご存知かと思います。 とはいえ、古典的なUnixコマンドの多くは、単体ではそれほど強力なものではありません。というのも、ひとつひとつのコマンドはシンプルに、特定の用途においてのみ上手く動作するよう設計されていることがほとんどだからです。こうしたコマンド群に無限のシナジーを与えるのが「パイプライン処理」です。標準入出力を通じて複数のコマンドを直列に繋げることで、複雑な処理をインスタントに組み立てることができるパイプラインは、まさにUnix哲学の体現であり、CLIの真髄はここにあると言ってもよい
過去のmacOSのファームウェア(Apple Silicon用)やインストーラーを自動でダウンロードできるアプリ「Mist/mist-cli 」がリリースされています。詳細は以下から。 Appleは新しいmacOSをリリース後、古いmacOSのインストールアプリをMac App Storeから削除(隠す)するため、システム要件から外れた古いMacに非公開となった古いmacOSをクリーンインストールしたい場合など、ダウンロードリンクを探すのに手間がかかる場合がありますが、そんな古いmacOSのインストーラーのダウンロードリンクをリスト化し、ワンクリックでダウンロードできるようにしてくれるアプリ「MIST」が新たにリリースされています。 Mist(MacOS Installer Super Tool)を公開したのは元AppleのGeniusで現在はDropbox Inc,のエンジニアをされてい
ウィスキー、シガー、パイプをこよなく愛する大栗です。 Google Cloud のリリースノートに Cloud SQL のリードレプリカで高可用性を有効にできるようになったという内容が出ていたので検証してみました。 Cloud SQL for MySQL release notes Cloud SQL for PostgreSQL release notes リードレプリカの高可用性構成 今まではリードレプリカがシングルゾーンであったため、障害があった場合に冗長性を確保するためには複数台のリードレプリカを用意してクライアント側でアクセス先を振り替える必要がありました。また、リードレプリカをプライマリインスタンスへ昇格させるときには、今までは昇格させた後に高可用性の有効化を行っていました。そのため昇格後に短期間ですが冗長性が低い状態で運用しており安全性が失われている期間があったり、別途の操作
async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最
「Diagrams」を使うと Python コードでアーキテクチャ図を生成できる.サポートされているアイコンセットがとても多く AWS や Google Cloud や Microsoft Azure もあれば,Kubernetes やプログラミング言語なども使える.試してみたけどめちゃくちゃ便利!まさに Diagram as Code だ✌️ diagrams.mingrammer.com セットアップ 「Diagrams」は Graphviz に依存しているため,macOS だと pip と brew ですぐにセットアップできる. $ pip install diagrams $ brew install graphviz 試してみた さっそく Examples を参考にアーキテクチャ図を作ってみた! サンプル : AWS from diagrams import Cluster, D
7月2日未明に発生した、KDDIの大規模な通信障害。全面復旧が発表されたのは、障害発生から80時間以上たった5日夕方で、この間、音声通話はもちろんのこと、データ通信によるインターネット接続や銀行のATMや自動車の緊急通報システム、そして110番や119番などへの緊急通報も利用しづらい状況が続いていました。 発生が休日だったこともあり、障害規模の割には混乱が最小限だった印象もありますが、いざというときに緊急通報が使えない状況というのは、想像するだけでも怖いものがあります。KDDIでは、「緊急電話もご利用しづらい状況が発生しているため、固定電話、公衆電話などをご利用くださいますようお願いいたします」と案内もしていましたが、自宅に固定電話がないという人も少なくなく、また、若い世代では公衆電話の使い方が分からないという人もいると聞きます。 障害時に他社回線を借りるローミングの可能性 こうした状況を
書名:ピアリング戦記 日本のインターネットを繋ぐ技術者たち 著者:小川晃通 著 発行:2022年7月13日 ISBN:978-4-908686-14-6 A5判、152ページ 紙本体2000円 電子本体1800円 インターネットを構成する「技術」は世界共通です。 その仕様であるTCP/IPは万人に対して公開されており、解説書も数多くあります。 仕様や解説書は体系的に記述されているので、一見するとインターネットは実に合理的に技術的な要請に基づいて構成された形をしているように思えるかもしれません。 しかし、インターネットは人間が作り運営しているものです。 そのため、インターネットの形には「人間の営み」が少なからず影響しています。 そもそもインターネットを物理的に構築するためにはどうしても各所でお金が必要です。 回線代、場所代、電気代、運用者の人件費など、維持にはさらにお金がかかります。 お金が
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く