ヒトリ歩き

愚痴とかいろいろ書きます

2025年6月の振り返り

ブログをサボって早1年経過しようとしていた。 お仕事 ブログをサボりだしたときにプロジェクトが変わって、夜が遅くなって朝活が厳しくなり... まー。言い訳です。 途中で、育成兼ねてプロジェクトリーダーになりました。リーダー業務を全て巻き取ってない…

2024年9月の振り返り

プロジェクトの方は何とも言えない感じ。 声に出して楽しいと言えるようなプロジェクトではないが、自分が知らなかったこと、新しいことに出会えているので その瞬間は不安や焦りが出てしまうが、なんとか学びながら進みたい。 とりあえず、今のところは順調…

ExceptionGroupでExceptionをまとめる

改めて、Pythonの基本の見直そうとroadmapをベースに記事を読んだり、マニュアルを読んだりしている。 その時に、ExceptionGroupの存在を知った。 ExceptionGroupは、バージョン3.11で追加されている。 何をするためのものか? マニュアルと見ると以下のよう…

SQLAlchemyでのJoinで結合したデータを取得

前回、SELECT 〜 JOIN をやってみたが、期待通りのことが出来なかった。 少し調べたら、やり方がわかったのでまとめておく。 kotapontan.hatenablog.com selectメソッドに対象のモデルを指定する selectメソッドで検索時に取得するデータのモデルを指定して…

2024年8月の振り返り

8月から徐々に新しいプロジェクトの作業が始まった。 夏季休暇前は気持ちがのってなかったが、休み明けは気持ちを切り替えて作業が出来ているように 思える。 だが、リーダーの立ち位置ではないので、今後リーダーとなりマネージャになれるのか不安もある。 …

DRBDによるリアルタイムミラーリング

