StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Home
  2. Companies
  3. Hahow
Hahow logo

Hahow

Verified

最有趣的線上課程平台

Taipei, Taiwanhahow.in
96
Tools
6
Decisions
0
Followers

Tech Stack

Application & Data

40 tools

.NET logo
.NET
HTML5 logo
HTML5
C# logo
C#
NGINX logo
NGINX
Node.js logo
Node.js
Docker logo
Docker
MongoDB logo
MongoDB
Redis logo
Redis
Google Compute Engine logo
Google Compute Engine
ES6 logo
ES6
Redux logo
Redux
PostgreSQL logo
PostgreSQL
RxJS logo
RxJS
Kubernetes logo
Kubernetes
Google Kubernetes Engine logo
Google Kubernetes Engine
Helm logo
Helm
Golang logo
Golang
Gin Gonic logo
Gin Gonic
TypeScript logo
TypeScript
React Native logo
React Native
Expo logo
Expo
Android SDK logo
Android SDK
Objective-C logo
Objective-C
Puma logo
Puma
Ruby logo
Ruby
Rails logo
Rails
Heroku logo
Heroku
Amazon RDS logo
Amazon RDS
Amazon Elastic Transcoder logo
Amazon Elastic Transcoder
Amazon S3 logo
Amazon S3
Amazon CloudFront logo
Amazon CloudFront
RailsAdmin logo
RailsAdmin
axios logo
axios
Tailwind CSS logo
Tailwind CSS
Amazon Glacier logo
Amazon Glacier
Apollo logo
Apollo
GraphQL logo
GraphQL
Lodash logo
Lodash
dotenv logo
dotenv
AWS Lambda logo
AWS Lambda

Utilities

16 tools

Google Analytics logo
Google Analytics
Algolia logo
Algolia
Consul logo
Consul
Wistia logo
Wistia
Optimizely logo
Optimizely
Segment logo
Segment
Mixpanel logo
Mixpanel
Tableau logo
Tableau
Apache Beam logo
Apache Beam
Airflow logo
Airflow
Slack logo
Slack
Devise logo
Devise
AWS Certificate Manager logo
AWS Certificate Manager
AWS Key Management Service logo
AWS Key Management Service
Amazon SNS logo
Amazon SNS
Sidekiq logo
Sidekiq

DevOps

29 tools

GitHub logo
GitHub
Git logo
Git
npm logo
npm
Webpack logo
Webpack
CircleCI logo
CircleCI
Yarn logo
Yarn
gulp logo
gulp
Ansible logo
Ansible
ESLint logo
ESLint
Sentry logo
Sentry
Jest logo
Jest
Mocha logo
Mocha
Cucumber logo
Cucumber
Cypress logo
Cypress
Prometheus logo
Prometheus
Grafana logo
Grafana
Babel logo
Babel
Percy logo
Percy
Puppeteer logo
Puppeteer
Stylelint logo
Stylelint
RSpec logo
RSpec
RuboCop logo
RuboCop
Terraform logo
Terraform
GitHub Actions logo
GitHub Actions
Webpacker logo
Webpacker
Amazon CloudWatch logo
Amazon CloudWatch
New Relic logo
New Relic
StatusPage.io logo
StatusPage.io
Logentries logo
Logentries

Business Tools

11 tools

React logo
React
Mailchimp logo
Mailchimp
InVision logo
InVision
Intercom logo
Intercom
styled-components logo
styled-components
Storybook logo
Storybook
Ant Design logo
Ant Design
Chart.js logo
Chart.js
Asana logo
Asana
Inertia.js logo
Inertia.js
Figma logo
Figma

Team Members

Henry Wu
Henry WuBackend Engineer
BoHong Li
BoHong LiBackend Engineer
玉璁 高
玉璁 高Product Owner
Amo Wu
Amo WuFront-end Engineer
andy88566y
andy88566y
Lawrence Chou
Lawrence ChouSoftware engineer
jiminycricket
jiminycricket
Leo Chiu
Leo ChiuFront-end Engineer
paradise0917
paradise0917
Rong Rong Teng
Rong Rong TengBackend Engineer
tcchong
tcchong
yade chen
yade chen

