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

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

そのAnsibleコード適用して大丈夫?安全性を高めるAnsible CI環境を紹介します。

インフラ開発部でテックリードを務めております上畑です。

みなさんはAnsibleコードを修正した後に そのAnsibleコードを本番環境へ適用する際、ドキドキしていませんでしょうか?

前回、Ansibleをバージョンアップする記事を執筆し、大量のコード修正が必要になりました。

この記事では、ラクスがどのようにしてAnsibleコードをドキドキせずに本番に適用しているか、その仕組みを紹介します。

目次

  • 目次
  • 1. はじめに
  • 2. DockerによるAnsible自動実行CIシステム
  • 3. その他、CI環境の工夫
    • 3-1. 本番環境Dockerイメージの最新化
    • 3-2. CI実行時のエラー調査
    • 3-3. CI/CDの並列実行を実現するコード化
    • 3-4. 定期Dockerイメージの構築
  • 4. 最後に
続きを読む

眠っていたAnsibleを叩き起こす! Ansibleバージョンアップ作業まとめ

インフラ開発部でテックリードをしております上畑です。

ラクスで利用しているAnsibleコードについて、Ansibleのバージョンアップを行った内容を記事にしました。 この記事が同じような境遇のどなたかの助力になれば幸いです。

  • 1. 背景
  • 2. Ansibleバージョンアップ
    • 2-1. AnsibleとPythonの関係調査
    • 2-2. 各OSの標準Pythonバージョン一覧調査
    • 2-3. Porting Guideによる仕様変更の確認
    • 2-4. バージョンアップ戦略
    • 2-5. Ansibleコード修正内容
      • [修正対応内容]
        • ansible-2.9.27 to ansible-8.7.0
        • ansible-8.7.0 to ansible-9.12.0
  • 3. コード修正にはAnsible-Lintの自動修正(autofix)機能を使う
    • 3-1. 実行方法
      • オプションの使い方
      • ルール一覧
  • 4. Ansible-Lintバージョンアップ
    • 4-1. Ansible-Lintバージョン推移
    • 4-2. Ansible-Lint各バージョンへの対応
      • v4.7.0 to v5.4.0
        • var_naming
        • unnamed-task
      • v5.4.0 to v6.14.0
        • missing document start "---" (document-start)
        • missing starting space in comment (comments)
        • too few spaces before comment (yaml[comments])
        • deprecated-module
        • name[casing] ※autofix利用可能
        • fqcn[action-core]※autofix利用可能
        • fqcn[action]
        • no-changed-when: Commands should not change things if nothing needs doing.
        • yaml[truthy]: Truthy value should be one of
      • v6.14.0 to v6.22.2
        • var-naming[no-role-prefix]
      • risky-shell-pipe
  • 5. まとめ
続きを読む

PHP Conference Japan 2024【参加レポート】 #phpcon

はじめに

配配メール開発チームの id:takaram です。

2024年12月22日に、東京・蒲田でPHP Conference Japan 2024が開催されました。

ラクスはブロンズスポンサーとして協賛させていただいたのに加え、エンジニア3名のトークを公募で採択いただき、登壇してきました。

今回はラクスからの参加者によるレポートを紹介させていただきます!

  • はじめに
  • 参加レポート
    • PHPの今とこれから2024
    • PHP RMは何をする?コア開発者と兼任するメリット/裏話
    • 終了の危機にあった15年続くWebサービスを全力で存続させる〜Twilog・Togetter統合の舞台裏〜
    • 見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
    • 20年続くレガシープロダクトに10年携わったエンジニアが思う、システム長期運用のカギ
    • PHPerのための計算量入門
    • 情報漏洩させないための設計
    • PHPConferenceへの参加を後押しするためにしていること
    • どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
  • ラクスからの登壇セッションのご紹介
    • PHP開発者が挑むDKIM導入:Googleガイドライン対応の実例と学び
    • Rustで作るPHP拡張モジュール:PSR-7ライブラリ編
    • 20年もののレガシープロダクトに0からPHPStanを入れるまで
  • まとめ
続きを読む

【PostgreSQL】クエリのパフォーマンス改善の記録と「UNNEST」構文の使い方

はじめに

こんにちは、@rs_tukkiです。
この記事は、ラクス Advent Calendar 2024の25日目の記事です。

今回は、開発中に見つけた重いクエリを改善するための記録と、改善のために使用した見慣れない構文の紹介をしようと思います。

  • はじめに
  • 開発中の出来事
  • パフォーマンスチューニング
  • UNNESTとは?
  • チューニング結果
  • まとめ
続きを読む

新卒エンジニアが取り組んだリファクタリングの記録

目次

  • リファクタリングに着手するまでの経緯
  • 苦労した点や学び
    • 仕様を理解する
    • 既存コードを読み解く
      • ①目的や仮定を持たずに一気に全体を追ってしまう
      • ②コメントに惑わされてしまう
      • ③効果的な作業メモを取らない
    • 適切な命名
      • ①コードリーディング時
      • ②実装時
  • まとめ
続きを読む

PHPアプリケーションをシンボリックリンク切替でデプロイするときのポイント

この記事は ラクス Advent Calendar 2024 の14日目の記事(予定)です。

  • はじめに
  • シンボリックリンク切替によるデプロイについて
  • 今回の改善における無停止デプロイのスコープ
  • 検証したこと
    • 検証におけるゴール
    • 検証観点
      • ①realpathキャッシュの動作検証
      • ②アプリケーションコードの動作検証
      • ③本番想定のアクセス下の動作検証
  • アプリケーションの改修内容
  • おわりに
続きを読む

ISUCON14で7位でした!結果を振り返ります!

こんにちは、あるいはこんばんは。楽楽販売の開発をやっている@tacloseです☆

ISUCONに参加するのはこれで2回目ですが、

今回は7位でした!

ISUCON14 TOP30

微妙!とか言わないで!頑張った方ですよ!運が良かった方ですよ!(と言いたい!)

今日はそんなISUCON14がどんな感じだったのかを振り返っていこうと思います!

  • 記事の概要・想定読者
  • ISUCONの準備
    • 前回の反省からはじまる
      • 前回の反省点
    • 練習はISUNARABE!
  • ISUCON当日
    • ISUCONの初動:初回ベンチマークまでにやる事!
    • 初回後の次の一手:DBのINDEX見直し
    • 各自が怪しいポイントを重点的に攻める
    • 4時以降:サーバ構成を真剣に考える
    • 最後のチューニング
    • 終結
  • 今回のISUCONの振り返り
    • 良かった点
    • 反省点
  • 最後に
続きを読む
Copyright © RAKUS Co., Ltd. All rights reserved.