https://gocon.jp/2023/sessions/A13-S/ https://github.com/k1LoW/httpstub https://github.com/k1LoW/grpcstub https://github.com/k1LoW/smtptest https://github.com/k1LoW/runn
1. はじめに こんにちは、SWEのあかりです。 今回のテーマは、SRE NEXT 2023のCall For Proposals(CFP) に応募したものの、残念ながら不採択になってしまったものです。話せるネタとしてはまとまっていたので、テックブログとしてここに捧げます😇 2. 本記事の概要 社内で最も古くから稼働している施工管理アプリでは、主にデータ修正と有事の際のログイン環境として開発者向けのEC2インスタンス(以降、「バッチサーバ」と表現)が存在していました。この記事では、このバッチサーバの廃止1を目的として、このサーバが担っていた役割をサーバレス環境・コンテナ環境へ移行し、EC2インスタンスからの脱却を達成した取り組み2について説明します。 この記事を読んで得られることは以下の通りです。 EC2インスタンスを廃止する取り組みの流れ 技術選定時に定性分析を行う事例 本番データを修
さくらのアドベントカレンダー2022 13日目の記事です。 qiita.com サーバ運用を行なっていると、非同期で行われるサーバの設定反映や起動を待ったり、メンテナンス後に監視を再開する前にすこし待つなんてこともあるかと思います。 そんな時に、人力で3分待ったらコマンドを打つ、Webコンソールを操作するなんてやっていると人間「必ず」忘れます。監視のメンテナンスモードの解除などを忘れてしまうとそれこそ事故につながります。チェックリストを利用した対策もありますが、技術的に解決するのが望ましい姿です。 そこで、よくやってきたのがsleepコマンドと組み合わせて sleep 180 && mkr update --st working とする方法。(サンプルとしてMackerelでサーバのステータスを変更しています) このように実行しておけば、自動で3分後にmkrコマンドが実行され、サーバの監視
5年前にこんな記事を書きました。 この時はPython2系と3系の共存(というか、Anaconda環境構築のベストプラクティス)に苦労していました。 rnakato.hatenablog.jp 今はほとんどPython3系のみで事足りますが、依然としてdependenciesの問題は解決されていません。 特に、bioconda から多数のツールをインストールしようとするとconflictが多発します。conda-forge と比べて、登録されたツールのdependencyがきちんと管理されていないような印象です。 また、Pythonの公式ライブラリも後方互換をあまり重視していない感じであり、Python3.7で書かれたツールをPython3.9にインストールしても動かないというようなこともあります。 私のようなサーバ管理者からすると、不特定多数の一般ユーザが共有できる解析環境をサーバ上に構
3-shake にはSreake共有会 という毎週、火曜日と木曜日に担当者が現場で得た知見などを発表する社内勉強会が開催されています。こちらのブログはそれらを変更修正しております。 syu-m-5151.hatenablog.com 元々しようとしていたの話 Go 1.18 の最新情報←Generics の深い話とかはもう既出すぎて気になる人は読んでる Go でのTDD(が実は20周年なので)←書いてる途中で自分が言うべきことなんてないことに気付く 今後、案件で増えるであろう gRPC についてインフラエンジニアが知っておいても良いと思ったという話 ← 今ここ TL;DR protobuf (Protocol Buffers) はデータフォーマットで、JSONの役割を置き換えるものです。一方 gRPC は通信プロトコルで、HTTPの役割を置き換えるものです。 gRPC をライブラリやツール
新バージョン(Ver.4.0.0)公開! Linuxサーバーの構築について基礎から実習形式で学習することができる教科書です 本教科書はLinuCレベル2の出題範囲に含まれるサーバー構築に必要な知識について、実習形式で学習を進めることができるテキストです。自分で構築したサーバーの環境で実際にWebアクセスをしたりメールの送受信をしたりすることで、サーバーの動作原理やプロトコルの仕組みを理解することができます。 Ver.4.0.0では仮想化技術/仮想マシンの解説や実践方法を追加するとともに、最新のLinuxディストリビューションAlmaLinux9.3に対応しました。また授業や研修だけでなく独学でも読み進められるよう、構成を見直しました。 本教科書はこれまでに10万回以上ダウンロードされ、最新版のVer4.0.0も公開後1ヶ月で4,000ダウンロードを超えるなど「サーバー構築初学者の学習に使え
CIでいろいろなタスクを自動化していると、CIで必要とするAPIのトークンやアカウント情報など設定しているシークレット変数が増えてきます。 たいていの場合はCIサービスのシークレット変数を利用すればよいですが、サービスによっては一度設定したシークレット変数を見ることができなかったり(GitHub ActionsやCircle CIが該当)、トークンやアカウント情報の更新や追加があったときにCIの変数を更新していくのが大変だったり、シークレット変数のメンテナンスはそこそこ面倒な作業です。 性質上かなり強い権限が設定されているトークンだったりすることもあるので、誰がその値をメンテナンスできるか、という管理の問題もあります。 そこで1Passwordをアカウント情報の共有に使っている組織なら、1PasswordはCLIの操作が提供されているのでCIから1Passwordのアカウント情報を取得する
こんにちは。ストリーミングチームの松本です。 Mirrativのストリーミングチームは、低遅延配信や、通知ぼかしというような機能を追加するため、配信のorigin serverの前段にtranscoder serverというものを導入してきました。 tech.mirrativ.stream tech.mirrativ.stream transcoder serverはGoによる内製のミドルウェアであり、主に映像の変換を行う目的で作られました。現在は配信プロトコルの変換(既存プロトコル -> 低遅延プロトコル)などを行っています。また、実際にはサーバー上のDockerコンテナ内で動作しています。 transcoder serverを展開していくにあたり、メモリ使用量が常に増え続ける問題が起きていたため、その際に直面したGoの実メモリ使用量に関する話を書きたいと思います。 メモリ使用量の増加問
Webアプリ負荷試験ガイド 目次 Webアプリ負荷試験ガイド 目次 前置き 時間がない人向け要約 about me 何故負荷試験を行うのか 負荷試験ツール 負荷掛けるツール 負荷計測 負荷の可視化 負荷試験の流れ 負荷試験スケジュールについて 注目すべきポイント シナリオ作成 アカウント情報は自動生成出来るようにする DB分割を行ってる場合はDB分割を意識したシナリオを用意する。 負荷試験元 http or https サーバ1台 サーバ単体での負荷 アプリの正常性の確認 サーバ複数台 KVS Memcached Redis RDB 問題になりやすいDB キャッシュの話 大前提 注意すべき点 CDNやProxyレベル local cache or remote cache local cache or memory cache(in app cache) references 更新情報 前
コンピューターの低レベルな遠隔操作を可能にするソフトウェアとしてはIPMIやIntel AMTなどがありますが、そうした機能を搭載したハードウェアは高価になりがちです。ソフトウェアエンジニアのMichael Lynch氏は、Raspberry Piを用いて100ドル(約1万500円)以下でコンピューターの遠隔操作を実現する方法を開発し、その詳細やソフトウェアを公開しています。 TinyPilot: Build a KVM Over IP for Under $100 · mtlynch.io https://mtlynch.io/tinypilot/ Lynch氏は自宅にソフトウェアテスト用のサーバーを設置していますが、時折作業を失敗してネットワークを遮断してしまったり、サーバーが起動しなくなったりするとのこと。普段はSSHでサーバーを操作しており、キーボードやマウス、モニターを接続してい
ウェブサイトのアクセス数や訪問者の属性を分析するために「Google Analytics」を使っている人は多いはず。無料のオープンソースソフトウェア「GoAccess」を使うと、トラッキングコードをウェブサイトに埋め込むことなく、リアルタイムにアクセス状況をターミナルやブラウザ上で可視化することができます。 GoAccess - Visual Web Log Analyzer https://goaccess.io/ 今回はUbuntu 18.04上にGoAccessをインストールしてみます。最新版をインストールするには下記コマンドを実行すればOK。 echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list wget -O -
sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し
2019年5月22日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第20回となる今回のテーマは「正しいゲーミング Web サーバーの作り方」。株式会社gumi、CTOの幾田雅仁氏が、自身の経験をもとにさまざまな事例について解説します。前半パートとなる今回は、マイクロサービス設計のコツや、整合性を保つための考え方について語ります。講演資料はこちら 正しいゲーミングWebサーバの作り方 幾田雅仁氏(以下、幾田):株式会社gumiの幾田と申します。よろしくお願いいたします。 本日は「正しいゲーミングWebサーバの作り方 ~あるいは、正しいデータストアとの付き合い方の話~」というタイトルで、マイクロサービスでどうやって設計したのか、そもそもゲーム本体のRDSやNoSQLなどをどう組み合
はじめに 低レイヤプログラミングという記事をみて、普段扱っているものが、どのようにして動いているのか理解できていないことが多いなと反省しています。 なので、普段使っているものの仕組みを改めて学んでいこうと思います。 なぜリバースプロキシか 元々PHPをやっていたが、転職してからRailsをやることになって、「RailsではWebサーバーとアプリケーションサーバーを分けて動かしているのかー」とやや不思議に思ってました。 理由としては、PHPではApacheがいろいろやってくれていたようなので、あまり意識していなかったからだと思います。 なんとなくの印象では、Webサーバーとアプリケーションサーバーでは「大きく捉えるとリクエストを受けて処理して結果を返すじゃん」とテキトーな理解でした。 nginxが大量のトラフィックを捌くのが得意とか、そういうことは知ってましたが、同じようなものだと認識してい
インフラについて調べていたので、その備忘録。 調べていく上で重視したのは、概念や概要を知ること。細かい知識はあとでいくらでも調べることが出来るが、土台となるものがなければ調べることすら出来ない。 「公式ガイドやハウツー記事に従って設定したけど、俺は今、一体何をしているんだ?」という状態から抜け出したかった。 具体的なコマンドよりも、そもそも何をしているのか、そしてそれは何のために行っているのかを、把握できるようになりたかった。 そもそもサーバーってなんだ 一口にサーバーといっても、多義的。 まずこれを区別していないのが、混乱の元だった。 初学者は「サーバー」と言っている時に具体的に何を指しているのか、意識したほうがいい。 まず最初に存在するのが、ハードウェアとしてのサーバー。 これはただのコンピュータであり、中身が入っていなければただの箱である。 VPSやクラウドなどで、本当に物理的にコン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く