RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

Postgresqlのltreeを活用した階層構造の便利な利用法

  • はじめに
  • ltreeとは
    • ltree型
    • ltreeの操作
  • 活用法
    • 1. 承認フローの構築
      • 事前準備
      • テーブル作成
      • データ追加
    • 2. テーブルに細かくアクセス制御をかける
      • 事前準備
      • ltreeの有効化
      • テーブル作成
      • ポリシー作成
      • セキュリティポリシーの有効化
      • ポリシーの設定
      • データを追加
      • ユーザー作成
      • 試す
  • まとめ
続きを読む

GitHub Actionsを活用したワークフローのコツと教訓

こんにちは、あるいはこんばんは。
だいたいサーバサイドのエンジニアの(@taclose)です☆

GitHub Copilotが活躍している昨今、弊社ではGitHubで更に開発効率を良くしていこうという流れで日々自動化が行われております。 今回はそんな時代だからこそ求められているGitHub Actionsについて、初心者向けにワークフロー作成の際に知っておきたいコツと教訓について紹介します。
GitHub Actionsのワークフローを読めるけど、まだ自信がないという方はぜひ参考にしてください!
「それもっと早く知っておきたかった!」「初心者がつまづきがちなポイント!」を解説します!

  • 読者ターゲット
  • ワークフロー作成のコツ
    • 1. run セクションで式 ${{}} は極力使わない
      • 危険その1:コードインジェクションのリスク
      • 危険その2:データのサニタイズ不足
    • 2. workflow_call を使う際の注意点
      • 注意点その1:github コンテキストは引き継がれる
      • 注意点その2:secrets の扱い
    • 3. GITHUB_TOKEN で行った操作は再度トリガーされない
      • 補足: workflow_run トリガーを活用する
  • まとめ
  • 参考記事・お勧めサイト
続きを読む

PostgreSQL環境における、DB定義変更を伴う無停止リリース「概要と計画」編

こんにちは。
株式会社ラクスで先行技術検証をしたり、ビジネス部門向けに技術情報を提供する取り組みを行っている「技術推進課」という部署に所属している鈴木(@moomooya)です。

ラクスの開発部ではこれまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「技術推進プロジェクト」というプロジェクトがあります。

このプロジェクトで「PostgreSQL環境における、DB定義変更を伴う無停止リリース」にまつわる検証を進めているので、その中間報告を共有しようかと思います。

※本記事はタイトルに「概要と計画」編とあるように、通年で行う調査の前半時点の中間報告となります。
実際の検証結果については3月末に予定している後編をお待ち下さい。

  • 課題の経緯、前提条件
    • 課題の経緯
    • 無停止リリース実現のモチベーション
    • 前提条件
  • 実現手法
    • 候補に上がった手法
      • DDL最適化によるロック時間短縮
      • リトライ機構によるロック時間回避
      • pg-oscを利用してのロック時間短縮
      • pglogicalを利用してのロック時間短縮
      • Patroni + etcd
      • pgpool-II
    • 検証対象とならなかった手法
      • pglogicalを利用してのロック時間短縮 を除外した理由
      • Patroni + etcd / pgpool-II を除外した理由
  • 検証の観点
  • 最後に
続きを読む

【初学者向け】CSR / SSR / SSG / ISRとは?架空アプリでレンダリング手法の違いを理解しよう!

初めまして!新卒1年目のmochi_proteinと申します。
CSR / SSR / SSG / ISRがどのような概念か、
架空アプリを例として、それぞれの違いを初学者向けにやさしく解説していきます!

🔖目次は以下の通りです🔖

  • はじめに
    • 架空アプリ「楽楽鮮魚」の仕様
  • 前提知識
  • CSR(クライアントサイドレンダリング)とは?
    • 概要
    • 「楽楽鮮魚」が CSR を採用したら?
      • 初期画面(在庫一覧画面)表示までの流れ
      • 詳細画面への遷移時の流れ
    • CSRのメリット
    • CSRのデメリット
    • どのようなサービスに向いているか
  • SSR(サーバーサイドレンダリング)とは?
    • 概要
    • 「楽楽鮮魚」が SSR を採用したら?
      • 初期画面(在庫一覧画面)表示までの流れ
      • 詳細画面への遷移時の流れ
    • SSRのメリット
    • SSRのデメリット
    • どのようなサービスに向いているか
  • SSG(スタティックサイトジェネレーション)とは?
    • 概要
    • 「楽楽鮮魚」が SSG を採用したら?
      • 初期画面(在庫一覧画面)表示までの流れ
      • 詳細画面への遷移時の流れ
    • SSGのメリット
    • SSGのデメリット
    • どのようなサービスに向いているか
  • ISR(インクリメンタルスタティックリジェネレーション)とは?
    • 概要
    • 「楽楽鮮魚」が ISR を採用したら?
      • 初期画面(在庫一覧画面)表示までの流れ
      • 初期リクエスト後、複数回/ユーザからの在庫一覧画面へのアクセス時(キャッシュ有効期限内)の流れ
      • キャッシュの有効期限後のリクエスト時の流れ
      • 詳細画面への遷移時の流れ
    • ISRのメリット
    • ISRのデメリット
    • どのようなサービスに向いているか
  • おわりに
  • 参考
