思考の引き出しを増やすモジュール設計のヒント
Read this article in English. はじめに 見つけやすく、インストールしやすいソフトウェアパッケージは、開発者にとって使いやすいです。React、Ruby on Rails、Airflow のような有名な OSS は良い事例です。しかし、社内の非公開のコードは、企業秘密として世間から隠されることが多いです。権限を持っている人のみ見ることができて、オープンソースのように npm gem や pip で簡単にインストールすることもできません。 その結果、社内のコードがうまく再利用されなくなる(あるいはできなくなる)ことがあります。各チームはそれぞれ独立したコードベースを持ち、他のチームにコードを共有したくても、満足がいく解決策を導き出すことが難しかったりします。戦略を立てないままでは、それぞれの独立したコードベースを充実させ続け「社内共通のライブラリー」が遠い夢のよう
この記事はMERPAY TECH OPENNESS MONTHの10日目の記事です。 こんにちは、メルペイのバックエンドエンジニアの柴田(@yoshiki_shibata)です。 メルペイのバックエンドは、Google Cloud Platform上でGoogle Kubernetes Engineを使用して、マイクロサービスアーキテクチャを採用した多数のマイクロサービスから構成されています。モノリシックなサービス実装では複数層のライブラリ(あるいはコンポーネント)から構成されるのに対して、マイクロサービスアーキテクチャでは複数層のマイクロサービスから構成されます。 どちらのアーキテクチャにおいても、偶発的プログラミング(Programming by Coincidence)1を避ける2ために、注意を払って作成する必要があるのが、境界部分のAPI(Application Programmi
tl;dr GitHubのリリースノート自動生成のAPIを用いてkeep a changelog形式のCHANGELOG.mdを出力するツールを作った https://github.com/Songmu/gh2changelog gh2changelog -all -unreleased とかで出力 細かいオプションはヘルプ等を参照のこと ghchに引数体系は近いです 本題 GitHubには、リリースノートを自動生成する機能がある。これは、リリース間でマージされたpull requestのタイトルを一覧し、リリース項目としてGitHub Releases上に出力してくれるものです。リポジトリ上に.github/release.yml設定ファイルを配置すれば、pull requestの作者やラベルを元にグルーピングしたり非表示にするといった出力内容のカスタマイズもできる。 このあたりの実際の
単純な Tips のメモ。 今私は複数のクラスタを切り替えたいと思っている。だから、二つの config ファイルを1つにマージしたい。 configのデフォルト ~/.kube/conf になる。このコンフィグファイルの構造は下記の通り。大きく分けて、clusters, contexts, users に分かれていてそれぞれ複数登録できるようになっている。 apiVersion: v1 clusters: - cluster: certificate-authority-data: YOUR_CERTIFICATE_AUTHORITY_DATA server: https://sacluster-aksresource-757738-55889d33.hcp.eastus.azmk8s.io:443 name: sacluster contexts: - context: cluster
AWS SAA-C03試験とは2022年8月30日より、AWS Certified Solutions Architect Associate の新試験であるSAA-C03試験となります。 SAA-C03試験は2022年7月26日から申し込み可能です。 今回はSAA-C02試験は2022年8月29日まで受講可能です。 2022 年 8 月 30 日より、AWS Certified Solutions Architect – Associate 試験の新しいバージョンが利用可能になります。試験の詳細に変更はございません。AWS Certified Solutions Architect – Associate 試験のこれらのアップデートにより、現在の AWS のサービスおよびベストプラクティスに関する知識とスキルが確実に検証されるようになります。この新試験バージョンは、AWS プラットフォー
はじめに Go Secure Coding Practice とは コンテンツ一覧 良かったところ 注意すべきところ 最後に はじめに こんにちは。SRE の izzii です。 テックタッチのエンジニア規模もそれなりに拡大し、若手の採用も進んできたため、セキュアコーディングを徹底していきたいという思いがあり、まずは意識改革ということで勉強会を実施しました。セキュアコーディングを目的とした場合には教育だけでなく Static application security testing (SAST) の導入といった方法もあるのですが、まずは自分を含めた開発メンバーにノウハウをインストールすることにしました。セキュアコーディングへの意識が高まれば、いづれ SAST の導入の際に抵抗感も少ないだろうと考えています。いきなり SAST を導入しても、誤検知が煩くて浸透しないリスクもありうると考えてい
Go で Web Server 書く 動作確認するだけのコードなのでなるだけシンプルに書く。んで、 Port 80 を Listen したいけどプロセスは root で走らせたくないので、 systemd でポート開いてそれをプログラム側で使うようにする。 ディスクリプタごにょる部分は coreos/go-systemd がドンピシャなのでこれを使う。 package main import ( "errors" "fmt" "log" "net" "net/http" "github.com/coreos/go-systemd/activation" ) func main() { // Mux を設定する m := http.NewServeMux() m.HandleFunc("/", handler) // Server を設定する s := &http.Server{ Handl
2022/12/27 一部の文章を修正・更新しています。 こんにちは! BFT名古屋支店の佐野です。 今回はAWSのCloudWatch Logsに出力されるログから、一定のワードを検出するために使用するフィルターのお話です。 はじめに:CloudWatch Logsのフィルター機能 AWSでは、仮想マシンに相当する“EC2”やコンピューティングサービスである“Lambda”、そして“API Gateway”などのログをCloudWatch Logsに出力することができます。 そして実際の運用においては、単に出力するだけでなく「●●というログが出力されたら、○○に通知を送る」といったログ監視の機能を付けることが多いです。 CloudWatch Logsでは正にその機能に適する、出力された単語を検知するための2種類のフィルターを設定できます。 メトリクスフィルター 2種類のフィルターのうち、
はてなには、開発合宿というイベントがあります。 有志で集ったメンバーが普段の開発から離れ、テーマを決めて集中して取り組むイベントです。 2022年6月にも、私(id:dekokun)id:hayajo_77 id:masayosu id:yajimasanの4人からなるチームで開発合宿を行いました。 今回は、はてなが提供するサーバー管理・監視サービスMackerelによるコンテナ監視で必須になるmackerel-container-agentというプログラムを題材に、Kubernetesのadmission webhookを作ってみました。 mackerel-container-agentでadmission webhookを作る狙い 合宿の準備: Kubebuilderをもくもくと自習 1日目午前: Pod作成時にwebhookが動く 1日目午後: mackerel-container-
突然ですが、git-pr-releaseのなんちゃってコラボレーターである私が僭越ながら、その王道の使い方を皆様に伝授していきます。何番煎じかの記事ではありますが、現代の、特にGitHub Actions出現以降の使い方をまとめたいというのが動機です。 https://github.com/x-motemen/git-pr-release https://rubygems.org/gems/git-pr-release git-pr-releaseはGitHubを業務開発で利用している場合に便利なツールで、デフォルトブランチにマージされたpull requestをリリース項目として一覧し、それをpull request化してくれるものです。これにより以下のことが実現できます。 リリース項目が一覧されることによるリリース内容の明確化 マージボタンによる明快なワンクリックデプロイの実現 pul
AWSアカウントを組織で管理していると複数アカウント利用するケースは多いかと思う。別のアカウントに切り替えるには、WebコンソールからSwitch Roleすればよい。そして以下のように $HOME/.aws/config と $HOME/.aws/credentials を設定すればAWS CLIからもSwitch Roleできる。 $ cat $HOME/.aws/credentials [main-account] aws_access_key_id = ACCESS_KEY_ID aws_secret_access_key = SECRET_ACCESS_KEY $ cat $HOME/.aws/config [profile sub-account] source_profile = main-account role_arn = ROLE_ARN mfa_serial = MF
名古屋支社開発チームのスクラムマスターとして日々奮闘中。よいサービス、よいプロダクトは楽しく元気なチームから生まれると思っています!関わる人すべてが笑顔になるために、私は何ができるのだろうか・・・。 “コンテキストスイッチ”とは 今回登場するコンテキストスイッチは、CPUのコンテキストスイッチングではなく、人が作業を中断して別の作業に切り替えることで発生する予定外の時間のことです。 プロジェクト計画やその中の作業計画など、様々な計画段階で「バッファ」を作成すると思います。 バッファがあることによって想定外の事象が起きた場合や、予定外の作業が増えた場合でも影響が小さいものであれば大きなスケジュールを変更せずに対応ができるようになるため、必要なものではありますが、正しい運用ができているのか判断するのは難しいと思っています。 また細かい作業でも数が増える程コンテキストスイッチが大きくなってしまう
1.はじめに 膨大な量の電子データから目的となるデータを取得・抽出する情報検索。その技術は広く普及し、多くの人々が、様々な場面でその恩恵を受けています。GoogleやBingをはじめとした、世の中に大きなインパクトを与えるWeb検索がその代表例ですが、物件検索や論文検索、メール検索などその応用は様々です。 さて、今回取り組んだのは、Goによる転置インデックスを用いた全文検索エンジンのスクラッチ実装です。研究で自然言語処理を学んだことをきっかけに、情報検索や転置インデックスといったトピックに強い興味が湧いたので、Elasticsearch等には頼らず、ゼロから実装を行いました。以下、リポジトリになります。 本記事では、Omochiの設計・実装に関する説明を行なっていきます。 2.転置インデックス型・全文検索エンジンOmochi リポジトリのREADME.mdにも記載がありますが、今回実装した
九州支社技術部(九州・中四国事業部)所属。自作パソコン好きで、ハードウェア選定の仕事を与えると喜ぶ。最近は何でもコンテナにしたい教に入信し、コンテナ化の機会を虎視眈々と狙っている。 こんにちは、九州支社技術部(九州・中四国事業部)所属のy-morimotoです。 WindowsでDockerを使いたい時、多くの方はDocker Desktopを使われていると思いますが、実は他にもWindowsでDockerを使う方法があります。 以前紹介させて頂いた「ブラウザだけでDockerしたい」といった方法もありますが、今回は「PCに直接インストールする」方法のご紹介です。 1.どうやるの? 単純ですが「WSL2のUbuntuでDockerを動かす」です。 意外と盲点だったりするので、簡単に導入手順をまとめてみました。 2.導入手順 導入手順は以下のとおりです。 WindowsTerminalをイン
普段からいくつか趣味で作ったツールやライブラリを npm パッケージとして publish しています。ちょっと工夫していることとして、「できるだけ簡単に npm publish できるようにしておく」というものがあります。npm publish が心理的に、手順的に難しいと、すでに main ブランチに新機能や修正が入っているのに、npm publish されていない、という状況が発生しがちです。新機能や修正をすぐにユーザに送り届けられるよう、npm publish は無思考でできるようになっていると嬉しいです。 その一環として、リリースノート (CHANGELOG) の自動生成というのをやっているので、その紹介をしてみます。本当は 6 月にやっていた Maintainer Month 期間 に間に合わせたかったのですが、とろとろしていたら 7 月になってしまった! まあ遅れたから公開し
みなさま、OSSの変更履歴、要するにCHANGELOGやリリースノートはどのように管理しておられるでしょうか。自分はというと、抱えるリポジトリも数百個に増えてきて、まあ要するに細かく管理するのがだるく、最近は変更履歴の管理方法も変わってきました。 CHANGELOGからGitHub Releasesへ 昔は、おおよそKeep a changelogの方式に準拠したCHANGELOG.mdを書いていました。semantic versioningでバージョン管理をしながら、個々のバージョンごとに次のセクションを設けて変更内容を説明するような感じです。 Added Changed Deprecated Fixed Removed Security 今は、新規につくるリポジトリではCHANGELOG.mdは用意せず、GitHub ReleasesにKeep a changelogに似た形式で変更内
Regional Scrum Gathering Tokyo 2022 Room C 14:00-14:45
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く