タグ

Clomieのブックマーク (1,247)

  • A list of new(ish) command line tools

    Hello! Today I asked on twitter about newer command line tools, like ripgrep and fd and fzf and exa and bat. I got a bunch of replies with tools I hadn’t heard of, so I thought I’d make a list here. A lot of people also pointed at the modern-unix list. replacements for standard tools ripgrep, ag, ack (grep) exa, lsd (ls) mosh (ssh) bat (cat) delta (a pager for git) fd (find) drill, dog (dig) duf (

    Clomie
    Clomie 2022/04/13
  • Goのリトライ処理で考慮すること

    概要 動機 サービス間通信でリトライ処理をする必要があります。なぜなら、一時的な通信先の不具合など、しばらくしてから再実行することで成功する場合があるからです。しかし、Goの標準パッケージからはリトライ機構は提供されていないので、自身で実装するか他のパッケージを利用しなければなりません。 ここでは具体的な実装例ではなく、net/httpパッケージの実装(主に、http.Clientとhttp.Transport)を踏まえた上で、何がリトライ処理で考慮されているべきかを整理しました。 要約 リトライ処理を実装する場合は以下の観点を考慮する必要があります。 リクエストの内容(Request.Body)をリトライ前に巻き戻す Request.Context()の終了を確認する リトライ前にResponse.Bodyを全て読み切ってから閉じる デフォルトのTransportを使ってコネクションプー

    Goのリトライ処理で考慮すること
    Clomie
    Clomie 2022/04/10
  • 個人的なアプリケーション設計のバイブル3選 - Runner in the High

    自分が格的に設計を意識するようになったのは、2015年の夏に現職であるFringe81株式会社で開催されていたサマーインターンに参加してからだ。 インターンではDDDとクリーン・アーキテクチャ*1を一から勉強してAPIサーバーに実装する、というカリキュラムであったが、いま思うと2週間という比較的長いインターンで僕が学べたことと言えば当に微々たるものだった。つまるところ、それくらいには設計というものは奥が深い。常になんらか特定のデザイン・パターンなりアーキテクチャ・パターンを適用することでアプリケーション開発がうまくいくということはなく、それらの様々な知識から少しづつ応用されたものが最終的なアプリケーションの設計に対して真の洞察を与えてくれるものというのが、僕自身のいまの認識である。 設計はまさに Connecting the dots そのものだ。多くを知れば知るほど、アプリケーション

    個人的なアプリケーション設計のバイブル3選 - Runner in the High
    Clomie
    Clomie 2022/04/10
  • skaffold を使って GitOps する | Melody

  • Kubernetes基盤における運用フローのController化と継続的な改善 / kubernetes-controller-improvements

    動画はこちらから https://cadc.cyberagent.co.jp/2022/program/kubernetes-controller-improvements/ 青山 真也 CyberAgent - CIU ソフトウェアエンジニア / KaaS プロダクトオーナー 201…

    Kubernetes基盤における運用フローのController化と継続的な改善 / kubernetes-controller-improvements
  • GitHub - microsoft/typespec

    Official Docs | Try TypeSpec Online | Getting Started | Language Overview TypeSpec is a language for defining cloud service APIs and shapes. TypeSpec is a highly extensible language with primitives that can describe API shapes common among REST, OpenAPI, gRPC, and other protocols. TypeSpec is excellent for generating many different API description formats, client and service code, documentation, a

    GitHub - microsoft/typespec
    Clomie
    Clomie 2022/03/26
  • Zennのバックエンドを Google App Engine から Cloud Run へ移行しました(無停止!YES!)

    Zennは、Next.js + Ruby on RailsAPIモード)を Google Cloud の App Engine へデプロイして稼働していました。最近、Rails の実行環境を App Engine Flexible から Cloud Run へ移行したので、その記録を残します。 ロードバランサーのバックエンドサービスを付け替えることで実現 最初に、どうやって移行したかです。Zennのバックエンドはもともとロードバランサーで構成されていました。以下の図のように、ロードバランサーの Backend Service より背後を切り替えることにより実現しています。Cloud Run とそこにアクセスするための Serverless NEG はあらかじめ稼働させておくことで、ダウンタイムなしで切り替えられました。 参考:負荷分散 | Google Cloud https://clo

    Zennのバックエンドを Google App Engine から Cloud Run へ移行しました(無停止!YES!)
  • 【週刊 Kubernetes 連載】ミニマリストのための CI/CD パイプライン!! - Zeals TECH BLOG

    こんにちは!! 8月からZEALSにジョインしたぱんでぃーです!TypeScriptとAureliaを愛するバックエンドエンジニアとして、現在はGolangでMicroservices化を目指したAPIを開発しています! このAPI開発のプロジェクトについても、近いうちにブログで公開していきたいのですが、今回はKubernetes環境でのCI/CDについてご紹介します。(おもにCD) このトピックについては、以前、CTO島田のエントリーでも少し紹介していましたが、さらに進化させた内容となっております! tech.zeals.co.jp TL;DR KubernetesエコシステムのCDツールの現状 できるだけミニマムスタックでスタートするためには? Gitランチ戦略 アプリケーションの実行環境 目指すゴール ZEALSの実際のCI/CDパイプラインを紹介 今後の伸びしろ さいごに TL;

    【週刊 Kubernetes 連載】ミニマリストのための CI/CD パイプライン!! - Zeals TECH BLOG
  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

    こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

    データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
    Clomie
    Clomie 2022/03/19
  • Google Cloud Spanner Deep Dive

    Googleが開発した分散型データベース論文は公開されているが、OSSではないKVSとRDBが合体したような特性を持っている開発当初はKVSだった従来のRDBと互換性があるわけではないので、New SQLとか呼ばれていることもある最初のSpannerの論文が2012年に公開されているので、Googleはそれ以前からSpannerを利用しているGoogle Cloud Spannerとして登場したのは2017年

    Google Cloud Spanner Deep Dive
  • 超実践 Cloud Spanner 設計講座

    1. 超実践 Cloud Spanner 設計講座 知ってることを全て紹介します! Proprietary Samir Hammoudi aka サミール クラウドカスタマエンジニア JULY 21, 2017 2. Cloud Spanner とは? Google のマネージド・スケーラブル・リレーショナルデータベース・サービス 完全マネージドのグローバルスケールで DB サービス1 2 3 4 ゾーン間・リージョン間の自動 synchronous レプリケーション スキーマ、ACID トランザクション、SQL Google内部では、既に5年以上の運用経験 (AdWords, Google Play…) 3. 注意事項:Cloud SpannerMySQL Cloud SpannerMySQL の単なる置き換えではない ● スキーマは似てるが、分散データベースのため、MySQ

    超実践 Cloud Spanner 設計講座
  • Cloud Spanner のハイレベルアーキテクチャ解説

    Last update: 2018/7/5 Google Cloud でゲーム担当をやっているサミールです。 日のトピックは私が大好きな Cloud Spanner となります。Cloud SpannerGCP のフルマネージド・グローバルスケール・リレーショナルデータベース・サービスです。Cloud Spanner は裏では NoSQL でよくある分散データベースですので、NoSQL の特性を提供しております。 HA (高可用性)水平方向のスケーラビリティ(動的にダウンタイムなしにノードの追加・削除が可能)なお MySQL のようなリレーショナルDB と同じ特性も提供しております。 スキーマ強整合性SQL クエリ(ANSI 2011)言い過ぎかもしれないが、マルチマスターの MySQL というイメージで良いと思います。 注意点:Cloud SpannerMySQL 互換では

    Cloud Spanner のハイレベルアーキテクチャ解説
  • context.Context の Value のみを引き継いでコピーする方法

    よろしくどーぞ。@knwoop です この記事はGo Advent Calendar 2021の22日目の記事です。 この記事は Context をコピーするため Tips を紹介します。 ちょっと特殊なのは、Context にすでにセットされている timeout を無視して value のみを引き継ぐ方法を紹介したいと思います。 主なユースケース 複数の API に対して跨ぐ原子性を持つリクエストするケースがあるとします。以下の様なコードAPI2 がリクエスト失敗したときに API1 に Rollback します。 if err := api1.Request(ctx); err != nil { return fmt.Errorf("error api1 Request: %w", err) } if err := api2.Request(ctx); err != nil { if

    context.Context の Value のみを引き継いでコピーする方法
  • OpenID Connectで統合ID基盤構築

    ARIGATOBANKのエンジニアの金です。 2021年1月にARIGATOBANK社に入社した時はプロダクトとして解決する課題の特定や仮説検証の段階でしたが、全体構想には複数のサービスを組み合わせるイメージがあり、そのための下準備から始めることになりました。 CTOと話した結果、会員情報を安全に管理するのと、強度の高い認証レベルをサービス横断で実現するための統合ID基盤を先行して作ることになりました。 IDaaSを使うか?自前で作るか?世の中にID管理サービスも多数存在します。初期設計の段階ではサービスのビジネス側の実装にフォーカスするためにIDaaSを採用することを検討していましたが、当社で必要とするユースケースへの対応の難しさや、ROIの考え方など悩むポイントが多岐にわたりました。悩むだけではしょうがないのでとりあえずプロトタイプを作ってみて動くものを見ながら話ししたくて、手を動かし

    OpenID Connectで統合ID基盤構築
    Clomie
    Clomie 2022/03/14
  • GitHub ActionsでDocker Buildするときのキャッシュテクニック - cockscomblog?

    GitHub Actionsでdocker buildすることが多い。このときのキャッシュをどうするかという話題。 基 GitHub Actionsでdocker buildしてAmazon ECRにdocker pushする、典型的な.github/workflow/docker-push-to-ecr.ymlはこういう感じ。 name: Push to Amazon ECR on: push: branches: [ 'main' ] jobs: docker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 - name: Configure AWS credentials uses: aws-actions/configure-aws-c

    GitHub ActionsでDocker Buildするときのキャッシュテクニック - cockscomblog?
    Clomie
    Clomie 2022/02/17
  • [VScode] Docker+Go+air+delveでリモートデバッグ - Qiita

    # Config file for [Air](https://github.com/cosmtrek/air) in TOML format # Working directory # . or absolute path, please note that the directories following must be under root. root = "." tmp_dir = "tmp" [build] # Just plain old shell command. You could use `make` as well. cmd = "go build -gcflags \"all=-N -l\" -o tmp/main ." # Binary file yields from `cmd`. bin = "tmp/main" # Customize binary. fu

    [VScode] Docker+Go+air+delveでリモートデバッグ - Qiita
    Clomie
    Clomie 2022/02/15
  • 倒れた猿|板倉俊之

    10月下旬、僕はハイエースを運転して、オートキャンプ場に向かっていた。 高速道路を降りて、現地のスーパーで買い出しをしたあと、のどかな田舎道を走る。 景色のいい場所に行って車中泊をするのが、近ごろの楽しみとなっていた。 よく晴れた日で、空は青く、日光を受けた山は鮮やかな緑色をしている。 その緑を分断するように延びる灰色の上を、心地いい速度で進んでいく。 信号機もほとんど見なくなり、田舎の風景に癒された僕は、すでに「来てよかった」と感じていた。 それを見たのは、小さな橋に差しかかったときだった。 橋の車道の端に、猿が倒れているのだ。 そのすぐそばには仲間の猿が一匹、呆然と立ち尽くしている。 車に轢かれてしまったのに違いなかった。 反射的に車を減速させていた僕は、二匹の猿から引き剥がした視線を前方に移した。 反対車線に停まっているライダーが目に留まる。彼はバイクにまたがったまま、倒れた猿を見つ

    倒れた猿|板倉俊之
    Clomie
    Clomie 2022/02/10
  • AliExpressの主な配送方法と日数【2022年4月】 - 進電舎Blog -Luden-

    AliExpressは中国のアリババが運営する、中国国外向けの通販サイトです。私はAliExpressが大好きなんですねー。国内Amazonなどで買えるものでも、ついついAliで買ってしまいます。だってすぐ来たら楽しみがなくなっちゃうじゃないですかー(おい)。なのでここ1年以上、中国と日の間に私の荷物が常に複数ある状態が続いています(笑)。AliExpressでは基的にほぼすべての商品が中国の倉庫からの発送となり、ほぼ全ての商品は日へ送ることが可能となっています。国境をまたぐため、(とても高価なDHLなどを除けば)最も速くて一週間、長いと一か月程度かかることもあります。 AliExpressでは比較的配送料金が高い配送方法から、安い配送方法まで様々な配送方法が用意されており、商品やセラーにより利用できる配送方法が異なり、配送料金も異なります。今回はそんないくつかある配送方法について、

    AliExpressの主な配送方法と日数【2022年4月】 - 進電舎Blog -Luden-
    Clomie
    Clomie 2022/02/10
  • メルカリShops の技術スタック、その後 | メルカリエンジニアリング

    こんにちは。ソウゾウのSoftware Engineer(CTO)の@suguruです。連載:メルカリShops 開発の裏側 Vol.2の1日目を担当させていただきます。 去年、2021年に開始した メルカリShopsの技術スタック についての記事を書きましたが、今回はリリースまでに採用した技術スタックが、半年通してどのようにアップデートしてきたかを共有したいと思います。 ローンチ時に採用した技術が、実際の運用でどのように変遷したのかを共有することで、技術スタックを考える際の何らかの参考になれば幸いです。 monorepo メルカリShops ではサービスに必要なコードを1つに集約する monorepo を採用しています。リリース後半年たってコード量はかなり増えてきましたが、monorepo に対する満足度は非常に高く、うまく機能しています。 サービス全体の見通しが良くなることと、すべての

    メルカリShops の技術スタック、その後 | メルカリエンジニアリング
    Clomie
    Clomie 2022/02/09
  • Goのテーブル駆動テストをわかりやすく書きたい

    Goでテーブル駆動テストを書いていると、書いているときは「すげー読みやすくテスト書けてるぞ!」と思っていても、落ち着いてから見てみると「なんだこれ...訳がわからん...」となることがあると思います。(自分はよくあります。) この記事は、このようなことを解決するのに役立つtipsについてまとめています。主にテストケースについて焦点を当てています。 テストしやすいコード設計に興味がある方は や を参考にしてください。 はじめに この記事はパーソナライズGopher道場で学んだことを元に書いています。 そして、この記事で紹介するテーブル駆動テストの書き方は主観に基づいており、 あくまでテストの1つの書き方にすぎないです。 なので、「この書き方をしないとダメ!」というものではないので、みなさんの考え方やプロダクトに合わせて、柔軟にこの記事で紹介するtipsを取り入れていただけると幸いです。 結論

    Goのテーブル駆動テストをわかりやすく書きたい