続きを読む

OSSでオブザーバビリティを実現する (Grafana Stack x OpenTelemetry on Kubernetes)

はじめに

こんにちは。SREの gumamon です!

NewRelic、Datadog、モダンな監視ツール(オブザーバビリティ)って良いですよね。弊社もKubernetes(k8s)等を利用した環境が増えてきた折、そろそろ必要になってきたのですが、NewRelic、Datadog等のクラウドサービスはランニングコストが高くなりがちです。 では内製できないかやってみよう!・・・というようなことを昨年度から取り組んでいたのですが、やっとこさ形になりましたので改めてブログで紹介させて頂こうと思います。

今回ご紹介するのは、大まかなシステムの構成と設計時の観点です。各コンポーネントの詳細や工夫できた点などについては、改めて別の記事でご紹介できればと思います。 また、「オブザーバビリティとは?」や「試行錯誤の過程」については、以前執筆した以下のブログをご参照ください。

tech-blog.rakus.co.jp

続きを読む

リファクタリングに向けた自動インテグレーション実装

背景

経費精算システム「楽楽精算」は2009年にリリースされ、15年以上にわたり運用されてきました。 その間、基本的なシステム設計はリリース当初のまま維持されています。 しかし、年月が経つにつれ、技術トレンドやビジネス的な要求は大きく変化しましたが、現状のシステムではそれらの変化に柔軟に対応することが困難になってきています。 システムの柔軟性は低く、機能追加のたびに既存機能への影響を広範に調査する必要があり、既存の処理フローを変えることができないため、イレギュラーなテクニックが必要となることも多く、追加開発のたびに多くの手間とコストがかかるようになってきました。

すべての問題が現行システムに起因するわけではありませんが、特定のミドルウェアに強く依存した構造を持っているため、将来的な技術革新や新しいミドルウェアへの移行が困難であるという課題も抱えていました。 このような背景から、ミドルウェアに依存しない中立的なアーキテクチャが必要であり、その実現のためにリアーキテクチャに近い大規模なリファクタリングが計画されました。

その際に最も懸念されたのは、リファクタリングによる動作不具合のリスクです。 現状では、すべての動作を保証する自動テストが存在しないため、このリスクを無視することはできませんでした。 加えて、仕様書は完全には整備されておらず、初期リリース時から積み重なった変更仕様が複雑に絡み合い、システム全体の動作を統一的に把握することが困難な状況にありました。 このような状況下で、リファクタリングを成功させるためにはどのような対策が必要かが、プロジェクトの大きな課題となりました。

このプロジェクト「リファクタリングに向けた自動インテグレーションの実装」は、こうした背景を踏まえ、動作を保証するためのインテグレーションプロセスを自動化し、リファクタリングを安心して進められる環境を整備することを目指しました。

  • 背景
  • 使用した技術とツール
  • 直面した課題
  • 解決策と手順
  • 結果
  • 考察と今後の展望
  • 最後に
続きを読む

モバイル開発マネージャー厳選!キャリアアップの必読書10選

はじめに

ラクスが開発する楽楽精算は、東京開発統括部の楽楽精算開発部が担っています。
楽楽精算のiPhone(Swift)& Android(Kotlin)対応のモバイルアプリ開発を担当しているのが、モバイル開発課です。

本記事では、楽楽精算のモバイルアプリ開発案件を担当しているモバイル開発課のマネージャーが厳選した
「モバイル開発を軸に、キャリアをステップアップするために役立つ書籍」をご紹介します。

それぞれの書籍に推薦コメントを記載していますので、是非ご参考になさってください。

  • はじめに
  • モバイル開発でおすすめの書籍
    • Androidを支える技術<Ⅰ・Ⅱ>
    • iOSアプリ設計パターン入門
    • Androidアプリ設計パターン入門
  • プロダクト開発・アジャイル開発でおすすめの書籍
  • その他技術のおすすめ書籍
  • おわりに
続きを読む
Copyright © RAKUS Co., Ltd. All rights reserved.