マイクロサービス指向のファイル管理サービス

マイクロサービス指向のファイル管理サービス

What I Create

  1. SOA なストレージサービスサーバ

概要

  • 作成期間: 約 60 時間(調査含む)
  • 技術: Docker, gRPC, GCP(storage, Drive),grpc-gateway, heroku, circle-ci, etc.
  • 目標: 各プラットフォームのファイルの管理を行うサービス。ファイルのアップロードやダウンロードが、どのプラットフォーム上にあっても簡単に利用可能。
  • 実態と反省: gRPC、grpc-gateway を採用したことが裏目に出ることが多かった。理由は 2 点ほどある。1 つめの理由としては、仕様が固まっていない段階(他サービスとの連携を後々になって考えて、拡張しながら進めた)での設計、実装のため、頻繁にインターフェースの変更が必要になり、サーバ、クライアント共に修正が必要になった。そのため、工数が無駄に高くなり、モチベーションも削がれた。 2 点目は、調査不足が理由で設計の変更が多発した。これはやりたい技術ベースかつお金使いたくないで進めていったのでまぁ仕方がないが、Heroku プラットフォームで HTTP2.0 が対応していないとか、grpc-gateway のハンドラの仕様を理解していなかったことから、焦って代替案(base64 の url 対応)を組み込んだためにクライアントで余計な base64 実装を要求してしまった。そもそも gRPC-gateway を使わずとも、自前で REST 用の口を用意した方が、綺麗だったし、認証、認可の仕組みも組み込みやすかったような気がする。

link: github

  1. 自分用の便利 CLI ツール

概要

  • 作成期間: 5~10 時間
  • 技術: base64, cobra
  • 目標: よくやる作業を簡素化する。
  • 実態と反省: 特に振り返るほどのことはしていないが、go 的な設計、実装の仕方を cobra のコードから察した。ツリー構造で各コマンドがそれぞれノードを担っているような実装だった。cobra add [service]でコードの自動生成の仕組みが簡単で、わかりやすく素晴らしいと思った。

link: github