クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

決済機関上への返金に対応した話

序文

こんにちは、私達は「かけたくないコストを削減し、クラウドワークスをスケールさせる環境をつくる」ことを目的としているチームです。 今回は半年以上かけてやってきた施策である「決済機関上への返金」の仕組みの導入とそれに伴うDBテーブルの段階的な切り替えについて効果や工夫した点など紹介します。

なぜ「決済機関上への返金」を導入したか

今までクラウドワークスではユーザーからお支払いいただいたお金を返金する場合、クレジットカード等の決済機関経由の支払いの返金も、ユーザーの銀行口座に対してクラウドワークスから出金していました。 このような仕組みだと、決済機関経由で支払ったユーザーが返金を受け取りたい場合、出金の申請を行う必要があるという課題がありました。 この課題を解決するために、「決済機関上への返金」の仕組みの導入施策に取り組みました。 (具体例:「クレジットカードで支払ったお金は、クレジットカード決済会社経由で返金するようにする」です)

続きを読む

AtlantisでTerraformのドリフト検出

こんにちは。crowdworks.jp SREチームの@kangaechuです。 先日開催されたイベント HashiTalks: Japanを見ていましたが、Terraformのドリフト検出に関する発表が多く、Terraform運用において重要なポイントなんだなと感じました。 流行りに乗ったわけではないですが、今回はTerraformのドリフト検出をAtlantisで行った方法をご紹介します。

この記事は以下環境で検証しています。

ドリフト検出

Terraformはインフラストラクチャを安全かつ期待通りに構築するために使用する、Infrastructure as Codeのソフトウェアです。 crowdworks.jpではAWSGitHubGCPの管理をTerraformで行っていますが、今回はAWSに絞って話します。

TerraformではリソースをHCLで記述したコードと、前回のapply時の状態が保存されたtfstateファイルと、実際のリソースの3つの要素で管理します。 基本的にこの3つの状態は一致しています。 しかしさまざまな理由により、これらの状態が一致しなくなることがあります。たとえば以下のようなものが挙げられます。

  • Terraform外(AWSマネジメントコンソールなど)での変更
  • Apply のし忘れ
  • Terraformやプロバイダのバージョンアップによる破壊的変更

Terraformのコードの状態と実リソースの状態に差異が発生した場合、できるだけ早期に検出したいですね。 そのために「ドリフト検出」を行います。 ドリフトは「想定とは異なった状態」を表し、ドリフト検出とは「想定と異なった状態を検出する」ことを指します。 この記事ではTerraformで全部のディレクトリにterraform planを行い、plan結果に差分がないことを確認する処理を「ドリフト検出」と呼びます。

続きを読む

WordPressを静的ホスティングサービスのShifterへ移行しました

はじめに

SREチームの @bayashi_ok です。

今回はクラウドワークスで運営しているWordPressサイトを静的ホスティングサービスであるShifterへ移行した話を書きます。

Shifterについて

www.getshifter.io

特徴は公式リンクに詳しく書かれていますが、内部の仕組みとしては

  • DockerでWordPressを更新時に起動
  • WordPressのコンテンツを静的HTMLに変換しS3に配置
  • CDN(CloudFront)からコンテンツを配信

となっており、

  • フロントエンドでは、WordPressを直接公開しなくなるのでWordPress本体やプラグイン脆弱性を気にすることなく運用できる

  • バックエンドでは、必要な時のみDockerでWordPressを起動するため、セキュリティリスクが低減される

と運用上かなり助かる仕組みだなと感じました。

続きを読む

今年もRubyKaigi2022にてスポンサーとして協賛・ノベルティ配布します

こんにちは。みーたです。

株式会社クラウドワークスは2022年9月8日から10日までの3日間で開催される、プログラミング言語 Ruby に関する世界最大級の国際カンファレンス「RubyKaigi 2022」のゴールドスポンサーとして協賛します。

