O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

ここにハマった!Dockerコンテナホスティング「Arukas」の裏側

2019年7月7日開催 『サーバーサイドエンジニアオールスターズ in 関西』のスライド資料です。

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

ここにハマった!Dockerコンテナホスティング「Arukas」の裏側

  1. 1. さくらインターネット株式会社 Shuji Yamada (山田 修司) @uzyexeJul 7, 2019 ここにハマった! Dockerコンテナホスティング「Arukas」の裏側 1
  2. 2. さくらインターネット所属 シニアプロデューサー 「さくらのクラウド」運用担当などののち、 現在はコンテナホスティング「Arukas」の開発に着手 (山田 修司) 2 SHUJI YAMADA つまり、「コンテナ馬鹿」 書籍執筆イベント開催Arukas
  3. 3. 社名が変わりました !3
  4. 4. 社名が変わりました 大文字の「I」が、小文字の「i」に !4
  5. 5. 本日のハナシ •Arukasのご紹介 •Arukasでハマったハナシ •まとめ !5
  6. 6. 6 コンテナをもっと手軽に Run Dockerized Applications 100,000+ Dockerized Applications Docker Hubにあるイメージをすぐに起動 EASY DEPLOY
  7. 7. 7 登録ユーザー数
 21K+ コンテナ起動回数 (累計)
 320K+ 稼働イメージ数 (タグ別) 
 2K+ ユーザーの出身国 
 84カ国以上 Something for everyone (2019年7月時点)
  8. 8. 8 コントロールパネル CONTROL PANEL
  9. 9. !9 構成図
  10. 10. 本番環境と同等の環境をローカルマシン上で再現。 • docker-sync-stack start で開発環境を起動 • git で作業ブランチを切って、コード編集 • ciecleci build でテストしてから、git push • 定期的に古いファイルをクリーニング・・・
 (docker system prune とか docker volume prune とか・・・) コードを書ける人なら誰でも初日からコミットできる! 開発環境 !10
  11. 11. ローンチ当初、Railsエンジニアは1名だった・・・! Arukasのサーバサイドエンジニアのお仕事 • Ruby on Rails によるAPIの設計&開発 • 大規模バッチ処理の設計&開発 • データベース論理設計 • Ember.js によるフロントエンドの設計&開発 !11
  12. 12. rake stats !12
  13. 13. 最近の開発事例 • 電話認証&SMS認証 • Alipay支払いに対応 • 排他制御 • 機微情報の暗号化 • OAuth認証を廃止 !13
  14. 14. Twilio を使って電話認証を実装 • ある日突然、中国との電話による通話ができなくなった。 • 平均3分未満の通話元からの通話が拒否される仕様に・・・。 • いやいやいやいや、電話認証できないじゃん・・・。 • SMS認証を急遽実装して回避した。 • 最初から実装しとけばよかった・・・。 電話認証 😱 !14
  15. 15. SMS 認証を実装したものの・・・ • 「SMSで登録完了できない」というお問い合わせがチラホラ • 登録済みの番号からの新規認証は弾いているが・・・。 • SMS番号共有サイトに掲載された番号を使って試行されてる・・・ • 電話認証&SMS認証は重複排除しとかないとアテにできない。 SMS認証 🤔 !15
  16. 16. Alipay支払いに対応 💳 🙅 当初、決済手段はクレカ払いにしか対応してなかったが • 中国ユーザーは大多数がクレカを持っていなかった・・・。 • Stripeは日本事業者向けには銀聯カード決済に非対応。 • 中国ユーザーのためだけに、Alipay 支払いを実装 • だが、中国本土の人しか実際の支払いが試せないらしい! • リリースしたけど、本番環境でテストできなくてドキドキ・・・ !16
  17. 17. 排他制御 !17 コンテナは、起動/停止を「めちゃくちゃ」繰り替えされる • キューが変なタイミングで重複して飛んでくる。 • 課金の起動/停止を記録するテーブルで発生すると悲惨。 • 排他制御で潰していくのがベター。 • sidekiq-ent ならキューをユニーク制御できるが・・・。 • DBにUNIQUE制約を付与して回避することもできるが・・・。 • どこで発生しているかが掴めなくなる。
  18. 18. 機微情報の暗号化 😡 😖 パスワードや連絡先情報は暗号化していたが • コンテナの ENV、CMD も暗号化していく方針に。 • 実装後、コンテナにENVが展開されないというクレームが続発 • マルチバイト文字をデコードできてなかった・・・。 • 完全なケアレスミス(英語しか考えてなかった) !18
  19. 19. GitHub連携してサインイン/サインアップできるようにしてた • 「@開発者向け」アピールのつもりだったのだが、、 • 使ってくれるユーザーが予想以上に少なかった \(^o^)/ • 「メリット < メンテナンスコスト」になったので廃止・・・。 • パスワードログインとフローを分離していると、
 メンテナンスコストが増加しやすい。 OAuth 廃止 !19
  20. 20. 開発リソース不足 [人手が足りない] コミュニケーション不足 [調整コストをケチりがち] ヒューマンエラー [作業コストをケチりがち] ハマった原因ってなんだろう? 予期せぬトラブル [回避しようがない] !20
  21. 21. 開発リソース不足 [初期段階に投資したほうがいい] コミュニケーション不足 [議論から逃げないほうがいい] ヒューマンエラー [試行錯誤した上での失敗は仕方ない] 改善するにはどうすればいいだろう? 予期せぬトラブル [迅速に対応できるようにする] !21
  22. 22. 恥はどんどん公開して、成仏させよう !22
  23. 23. THANK YOU! 23
  24. 24. (C) Copyright SAKURA internet Inc. 24

    Seja o primeiro a comentar

    Entre para ver os comentários

2019年7月7日開催 『サーバーサイドエンジニアオールスターズ in 関西』のスライド資料です。

Vistos

Vistos totais

992

No Slideshare

0

De incorporações

0

Número de incorporações

17

Ações

Baixados

1

Compartilhados

0

Comentários

0

Curtir

0

×