タグ

ブックマーク / future-architect.github.io (21)

  • パスワードレス技術の現状と未来について | フューチャー技術ブログ

    はじめにこんにちは。TIG の吉岡です。秋のブログ週間 10 目の投稿です。 2022年の 5 月に Apple, Google, Microsoft そして FIDO Alliance が マルチデバイス対応FIDO認証資格情報 を発表してから、パスワードレス技術に対する注目が高まっています。1 パスワードレスの概要について調査してまとめてみました。 目次 私たちとパスワード パスワードの抱える問題 パスワードマネージャ 公開鍵暗号の活用 パスワードレスと FIDO Alliance FIDO v1.0 FIDO2 FIDO の認証フロー Passkeys パスワードレスな未来 私たちとパスワード今日、私たちのデジタルアイデンティティはパスワードに支えられています。私たちは日々 Google で検索し、Netflix を観て、Twitter でつぶやき、Amazon で買い物をしますが

    パスワードレス技術の現状と未来について | フューチャー技術ブログ
    somemo
    somemo 2022/12/06
  • 業務システム開発でsqlcを導入して良かった点とハマった点 | フューチャー技術ブログ

    はじめにTechnogoly Innovation Group 辻です。Go には Gorm や SQLBoiler をはじめとして様々な O/Rマッパ があります。2021 年には当社のブログで OR マッパーの連載を行ったこともありました。絶対的な O/Rマッパ があるわけではなく、業務システムの特性やチーム構成などに合わせて O/Rマッパ を選択することになるでしょう。 今回、私たちのチームでは、バッチ処理が中心的な業務システム開発において Go の O/Rマッパ に sqlc を採用しました。素の SQL を書いていくチームの開発方針1とマッチし、開発体験は非常に良かったです。一方、枯れきってはいない O/Rマッパ ではあります。いくつか想定外の挙動が発生し GitHub の Issue を見ながら問題を切り分けることもありました。 これから sqlc を導入してみようかな、と考え

    業務システム開発でsqlcを導入して良かった点とハマった点 | フューチャー技術ブログ
    somemo
    somemo 2022/12/06
    “sqlc の作者は protoc のような多言語のコードを生成することを目的の 1 つとしている、と言っています。TypeScript や Rust などの言語も将来的にサポートされるかもしれません(#296)。 https://github.com/kyleconroy/sqlc/issues/296
  • OpenAPI GeneratorでPython Web API構築 | フューチャー技術ブログ

    この記事はPython Advent Calendar 2022 カレンダー2の3日目です。昨日はtttakehさんのじゃんけん画像を分類してみたでした。 はじめにこんにちは。TIG DXユニットの村上です! さて、私の所属しているプロジェクトではバックエンドシステムに主にGo言語を用いており、Go言語によるWeb APIを構築しています。 例えばLambdaGoを使ったサーバーレスWebAPI開発実践入門など、Future Tech Blogには多くのノウハウが投稿されていますので是非ご覧になっていただければと思います。 今回はGo言語ではなくPythonでWeb APIを構築しました。その際にOpenAPI Generatorが便利だったのでご共有します。 OpenAPI GeneratorOpenAPI GeneratorはAPIリクエストやレスポンスの内容を定義し、それを元にプロ

    OpenAPI GeneratorでPython Web API構築 | フューチャー技術ブログ
    somemo
    somemo 2022/12/06
  • SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ

    TIGの辻です。GoのORマッパー連載8日目です。記事では sqlc を紹介します。早速ですが、結論から行きましょう。 sqlc まとめ SQLファイルからデータベースにアクセスできる型安全なGoのコードを生成するライブラリ 構造体のモデルの手書き実装不要 複数テーブルをJOINしたときのマッパー実装不要 生成されるコードは不要なリフレクションなし SQLをがんがん書きたい、でも面倒なマッパー構造体は書きたくない、という開発者にとっては大きな味方になります。 sqlc の紹介 sqlc はSQLファイルからGoのアプリケーションコードを生成するライブラリです。2020/2に v1.0.0 をリリースし、着々とスターを伸ばしています。2021/08現在は v1.8.0 をリリースしています。資料で生成しているコードも v1.8.0 を用いています。 https://star-histor

    SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ
    somemo
    somemo 2022/12/06
  • Lambda×Go並列処理で100万回APIを呼び出す | フューチャー技術ブログ

    はじめにこんにちは。TIG DXチームの後藤です。2021年7月に新卒でフューチャーに入社しました。 業務でAPIを通して数万~100万のデータのバッチ処理を行うLambdaの開発を行ったので、学びを共有したいと思います。 システム構成参画しているプロジェクトCSVデータをデータベースに登録する必要がありLambdaの開発を行いました。ちなみに所属しているチームではGo言語を採用しているので、Go言語で開発を行いました。データを登録するためのAPI(API Gateway + proxy統合Lambda)を活用してバッチ処理を行います。データの件数は数百件から数十万件と幅が広く、「数十万件ものリクエストをLambdaの実行時間制限である15分以内に処理しきれるのか?」というところから開発を始めました。 ちなみに、1Web API呼び出しに大体30ms~80msほどかかります。 AWS L

    Lambda×Go並列処理で100万回APIを呼び出す | フューチャー技術ブログ
    somemo
    somemo 2022/08/23
  • AWS Glueの単体テスト環境の構築手順 | フューチャー技術ブログ

    概要フューチャーアドベントカレンダーの6日目のエントリーです。 昨日はyut0nさんによる「GoogleカレンダーのイベントをHangouts Chatに通知するbotを作った話」でした。 当記事では、AWS Glue をローカル環境で単体テストするための環境構築方法についてまとめました。 手順 環境構築 pytest の環境構築 conftest.py の設定 テスト対象の作成 テスト実行 実行環境 Amazon Linux 2 AMI 2.0.20190618 x86_64 HVM gp2 Docker 18.06.1-ce docker-compose version 1.24.0 1. 環境構築docker compose を利用します。 GlueのDockerfileは、 こちらの記事(AWS Glueの開発エンドポイントがそこそこお高いのでローカル開発環境を用意しました | F

    AWS Glueの単体テスト環境の構築手順 | フューチャー技術ブログ
  • AWS Glueの開発エンドポイントがそこそこお高いのでローカル開発環境を用意しました | フューチャー技術ブログ

    はじめにこんにちは。TIG DXチームの村瀬です。 AWS Glue利用していますか? ETL処理をする上で大変便利ですよね。しかしながら開発に必要不可欠な開発エンドポイントが少々お高く、もう少し安価に利用できればなーと思っていたところ、さすがAWSさん素敵なリリースをしてくれました。 https://aws.amazon.com/jp/about-aws/whats-new/2019/08/aws-glue-releases-binaries-of-glue-etl-libraries-for-glue-jobs/ AWS Glueとは過去のこちらの記事もご参考ください。 5TB/日 のデータをAWS Glueでさばくためにやったこと(概要編 5TB/日 のデータをAWS Glueでさばくためにやったこと(性能編) ローカルPCの環境を汚さない為に作業を開始する前に確認したところ、Glu

    AWS Glueの開発エンドポイントがそこそこお高いのでローカル開発環境を用意しました | フューチャー技術ブログ
    somemo
    somemo 2022/06/20
  • k3sを知る、動かす、感じる | フューチャー技術ブログ

    はじめにこんにちは。TIG/DXチームの伊藤太斉です。記事はCNCF連載の第1弾になります。 アプリケーションをコンテナ化することが主流になった昨今、エッジコンピューティングでもコンテナを利用する機会が出てきました。そのため、サーバー上でKubernetesを利用して、コンテナをオーケストレーションをするのと同じようにエッジデバイスでもコンテナを管理する機能が求められるようになってきました。 ここで、記事では2020年の8月にCNCF入りを果たしたk3sについて触れていきます。 k3sとはk3sは元々Rancher Labs(社:アメリカ フロリダ州クパチーノ)で開発されていたOSSで2019年の2月に発表されました。発表当初はKubernetesの公式ディストリビューションであること、バイナリが40MB以下であることから話題にもなりました。エンタープライズでKubernetesを利

    k3sを知る、動かす、感じる | フューチャー技術ブログ
    somemo
    somemo 2022/03/10
  • AWS Glueで複雑な処理を開発するときのTips | フューチャー技術ブログ

    はじめにこんにちは。TIGの藤田です。 Python連載 の8日目として、PySparkを使用したGlueジョブ開発のお話をします。 ETLツールとして使用されるAWS Glueですが、業務バッチで行うような複雑な処理も実行できます。また、処理はGlueジョブとして、Apache Spark分散・並列処理のジョブフローに簡単に乗せることができます! 特に複雑な処理は、やや割高な開発エンドポイントは使用せず、ローカル端末で、しっかり開発・テストを行いたいですよね。そのためのローカル開発Tipsをご紹介します。 内容 Glueジョブの開発と実行概要 Tip1: ローカル環境構築 Tip2: PySpark, SparkSQL開発 Tip3: 単体テスト(pytest) Tip4: データカタログどうする問題 Glueジョブの開発と実行概要ローカル開発の前に、AWS Glueでのジョブ実行方法を

    AWS Glueで複雑な処理を開発するときのTips | フューチャー技術ブログ
    somemo
    somemo 2021/12/04
  • AWS Glueの開発環境の構築(2021) | フューチャー技術ブログ

    概要AWS Glueの環境構築は過去の記事にあるのですが、公式のDockerイメージが案内されているので改めて、構築してみます。 過去の類似する内容の記事 AWS Glueの単体テスト環境の構築手順 AWS Glueの開発エンドポイントがそこそこお高いのでローカル開発環境を用意しました なお、Glueの公式イメージでもJupyter Notebookは利用できるのですが、使い勝手を考慮し、Jupyterlabに差し替えています。 手順 Dockerfile作成 docker-compose.yml作成 動作確認 DockerfilePySparkのオプションを設定しつつ、gluepysparkを実行していますが、gluepysparkがPySparkのwrapperになっているため、こちらの設定で問題なく動作しています。 Dockerfile# ベースとなる公式イメージ FROM amaz

    AWS Glueの開発環境の構築(2021) | フューチャー技術ブログ
    somemo
    somemo 2021/08/06
  • 続・サーバーレス検索エンジン:巨大な静的ファイルを扱うケースについて考える | フューチャー技術ブログ

    大きくは外部ストレージサービス利用と、アプリケーションにバンドルしてしまう方式と2つにわかれます。バンドルはデータだけ更新ができないデメリットはありますが、お手軽です。Lambdaはレイヤーを使えば実行プログラムに対して後から追加とかできますが、容量制限が厳しめです。 オブジェクトストレージは比較的お手軽ですが、読み込みしたいライブラリがローカルのファイルシステム前提の場合は使えません。サーバーレスの方式によっては、一度ローカルのファイルシステムに書き出してから利用とかも可能ではありますが、Cloud Runでは8GB(ただし、おそらくtmpfsで書けば書くほどメモリを消費)、Lambdaでは500MBと容量に制限があります。 より巨大な学習済みデータを扱う場合はマネージドNFSサービス系のものを使うのが最終形でしょう。ファイルのサイズ制限もほぼ限界値ですし、ローカルファイルになるのでどん

    続・サーバーレス検索エンジン:巨大な静的ファイルを扱うケースについて考える | フューチャー技術ブログ
    somemo
    somemo 2021/06/29
  • DBスキーマを駆動にした開発のためのライブラリ調査 | フューチャー技術ブログ

    はじめにGoでデータベースを扱う場合、Gorm, Gorp, sqlx といった O/Rマッパ がよく使われます。多くの場合は構造体のフィールドとデータベースのカラム名のマッピングをするタグ付きの構造体を実装します。例えば Gorm を用いて users テーブルにアクセスする場合、以下のような構造体が一例として考えられます。 model_user.gotype User struct { UserID string `gorm:"column:user_id;primary_key"` UserName string `gorm:"column:user_name"` } func (u *User) TableName() string { return "users" } Gorm や Xorm といった O/Rマッパ を用いる場合、スキーマから構造体を生成できず、構造体の生成が面倒

    DBスキーマを駆動にした開発のためのライブラリ調査 | フューチャー技術ブログ
    somemo
    somemo 2020/08/03
  • TypeScriptでReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 | フューチャー技術ブログ

    TypeScriptReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 前日の丸野さんがReduxを分かりやすく解説してみたというReduxの基的な紹介を行いました。Reduxはコンパクトなライブラリながらよく考えられた仕組みです。Jetpack ComposeやらFlutterやら、ReactインスパイアなGUIフレームワークも増えているので、JavaScriptTypeScriptではなく) + Reduxをやってみるのは、ウェブに限らず、今後のユーザーインタフェース関連のコードを触るための理解力向上には良いと思います。 エントリーは、プロダクションコードでたくさんRedux周りにもreducerなどを実装しなくてはいけなくなったときの次のステップとして、Redux Toolkitの紹介をします。 たいてい、Reduxは導入コストが大きく、

    TypeScriptでReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 | フューチャー技術ブログ
    somemo
    somemo 2020/08/03
  • 5TB/日 のデータをAWS Glueでさばくためにやったこと(性能編) | フューチャー技術ブログ

    フューチャー Advent Calendar 2018 Qiita 5日目の記事です。 みなさん、こんにちは。 記事は、AWS Glueについてのサービス概要や開発Tipsを紹介する5TB/日 のデータをAWS Glueでさばくためにやったこと(概要編)の続編で、Glueの性能検証した内容を共有していきます。 検証についてGlueの性能がテーマですが、Glueそのものには設定できるパラメータが少ないためチューニングの余地が比較的小さいです。 その中で、Glueの機能に着目すると以下の1~4が挙げられると思います。 DPU数 ジョブに使用されるDPU(Data Processing Unit)の数、Sparkで言うところのworker nodeの数に該当 1DPUは4vCPU、16GBのメモリを持ち、これ以外を選択することは不可 ジョブ実行に使用できるDPU数は最低2つ、最大で100まで設

    5TB/日 のデータをAWS Glueでさばくためにやったこと(性能編) | フューチャー技術ブログ
    somemo
    somemo 2020/08/03
  • MLflowで実験管理入門 | フューチャー技術ブログ

    はじめにこんにちは、Strategic AI Group(SAIG)の山野です。 今回は、機械学習の実験管理をテーマにMLflowについて紹介します。 1. 実験管理の必要性モデル開発では、様々な条件で大量の実験を時には複数人で回していくことがありますが、徐々に管理し切れなくなり、後から(必要に迫られて)もう一度その実験を再現しようと思ってもできなくて困る、ということがあります。 つまり、実験が終わって数ヶ月後に「あの実験てどのような条件で実施してどのような結果出たんだっけ? +再現できる?」と聞かれても困らない状態を作れれば良いです。PoCが終わってプロダクション化のフェーズで、PoCの実験について確認されるケースが意外とあったりします。 管理すべき情報は、前処理・学習・評価それぞれで以下があります。 前処理 元データ <-> 前処理コード <-> 加工済データ 学習 加工済みデータ(学

    MLflowで実験管理入門 | フューチャー技術ブログ
    somemo
    somemo 2020/07/04
  • CUEを試して見る | フューチャー技術ブログ

    前回のエントリー、一周回って、人間が読み書きする設定ファイルはJSONが良いと思ったの続きです。 設定ファイルをどうするか問題はいろいろ悩ましい問題であります。そんな中、設定ファイル用言語という触れ込みのCUEがリリースされました。 すでに、NSSOLの方が、Linterとして使うという紹介記事をすでに書かれています。これはユースケースの一部(これでも有用ですが)です。まだ使い込んだわけではなく、チュートリアルとドキュメントを一通り読みつつ軽く試した程度ですが、全体的な紹介をしようと思います。 yamlやJsonのチェック(Lint)ができるCUEの紹介 CUEによってできるようになること主な特徴としては次のような感じです。 人が書く設定ファイル(JSON/YAML/TOML/iniあたりがライバル)のための言語 スキーマ定義が書けて、バリデーションが可能 テンプレート機能で一部が違うデー

    CUEを試して見る | フューチャー技術ブログ
    somemo
    somemo 2020/06/01
  • 本当に使ってよかったOpenAPI (Swagger) ツール | フューチャー技術ブログ

    サードパーティ製のツール家からは上述のツールが提供されていますが、サードバーティ製の様々なツールが世の中には存在します。 エコシステムが成熟しているのもSwaggerを利用するメリットの1つですね。 https://openapi.tools/ 冒頭のとおり、このサードパーティ製のツールの中で実際に利用して良かったツールを3つご紹介したいと思います。 Stoplight Studiohttps://stoplight.io/studio/ 1つ目のツールは「Stoplight Studio」というAPI仕様を記載するためのGUIエディタとなります。 今までSwagger Editorを利用してYAMLを書いていたそこのみなさん、YAML筋力はもう必要ありません。 Design APIs 10x faster の謳い文句どおり、Stoplight Studioを使えばGUIで直感的に、高速

    本当に使ってよかったOpenAPI (Swagger) ツール | フューチャー技術ブログ
    somemo
    somemo 2020/05/21
  • AirflowのTips 11選 | フューチャー技術ブログ

    概要Airflow 利用にあたって知っておいたほうが良いんじゃないかなと思う情報をまとめました。いわゆるハマりどころです。 Airflow 自体の基的な説明(用語,DAG 定義方法,etc..) は省略しています。 基礎参照先 公式 Tutorial Dockerfile バージョン Airflow 1.10.4 Postgres 10.7 Tips 11 選 1. 日時 2. リトライ 3. start_date の変更ができない 4. 開始日時を過去日時にすると過去ジョブが自動実行される 5. context の活用 6. Macros 7. Task 間で値を受け渡す方法 8. dags ディレクトリ以下のディレクトリの切り方 9. UI の表示が UTC 固定 10. Web UI 上からジョブのパラメータを渡せない 11. DAG/Task の同時実行数制御 1. 日時Airf

    AirflowのTips 11選 | フューチャー技術ブログ
    somemo
    somemo 2020/05/18
  • 仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編 | フューチャー技術ブログ

    BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 Debianバージョンが少し古いStretchの方がちょびっとサイズが小さかったりはしますが、まあ実用的にはサポートが長い方がいいですよね。slimを使ってGCCとかのコンパイラを自前でダウンロードしている記事とかもたまに見かける気がしますが、マルチステージビルドであれば、そんなにケチケチしなくていいのと、パッケージダウンロードは逐次処理なので遅く、処理系が入ったイメージのダウンロードの方が高速です。並列で処理されるし、一度イメージをダウンロードしてしまえば、なんどもビルドして試すときに効率が良いです。また、多くのケースでネイティブのライブラリも最初から入っており、ビルドでトラブルに遭遇することはかなり減るでしょう。 Py

    仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編 | フューチャー技術ブログ
    somemo
    somemo 2020/05/18
    “BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 ”
  • 【Figma】を使ってチームでUI/UX設計するといいこと | フューチャー技術ブログ

    概要Figmaとは何か、何ができるのか、チームでシステムデザイン設計するときにFigmaを使うと何がいいのかを初心者向けにざっくり紹介していきます。 「〇〇するにはどうすれば?」といった具体的な疑問はyoutubeに動画がたくさん上がっているので見てください。 目次 Figmaとは何か 画面の作り方 チーム設計でFigmaを使うメリット Figmaを利用してみて まとめ Figmaとは何かFigmaはユーザーインターフェース(UI)のデザインをブラウザ上で簡単に作れるデザインツールです。 デザインツールといえばデスクトップアプリのAdobe XDやSketchが有名どころですが、Figmaも負けず劣らずの操作性と利便性を兼ね備えています。また、エディターが2名までなら無料で使うことができるので1人での利用だけでなくチームでの利用にも始めやすいツールです。 記事でFigmaの利便性を紹介し

    【Figma】を使ってチームでUI/UX設計するといいこと | フューチャー技術ブログ
    somemo
    somemo 2020/03/19