また、今年はRubyKaigi として3年ぶりに三重県総合文化センター(およびオンライン)にて開催されるため、クラウドワークスのエンジニアメンバーも私を含む7名で現地参加いたします。やったぁ✧\\ ٩( 'ω' )و //✧

会場ではこの後紹介するノベルティTシャツを着ながら飴を配っておりますので、サービス開発やエンジニアリング組織のことなどお気軽に話しかけてもらえたら嬉しいです🫶

Rubyクラウドワークス

創業事業である crowdworks.jp では開発の基盤として Ruby on Rails を使用しており、去年サービスリリース10周年を迎えました。 クラウドテック、新規事業のPARKなど複数のプロダクトでRubyを使用しております。 Rubyコミュニティのさらなる活性化に寄与するとともに、これからのRubyの発展に一層貢献してまいります。改めまして、よろしくお願いいたします。

RubyKaigi 2022 概要

主催:RubyKaigi 2022チーム ・ 一般社団法人日本Rubyの会

開催期間:2022年9月8日(木) ~ 9月10日(土)

場所:三重県総合文化センター および オンライン

基調講演:まつもと ゆきひろ氏 ほか

公式サイトURL:https://rubykaigi.org/2022/

ノベルティもたくさん作りました

RubyKaigiのロゴをあしらったTシャツとスマホ防水ケース、クラウドワークスのロゴ組飴

今回は、RubyKaigi 2022のロゴをあしらったTシャツ・スマホ防水ケースを用意しました! 今年3月に新しくなったクラウドワークスのコーポレートロゴを使った組飴も持っていきます。

Tシャツは4.4オンスのドライ素材を使用しており、とても軽く風通しが良いものになっています。拡大するとメッシュ状になっているのが伝わるでしょうか...??

数に限りがあるため、こちらのTシャツはこのエンジニアブログをSNSで拡散してくださった方にお渡ししたいと思っております。詳しくは会場にて💁‍♀️

RubyKaigi2022とクラウドワークスのロゴをあしらったスマホ防水ケーススマホ防水ケースにiPhone12を入れた様子でしっかり余裕がある

スマホ防水ケースは柄が見やすいように中に白い紙を入れておりますが、実際は背景色は透明になっており、スマホを入れたままでも操作が出来ます。実際に私が使用しているiPhone12を入れてみましたが入れやすく、操作も問題なく行えました。これがあればお風呂でスマホ使う時に濡れずに済むので安心ですね。

新しくなったクラウドワークスのコーポレートロゴを使った組飴

そして見てください!!!

以前のコーポレートロゴの青だとなかなか美味しそうなお菓子にならず悩んでいた*1のですが、めちゃくちゃ可愛い組飴が出来ました🍬

しかも塩サイダー味で、材料に塩が入っているので熱中症対策にも役立ちます💪

たっっっっっっくさん持っていくのでスマホ防水ケースに詰めちゃってください。それもまた可愛いです。

Rubyistの皆さんへ

3年ぶりのオフライン開催ということで、わくわくしながら準備をしてまいりました!

当日はたくさんのRubyistさんたちとお会いできることを心より楽しみにしています。

また、現地にまで来ちゃうRuby愛が収まらないRubyistさんたち💖とお仕事も一緒にしていきたいので、もし転職で「RubyRuby on Rails)を使っている企業探したいな...」と思っていらっしゃいましたら、弊社にも興味を持っていただけたら嬉しいです🙌

www.green-japan.com

施策チームの開発プロセスについて

クラウドワークス(crowdworks.jp)の施策チームの薄井です。 当チームは、エンジニア3名、デザイナー1名、プロダクトオーナー1名の5名で、 ユーザ向けの機能改修施策の開発を行っています。

今回の記事では、 当チームが機能リリースまでの開発プロセスをどのように進めているかを書いていきます。 現在、チーム内には開発プロセスの詳細なドキュメントはないため、これを機に言語化をして、ドキュメントを作りたいという考えです。

続きを読む

© 2016 CrowdWorks, Inc., All rights reserved.