GAミント至上主義

Web Monomaniacal Developer.

2016-01-01から1年間の記事一覧

Google Container Engineで本番運用したらfluentd-cloud-loggingのメモリ消費量が一番多かった

なるべくサーバー代を抑えるために、速度重視のフレームワーク使ったり(Python3 + Falcon + Nginx)、メモリリークと戦ったり、メモリに溜め込まないように書いてるけど、勝手にログを集めてくれるGoogle仕様のfluentdが一番メモリを食っていた。アプリケー…

DockerでERAlchemyを使ってPostgreSQLのER図を書き出す

現在のアプリのデータベースのER図を作る必要があったので、検索した所、ERAlchemyというのがあることを知った。ちなみにPostgresqlを使ってる。GitHub - Alexis-benoist/eralchemy: Entity Relation Diagrams generation tool こういう一時的な用途で、自分…

gcloud dockerコマンドのWARNING: The '--' argument must be specified between gcloud specific args on the left and DOCKER_ARGS on the right

GoogleのContainer Repositoryにアップする際、エラーメッセージが出るようになって、しばらくそのまま使ってたけど直し方がわかった。 WARNING: The '--' argument must be specified between gcloud specific args on the left and DOCKER_ARGS on the rig…

大規模開発って何が大規模なのか

私はいわゆるSIerで働いた経験が無いけど、開発の話で大規模開発とか、求人で大規模経験など、「大規模」という言葉をよく耳にする。何が大規模なのか少し考えてみた。 ○ 機能の数 bizoceanではフレームワークにSymfony2を使っているけど、これも他のPHPフレ…

Docker+Kubernetesの使用メモリ確認方法

メモリ使用量は起動できるコンテナ数、費用にも関わってくるので大事。確認方法をまとめます。 Docker docker statsコマンドで確認できる $ sudo docker stats {CONTAINER ID}こんな感じで表示される CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK…

Google翻訳はチョムスキーの生成文法を作り出したのか

jp.techcrunch.com コンピューターは、言語間の翻訳に自分が用いる概念(共有される意味概念)を表現する独自の内部的言語を開発したのではないのか? この記事を読んで、生成文法を思い浮かべた。詳しくは下記参照だけど、私が大学で一番印象に残ってる理論…

Pythonで作ったプロセスのメモリ肥大化の原因調査から解決まで

2017/9/25 追記変更 公式ライブラリの大幅アップデートがあり、0.28.3ではメモリリークがなくなったが別の問題が発生し、嫌になったので、Cloud Pub/Subでのsubscribe処理はあきらめRedis Pub/Subに戻したpypi.python.orguyamazak.hatenablog.com 元記事 Doc…

リトライ間隔の重要性

この記事を読んで、定期的な同期時や、エラーからの復帰時のリトライで負荷の増大や偏りが出てしまうことを知る。自業自得のDDosって文言にちょっと釣られたけど読んでみて納得。googlecloudplatform-japan.blogspot.jp 早速リトライ時の以下の条件でスリー…

GCPでログの内容によってアラートを送信する設定方法

oceanusでは、Google Cloud Platform(GCP)のGoogle Container Engine(GKE)を使っていますが、これらを使うとほぼ何も設定せずに、アプリ側で標準出力へのエラーを出すだけで、Google側でログを集めてくれます。サーバーを増やすごとにそれぞれにfluentd…

Pythonでタイムアウト処理

oceanusで作っているプロセスで、ログも何も吐かずに停止してしまうものがあり、タイムアウト処理を追加しようと思った。 環境はLinuxでpython3.5検索したらデコレータ形式で簡単に使える下記を見つけたqiita.com github.com pipからインストール可能 pip in…

Pythonで重複してログが出力されるとき

本番運用しながら絶賛開発中のoceanusで、本格的にログの必要性を感じ、ログレベルを分けながら使ってみている。この記事を読んでloggerとloggingの違いをなんとなく感じ取ってqiita.com フォーマットは統一したいので、こんな感じの共通で使える関数を作り …

エンジニア立ち居振舞い:なるべく作らない

お題「エンジニア立ち居振舞い」何かを作るのがエンジニアの仕事だけど、作らないことも大事。これまで9年ぐらい自社サービスをメインに開発、運用をしてきて、メンテナンスや引き継ぎの大変さを思い知った。特に昔の自分が作ったものに対して。 営業やお客…

AWSではなく、GCPを選んだ5つの理由

いわゆるクラウドサービスで、一番先に進み、ユーザー数も多いのはAmazon Web Service(AWS)だ。でも私は新規サービスにはGoogle Cloud Platform(GCP)を選んだ。AWSがいいのか、GCPがいいのか、人と話していてよく聞かれるし、悩んでいる人も多いと思うの…

GCP東京リージョン(asia-northeast1)をGKEで使ってみるための事前調査

2016年11月8日からGoogle Cloud Platformの 東京リージョン(asia-northeast1)が一般公開されました。早速、現在台湾(asia-east1)で動かしているGoogle Container Engine(GKE)を移すためにちょっと違いを調べてみた。cloud.google.com スペック 東京はCPUが…

BigQuery障害 2016/11/09

復旧 日本時間13:07頃に復旧したもよう。 Google BigQuery Incident #18022BigQuery Streaming API failingIncident began at 2016-11-08 16:25 and ended at 2016-11-08 20:07 (all times are US/Pacific).DATE TIME DESCRIPTION Nov 08, 2016 20:21 The is…

