心の平穏のために、猫の画像をランダムに表示してくれる Slack command /neko を作った。 Slack で /neko と打つと、Cloud Functions にリクエストが飛び、Functions が TheCatAPI からランダムに猫画像 URL を取得するもの。 参考 serverless framework による AWS Lambda ローカル開発 – momota.txt Google cloud functions で slack (slash) commands をつくる – momota.txt 使ったもの 用途 Google Cloud Functions バックエンド Python 3.7 Functionsの実装言語 Serverless framework 1.40.0 GCPへのデプロイ Serverless framework の初期設定 1
Slack commands を Google Cloud Functions で実装する。 Slack commands は slack 上で /command arguments 形式で入力すると何かしらの応答を返す仕組み。/ から始まるのでSlack Slash command とも呼ばれるようだ。 詳細は公式 API ページを参照: Slash Commands | Slack 過去につくった Slack Bot が動かなくなったので、GCP を利用して作り直そうというのが背景。 クラウドへのデプロイについては serverless framework を利用した。 参考 lita で Slack Bot (on heroku) をつくる – momota.txt serverless framework による AWS Lambda ローカル開発 – momota.txt 今回は
zsh でインクリメンタルな補完を行うため、Incremental completion on zsh を導入した。 こんな感じで便利。 robbyrussell/oh-my-zsh を導入している前提。 oh-my-zsh の導入に関しては、こちらの記事を参照: zsh をログインシェルにしてワーク・ライフ・バランスを改善する (oh-my-zsh) – momota.txt 今回利用するカスタムスクリプトは ~/.oh-my-zsh/custom/ 以下に置けばログイン時にロードしてくれる。したがって、公式に書いてある source incr*.zsh を .zshrc へ書く必要はない。 スクリプト名にバージョン名が入っているのが気持ち悪かったので、incremental_completion_for_zsh.zsh へ修正した。 1 2 3 4 5 $ curl -o ~/.oh-
2019/03/26(火)、渋谷で行われた Google Cloud Kubernetes Day への参加レポート。 会場の約半数が k8s をすでに利用、サービスメッシュは1割程度という感じで、プロダクション環境での採用をやっていかないとまずいという雰囲気だった。 ハッシュタグ: #gc_k8sday 資料が公開されたらリンクを張ったりアップデートする予定。 「Kubernetes/Container による開発」の導入難易度とメリット 株式会社サイバーエージェント 青山 真也 氏 @amsy810 サイバーエージェントとk8s 早いところでは2016年頃からk8sを採用 GKEとオンプレの採用が多い (半々くらい) オンプレミスでは独自のk8s as a Service基盤を構築 新規事業の多くがk8s/Containerを利用している レガシーシステムからコンテナへの移行も実施中
2019/01/09(水)、渋谷で行われたCloud Native Meetup Tokyo #6 KubeCon + CNCon Recap – connpass への参加レポート。 ハッシュタグ #cloudnativejp 転職しちゃったIさんとNさんに再会できてうれしかった。お酒ごちそうさまでした。 Cortex の話をKubeConで聞きたかった話 Shinya Uemura @uesyn (KDDI & Creationline) Cortexの話をKubeConで聞きたかったっていう話 – Speaker Deck PrometheusのローカルストレージはLong-term Storageではない レプリケーション機能がなかったりやクラスター化されていない Cortex Prometheusのメトリクスの長期保管のためのストレージ Frontend Cortexに含まれてい
Selenium と Ruby によりテストの自動化であったり、入力の自動化を進めている。 コマンドラインから実行すればよいことがほとんどで、ブラウザのGUIが起動しなくてもよい。 したがって、GUI が起動しない Google Chrome の Headless モードを使った Selenium スクリプトへ順次移行していこうと思う。 動作の軽量化もちょっとは期待できるかも。 (比較計測はしていない) 以下は、関連記事。 ブラウザ操作の自動化: selenium と ruby – momota.txt seleniumノウハウ – momota.txt 環境情報 ソフトウェア バージョン OS Windows 10 Pro 1709 ブラウザ Google Chrome 69.0.3497.100 ChromeDriver 2.39.562718 ruby 2.5.1p57 gem se
最近 Slack クローンの mattermost のチャットボットを Python で作った。 そのコードをテストしたかったときに unittest を覚えたのでそのメモ。 1 2 $ python -V Python 3.6.4 :: Anaconda, Inc. ディレクトリ構成は以下。 1 2 3 4 5 6 $ tree . |____log | |____mattermost_bot.log |____mattermostbot.py |____test_mattermostbot.py mattermostbot.py: ボット本体 test_mattermostbot.py: テストコード log/ : ログ保存用のディレクトリ チャットボット mattermost の統合機能から「外向きのウェブフック」を設定する。 チャットボットは bot_name COMMAND AR
MySQL 5.7 のパフォーマンスチューニングについて、調べてたのでまとめる。 // 結構な文量になってしまった… 大きく、2つのアプローチがある。 DBチューニング システム変数 (my.cnf) のチューニング 全体最適 アプリ (SQL) チューニング 個別最適 まあ、地道に、計測→問題点の特定→修正→計測… のサイクルを回すしかない。 1. DBチューニング ディスク構成関連 ログファイルとデータファイル (たとえば、システム表領域データファイル) を別の物理ディスクに配置することでI/O性能が向上する InnoDBデータファイルをRawデバイスに置くことで、I/O性能が向上する OSマウントオプション noatime を無効化する Linuxのファイルシステムには、ファイル読み込み時刻が「atime」として保存される。1ファイルアクセス当たりのオーバーヘッドはささやかだが、大量
チーム内での Ansible 勉強会の資料を公開。 公式サイトは以下。 http://www.ansible.com http://docs.ansible.com 前提知識としては、以下。知っていたほうが理解が早い。 unix コマンド YAML ansible使いのためのYAML入門 – @znz blog 公式から引用すると、Ansible は simple IT automation engine。 Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. —– H
MacBook Pro 2700/13.3 MF839J/A を購入したので (わーい) 、構成管理ツール ansible を使ってセットアップした。 t-wada さんのエントリ Mac の開発環境構築を自動化する (2015 年初旬編) – t-wadaのブログ変更する を見れば事足りると思われるので、本稿は自分用のメモ(t-wada さんのを少しだけカスタマイズ & 補足)。 実行環境は以下。 what version laptop MacBook Pro (Retina 13-inch, Early 2015) OS OS X El Capitan 10.11.6 ansible 2.1.1.0 1. 事前準備 1.1. SSH ansible では、コントローラ (Control Machine) から SSH 越しで管理対象ノード (Managed Node) を操作する。 今
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く