モチベーション HA環境を構築する際に、プロジェクトでrsyncを使ってファイルの同期をしていた。 ただ、pacemakerで検索するとDRBDを組み合わせて使う記事がいくつか見られたので、DRBDを試してみて、どういったものなのかの概要を掴む。 DRBDとは DRBD(Dist…

Vagrantで追加ディスクを追加する方法

VMにディスクが複数必要になったので、設定方法を調べて試した。 以下のdiskの定義を追加すればよい。 自分の環境だと、追加のディスクは/dev/sdbに追加された。 config.vm.disk :disk, size: "10GB", name: "extra_storage" fdisk -lを実行して、/dev/sdbが…

pacemakerのリソース監視が停止した原因と対策

前回、pacemekerをセットアップしてみた際に、リソース監視が停止してしまったので、その原因と対策を実施した。 事象 下記のコマンドを実行してロケーションの制約を設定するとリソース監視のrs-vipとrs-systemd-nginxが停止してしまっていた。 このコマン…

2024年7月の振り返り

7月は久しぶりに仕事が落ち着いて、落ち着いて、落ち着きすぎていた。 8月から徐々にまた、忙しくなりそうだけど、仕事で自分を追い詰めないようにしたい。 朝活または夜活を20分やる 子供の合宿から帰ってきてから、1週間ぐらいサボり傾向にあった。 合宿の…

Pacemakerを使ってHA構成を作ってみた

pacemakerを使ったことがないので、Nginxの冗長化とVIPを設定して管理したいと思う。 pacemakerだけではなく、HA構成を実現する方法は知っておくべきだと思うでのセットアップから理解していきたい。 環境 Vagrantを使ってRockeyLinux9をVMとして起動。 eth0…

HTTPクライアントはrequestsだけじゃない!! httpxという選択肢

非同期のHTTPクライアントは、aiohttpがメジャーかなと思っていたが、httpxを使用している人が社内に いたのでhttpxに触れてみることにする。 httpxとは HTTPXとは、Python3向けのHTTPクライアント。同期、非同期に対応しており、HTTP/1.1とHTTP/2をサポート…

VM環境でのKubernetesインストール

Kubernetesをインストールできる人が社内でほとんどいないようなので、自分もインストール出来る人には なっておきたいなと思い、自宅の環境でインストールを実施してみた。 インストールは以下のサイトを参考に実施する。 infotechys.com Kubernetesのバー…

データの受信と送信をWebSocketで実装

WebSocketでサーバからクライアントにデータを送信して、テーブルにデータの表示までをやってみる。 クライアント側も準備しないといけないので、ちょっと手間。 やりたいこと RESTで受信したデータをWebSocketでクライアントに送信して、クライアント側でテ…

FastAPIでWebSocketの超入門

FastAPIを使って簡単にWebSocketで送受信する websocketsをインストール FastAPIでWebSocketを実装するために、websocketsをインストールする。 pip install websockets やってみる acceptで受信待ちして、クライアントと接続したら、receive_textとsend_tex…

2024年6月の振り返り

6月は天気のように、晴れ間が出ているときはいい感じだったが、曇りになってきて、雨ザーザーのように気持ちもどんよりとして流れも悪い感じです。 7月は暑いけど、カラッと気持ちのいい月になってほしいものです。 というわけで、6月の振り返り。 6月早々…

PostgreSQLレプリケーションの実験と設定

PostgreSQLレプリケーションの実験と設定 PostgreSQLのレプリケーションを試したくなったので、試してみる。 同期の設定はいつも別のチームに任せたりしており、自分で設定したことがなかった。なので、自分で少し動かしてみて確認してみる。 サーバの構成は…

FastAPI起動時にSQLAlchemyのEngineオブジェクトを生成

FastAPI起動時にSQLAlchemyのEngineオブジェクトを生成

FastAPIの起動時にファイルを読み込みたい

FastAPIの起動時にファイルの読み込みをしておきたいとか、終了時に終わらせておきたい処理などを実行したい場合は、lifespanを使用する。 fastapi.tiangolo.com asynccontextmanagerを使用して非同期関数を作成し、FastAPIのオブジェクト生成時に関数を渡す…

2024年5月の振り返り

2024年5月の振り返り

FastAPIのバックグラウンドタスクを試してみた

FastAPIで処理に時間がかかるようなタスク向けのバックグラウンドタスクの機能がある。 チュートリアルを参考に動作確認をしてみる。 バックグラウンドタスクの目的 リクエスト後に処理を開始する必要があるが、クライアントがレスポンスを受け取る前に 処理…

非同期処理を試す:SQLAlchemyを使った非同期操作

FastAPI絡みで非同期処理をやるためにDB操作も非同期処理が必要なので、SQLAlchemyを使った非同期処理を試してみる。 準備 非同期処理をするために、非同期に対応したドライバのインストールが必要。 psycogp2よりも3倍早いらしい、asyncpgをインストールす…

RabbitMQのtopicを使ったメッセージ配信の実験

routingでは固定のキーワードのみ振り分けることが出来ていたが、syslogのように重要度と機能によって、ログを振り分けたいユースケースがある。 そのケースだと、routingでは対応できない。 そのため、より振り分けを柔軟に行うために、topicがある。 topic…

2024年4月の振り返り

kotapontan.hatenablog.com 4月も忙しくて、あっという間にGWに突入。 4月の振り返りをやる。 やったこと 朝活または夜活を20分やる 出社前に20分は実施することが出来た。 ただ、コミット漏れとかがあり、芝はいい感じに生えてない。 また、GWに突入して、…

RabbitMQのRoutingの実験

RabbitMQのRoutingの実験

gRPCを使ったストリーミング処理の実現

gRPCを使用することで、ストリーミング処理を実現することが可能。 今後の監視系でもgRPCを活用することで、より高速により多くのデータを処理することができるので、理解しておく価値あり。 grpcとは RESTの場合、テキストベースで情報をやり取りするため、…

HTTPリクエストの同期/非同期の処理動作

HTTPリクエストの同期/非同期の動きについて確認する。より、多くのリクエストをより早く処理するためには非同期の存在は不可欠だと考える。 なぜ、非同期が必要なのか? リクエストの応答待ちをしている間に他の処理を動かして、効率よく処理をしたいから…

RabbitMQでのメッセージ消失の対策

RabbitMQでのメッセージ消失の対策

2024年3月の振り返り

個人の3月振り返り

ハンズオンで学ぶ:PrometheusとGrafanaの魅力

PrometheusとGrafana、Exporterを使ったことがなかったので、チュートリアルでまずは動かしてみる Prometheusとは Prometheusは、オープンソースのシステム監視およびアラートツールキット。メトリクスを時系列データとして収集して保存する。 Prometheusエ…

RabbitMQとは?チュートリアルで理解を深める

RabbitMQを使って、メッセージキューの理解を深めていく。 RabbitMQとは オープンソースのメッセージ指向ミドルウェアで、メッセージキューを利用してアプリケーション間の非同期通信を実現するためのソフトウェア。 AMQAと呼ばれるプロトコルを使用する。 q…