Engineering Blog

Stack Decisions

Amo Wu
Amo Wu

Jul 22, 2020

Lawrence: 我們之前用 Skylight,但因為無法設定 Billing 上限搬家到 Scout。Scout 好用,除了他用 request count 計費而我們一直用量超過,之後可以嘗試改用 New Relic,因為他是用 dyno count 計費比較適合我們。

Lawrence: APM(application performance monitor) 幫我們追蹤諸如 N+1 query、memory/CPU 用量異常、API response 表現等等。 是追蹤效能問題的必要工具。

Lawrence: 在眾多 APM 中選擇 New Relic 的主要原因是 haroku addon 方案採 dyno 數量收費,對我們「大流量、小 dyno 數」的狀況有巨大的成本優勢。 一個例子是不透過 Heroku addon 使用而是照流量算的話,預估方案是約 $2600/月;另一個例子則是流量計費的 Scount 長期超量 10000%。 其他優點有:tracing 非常詳細 其他缺點有:效能方面 overhead 似乎較 Scout 來的大

Lawrence: 曾經試過其他 APM 的棄用原因:

  1. Skylight:收費方法無法設定 billing 上限,一不小心就會爆量
  2. Scout:效能較好,功能也還算完整,但計費方式也是流量收費,我們長期維持約 10000% 的用量,沒有適合我們的 billing 方案,因此重要的 tracing 功能持續被鎖住
31 views31
Comments
Amo Wu
Amo Wu

Jun 10, 2020

Lawrence:發現繼續賴著用免費的 Scout 也不是辦法,因為目前沒有 N+1 的 tracing 可看,要優化報表 worker 也要有一些 tracing 參考才不會不小心優化過頭(i.e. 全部都很快但很醜的 SQL 重構,但也許其實只需要修掉幾個 N+1 query)。

看了一下各家 APM,已能夠精細追到 N+1 query 的 ruby code stacktrace 除了目前賴著用的 Scout 以外,AppSignal 也是用 request 數算錢,Skylight 更是因為無法設定 billing 上限已經列為拒絕往來戶。

目前找到 New Relic 是用機器數計費比較適合我們,平均 5 dyno 是 $99/mo 而平均 8 dyno 是 $159/mo,相較於前者們都便宜很多,Samuel 如果沒有什麼 concern 我就開一下 14 day trial 囉~?或是如果有人知道其他我漏掉的 APM 也歡迎提供~。

雖然 UI 跟舊版 Google Analytics 有得比(?),但 Rails 相關指標看起來比 Scout 還細,以後 tune performance 應該會很有幫助。

50 views50
Comments
Amo Wu
Amo Wu

Apr 10, 2020

Elastic Transcoder 管道、任務和預設數受以下限制的約束:

Pipelines 數:對於每個 region,每個 AWS 賬戶擁有 4 個pipelines 已排隊 jobs 的最大數量:每個 pipeline 1,000,000 個已排隊jobs 最大輸出數:每個 job 30 個輸出 每個 pipeline 同時處理的最大 jobs 數量:每個 pipeline 100 Persets 數:每個 AWS 賬戶對應 50 個用戶定義的 presets(Elastic Transcoder 還包含不計入限制數量內的預定義 presets。)

您提交 job 請求的最大速率:

創建 job:您可以按持續速率每秒為每個 AWS 賬戶提交兩個 Create Job 請求;可以短時間出現每秒 100 個請求的高峰。 讀取 job:您可按持續速率每秒為每個 AWS 賬戶提交四個 Read Job 請求;可以短時間出現每秒 50 個請求的高峰。

86 views86
Comments
Amo Wu
Amo Wu

Apr 10, 2020

