kustomize buildを実行して得たmanifestの差分ををPull Request上で確認する

この記事は GMOペパボエンジニアカレンダー の19日目の記事です。諸事情によりバタバタしてしまい、記事の公開がめちゃくちゃ遅くなりました adventar.org 普段運用しているKubernetesクラスターでは、デプロイするmanifestは環境毎の差分を管理しやすくする…

istio-proxy(envoy) のアクセスログをパースして任意の形式で出力するツールを作った

この記事は CODE BASE OKINAWA Advent Calendar 2022 - Adventar の12日目の記事です。 adventar.org 今日は、普段のお仕事を少しだけ楽にするツールを書いたので、紹介していきたいと思います。 普段運用しているKubernetesクラスターでIstioを導入していま…

Goを用いてTCPソケット通信を学ぶ

この記事は GMOペパボエンジニア Advent Calendar 2021 - Adventar の6日目の記事です。 昨日は buty4649 さんの業務で使っているPCをLinuxデスクトップにしてから3年半が経った でした。 これまでデスクトップPCはWindowsかMacしか使ったことがなかったので…

【Docker/Kubernetes 実践コンテナ開発入門】を読んだ

今年は業務でKubernetesをがっつり扱っていくことになると思うので、先に概要だけでも掴みたく、いくつかKubernetes関連の書籍を読んでいくことにした。 今回は【Docker/Kubernetes 実践コンテナ開発入門】を読んだ。Dockerの基礎からKubernetesの入門部分ま…

OSSに初めてコントリビュートできて嬉しかった話

今年目標にしていたOSSへの貢献。 先日初めてとあるOSSにPull Requestを送ってMergeされたのが嬉しかったので、記念に書いておこうと思った。 リリースされたばっかりだし、多分使ってる人もまだ全然いないような小さなプラグインだけど、海外の人と英語でや…

AWS CLIっぽくAzure Blob StorageのBlobを操作できるCLIツールを作った

普段、業務でサーバーレスアーキテクチャを用いた開発が結構多く、Azure Blob Storageにファイルや画像がアップロードされたら、それをトリガーにAzure Functionsを起動させて処理するみたいな構成が度々あり、ファイル等を手元から手軽アップロードできるよ…

Github Actionsの自作アクションを作ってみた

業務でAzure Filesに対してgithubのリポジトリ内容を継続的に反映させる場面があり、いい感じのGithub Actionsあるだろうと思っていたら意外になかったので、この際だから作ってみた。 ソースコードはこちら github.com Azure Files用のJavaScript SDKを使っ…

PythonのコマンドラインパーサーであるClickを使ってみた

Pythonでコマンドラインインターフェースを作ろうとした時、わりと最近はコマンドラインパーサーにclickが使われていることが少しだけ多い印象?だったので、個人的に少し触ってみた。 コマンドラインパーサーとしては他にも標準ライブラリに組み込まれてい…

大名エンジニアカレッジ(第1回 セキュリティ講座)を受けた

先日、大名エンジニアカレッジのWebエンジニア発展コースを受講してきた。 実はもともとはインフラ講座がお目当てだったが、想像以上にセキュリティについての講義が面白かったので、引き続きこの分野についても深く学習を続けていきたいなと思った。 大名エ…

Azure Storage Blobs client library for Pythonを使ってBlobをいろいろ操作してみる

以前のブログで、Azure SDK for PythonのBlob Storage Clientを使ってpandasのDataFrameをcsv形式でBlobストレージへのアップロード方法について書いたのだが、Blob Storage Clientには他にもたくさんいろいろなメソッドが用意されていたりするので、今回は…

DigdagからPostgreSQLに接続した際にconnectionが枯渇する現象を解決した話

docker-compose上で、Digdagをサーバーモードで起動し、PostgreSQLに接続した際に以下のようなログが多発した。 digdag | 2021-01-26 23:23:30 +0000: Digdag v0.9.42 digdag | 2021-01-26 23:23:32 +0000 [INFO] (main): secret encryption engine: disable…

Dockerコンテナを使って手元でさくっとEmbulkを実行しAzure SQL Database間でデータを転送させる

業務でよくAzure SQL Databaseを使っていて、DB間でさくっとデータを転送したい場面が度々あり、以前はAzure Data Factoryとか使っていたのだが たまにしか使わないし設定面倒だしなぁとか思っていた。 Embulkだと環境用意するの大変かなとか思っていたが、…

CircleCIのManual Approvalを得てAzure App Serviceのデプロイスロットをスワップさせる

この記事はCircleCI Advent Calendar 2020 - Qiitaの19日目の記事です。 qiita.com 今回はCircleCIのManual Approvalを使用してAzure App Serviceのデプロイスロットをスワップさせるところをやっていきたいと思います。 やりたいこと Dockerイメージのビル…

Azure SQL Database(pyodbc)でSQLAlchemyを使う

CODE BASE OKINAWA プログラミングスクール Advent Calendar 2020 - Adventar 1日目の記事です。 adventar.org 私は株式会社EBILABでエンジニアとして働いており、最近では主にインフラ・データ基盤の整備を行っています。 今回はPythonで使用できるORMの一…

