じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

Go

この世の中に溢れているので自分が発言する必要はないが「ソフトウェアは認知の限界まで複雑になる」を自分なりに再考する

人間が何もしないと病気になるのと同じように、ソフトウェアも何もしないと複雑になる。 はじめに ソフトウェア開発の世界に飛び込んでから、「ソフトウェアは認知の限界まで複雑になる」という言葉を耳にしたとき、正直なところ、「ほへー」って思いながら…

運用では確認以外を自動化したいという時もある

はじめに こんにちは、ウェブオペレーターの皆さん。今日は、運用の自動化を推進しつつ、重要な確認ステップを保持する方法について、私が開発したツール「toi」を交えてお話しします。 また、これらのツールが完全な自動化が許されない環境や状況でも活用で…

Istioによるトラフィック制御で仮想待合室システムを目指すけどもやな

この記事では仮想待合室システムを目指すけども結局はできておらずIstioのトラフィック制御までがメインです。方針は決まったが睡魔に負けたのでこの記事はここまで はじめに 登壇で抽象度の高いことを人前で喋ってとても心が疲れたので技術者として手を動か…

Go開発者のための遊び場を用意する - KindとSkaffoldで始めるKubernetesの開発環境構築

はじめに Kind (Kubernetes in Docker) は、ローカル環境でKubernetesクラスタを簡単に構築できるツールです。そう、「簡単に」と言いましたが、「簡単」の定義は人によって大きく異なりますから。ある人にとっては「簡単」でも、他の人には「アラート対応を…

知識のunlearningをちゃんとやる - Learning Go, 2nd Editionの読書感想文

はじめに Go言語の入門書として広く知られている"Learning Go"の第二版が発刊されました。第一版を読んだ際、Go言語のシンプルさと美しく整然とした構文に感銘を受けたものの、常に進化を続けているため、過去の知識にとらわれることなく、新しい概念や手法…

Fiber v3 を使ったが変更点を確認だけして手癖で解決した

はじめに この記事では、プログラミング言語のGoとWebフレームワークであるFiber v3を使って、リレーショナルデータベースのPostgreSQLをバックエンドに利用したCRUD (Create, Read, Update, Delete) 操作ができるWeb APIを作成する方法を説明します。 本来…

go-rod/rod でブラウザ自動化とWebスクレイピングをやっていく

はじめに Webスクレイピングの需要が高まる中、Goで実装する機会が増えてきました(よね?)。Goの豊富な標準ライブラリとシンプルな文法は、スクレイピングのような自動化タスクと非常に相性が良いです。 が、今回はGoの有力なスクレイピングライブラリの1つで…

SQLBoilerによるPostgreSQLの操作についての話

はじめに データベースは、現代のアプリケーション開発において不可欠な要素です。特にリレーショナルデータベースは、その整合性と信頼性から幅広い用途で使用されています。しかし、リレーショナルデータベースを効率的に操作するためには、複雑なSQLクエ…

Golang のEcho でMiddlewareを使ってPrometheus Exporter を実装する

はじめに もし、アプリケーションに実装できるならそれが良いです。独自に実装などせずにエンドポイントにて500 Internal Server Errorが多発していればアラートをすれば良いので...。 こちらの続編になります。 syu-m-5151.hatenablog.com 本エントリーでは…

Golang のEcho で Prometheus Exporter を実装する

はじめに Prometheus でアプリケーションの構築をしているとどうしてもこの値が取りたいのに... と思うことが多々ある。Pushgateway も選択肢として上げられるが今回は選択肢を増やしてほしいという意味でもExporterの実装方法について検討していきます。Exp…

Shell ScriptをGo言語に書き直す際に役立つ50本ノックなるものを作り始めた。

インフラ側で必要な問題は100問も要らないので50問に変更した 概要 システム運用者として働く中で、システムの自動化について考える際、まずはShell Scriptによる自動化が思い浮かびます。しかし、より効率的な方法として、2023年にはシステム運用者がGo言語…

Kubernetes 上でsablier を用いてZero Scale を実現する 前編

前回のエントリー syu-m-5151.hatenablog.com はじめに やはり、人は強欲らしいのでコンテナを使っているのに必要な時必要な分だけのリソースを起動させてほしいという願いを常に持っている。Kubernetes の場合はKnativeなどを利用すれば達成できる。sablier…

私はGo言語でシェルスクリプトが書きたい不都合な生きもの

Goに入ってはGoに従え 私の好きな言葉です(スライド)。XX(架空の)という言語を書いてるならばXX言語らしく書きましょうと常々、思っております。 しかし、インフラエンジニアの魂に最も刻まれた言語は何か? それはシェルスクリプトではないですか。異論は認…

sablier でコンテナのScale to zero が実現できるので覗き見だけした。

はじめに 人は強欲なのでコンテナを使っているのに必要な時必要な分だけのリソースを起動させてほしいという願いを常に持っている。Kubernetes の場合はKnativeなどを利用すれば達成できる。が今回はsablierというツールを紹介する。sablierはリバースプロキ…

SRE に成る君に最低限の開発力を身に着けてほしい

はじめに まず、はじめに皆さんへ言っておきたいことがあります。 このドキュメントの目的は皆さんをやる気にさせて一心不乱にコードを書きまくって新機能追加や改善をしてソフトウェアを開発していってほしいというわけではないということです。 もちろん、…

PrometheusのSLO generator であるSloth について雑多な作業ログ入門失敗編

はじめに このブログではPrometheus のSLO generator であるSloth に関して取り上げたいと思っている。正直、業務後の深夜に書いているのでGrafana でDashboards を生成したら感動的なラストシーンということにしてほしい。今回は取り上げないが最近、バージ…

インフラエンジニアが学ぶと良さそうなgRPCサーバーについて

3-shake にはSreake共有会 という毎週、火曜日と木曜日に担当者が現場で得た知見などを発表する社内勉強会が開催されています。こちらのブログはそれらを変更修正しております。 syu-m-5151.hatenablog.com 元々しようとしていたの話 Go 1.18 の最新情報←Gen…

samber / lo はGoperである私を愚直なfor もしくは筋肉信仰から救ってくれるのか?

はじめに Go 1.18 がリリースされました。Go 1.18でシュッとGenerics を手軽に良さを実感する方法としてsamber/lo があります。 もちろん、Tutorial: Getting started with generics で完全に理解できるならそちらの方が良いですし、これを終わった後でやる…

Kind を利用してFeature Gates のGRPCContainerProbe を有効にしたKubernetes クラスターを構築してアルファー機能のgRPC Health Checkを試したいなー

Kind でGRPCContainerProbe がやりたいよ はじめに KubernetesではLiveness & Readiness Probeを使って、Pod内のコンテナ、プロセスのヘルスチェックが行える。Kubernetes上で動くgRPCサーバーのヘルスチェックする際にはgrpc-health-probeで簡単に実装でき…

CloudNativeな時代に求められるWebサービス基盤モデルの再考 というタイトルで Developers Summit 2022 に登壇しました。

振り返り Developers Summit 2022 で登壇しました。 CloudNativeな時代に求められるWebサービス基盤モデルの再考 - Daprについての考察と実装 というタイトルで、CloudNativeな技術と共に歩んできた中で見えてきた、CloudNativeな技術を背景に持つ分散アプリ…

『SREの車窓から』という題で #geekgig に登壇。

前書き 『GeekGig #1 〜Goと私の一年〜』という株式会社Showcase Gigが主催しているイベントでLTで登壇してきました。運営の皆様ありがとうございました。今回の登壇はSREというよりもシステム管理者がGo言語を使うメリットについて言及しました。タイトルは…