CLOVER🍀

That was when it all began.

2019-04-01から1ヶ月間の記事一覧

RESTEasy(JAX-RS)+ArC(CDI)の利用に見る、Quarkusアプリケーションのビルド結果の中身

これは、なにをしたくて書いたもの? Quarkusは、GraalVMを使ってアプリケーションをネイティブイメージにビルドできることを売りのひとつにしています。 ところで、GraalVMを使ってネイティブイメージを作ろうとするとけっこうな制限があって、アプリケーシ…

はじめてのQuarkus

これは、なにをしたくて書いたもの? Quarkusという、Red Hatが開発しているフレームワークを、ちょっと試してみようと。 Javaフレームワーク「Quarkus」登場。Javaコードからネイティブバイナリを生成し瞬時にJavaアプリが起動、コンテナへの最適化を実現。…

Prometheusのデータ(TSDB)のSnapshotを取得して、リストアまで

これは、なにをしたくて書いたもの? Prometheusのストレージまわりがちょっと気になって、いくつか見ていくことにしました。 最初に、Snapshotについて見ていきたいと思います。 Snapshot? TSDB Admin APIに、Snapshotを取得できるAPIが登場します。 TSDB …

負荷テストツールVegetaを試す

Go

これは、なにをしたくて書いたもの? Vegetaという、割と個性的な負荷テストツールがあり、コマンドラインで簡単に使えそうなので試してみようかということで。 GitHub - tsenart/vegeta: HTTP load testing tool and library. It's over 9000! Apache Bench…

BusyBoxを使って、単一で実行可能なコマンドのバイナリをDockerコンテナ内に放り込む

これは、なにをしたくて書いたもの? Dockerコンテナ内で解析などの作業をする必要が出た時に、コマンドなどが入っていないDockerイメージが相手の場合は どうすればいい?という時の選択肢のひとつとして、BusyBoxが使えそうな気がしたので。 BusyBox Case …

RESTEasy+Undertowで作ったアプリケーションを、GraalVMでネイティブイメージにしてみる

これは、なにをしたくて書いたもの? 以前に、簡単なJavaアプリケーションをGraalVM(Substrate VM)を使ってネイティブイメージにしてみたのですが、 もう少しライブラリなどを使った複雑な(?)ものをネイティブイメージにしてみようと思いまして。 で、…

PyInstallerを使って、Pythonアプリケーションから単一の実行可能ファイルを作成する

