ADTのチーム活動ブログ:LT大会・ブログ執筆やってみた!
始めに
こんにちはAccompanied Development Team (ADT) のチームリーダのendoです。このチームではメンバー間のコミュニケーションを促進するために雑談の時間を設けたり、チームの技術力向上のためにLT大会を行っています。
今後、このようなチームでの活動をブログとして発信していきたいと思っています。
ADTとは
ADTはインフラからバックエンド開発まで対応可能なフルスタックなエンジニア集団です。様々なプロジェクトで活躍されている一方でチーム内での情報交換やスキルアップにも力を入れていくためこのような活動を開始しました。
LT (自己紹介つき)
kanno
自己紹介
エンジニアの菅野です。公私問わずインフラで遊んでいますが、分野問わず新めのやつどんどんやりたいです。
LTの内容
LTの内容を短くまとめると「Kotlin + GraalVM NativeImageでJVM系言語のシングルバイナリ(Native Image)化して高速起動」です。
背景・課題
JavaやKotlinなどJVMを使う言語は
- JVMの起動が遅くコンテナやFaaSでスケーリングする際にちょっとラグがある
- 単純にJVMがメモリを食う
などして困っていた。
今回試した事/できた事
GraalVM Native Image使うとJavaアプリケーションが高速起動低メモリ化できる!
課題
万能ではなく、以下のような課題もある
- jarと違ってコンパイルが長い
- 利用するライブラリや書き方によってはNative Image化できない
- 生成物は特定のOS/命令セットでしか実行できない
- 利用するライブラリのライセンスによってはソースコードの公開義務が生じる
- 単一バイナリ化の都合上、ライブラリが静的リンクされるため
次に選びたい題材
- 同じ高速起動系でWASM
- (公私問わず)技術面でやらかした話とか
とかやってみたいです。
感想
GraalVMのライセンスが緩くなったので、どんどん使っていきましょう!
A
自己紹介
Aと申します。いろいろ任されておりますが、主にインフラ、バックエンドを担当しております。
LTの内容
最近あるアプリを違う環境上に動かすタスクを担当しております。以前の環境と大きな違いの一つは、以前はKubernetes+Containerdの環境でしたが、今回はOpenShift+Kubernetes+Podmanです。
RedHat Enterpris Linux 8では、コンテナランタイムは基本Podmanになっており、OpenShiftも同様に基本Podmanを使うようになっているようです。それでなぜPodmanなのかを調べてみましたが、Podmanのいいところはroot権限を持たないのとサービスが不要であるところでした。
root権限を持たないことでコンテナが攻撃されてもroot権限が取られることはありません。
サービスが不要のため、全体を管理するサービスの障害で全コンテナの管理ができなくなることはありません。
endo
自己紹介
チームリーダ兼エンジニアのendoです。元々はインフラエンジニアでk8sやクラウドネイティブ化の支援をさせていただいています。
LTの内容
LTのハードルを下げる(実は何も用意できていなかった)ため、私は直近自分のプロジェクトで抱えている
「CI/CDのルールやツールを浸透/徹底させるには 」という課題の相談をしました。
他プロジェクトではテスト通さないとマージできない仕組みにしているといったアドバイスや
やはりアプリチームとCI/CDチームとのコミュニケーションが大事といった話があがりました。
5分という短い時間では結論までは出せませんでしたが、様々なプロジェクトに参画されているチームのメンバーの工夫が聞けたのがよかったですね
乙女町田
自己紹介
- 乙女町田
- kubernatesを中心にCI/CD,IaC,Azure,GCPをお仕事でやっております
LTの内容
https://www.oreilly.co.jp/books/9784814400652/「データエンジニアリングの教科書」の情報共有を行いました。業務でデータ基盤を取り扱うチームに参画しお勉強として読んでおり、その中で1章を共有しました。「データエンジニアリングライフサイクル」の定義や発展の歴史、組織内におけるデータ成熟度を定義しレベルに沿ったデータエンジニアリングの方法といったことが書かれていました。文字量は多いですが初心者でもわかりやすく書かれているので読破して次のLTでも続きを共有できるようしたいと思いました。
h-nozawa
自己紹介
エンジニアの h-nozawa です。主にソフトウェア開発をやっていて、現在はモバイルアプリの開発プロジェクトに携わっています。
LTの内容
LT タイトルは「Kent Beck の TDD 定義 (の翻訳) を読んだ」です。
2023 年末に Kent Beck によりテスト駆動開発の定義が改めて明確化された、ということを知って読んでみようと思いました。そもそもテスト駆動開発の理解が曖昧なのできちんと理解したかった、という動機もあります。
ちょうどチームで LT をやるということだったので、この内容をまとめて共有することにしました。読んだ記事は https://t-wada.hatenablog.jp/entry/canon-tdd-by-kent-beck です。
シチリアマン
自己紹介
シチリアマンといいます。モバイルアプリ開発を担当しています。以前はクラウドインフラの保守を担当していました。
- 得意な分野:
- ソースコードの動作を調べること
- 興味がある分野:
- アセンブリ言語
- 動画処理
- Linuxカーネル
- ELFフォーマット
- namespaces
- テスト
LTの内容
- 概要
- ステークホルダーによってソフトウェアの品質は異なります。
- ソフトウェアの品質には国際規格があります (ISO/IEC 25010)
- 上記規格で定められている8つの品質特性:
- 機能適合性
- 性能効率性
- 互換性
- 使用性
- 信頼性
- セキュリティ
- 保守性
- 移植性
- ソフトウェアの品質特性の「どれをどのくらい満たすか」目標を立て、達成することが重要となります。
- この題材を選んだ理由
- 「ソフトウェアの品質を上げたい」と考えたとき、そもそも「ソフトウェアの品質」とは何なのか、何を改善すればソフトウェアの品質が上がったと言えるのか疑問だったため。ソフトウェアの品質を構成する要素を理解した上で、品質改善のための活動を行いたかったため、この題材を選びました。
- 次はISO/IEC 25010の深掘りや、今回の題材とは関係ありませんがELFフォーマットについて紹介したいです。
t-inagaki
自己紹介
- t-inagaki
- 情報システムチームのサブリーダーをやりつつ、客先のインフラSEとしてジョインしています。
- 興味がある範囲はKubernetesやCI/CD、Webアプリ開発、TDDなどです。
LTの内容
ASGIミドルウェアの作り方
- 実際に参画しているプロジェクトで導入し成功した事例だったので、チームのみんなに共有したかった。
- PythonのWebフレームワークであるDjango、Flask、FastAPIなどでリクエストを受け取った時に、処理をフックできるのでリクエスト毎のパフォーマンス情報を取得するものを作った。
- 実際にプロジェクトで作成したのはWSGIミドルウェアだったが、チーム共有用に新しいASGIミドルウェアに書き換えた。
- 動きを理解しやすくするためにデモを行ったのが良かったと思う。
あとがき
まずは第一回のブログを発信させていただきました。今後も継続してブログを発信していく予定です。
まだ各コンテンツは浅い内容ですが、今後各メンバーの発信力の向上と共に充実させていきます。
今後もご愛読をお願いいたします。