[ツール]ASP.net Core、PlantUML、Metabase、Terraform

2019年になってから使いだしたツールなど忘れないうちにメモ。

ASP.net Core

https://dotnet.microsoft.com/ (WEBフレームワーク)

初期のASP.netを知っている方は言語採用の候補にすら上げないだろう。
自分も同じだw。
でもそれは不勉強なのである。
そろそろアーキの候補にしてもいいかも。Linuxで動かせるのが楽。

某案件でCoreじゃーと勇んだが、
まだ早いと横やりが入りASP.net MVC5でやれと言われた(棒)


PlantUML

http://plantuml.com/ja/ (UMLなどの図を作成するツール)

設計ではサーバ構成図を書く。
進めるつちに改良やレビューやらで手直しが入るわけです。
しかし図の場合、差分管理が難しい。
吹き出しいれるのもダサいし見ずらい。

これは専用の言語で書くと図を作成してくれるのだ。
Visual Studio Codeで作成しながら、ビューワでリアルタイムで図で確認しながらもOK。
つまりGitで専用言語の差分管理ができるのがすばらしい!


Metabase

https://metabase.com/ (データ可視化ツール)

データは可視化するのがトレンド。

エンジニアにやさしい(導入が簡単。運用が簡単)
利用者にやさしい(SQLは知らなくてもOK。つまり営業さんでも使える)
つかわなきゃ損です。


Terraform

https://www.terraform.io/ (インフラ構成管理ツール)

AWSでインフラ構築するのはコントロールパネルをいじれば簡単にできる。
しかし、何を使っているとか、細かい設定を知るのは困難だ。
それが、前担当者のものを引き継いだらどうだ?
まさに阿鼻叫喚であるw
さらに、同じものを作れとかww

このツールはインフラのリソースや設定をコードで表現する。
コードで作成して、実行すると一発でAWS上でインフラを構築する。すごい。
これもテキスト文字なのでGitで差分管理できる。

作っては壊し、作っては壊しがすぐできる(汗)
AWSコンソールパネルだと地獄だがw
一般的なインフラ構成なら、学習時間もそれほど掛からないと思う。
ていうかコンパネから手作りとかもうやめろ(あとで後輩が困るから)

ワシは最近AWS構築をTerraformでやっていて、便利さがわかってきた。おすすめです。

わからんのはいっしょに始めたKubernetes(EKS)! EKSの事例が少なすぎ!

Kubernetes実践ガイド クラウドネイティブアプリケーションを支える技術 (impress top gear)

Kubernetes実践ガイド クラウドネイティブアプリケーションを支える技術 (impress top gear)posted with amazlet at 19.08.03北山 晋吾 早川 博
インプレス (2019-07-12)
売り上げランキング: 11,879
Amazon.co.jpで詳細を見る

ラズパイ初触り

おいおい今頃かよっ!と思うかもしれないが、存在自体は初期のころ知っており、バカにしてスルーしてた。最近、同僚が机の上に置いて色々制御しているのを聞き、面白そうじゃんと思い試してみようかなと思った。

買ったのはこのモデル。Raspberry Pi 3 Model B+

本体だけだと、5000円を切るぐらい。自分は電源とMicroSDカードがなかったので本体キット(8800円也)をアマゾンで購入した。

・本体

・MicroSDカード(16GB)

・MicroSDカードの変換アダプタ

・HDMIケーブル

・ケース

ケースの蓋をあけると、赤い物体が!
とりあえず、ケーブルをぶっ指す

電源は右上。HDMIのディスプレイケーブルはその隣。左上にはLAN。左側にはUSB端子が4つ。基板を裏返すとMicroMiniSDカードを差すスロットがある。

最後にUSBにはキーボードをつないで、電源スイッチをオンにするとインストール画面が起動する。

インストール画面。LANをつながないと上記のように2個表示。LANをつなぐともっと候補がでる

USB有線マウスがあるとインストールが結構楽。なければキーボードから選択してインストールを行う。

キーボードとマウスが両方ない場合は、ネットで調べるとリモートでやるやり方出てくるので参照されたし。

なお、インストールが終われば、キーボードもマウスもディスプレイも不要になる。SSHでリモート接続すればいいだけ。

SSHでリモートログインしてから、VNCいれても良いしね。感想としては普通にパソコンだねw。開発サーバにいいかも。とりあえずDockerいれるとしよう。以上。



補足)キットに関して

届いたキットは電源のオンオフスイッチが付いておりケーブルの抜き差しの必要がないので超便利。SDメモリにはインストールイメージが保存されていたので、すぐインストールが開始できる。悪い点はケースのはめ込みがイマイチ。

[ツール]メール配信サービス、Web APIドキュメントツール、テーブル定義書作成ツール

ちょこちょこ使っている、便利なツールをご紹介。

メール配信サービス


システムの要件で多いのがメールの送信です。
利用シーンとしてはユーザー登録、一斉お知らせ配信などなど。

構築はWEBサーバにSMTPサーバをセットアップしてハイ終了。
でも、そうもいかない場合もあります。

配信サーバの冗長化が必須!
ユーザー数が非常に多い!
ちゃんと配信されているか確認したい!
になるとハードルが一気に上がります。

そういったメンドクサイ事を丸投げできるのが、メール配信サービス。
お勧めはSendGridです。メールの配信状況が管理サイト上で確認できますよ。

AWS好きな人はAmazon Simple Email Serviceもいいでしょう。
どちらも無料枠あります。

Web APIドキュメントツール


皆さんの会社ではAPI仕様書はどのように作っていますか?
Excel?Word?経験上各社バラバラ。作成者によりバラバラ。
一言でいうと見づらいのです。

実装に必要な情報が見つからなかったり、
そもそも抜け落ちたり、
結局、API作成者に問い合わせるとか不毛です。

ドキュメントレベルの標準化ができるのがWebAPIドキュメントツールです。
個人的にによく使っているのがAPI Blueprintです。

Markdown書式で記述し、仕様書をHTML出力するイメージです。
専用ツールを使えば、編集保存した内容がブラウザで自動反映されます。
また、Gitで管理すれば履歴管理もできますね。

テーブル定義書作成ツール


テーブル定義書はちゃんと作ると骨が折れます。
テーブル数が100超えると心も折れます。
さらに実装行程に入ると、
考慮漏れや仕様変更や機能追加などで修正追加が増えていきます。

ドキュメントに即反映しないといけないのですが、
人手が足りないので後回しになります。
世代が増えていくと差分の管理はほぼ無理ゲーでしょう。
というかやりたくない。

それなら、DBに接続して、
最新のテーブル情報やカラム情報を取得して定義書を作くればよくね?
ってことでA5:SQL Mk-2を使いましょう。(Macの人ごめん。Windows専用)

同じようなツールが他にもあるのですが、仕様書としてのレベルが高いのが好きです。
作者が日本人の方なので、よくわかっていらっしゃるんでしょうね。