タグ

ブックマーク / engineer.blog.lancers.jp (28)

  • コミットログを楽に整形できるlazygitの紹介 | ランサーズ(Lancers)エンジニアブログ

    QAチームのいさな(@isanasan_)です。今回は筆者のお気に入りのツールをご紹介します。 モチベーション 先週コードレビューについての記事を書きました。 ジョインから1ヶ月経ちコードレビューで気を付けていることをまとめた こちらの記事の中でrebaseを使ってコミットログを整形することがレビューコストの低下に繋がると書きました。 しかし筆者はgitをcli上で使いこなすのはそれなりに難しいものだと感じており、特にinteractive rebaseは初学者にとって非常にとっつきにくい機能だと思っています。 そこで、今回は筆者が愛用しているgitのクライアントツールであるlazygitを紹介します。稿ではハンズオン形式でgit歴史改変の操作を説明していきます。尚、ハンズオンの題材に使ったコードは動作確認などはしていません。題とは関係ないので細かいツッコミは無しでお願いします。 #

    コミットログを楽に整形できるlazygitの紹介 | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2021/11/16
  • 開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ

    SREチームの安達(@adachin0817)です。今回はMENTA、Lancers Creative、Lancers Agencyでマスキングした番環境のデータをStgや開発環境のMySQLコンテナへ毎週リストアする仕組みを実装しました。実際にここらへんは運用をしていく中で一苦労されている方も多いのではないでしょうか。それではまず背景と、実装するに当たっての活動含めてご紹介できればと思います。 背景 今回はMENTAを例にしています。各サービスの開発環境はDockerを利用しており、番とStg環境はTerraformで管理しています。カラム追加ではマイグレーションを実行することでサンプルのスキーマファイルを投入して開発をしているのですが、たまに開発環境で動いていたソースがStg番で動かないといったことで開発効率が下がることが見受けられます。開発メンバーにとってはより番環境に近い

    開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2021/09/07
    CodeBuildの既視感w
  • Terraform v0.12.29 → v0.15.0にバージョンアップしました | ランサーズ(Lancers)エンジニアブログ

    SREチームの安達 (@adachin0817)です。ランサーズやグループ会社ではTerraform v0.12.29を利用して、AWSのインフラコード化をしています。ようやくグループ会社すべてAWSに移行が完了となり、次なるチャレンジとしてはTerraformのバージョンアップを対応することとなりました。また、以下4/15にv0.15.0もリリースされたということもあり、非常に良い機会となりました。 まずは各プロジェクトについて簡単に説明をしていきたいと思います! Terraform 0.15 is out, which can also be considered a pre-release for 1.0 if all goes well. ✨ It’s finally happening! Great quality of life improvements around Wind

    Terraform v0.12.29 → v0.15.0にバージョンアップしました | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2021/04/20
    アップデート対応しないと。
  • グループ会社のインフラをECS/Fargateに移行して振り返る | ランサーズ(Lancers)エンジニアブログ

    皆さん元気ですか!?SREチームの@adachin0817です。去年から行っていた移行プロジェクトで、グループ会社である、シクロマーケティング株式会社の「ミギウデ」をさくらVPSからAWSへ移行しました。今回、移行背景やECS/Fargateでのコンテナ運用について簡単にご紹介と振り返りを行ってみたいと思います。 なぜAWSへ移行するのか AWSへ移行すると冗長性の担保などが挙げられますが、一番は開発環境やインフラなど、すべてランサーズに統一させるということが第一の目的です。それに伴い、ミギウデ自体のサービスがシンプルなインフラ構成ということもあり、インフラ運用の手間をなくしたいということから、ECS/Fargateで初の外部サービスとしてコンテナ運用にチャレンジしてみようとなりました。 目的とコンテナ化にするメリット ・内部統制対応 ・S3、RDSを利用したバックアップ ・CloudWa

    グループ会社のインフラをECS/Fargateに移行して振り返る | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2020/05/11
    あだちんが頑張ってくれました。
  • [MySQL]オプティマイザトレースでわかるインデックス選択の理由 - ランサーズ(Lancers)エンジニアブログ

    こんにちは!QA (Quality Assurance) チームの まみー です。入社してもうすぐ3ヶ月。早いものです。 ところでみなさん急ですが… スロークエリ見てますか? インデックス貼ってますか? そのインデックス、当に使われてる? お話しすること 複合インデックスを作成したのに、別の複合インデックスが使われてしまう。 Why…なぜに… その理由を知ることができる オプティマイザトレースの使い方 をお話しいたします。 すぐに使い方を読みたいというかたは コチラ からご覧ください。 こんなことありませんか? 実際に以下の現象が発生していました。 1テーブルだけの JOINが遅い 解決のために インデックス貼った インデックス貼ったのに 解決しなかった 実行計画(EXPLAIN)を見たら 違うインデックスが使われていた スライド紹介 2月に開催した Lancers x ROBOT PA

    [MySQL]オプティマイザトレースでわかるインデックス選択の理由 - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2020/03/24
    マミーさんのMySQLのお話し!
  • ランサーズ開発合宿2019 GASとSmartHR APIで業務効率化 | ランサーズ(Lancers)エンジニアブログ

    みなさんこんにちは。 ランサーズでインターンをしている神谷(GunjiKamiya)です。 自身初投稿となる今回の記事では、自分が参加したLancers開発合宿2019でのことについて書いていこうと思います。 Lancersの開発部では、1年に一度大都会東京を離れ、自然豊かな場所で開発をする機会を設けています。 過去に4回ほど開催されており、どの開発合宿も日頃の疲れを取るとともに、メンバーをリフレッシュさせてくれる素晴らしい合宿になっているようです! 過去の開発合宿の記事はこちら 2015年 ランサーズ初のハッカソン開発合宿 2016年 横須賀ハッカソン合宿 2017年 ランサーズ開発合宿2017@湯河原温泉おんやど恵 2018年 ランサーズ開発合宿2018@熱海 新規事業開発チーム ハイパフォーマンスな開発合宿をする3つの秘訣 ランサーズ開発合宿2018 バージョンアップチーム ランサー

    ランサーズ開発合宿2019 GASとSmartHR APIで業務効率化 | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2019/10/10
    インターンの子にGASで頑張ってもらいました。いい感じに効率化できてる🎉SmartHRのAPIについて最初教えてあげたんだけど、APIが良く出来ていて便利だった。
  • API GatewayとLambdaとGolangで作るサムネイル生成システム | ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 ランサーズのサムネイル生成をAPI Gateway + Lambdaのシステムにリニューアルしました。 今回、その内容について書きたいと思います。 以前のサムネイル生成処理 今までのサムネイル生成処理は、Appサーバー内でImageMagickを起動して行っていました。 img.lancers.jpのURLにアクセスしたタイミングで以下の処理を実行していました。 S3から元画像をダウンロード ImageMagickのconvertコマンドでサムネイルを生成して表示 その結果をCloudFrontにキャッシュ ※これらの処理については以前のブログに詳しく書いています。 以前のサムネイル生成処理が引き起こしていた問題 このImageMagickによるサムネイル生成処理は、サービスリリース直後に実装されたもので、ほとんど手が入らないまま10年以上運用されていました。 し

    API GatewayとLambdaとGolangで作るサムネイル生成システム | ランサーズ(Lancers)エンジニアブログ
  • S3でページ単位でリダイレクト設定する | ランサーズ(Lancers)エンジニアブログ

    こんにちは、エンジニアのshinです。 最近使ったAWSの機能が便利だと思ったので紹介します。 ランサーズでは、Amazon S3の静的ウェブサイトホスティングの仕組みを使ってコンテンツを公開しています。 まずこれが便利で、静的ページをカンタンに公開できるというメリットがあります。 一方で、便利がゆえにとりあえずアップして、 その後不要になったコンテンツが残り続けてしまうというデメリットも出てきました。 今回、lancers.jpのトップページリニューアルのタイミングで情報設計の見直しを行い、 ある静的ページのURLを変更したいという要望が出てきました。 旧URLへの導線は全て変更したものの、送信済みメールからのアクセスなど 網羅性を担保するためにはリダイレクト設定する必要があります。 これまでは、静的ページにリダイレクト設定したい場合、meta refreshやJavaScriptを使う

    kzm1760
    kzm1760 2019/06/25
    便利。
  • Amazon ConnectとLambdaとSendGridで作る電話確認システム | ランサーズ(Lancers)エンジニアブログ

    こんにちは、SREチームの稲村です。 最近Oculus Questを購入して、日々の運動不足解消に役立てています。 VRの世界は当に凄いですね。 電話確認システムとは さて、ランサーズでは、クライアント様とランサー様それぞれの存在証明の一つとして電話確認の実施を推奨しています。 具体的には、プロフィール画面で番号登録した電話から、弊社指定の番号へ電話をかけていただくことで電話確認が行われるシステムです。 今回はそのシステムをAmazon ConnectとLambdaとSendGridへ移行した話をご紹介します。 移行前の構成 移行前は下記のような構成になっておりました。 外部の業者で050番号を契約し、提供された認証情報を使って、AWS EC2のAsteriskを使ったIP-PBX環境が構築されていました。 ユーザーから電話がかかってくると、Asteriskサーバーまで接続されます。 そ

    Amazon ConnectとLambdaとSendGridで作る電話確認システム | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2019/06/19
    IP-PBXのレガシー環境をサーバーレスアーキテクチャに移行した際について書きました。
  • PHP5.6→7.3移行が完了しました | ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 PHP5.6→7.3バージョンアップが完了しました。 PHP5.3→5.6バージョンアップが完了してから約2カ月での移行となりました。 今回、その対応内容と結果を報告したいと思います。 バージョンアップ準備 PHP7化については、有用な記事が数多くありましたので、まずはそれらを参考にさせていただきました。 CakePHP2.10化 PHP5.6化後のライブラリアップデートのタイミングでCakePHP 2.8から2.10にバージョンアップしました。 CakePHP2.9のタイミングでObjectクラスが非推奨になったため、CakeObjectに名前変更しました。 ※PHP7ではObjectが予約語になります。 廃止、非推奨となる関数の対応 対応が必要だったのは主に以下の関数です。 __autoload ereg_* eregi each mysql_* split

    PHP5.6→7.3移行が完了しました | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2019/05/30
  • PHP5.3→5.6移行が完了しました | ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 PHP5.3→5.6バージョンアップが完了しましたので報告いたします。 CakePHP1.3→2.8バージョンアップが完了してから約2カ月での移行となりました。 2019/03/20にコネヒトさんで開催されたPHP勉強会で、その詳細について発表させていただきました。 (このときは管理画面、バッチサーバーまで移行完了していました) PHPのバージョンアップ自体は3月中に完了していましたが、その後関連ライブラリのバージョンアップも併せて行いました。 バージョンアップに向けたCI改善 2019/2/5にCakePHP1.3→2.8バージョンアップが完了し、その後すぐにCI周りの改善に取り掛かりました。 その詳細をPHP5.6化に向けたCircleCIのアップデートにまとめています。 目的は以下の2点です。 PHP5.6の文法に対応する @PSR2を設定 @PHP56Mi

    PHP5.3→5.6移行が完了しました | ランサーズ(Lancers)エンジニアブログ
  • CREチームの発足 - ランサーズ(Lancers)エンジニアブログ

    CREチームの保坂です。 Lancers(ランサーズ) Advent Calendar 2018 11日目の記事になります。 ランサーズでは今年からCREというチームを発足しました。 SREチームの発足については以前の記事で紹介されています。 CREはCustomer Reliability Engineeringの略でエンジニアリングで顧客信頼性向上させるチームとなります。 成り立ち もともとは一人でお問い合わせの調査や改修対応をしていましたが、フォローのためメンバーが集結されCREチームとなりました。 さらにエンジニアだけでなく関わりとしてカスタマーサポート(CS)メンバーやデザイナーも協力いただき進められています。 最近ではインターン生も二人参加していただいています。 チーム体制になったことにより、それまで後回しになってしまっていた仕様や機能の改善も進められるようになりました。 CR

    CREチームの発足 - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/12/11
  • ランサーズエンジニアのキーボードの世界 - ランサーズ(Lancers)エンジニアブログ

    こんにちは! お久しぶりの投稿です。エンジニア採用広報の宮田です。 ありがたいことにエンジニアの方からお誘いいただき、 ランサーズ AdventCalendar 2018 の10日目を担当いたします! 過去にあった記事のリメイク版として 今回は、エンジニアの皆さん(情報提供いただいた方)のキーボードを紹介します。 家はこちら。 ちなみに、前回と違うところは個性あるキーボードが増えたところです! それでは、早速ご紹介します! 個性派チーム 稲村さん トップバッターは稲村さん(@kzm0211 )です! 早速、非エンジニアだったら見たことない形と色をしたキーボードが出てきました。 今、ランサーズSREチームでプチ流行しているMint60という自分で作るキーボードらしいです! ちなみに、Mint60のキーボード以外にも2つ見せてもらいました! パッと見た時は2つとも全く同じではないかと思いまし

    ランサーズエンジニアのキーボードの世界 - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/12/10
    トップバッターです!
  • WordPressのプラグインを改造して本家に取り込んでもらおうと思った話 - ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 Lancers(ランサーズ) Advent Calendar 2018 7日目の記事になります。 昨日は、odrum428さんの「slackで動くピアボーナス機能を実装した話」でした。 今年は、Lancers以外のAdvent Calendarも参加させていただいてます。(以下) PHP Advent Calendar 1日目 Visual Studio CodeでPHPのステップ実行 CakePHP Advent Calendar 5日目 CakePHP実装の隙をついてFORCE INDEXを書いていた話 SRE Advent Calendar 5日目 【SRE】成長するサービスとDB負荷との闘い PHP Advent Calendar 7日目 PHP5.3のcomposerでguzzleのインストールに失敗するようになった話 CakePHP Advent Ca

    WordPressのプラグインを改造して本家に取り込んでもらおうと思った話 - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/12/07
  • ランサーズ版SQLチューニングポリシー - ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 Lancers(ランサーズ) Advent Calendar 2018 5日目の記事になります。 昨日は、inamuuさんのElasticCloudからAmazon Elasticsearch Serviceへの移行して良かったこと大変だったことでした。 今年は、Lancers以外のAdvent Calendarも参加させていただいてます。(以下) PHP Advent Calendar 1日目 Visual Studio CodeでPHPのステップ実行 CakePHP Advent Calendar 5日目 CakePHP実装の隙をついてFORCE INDEXを書いていた話 SRE Advent Calendar 5日目 【SRE】成長するサービスとDB負荷との闘い PHP Advent Calendar 7日目(予定) CakePHP Advent Calen

    ランサーズ版SQLチューニングポリシー - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/12/05
  • githubのissue, pull request 検索をハックする! | ランサーズ(Lancers)エンジニアブログ

    こんにちは、エンジニアの上野です。 ランサーズストア の開発責任者として日々奮闘中です。 今日は、エンジニアみんな大好きgithubの検索クエリをハックする!!と題して、検索クエリの解説をしようと思います。githubではissueやpull requestを検索するときにクエリを指定すると結構柔軟に条件を指定して調べることが出来ます。 自分自身、入社してから数え切れないリリースをしているので、しばしばこのクエリを用いて過去のissueなどを調べています。せっかくの機会ということで、「公式helpに沿ってルールのまとめ」と「普段使っているクエリの紹介」の2部構成でお届けします。 githubのissue, PR検索用で使えるクエリ一覧 ここからは公式helpにある文法を日語で解説していきます。 公式のhelpのまとめ方が少し冗長だなと感じる部分は項目を合体させてできるだけ簡潔に記述するよ

    githubのissue, pull request 検索をハックする! | ランサーズ(Lancers)エンジニアブログ
  • ランサーズの分析基盤(capybara)と運用について紹介 - ランサーズ(Lancers)エンジニアブログ

    さあて!!Lancers(ランサーズ) Advent Calendar 2018 がついに始まりました。1日目は @numanomanuさんの「誰も教えてくれない、サービスを終了する技術〜 SPA で作ったサービスを閉じる時にやるべきこと 〜」 SREの@adachin0817 が担当します。 ランサーズでは2018年今年から分析基盤を創り上げていきました。今回は今流行りの分析基盤をどのように運用しているか、どのような技術を使っているのか簡単にご紹介できればと思います。 ランサーズ分析基盤の始まり もともと@g0dgardenさんが設計を考えて、私が5月にジョインして引き継ぎをしました。 capybara(カピバラ)!! カピバラといえば草を大量にべて蓄えている印象からデータ分析に近い存在なので決まったそうです(ロゴとか真面目に作りたい) SREの中にも分析基盤によるログの可視化は該当

    ランサーズの分析基盤(capybara)と運用について紹介 - ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/12/03
  • 初心者のためのReact入門と勉強法について | ランサーズ(Lancers)エンジニアブログ

    @takepo です。 昨日09/25に【サポーターズCoLab勉強会】初心者のためのReact入門 というイベントで再度登壇させていただきました。その登壇の際の発表スライドをあげさせていただきます。 内容はReact初心者向けのものになっていて、コードサンプル付きで説明させていただきました。 React とは React ES6おさらい Component JSX props と state Componentライフサイクル よくReactと一緒に聞くRedux, yarn, webpackなどの概要説明 React勉強方法 JavaScript初心者の私が、React×ReduxによるSPA開発の一員になるまでの勉強法 今から始めるための勉強法 実はこのReact入門という形で登壇させていただくのは3回目になりますが、 前回の資料から最新情報をプラスしたり、より初心者向けにパワーアップ

    初心者のためのReact入門と勉強法について | ランサーズ(Lancers)エンジニアブログ
  • ランサーズ開発合宿2018 バージョンアップチーム | ランサーズ(Lancers)エンジニアブログ

    SREチームの金澤です。 ランサーズ開発合宿のバージョンアップチームの成果についてお話させていただきます。 ランサーズのバージョンアッププロジェクト 現在、ランサーズのバージョンアップはSREチームが主導で行っています。 バージョンアップは、以下のフェーズにわけて進行中です。 CakePHP 1.3 → CakePHP 2.8 PHP 5.3 → PHP 5.6 CakePHP 2.8 → CakePHP 2.x最新 PHP 5.6 → PHP 7 最新 そして、現在、1を進めている最中です。 コントローラー単位で移行を進めており、2018/6時点での進捗は70%でしたが、残る30%については、難易度が高いコントローラー、バッチ、管理画面などが含まれていました。 2018年度のSREチーム 2018/4から4人体制でSREチームが発足しました。 ※その詳細は、「SREチームの発足」に書かせ

    ランサーズ開発合宿2018 バージョンアップチーム | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/08/30
  • ランサーズを完全HTTPS化へ移行するまでの軌跡。常時SSL(AOSSL)化を目指して。 | ランサーズ(Lancers)エンジニアブログ

    Intro こんばんは。 開発部の 神庭(godgarden)です。 この度、よりランサーズを安心安全に利用してもらうためサービス全体を完全HTTPS化しました。 ランサーズではこれまで、決済ページや、ID、パスワード入力ページなどの機密性が高いページに限り、安全な通信を実現するため、通信を暗号化する方法としてHTTPSを利用していました。 この度、ユーザーの皆様によりランサーズを安心安全に利用してもらうため、これらをサービス全体のページに拡大いたしました。 Proxyするメディアサイト側でのhttps対応など、いくつかの残はありますが、一つの区切りとして移行の背景や手順などについて共有し、これから移行しようとしている方のヒントになれば幸いです。 完全HTTPS化した理由 ポイントは3つです。 セキュリティリスクの軽減 市場の動向・変化 新技術の導入の下地 セキュリティリスクの軽減 近年、

    ランサーズを完全HTTPS化へ移行するまでの軌跡。常時SSL(AOSSL)化を目指して。 | ランサーズ(Lancers)エンジニアブログ
    kzm1760
    kzm1760 2018/08/18