Juju-62q's blog

参加記録やメモ書き、思考のまとめをしています

マイクロサービスを形式的に見てみる

f:id:Juju_62q:20200108235120p:plain

マイクロサービスについて考えていたら疲弊したので、少し技術者らしく形式的に見てダメのものを思考から削ぎ落としたいと思った。 グラフ理論などコンピュータサイエンスの基礎を交えて話をするが、基本的には当たり前のことしか言わないと思うのでここに書くことを意識せずとも暗黙的に実践している人も多いだろう。

なお、個人の意見でしかないのであっているか間違っているかはわからないし、筆者にこの記述に反した実装を否定する意図はない。 今回は適当に書き散らかすのでかなりテイストが違うが他のブログと同一人物が書いている。乗っ取り等ではないです。

TL;DR

  • マイクロサービスはDAGとすると考えやすいしデプロイしやすい
  • 閉路があるなら設計を見直した方がいい
  • DAGかどうかはサブシステムレベルでそれぞれ考えると簡単
  • デプロイに関係するリポジトリでは閉路がないことを意識させる設計にするといい
続きを読む

2019年の山行を振り返る

f:id:Juju_62q:20191227005727j:plain

こんにちはクリスマスがすぎると突然年の瀬という雰囲気が訪れますね。 12月はアドベントカレンダー等もありクリスマスまではわーっとすぎていくような印象ですが、クリスマスを過ぎると何となくひと段落つくような気がします。 年の締め括りという空気に当てられて、自分の2019年登山方向から振り返ってみたいなと思います。 ルートや写真は全てYAMAPに上がっていますのでそっちもみてみてください。

続きを読む

結局、ほうれん草が最高である

f:id:Juju_62q:20191223233553j:plain

この記事はwhywaita Advent Calendar 2019の23日目の記事です。

※筆者は医学的な方面での有識者ではありません。あくまで参考までに留めてください。また、医学的な専門家からツッコミが入った場合そのツッコミはおそらく正しいでしょう。

こんにちは、ほうれんそうエバンジェリスト@Juju_62qです。

皆さんはほうれん草を食べていますか?僕はよく食べています。この前きらして凹みました。 ほうれん草がwhywaitaさんと何の関係があるんですか?と疑問に思う方もいるかもしれません。解説することにします。

whywaitaさんは北陸の出身ですが、寒さに強いほうれん草は北陸でも十分に生産可能です1。 また、ほうれん草の生産地トップ3は千葉県、埼玉県、群馬県であり2、これはwhywaitaさんが生活の拠点としている関東地方に属する県です。 さらに、ほうれん草は栄養価、甘み共に増すため冬が旬と言われますが、whywaitaさんは今現在冬と呼ばれる季節を生きています。 このようにwhywaitaさんと縁とゆかりしかないほうれん草なわけですが、今日はその魅力と食べ方、愛で方について語っていこうと思います。

TL;DR

  • ほうれん草は煮ても茹でても焼いても生でもうまい
  • ほうれん草の栄養価は非常に高く、かつ低カロリー
  • ほうれん草は様々なものと合う
  • ほうれん草は冷凍が可能な食材であるため長く持つ
  • 尿路結石にならないように気をつけましょう
続きを読む

Kotlin1.4と末尾再帰と継承

f:id:Juju_62q:20191219010400p:plain

この記事はKotlin Advent Calendar 2019 15日目の記事です。 また、OpenSaaS Studio Advent Calendar 2019 18日目の記事としてクロスポストをしています。

GraalVMの話を書くと言いましたが、あれは嘘です。

TL;DR

  • 11/20ごろから Tailrec on open members is deprecated と言う警告が出るようになった
  • 末尾再帰の関数には final 修飾子か拡張にするなどして継承できないようにする必要がある
  • 末尾再帰関数を継承してoverrideした場合にバグが混入する場合がある
  • Kotlin 1.4以降では末尾再帰関数は継承できない状態にしないとコンパイルできない
続きを読む

決済基盤でのテスト&リリース戦略(実践編)

f:id:Juju_62q:20191206175324p:plain

この記事はOpenSaaS Studio Advent Calendar 2019の13日目の記事です。

こんにちは。サイバーエージェント OpenSaaS Studioの@Juju_62qです。

先週に引き続き決済基盤でのテスト&リリース戦略について書いていこうと思います。 先週に書いた記事の続きになってしまいますので読んでない方は読んでから本記事をお読みください。

juju-62q.hatenablog.com

TL;DR

  • ロジックの確かさを確かめるためにロジックを独立させて、ユニットテストを行う
  • データの疎通やレスポンスに誤りがないかを確認するためにデプロイ前にE2Eテストを行う
  • 保存データが正しいかどうか確かめられるといい
続きを読む

kiamをEKS/Fargateでいい感じに動かす

f:id:Juju_62q:20190714224653p:plain

この記事はAmazon EKS Advent Calendar 2019 8日目の記事です。 また、OpenSaaS Studio Advent Calendar 2019 9日目の記事としてクロスポストをしています。

TL;DR

  • kiam-serverはFargateを使うといい感じに動く
  • 古いaws-sdkに依存したツールを使うとIAM Role for ServiceAccountは使えない
  • kiam-agentを動かすとiptables書き換えにより、ノード側でできなくなることがあるから気をつけて
続きを読む

決済基盤でのテスト&リリース戦略(要件編)

f:id:Juju_62q:20191206175324p:plain

この記事はOpenSaaS Studio Advent Calendar 2019の6日目の記事です。

昨日の記事は

blog.stormcat.io

でした。

念のために伝えておきますとstormcat24 Advent Calendarではありません。

こんにちは。サイバーエージェント OpenSaaS Studioの@Juju_62qです。 普段自分は、Simply Payという決済基盤の開発を行っています。XX Payと聞くと、QR決済を想起する方も多いかと思いますがSimply Payはアプリケーションが決済を良い感じにするためのSaaSです。 最近継続課金の機能のリリースを行い、元々あった都度課金、銀行振り込み、ポイント管理機能も合わせて社内で必要な決済機能を取り揃えるまであと一歩という状態です(決済手段のとりこぼし等がいくらか)。 自分は今週と来週で2度にわけて決済基盤でのテスト&リリース戦略について書いていきます。 本来であれば実践部分だけでいいのですが、戦略と課金という領域の知識が深く混ざり合っているため要件と実践の2度に分割しています。

TL;DR

  • 決済システムで一番大事なのはお金が正しく処理されること
  • マイクロサービスで正確にトランザクションを管理するのは難しい
  • 放置するとデプロイが怖い状態に陥ってしまいリリースサイクルがどんどん落ちてしまう
続きを読む