タグ

ブックマーク / medium.com (48)

  • Python, kubernetes & CPU pinning

    Solving issue with performance of an AI project in k8s cluster, I faced with interesting workaround for Python & k8s/docker architecture specific, which I would like to share. A story of issue. If you work closely with Python you probably heard about GIL. In order not to go into details just a small overview how it can affect your code if you use Python threads. If to do I/O thingies, like files d

    progrhyme
    progrhyme 2023/01/17
    マルチコアのマシンでパフォーマンスが悪かったからtasksetコマンドでCPU Pinningするようにしたと
  • Cloud NAT の Endpoint-independent Mapping とは?

    去年 2020 年の 10 月 6 日にプレビューとしてリリースされ、12 月 16 日に GA (一般提供)になった Cloud NAT の機能に、Endpoint-independent Mapping の有効化/無効化という機能があります。 これが何なのかよく分からなかったので調べてみました。(なお、結局は Cloud NAT 特有の話ではなく、NAT 一般における「Endpoint-independent Mapping」の話なので、ご存知の方は以降読まなくても大丈夫です。) Cloud NAT のアイコンCloud NATEndpoint-independent Mapping の話に入る前に、前提となる Cloud NAT の紹介をします。 Cloud NAT は Google Cloud の仮想マシン (VM) に外部 IP アドレスをつけなくても外部(インターネット)と通信

    Cloud NAT の Endpoint-independent Mapping とは?
    progrhyme
    progrhyme 2021/04/22
    もうすぐデフォルトOffになるそうな
  • 完全マネージドな k8s ! GKE Autopilot を解説する

    Kubernetes / GKE ファンの皆様こんにちわ。Google Cloud の Kazuu (かずー) です。GKE Autopilot が GA になりました。弊社公式ブログに続きまして、GKE Autopilot を日語で解説していきたいと思います。 記事は以下、3 部構成となります。 GKE Autopilot 概要GKE Autopilot を試してみるGKE Autopilot がハマりそうなユースケースは? 1. GKE Autopilot 概要GKE Autopilot は GKE の新しいモードです。Control Plane に加えて、Node が完全マネージドになります。これまでの GKE では Node はユーザー自身が必要台数分作成し、以後の Day 2 オペレーション (e.g. アップグレード) 等も気に掛ける必要がありました。GKE Autopil

    完全マネージドな k8s ! GKE Autopilot を解説する
    progrhyme
    progrhyme 2021/03/01
    わかりやすい
  • Try Golang! ローカル変数のスコープに注意すべし

    Goにおけるローカル変数のスコープについて、コードを書く上で気を付けておきたいことを、3つまとめてみました。随所にJavaPHPの比較があるのは、筆者のバックグラウンドの影響です。ご容赦下さい。 ちなみにここでの「ローカル変数」とは、関数やメソッドの中で宣言される変数のことを指しているので、パッケージ内の構造体や関数のスコープは記事のスコープ外です。 0. 基的な考え方ローカル変数のスコープは、基的に 変数の宣言以降、宣言したブロックの終端まで です。 これはJavaとは同じ考え方なので、大変しっくりきます。ifやforで自然と作成されるブロック以外にも、意図的にブロックだけ作ることもできます(まぁあまりしないでしょうが)。(サンプルコード) PHPの場合、関数単位のスコープとなるので、なが~い関数だと「ん?この変数使ってるかな?」なんてこともあったり。スコープは小さく分割できた方

    Try Golang! ローカル変数のスコープに注意すべし
    progrhyme
    progrhyme 2020/06/10
    こんな仕様があったのか
  • CPU limits and aggressive throttling in Kubernetes

    Have you seen your application get stuck or fail to respond to health check requests, and you can’t find any explanation? It might be because of the CPU quota limit. We will explain more here. TL;DR: We would highly recommend removing CPU Limits in Kubernetes (or Disable CFS quota in Kublet) if you are using a kernel version with CFS quota bug unpatched. There is a serious, known CFS bug in the ke

    CPU limits and aggressive throttling in Kubernetes
    progrhyme
    progrhyme 2020/04/14
    この問題は今でも有効かな?
  • SLOs with Stackdriver Service Monitoring

    Service Level Objectives or SLOs are one of the fundamental principles of site reliability engineering. We use them to precisely quantify the reliability target we want to achieve in our service. We also use their inverse, error budgets, to make informed decisions about how much risk we can take on at any given time. This lets us determine, for example, whether we can go ahead with a push to produ

    SLOs with Stackdriver Service Monitoring
    progrhyme
    progrhyme 2020/02/06
  • ミルクボーイがアジャイルを説明したら

    序章駒場「最近、うちのおかんがシステム開発に興味を持っててなぁ、名前は忘れたらしいんやけど、迅速に開発できて、仕様変更にも対応できる、素晴らしい開発手法を取り入れてるところがあるらしいんやわ〜。」 内海「そんなもんアジャイルに決まってるがなぁ〜! 今やシステム開発と言えば、アジャイル。素早く変化に対応できるってゆーのが特徴なんよ。そもそも名前が “迅速” を意味する英語やねんから、アジャイルに決まってるがなぁ〜。」 チームの人数駒場「最初、オレもそう思たんやけどな、なんでも 40 人ぐらいで開発してるらしいんやわぁ〜。」 内海「ほなぁ、アジャイルちゃうかぁ…。アジャイルでは 5〜9 人ぐらいが推奨されてるからなぁ〜。40 人もおったら、とてもやないけど、コミュニケーションが成立するとは思われへんなぁ〜。効率の悪い伝言ゲームになるのは目に見えてるからなぁ〜。おかん、他にもなんか言うてなかった

    progrhyme
    progrhyme 2020/01/29
  • GKE上RailsのアプリケーションログをStackdriver Loggingで運用する方法

    弊社もpaymoサービスローンチ当初はAWS環境の仮想マシンに上に普通にRailsアプリケーションをデプロイしていましたが、現在では新規開発は全てGKE (Kubernetes Engine) + Docker上で動作しており、既存インフラも全て環境移行を実施しています。 当然、GKE (Kubernetes Engine) 上で番運用するためには、コンテナや Stackdriver Logging を意識したログの出力が必要になります。意外とWeb上を検索してみても具体的な公開事例があまり見つからなかったため、現在弊社でのRailsログの運用状況について今回ご紹介したいと思います。 Railsのログの仕組みRailsインフラ構成を下記と仮定します。 Rails + Unicorn > Nginx上記構成の場合、アプリケーションサーバ関連のログはデフォルトでは以下にログが出力されます。

    GKE上RailsのアプリケーションログをStackdriver Loggingで運用する方法
    progrhyme
    progrhyme 2020/01/28
  • なぜデータドリブンではなくて、データインフォームドであるべきなのか

    The decision making framework you build for your team/organization is going to be critical to its success or failure… ビジネスでデータを使い始めるとついついはまってしまう罠として、データに対する盲目な信仰というものがあります。つまり、データが言っているのだから、それは絶対だというものです。これは特にエクセルやBIなどのデータの可視化ツールを使っている人たちによく見られます。例えばバー・チャートで、東部地域と西部地域の売上を見て、東部のほうがいいから東部の方にもっと投資すべき、もしくは西部に対してもっとテコ入れしなくてはいけないと思ってしまったりするわけです。 ただ、データにはばらつきがあるものなので、これはたまたま今月がそうだったのかもしれなく、来月には逆の結果がでるかもし

    なぜデータドリブンではなくて、データインフォームドであるべきなのか
    progrhyme
    progrhyme 2020/01/21
  • GCP のログ大全2019

    この記事は Google Cloud Japan Customer Engineer Advent Calendar 2019 の 5 日目の記事です。 GCPにおけるログのライフサイクルGCPにおけるログのライフサイクルは、収集・集約・活用・保管の大きく4つのフェーズに分類できると考えております。まずそれぞれのフェーズの中でどのようなことができるのか、皆様に知っておいておきたいことについて説明します。 収集フェーズログを発生させる元のシステムから集めてくるフェーズです。ログの発生元がどこであれ、最終的には Stackdriver の Logging API にログを送ることで収集を行います。もちろんGCPのサービスで発生するログは自動的に収集されますが、GCP上のユーザアプリケーションのログや、オンプレミスや他クラウド環境からのログは、Logging エージェントかLoggin API

    GCP のログ大全2019
    progrhyme
    progrhyme 2019/12/25
  • GKE の限定公開クラスタに Cloud Build でデプロイする

    Photo by 贝莉儿 NG on Unsplashエンジニアの桂です。 Jenkins を管理し続けるのが辛くなってきたので、GCP の Cloud Build でデプロイする方法を模索しました。 基的なデプロイはまあまあすんなり出来たんですが、限定公開クラスタ (private cluster) の IP 制限で蹴られてしまってクラスタの操作ができないという問題でどハマりしてしまいました。 結論から言うと、マスター承認済みネットワーク (master authorized networks) を動的に変更すると言うワークアラウンドで回避するのが一番簡単じゃないか、と言うところに落ち着きました。 背景Stack Overflow の Google 関係者によるものと思われる回答によると、 It’s currently not possible to add Cloud Build m

    GKE の限定公開クラスタに Cloud Build でデプロイする
    progrhyme
    progrhyme 2019/12/23
    なるほど・・・
  • GKEからCloud SQLに接続する2つの方法のレイテンシを調べてみた

    記事の内容および環境構築用のrepositoryは実用レベルの構成・実装ではなく、あくまでも「GKEからCloud SQLにつながった」+「接続方法によってレイテンシに差があるよね」というだけですのでご注意ください。また検証結果も参考値ですので、もし気になる方は自分で試してみることをオススメします(以下が環境構築用repoです)(`・ω・´)

    GKEからCloud SQLに接続する2つの方法のレイテンシを調べてみた
    progrhyme
    progrhyme 2019/09/02
  • Docker 19.03新機能 (root権限不要化、GPU対応強化、CLIプラグイン…)

    NTTの須田です。2019年7月23日に公開された、Docker 19.03の新機能をお伝えします。2018年11月8日にリリースされたDocker 18.09以来、8ヶ月ぶりのリリースです。 root権限不要化従来のDockerは、ホストのroot権限でデーモン(dockerd)を動作させる必要があったため、脆弱性や設定ミスを突かれると、ホストのroot権限を奪われる恐れがありました。 Docker 19.03では、非rootユーザでデーモンを実行できるようになりました(Rootlessモード)。 Rootlessモードを有効化することで、万一Dockerに脆弱性や設定ミスがあっても、攻撃者にホストのroot権限を奪取されることを防ぐことが出来ます。ただし、現時点ではcgroupを利用できないなどの制約があります。 RootlessモードのDockerは, curl -fsSL http

    Docker 19.03新機能 (root権限不要化、GPU対応強化、CLIプラグイン…)
    progrhyme
    progrhyme 2019/07/23
  • Merging OpenTracing and OpenCensus

    Authored by the “bootstrap committee” (Ben Sigelman, Bogdan Drutu, Sarah Novotny, Sergey Kanzhelev, and Yuri Shkuro) for the merged project. Two projects — OpenTracing and OpenCensus — are very similar in that they aim to unify app instrumentation and make observability a built-in feature in every modern application. Over the past few months, leaders from both communities have formed a seed commit

    Merging OpenTracing and OpenCensus
    progrhyme
    progrhyme 2019/03/29
    素晴らしい動きだし、方針も素晴らしい
  • プログラミング教育は割と大丈夫かもしれない — 但しChromeが入れられればね。

    先ほど、地元の小学校の6年生の全児童を対象に、プログラミングの「体験」授業をしてきた。受験シーズンで欠席がちらほらあったが、3クラスで合計90人ほどが参加した。放課後ではなく、正規の授業枠である。 CoderDojo仲間の田中さん。一緒に、授業してきた帰り道。対象とした小学校世田谷区の公立校で、今年度利用を開始した新校舎のため、インフラは恵まれている。渋谷区のように児童全員にPCがあるほどではないが、無線LANの速度などは十分と言えそうだ。 世田谷区の公立小学校Windows タブレットが全校で40台ほどWiFiの速度が15~50Mbps6年生のスマートフォンの普及率はかなり高そう (8~9割か) ※英語の分かる児童が1割くらい ※実は私の母校でもある。’90年当時、FM TOWNSが2台放置されていて、よく遊んでいたのを覚えている。30年経ってタブレットに替わり、一般教室でも使えるように

    プログラミング教育は割と大丈夫かもしれない — 但しChromeが入れられればね。
    progrhyme
    progrhyme 2019/02/11
    IEはもう開発会社が非推奨と言ってますから、教育委員会には認識を改めてほしいですね
  • Testing with golden files in Go

    When writing unit tests, there comes a point when you need to check that the complex output of a function matches your expectations. This could be binary data (like an Image), JSON, HTML etc. Golden files are a way of ensuring your function output matches its .golden file. It’s a pattern used in the Go standard library, which we’re going to take a look at now. We’ll start by writing a fairly contr

    Testing with golden files in Go
    progrhyme
    progrhyme 2018/12/19
  • クレジットカード番号がログに残らないようにする fluent-plugin-pan-anonymizer をリリースしました

    クレジットカード番号がログに残らないようにする fluent-plugin-pan-anonymizer をリリースしました カンムでは業務でお客様のクレジットカード番号を扱っています。お客様の安全のため、PCIDSSの要件をクリアするため、コンプライアンス遵守のため、カード番号は安全に取り扱う必要があります。この記事では対象をログに定め、ログに不用意にカード番号が残らないような仕組みについて書きます。 fluent-plugin-pan-anonymizer端的に言うと、こちらの fluent filter plugin を開発し、このプラグインを経由させることでカード番号がログに記録される前にマスクしています。 https://github.com/kanmu/fluent-plugin-pan-anonymizer プラグイン名に入っている PAN は Primary Account

    クレジットカード番号がログに残らないようにする fluent-plugin-pan-anonymizer をリリースしました
    progrhyme
    progrhyme 2018/11/14
    "カード番号として正しいかどうかの検証を行う機能も"
  • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

    qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

    3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
    progrhyme
    progrhyme 2018/09/21
    いい話。
  • メルカリの小泉さんと組織の課題について話したら恐ろしい程勉強になった話 – tsukuruba – Medium

    僕の中で仕事人生に影響を与え続けてくれている三大COO(と勝手に呼んでる人たち)がいる。 一人目がアカツキ共同創業者COOの香田哲朗くん、二人目がフリークアウト(元)COOで現hey代表の佐藤裕介さん、そしてメルカリ社長兼COOの小泉文明さんだ。 それぞれ社長もできる人だが、COOとして事業及び組織の構築も構造的分析もハイレベルにできる。恐ろしく広域のアビリティを持ち、バイタリティとバランス感覚に優れ、超人的な仕事量をこなす人たちである。 そのうちのお一人であるメルカリ小泉さんと1on1させてもらう機会があり、その話が組織の課題に悩む他の人にもとても有用だと思ったのでメモを公開させていただくことにした。(ほんとにメモなんで乱文ご容赦ください) ツクルバでは組織・文化づくりに社をあげて徹底的に投資していく方針なので、非常に参考になった。 ***以下メモ*** [お題] メルカリで急激に組織を

    メルカリの小泉さんと組織の課題について話したら恐ろしい程勉強になった話 – tsukuruba – Medium
    progrhyme
    progrhyme 2018/06/19
  • “最低”年収1000万円のハイスキルエンジニア募集を始めたよ by 無人ストア『600』

    無人コンビニ『600』を提供する弊社で、ハイスキルエンジニアの “最低” 提示年収を1000万円に引き上げました!もちろん年齢性別国籍不問です。ちなみに弊社の呼び方は “ろっぴゃく” です! 応募は僕にFacebookやTwitter、メール<k@600.jp>で直接声かけてください。ご都合の良い場所へ飛んで行きます! アルバイト・インターンの方は時給5000円です。学生歓迎。ニート歓迎です。 業務委託やフリーランス副業として関わっていただける方も大歓迎です。 背景僕自身アメリカの大学でComputer Scienceを専攻して卒業して、在学中にはIPAの未踏事業に採択されたりもして、大学卒業後にSan FarnciscoでGitHubから1 clickで色んなサービスがデプロイできるのが売りのfluxflex, inc.を起業した時には、自分自身のことを起業家よりもエンジニアだと自認し

    progrhyme
    progrhyme 2018/05/29