Pythonで、実行可能なバイナリを作成するにはどうしたらいいのかな?と思って調べてみたのですが、PyInstallerというものを 使えばよさそうです。 PyInstaller Manual — PyInstaller 6.4.0 documentation GitHub - pyinstaller/pyinstaller: Freeze (package…

AWS Step Functionsをローカルで動かす

これは、なにをしたくて書いたもの? AWS Step Functionsをちょっと試してみたいのですが、どうやらローカルで動かせるみたいなので、ちょっと試してみようと。 AWS Step Functions とは - AWS Step Functions Step Functions Local (ダウンロード可能バージ…

PythonのAWSクライアントライブラリ、Boto 3の接続情報を設定する

これは、なにをしたくて書いたもの? PythonのAWSクライアントライブラリといえば、Boto 3というものだそうです。 AWS SDK for Python | AWS GitHub - boto/boto3: AWS SDK for Python ドキュメントは、こちら。 Boto 3 Documentation — Boto 3 Docs 1.9.134…

LocalStackを使って、AWS Lambdaを試してみる(Python版)

これは、なにをしたくて書いたもの? AWS Lambdaを動かすのに、以前LocalStackを使ってNode.jsで作成した関数を動かしてみました。 LocalStackを使って、AWS Lambdaを試してみる - CLOVER 今回は、ちょっとPythonで作成してみたいと思います。 お題 お題も前…

Ubuntu Linux 18.04 LTSに、OpenJDK 11をインストールする

Ubuntu Linux 18.04 LTSで、やっと本当に(※)OpenJDK 11が使えるようになったみたいなので、インストールしたいと思います。 ※後述 openjdk-lts package : Ubuntu 環境。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Descripti…

Pythonプログラムのメモリの使用状況をトレースする

これは、なにをしたくて書いたもの? ちょっと、Pythonプログラムで使用しているメモリの状況を追ってみようかなと。 Python標準ライブラリにtracemallocというものがあるので、こちらを利用できます。またobjgraphというものを使えば、 オブジェクトの参照…

実行中のDockerコンテナの情報を確認する

Dockerコンテナの情報を確認するにはどうしたらいいのかな?ということで、ちょっと調べてみました。 Docker標準のコマンドと、ctopというものが有用そうです。 確認用に、2つのコンテナを用意します。 ひとつは、nginx。 $ docker container run -it --rm -…

uWSGIで複数プロセスを使ってアプリケーションを起動した時に、複数のCPUを使えているかどうか確認する

これは、なにをしたくて書いたもの? uWSGIやGunicornなど、WSGIサーバーは起動時に複数プロセスを利用させるように設定できるのですが、それで複数のCPUコアを 使ってくれるのかを試してみようかなと。 今回は、uWSGIを使って試すことにします。 環境 環境…

WSGIアプリケーションとプロセス数、スレッド数の関係を見る

これは、なにをしたくて書いたもの? 先日、WSGIサーバーとして、GunicornやuWSGIを動かしてみました。 uWSGIを試してみる - CLOVER Gunicornを試してみる - CLOVER この時に、これらのサーバーには起動時にプロセス数やスレッド数を与えることができるとわ…

Gunicornを試してみる

これは、なにをしたくて書いたもの? 前に、uWSGIについてエントリを書きました。 uWSGIを試してみる - CLOVER 今回は、同じくWSGIサーバーであるGunicornを試してみたいと思います。 Gunicorn - Python WSGI HTTP Server for UNIX Gunicorn Gunicornは、UNI…

uWSGIを試してみる

これは、なにをしたくて書いたもの? PythonでWebアプリケーションを書くためのインターフェースとして、WSGIというものがあるそうです。 Web Server Gateway Interface - Wikipedia PEP 3333: Python Web Server Gateway Interface v1.0.1 — knzm.readthedo…

はじめてのDjango

ちょっと、PythonでWebアプリケーションを書いてみようと思いまして。 Djangoというのが割とメジャーなようなので、少し試してみたいと思います。 Django? Pythonで書かれた、フルスタックなWebアプリケーションフレームワークだそうです。 The Web framewo…

Python Call Graph(PyCallGraph)でPythonの関数呼び出しのコールグラフと実行時間を見る

これは、なにをしたくて書いたもの? Python Call Graph(PyCallGraph)という、Pythonのプログラム内での関数呼び出しの様子を可視化してくれるツールが あるようです。合わせて、関数の実行時間や呼び出し回数も見れる模様。 GitHub - gak/pycallgraph: py…

line_profilerで、Pythonのプログラムを行単位でプロファイリングする

これは、なにをしたくて書いたもの? Pythonのプログラムを関数の行単位でプロファイリングしてくれるモジュール、line_profilerというものがあるらしいので、 試してみようかなと。 GitHub - rkern/line_profiler: Line-by-line profiling for Python 環境 …

Python標準のcProfile、profileを使ってプロファイリングを試す

これは、なにをしたくて書いたもの? Pythonには標準で、cProfileとprofileというプロファイリングツールがあるようです。 27.4. Python プロファイラ — Python 3.6.12 ドキュメント こちらを、ちょっと試してみようと思いまして。 環境 今回の環境は、こち…

Pythonのスレッドは、ネイティブスレッドなのか?

Pythonでのスレッドといえば、GIL(Global Interpreter Lock)があるので同時にはひとつのスレッドしか実行できない という話らしいです。 スレッド状態 (thread state) とグローバルインタプリタロック (global interpreter lock) 動的言語総まとめ : Pytho…

シングルノードで動かすことに特化したKubernetesである、MicroK8sを試す

Ubuntu Linuxにリモートログインした時に、こんな表示が出るようになっていたのが前々から気になっていまして。 Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-47-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://land…

Ubuntu Linux 18.04 LTSにTerraformをインストールする

ちょっとTerraformが気になっているので、試しにとインストールして触ってみることにしました。 Terraform by HashiCorp Terraform? そもそも、Terraformとはなんでしょう? オフィシャルサイトによると、インフラをコードで定義し、リソースを作成したり変…

Native Image Maven Pluginを使って、GraalVMでネイティブイメージを作る

これは、なにをしたくて書いたもの? こちらのエントリを見て、GraalVMでネイティブイメージを作るMavenプラグインがあるというので、試してみようかと。 Simplifying native-image generation with Maven plugin and embeddable configuration – Logico Ins…

OKD/Minishiftで、特定のPodに絞ってPrometheusからDiscoveryする

これは、なにをしたくて書いたもの? 以前、PrometheusをOKD(Kubernetes)にデプロイしてみました。 OKD/Minishift上に、Prometheusをデプロイしてみる - CLOVER こちらは、とにかくPrometheusをOKD(Kubernetes)上で動かすことだけを目標にしていました…

cAdvisorで稼働中のコンテナのメトリクスを取得する(+Prometheus)

cAdvisor? cAdvisor(Container Advisor)は、稼働中のコンテナのリソース使用量や、パフォーマンス特性を提供してくれるものです。 GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers. 【Docker…