Elastic Transcoder 是一種 RESTful Web 服務,它使用 HTTPS 作為協議,並採用 JSON 作為消息格式。您的應用程序代碼可以直接向 Elastic Transcoder API 發送請求。

Elastic Transcoder 還提供了一個管理控制台。您可以使用此控制台執行可使用 Elastic Transcoder API 執行的所有相同操作。

36 views36
Comments
Amo Wu
Amo Wu

Apr 10, 2020

Pipelines 和 jobs 與特定 regions 緊密相關。當您創建 pipelines 和 jobs 時,將在當前 region 中創建它們。當您創建新 job 時,必須在當前 region 中指定 pipeline。

雖然您可以在與 Elastic Transcoder 資源不同的 region 中指定 Amazon S3 buckets,但建議您不要這樣做,因為在不同的 AWS regions 之間傳輸文件會產生額外費用。

53 views53
Comments
Amo Wu
Amo Wu

Apr 10, 2020

Amazon Elastic Transcoder 可以將 Amazon Simple Storage Service (Amazon S3) 中存儲的媒體文件轉換為消費者播放設備所要求的媒體文件格式。例如,您可以將大型高質量數字媒體文件轉換為用戶可在移動設備、平板電腦、Web 瀏覽器和聯網電視上播放的格式。

Elastic Transcoder 有四個組件:

Jobs 執行轉碼工作。每個 job 最多將一個文件轉換為 30 種格式。例如,如果您要將媒體文件轉換為 6 種不同的格式,則可通過創建一個 job 來創建所有 6 種格式的文件。

在創建 job 時,可以指定要轉碼的文件的名稱、您希望 Elastic Transcoder 轉碼後的文件使用的名稱以及幾個其他設置。對於要轉碼到的每種格式,您還可指定一個稱為 preset 的模板,其中包含要用於一個或多個轉碼後的文件的音頻和視頻設置。

Pipelines 是管理轉碼 jobs 的隊列。在創建 job 時,您需要指定要將 job 添加到的 pipeline。Elastic Transcoder 按照添加 job 的順序開始處理 pipeline 中的 job。如果將一個 job 配置為轉碼成多種格式,Elastic Transcoder 會按照您在 job 中指定的每種格式的順序來創建每種格式的文件。

一個常見配置是創建兩個 pipeline — 一個管道用於標準優先級 jobs,另一個管道用於高優先級 jobs。大多數 job 都會進入標準優先級 pipeline;僅在您需要立即對文件轉碼時使用高優先級 pipeline。

如果在您創建新 job 時,pipeline 已包含 job,則 Elastic Transcoder 會讓最新 job 排隊,並在該 pipeline 有可用資源後立即處理該 job。如果 pipeline 已使用其所有資源,則在 Elastic Transcoder pipeline 完成當前正在處理的某個 job 後將立即處理 pipeline 中的下一個 job。

一個 pipeline 可以同時處理多個 job,並且完成 job 所需的時間因要轉換的文件的大小和 job 規範而存在顯著差異。因此,不一定按照創建 job 的順序完成 job。

您可以通過暫停 pipeline 來暫時停止處理 jobs。

Presets 是一些模板,其中包含大多數用於將媒體文件從一種格式轉碼為另一種格式的設置。Elastic Transcoder 包含一些常見格式(例如,若干 iPod 和 iPhone 版本的格式)的默認 presets。您也可以為默認 presets 中未包含的格式創建您自己的 presets。您可以在創建 job 時指定要使用的 preset。

Notifications 可讓您選擇配置 Elastic Transcoder 和 Amazon Simple Notification Service 以便您獲得關於 job 狀態的通知:Elastic Transcoder 何時開始處理 job、Elastic Transcoder 何時完成 job 以及在 Elastic Transcoder 處理期間是否遇到警告或錯誤情形。利用 notifications,就無需進行輪詢以確定 job 完成時間。可以在創建 pipeline 時配置 notifications。

92 views92
Comments