dockerのベースイメージをubuntuからalpineにして起きた問題と良かったこと

開発中にattachでいろいろやるときは、慣れたubuntuが良かったけど、最近は大きくいじることもなくなったので、軽さ重視でalpineに変更してみたところ、細かいけど幾つか問題があった 問題 ホスト名が使えなくなった ウェブサーバーからredisサーバーにつな…

docker imagesで最新のタグ5件を出力

Google Container Engineで、デプロイする際、毎回ユニークなタグでdocker buildしてgcloud docker pushする必要があるけど、この前何でやったっけ?となることが多い。ちなみにイメージ名はGKEルールに乗っ取って、先にレポジトリ(asia使ってる)を書いて…

Let’s Encrypt で複数ドメイン対応証明書を作る

無料のSSL証明書発行ができるLet’s Encryptを本番でも使い始めたけど、ドメインを変えたいときなど、ドメインごとに証明書をもたせるのが面倒だった。そこで、一つの証明書で複数ドメインを使えるようにすることにした。やってみると簡単だった。 認証は、DN…

Pythonを使ったデータ解析周りのインターン生募集(最寄り東銀座)

2017/2/20追記 定員となってしまったため、受付を終了しました。お話をするだけであれば可能なのでご連絡ください。 2016年4月にできたばかりの会社でインターンとか一人もいないし、制度もないのですが、勝手に募集します。制度は後付。インターンじゃなく…

ローカル環境でX-Frame-Optionsを無効化する

収集したクリックの座標データをヒートマップで表示させるときに、下にiframeで元のページを出しておくと非常に見やすくて便利だけど、まともなサイト場合、X-Frame-Optionsが設定されており、表示できない。 プロキシサーバーを作ってヘッダーの書き換えな…

Kubernetesの読み方

Googleのセミナーなどで聞く限り クーバネティス が一番近いと思ったプログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化作者: 阿佐志保,山田祥寛出版社/メーカー: 翔泳社発売日: 2015/11/20メディア: 大型本この商品を含むブ…

GKEでKubernetesのアップグレードを無停止で行う手順

通常のimageの変更であれば、無停止でアップグレード、デプロイができるkubernetesだけどGoogle Container Engine(GKE)で、Kubernetes自体のアップグレードを行うとダウンタイムが発生してしまう。1.4でいろいろと機能が増えたり、Image typeがcontainer-v…

社内向けDocker勉強会 発表用草案(作成中)

Docker+GCP Kubernetesを本番で使い始めてもうすぐ半年となり、いろいろとノウハウも溜まってきたので、社内向けに発表をしようと思う。11月中に予定。まずテキストでまとめてみる。もし興味がある方がいたらbizoceanの東銀座のオフィスで一般公開もできる…

jupyter nbconvertでERROR | Timeout waiting for execute reply回避

Google Cloud Datalabでjupyter nbconvertコマンドを使って日次レポートをメールで送っているけど、内容が増えるにつれ、時間がかかるようになってタイムアウトエラーで異常終了していた。 [NbConvertApp] Converting notebook /content/datalab/Daily/daily…

Google Cloud Datalab(jupyter)で日本語の文字コードエラーを止める

Python3を使うようになってから、全然苦労しなくなった文字コード周りのエラーだけど、DatalabはPython2。日本語使いとしては、いい加減Googleも3系に移行してほしいんだけどしょうがない。英語環境だと困らないんだろうな。 BigQueryから取ってきたデータ内…

CPB100 2016-10-13@Google六本木オフィス

以前CP100Aを受けたけど、BigQueryや機械学習をしばらくメインにやっていきたいので、最近追加されたCPB100を受けてきた。10時〜18時で午前中はCP100Aのビッグデータ周り、主にデータのやり取りに使うストレージをさらっと流す感じ。DatastoreやContainer En…

Active Directory連携をしているLinuxでローカルユーザーのパスワード変更ができなくなったとき

以前構築した、Windows Serverとユーザー認証を連携させたサーバーで、AD連携前にローカルで作ったユーザーのパスワードが変更できなくなった。uyamazak.hatenablog.com 変更しようとすると、ケルベロス認証を使ってないユーザーなのに Current Kerberos pas…

Google Cloud Datalabでよく使う自作スニペット

bizoceanのデータ収集、解析プロジェクトoceanusで、1ヶ月ほど社内データをいじってみて、できてきたスニペットをまとめてみる。普通のサービス開発時と違って雑になりがち。主に文字列の変数にしてformatでSQLにぶち込んで使う。 日付の文字列 昨日今日、何…

Dockerを3ヶ月本番環境で使って感じた今後の可能性

2016年5月ごろからbizoceanのデータ集計、解析プロジェクトにDockerを使いはじめ、本番環境にはGoogke Container Engineを使っている。使ってみて、今後コンテナ技術はどんどん普及していくなと確信した。 利用の有無は、開発スピード、サーバーのコスト、メ…

pandasで表示が省略されるのを防ぐ

Google Cloud Datalab localを使って、日次レポートを作っているけど、長いURLや行数が多いとき省略されてしまい困った。HTML()やdataframeで探しても見当たらなかった。pandasの設定で変えられた。 import pandas as pd #カラム内の文字数。デフォルトは50…