Python実践入門を読んでPythonを体系的に学び直した①

今までpythonをちゃんと体系的に学んだことがなかったので、Python実践入門を読んで再入門した。 Pythonを使いながらも恥ずかしながら今まで知らなかったこと、今まで理解が曖昧だった部分、Python3.8から導入された新機能など新たな学びがたくさんあったの…

nginxをソースコードからコンパイルしてインストールする(centos7.1)

nginxにとあるサードパーティー製のモジュールを追加して使う場面があり、nginxの場合ビルド時にそのモジュールを組み込む必要があるらしく、ソースコードからコンパイルしてインストールした時の方法をメモ。 環境 Vagrant 2.2.10 VirtualBox 6.1.14 r14023…

PyPI以外からパッケージをpip installする

最近は仕事の中での運用が楽になるようなpython製の自作ツールを作ってPyPIとかで配布して手軽に使えるようにしたいという気持ちが高まり外部パッケージの配布方法など調べていると、今更ながらPyPI以外(ローカルやGitHub)から直接パッケージをインストー…

Azure SDK for PythonのBlob Storage Clientを使ってpandasのDataFrameをcsv形式でBlobストレージにアップロードする

pandasのDataFrameをCSV形式でBlob Storageにアップロードする場面が結構あったので、こちらの記事を参考にさせてもらいました。 sinyblog.com こちらもAzure SDK for PythonのBlob Storage Clientを使っているようだったのですが、バージョンがv2.1を使用し…

Azure Functions(Python)従量課金プランがいつのまにか東日本リージョンに対応してたので、Terraformでプロビジョニングしてみる

待望にしていたAzure Functions(Python)の従量課金プランの東日本リージョン対応ですが qiita.com どうせまだ使えないよなーとか思いつつAzureのポータル上から確認してみると、いつの間にか選択できるようになっていました 個人的にもそろそろAzure Funct…

Pythonのpandasを使ってSQL Server上のデータの取得・挿入を行う

よくcsvファイル中身をSQL Serverに挿入したりすることがあるが、普段はpythonのcsvモジュールを使ってcsvファイルを読み込み、dictに変換してSQL ServerにINSERTしたりしていた。(もっといい方法があるかも知れないが...) 恥ずかしいことに、今更ながらpa…

マルチステージビルドを使ってDockerにcomposerをインストールする

PHPのパッケージ管理システムであるcomposerをDockerにインストールする際にマルチステージビルドを使うといい感じだったのでメモ。 まずは普通にインストール composerの公式ドキュメントに従い、PHPを使ってインストールしていく getcomposer.org composer…

TerraformのtfstateをAzure Blob Storageで管理する

AzureのリソースをTerraformを使って構築する際に、tfstateの管理をどうしようかと思っていたところ、AWSのS3でtfstateを管理するようにAzure Blob Storageでほぼ同じことができそうだったので試してみた。 tfstateとは Terraformで管理しているリソースの状…

昨年の振り返りと今年の抱負

新年明けましておめでとうございます。 年末年始はいろいろとバタバタしており、2018年の振り返りができなかったので、 今更ながら昨年(2018年)の振り返りと今年(2019年)の抱負を書いてみたいと思う。 昨年の振り返り ざっくりと昨年の個人的に大きかった出…

Mailableクラスを使ってMail送信機能を実装

個人的な学習でLaravelのMailableクラスを使用してMail送信機能についてまとめてみました。 MailableクラスはLaravel 5.3から使用することができます。 僕自身が書いたコードはこちら github.com 環境 今回は Laravel5.6.x、PHPは7.2.xを使用しています。 ド…

Laravel Novaをインストールしてみる

一緒にお仕事させてもらってるLaravelの案件で、Laravel Novaを使う場面がでてきたので、いろいろ調べたことを何回かに分けて記事にしていきたいと思います。今回は導入編ってことで、Laravel Novaをインストールしていきます。 Laravel Novaとは Laravelの…

すでにindex貼られているカラムに対してunique制限をかける方法 - Ruby on Rails

すでにindexが貼られているカラムに対して、以下のようにmigrationファイルを編集してunique制限をかけようとした時に def change add_index :users, :email, unique: true end そのままdb:migrateすると Index name 'index_users_on_email' on table 'users…

カラムの型をstringからintegerやbigintに変更しようとしてエラーが出た時の話

カラムの型をstring型からbigint型に変更しようと思って以下のようにmigrationファイルを編集して class ChangeColumnParentStringToBigint < ActiveRecord::Migration[5.2] def change change_column :categories, :parent_id, :bigint, null: true end end…

Okinawa.rb Meetup! @ ギークハウス沖縄 Ruby入門環境構築編 & もくもく回に参加した

はじめに 先日行われた、Okinawa.rb Meetup! @ ギークハウス沖縄 Ruby入門環境構築編 & もくもく回に参加してきました。 okinawarb.doorkeeper.jp 今回は環境構築編ということで、今までProgateやドットインストールでしか学習経験がない僕にとって、ローカ…