Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
さくらのサービスを支えるAPI開発のお話(仮) - APIStudy#6
Search
Hikaru Ashino
March 28, 2017
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
さくらのサービスを支えるAPI開発のお話(仮) - APIStudy#6
Hikaru Ashino
March 28, 2017
More Decks by Hikaru Ashino
See All by Hikaru Ashino
さくらのクラウド高火力プランを使って 大規模言語モデル(LLM)を動かしてみよう
picasa
1
730
クラウドの作り方(GPUサーバ編)
picasa
0
3.3k
A story until offering openSUSE on Sakura VPS
picasa
0
150
自宅サーバでマストドンを立てる
picasa
1
3.3k
卒業制作 サーバーの脆弱性情報管理システム
picasa
0
74
Kickstartfileジェネレータを作ってみた
picasa
0
70
Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた - JAWS DAYS 2015
picasa
0
150
Amazon SNSでZabbixのアラートをプッシュ通知してみた
picasa
0
150
cobbler + koan VPS作成の自動化
picasa
0
46
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
630
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
160
今さら聞けない .NET CLI
htkym
0
200
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.3k
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
520
バグを直したら useEffect が消えた
colorful12
3
600
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
570
VibeCodingからAgenticWorkflowへ
starfish719
0
620
源内ハンズオン概要編
hideg
0
190
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
210
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
Cloudflare is Agents
chimame
0
170
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Speed Design
sergeychernyshev
33
2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Mind Mapping
helmedeiros
PRO
1
320
Building the Perfect Custom Keyboard
takai
2
840
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.4k
Unsuck your backbone
ammeep
672
58k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Transcript
さくらのサービスを支える API開発のお話(仮) APIStudy#6 2017/3/28 (C) Copyright 1996-2016 SAKURA Internet Inc
さくらインターネット株式会社 技術本部 アプリケーショングループ 芦野 光
自己紹介 • 芦野 光 • 2016年4⽉ 新卒⼊社 • 所属 •
技術本部 アプリケーショングループ • 担当業務 • さくらのVPS • バックエンド開発(API) • 機能開発 • 社内向けAPIの開発 2 facebook https://www.facebook.com/hikaru.ashinon
本⽇のアジェンダ • 会社紹介 • 開発体制 • 開発からリリースまでのフロー • まとめ 3
4 会社紹介
歴史 5 インターネットインフラの提供を事業ドメインとして、 ⼤阪、東京、北海道の3都市に5つのデータセンターを展開 1996年12⽉に現社⻑の⽥中邦裕が、 舞鶴⾼専在学中に学内ベンチャーとして創業。 1999年8⽉に株式会社を設⽴。10⽉には、 第1号となるデータセンターを本町に開設。 2005年10⽉に東京証券取引所 マザーズ市場に上場。
2011年11⽉、北海道⽯狩市に国内最⼤級の 郊外型⼤規模データセンターを開設。 ⽯狩データセンター開設 2011 東証マザーズ上場 2005 さくらインターネット創業 1996 ・最初のデータセンター開設 1999 ・株式会社を設⽴ 2015年11⽉に東京証券取引市場第⼀部に 市場変更。 東証⼀部に市場変更 2015
サービスラインアップ 6 データセンターにまつわるすべてのサービスを提供
7 3⽉15⽇より開始
8 開発体制
開発体制 今回は、さくらVPSのAPIを例に進めます 9 コントロールパネル API ホストサーバ
開発体制 • 開発メンバー(APIのみ) • 3名 • 1機能1⼈が開発 • 1~2⼈がコードレビュー 10
• 開発環境 • ⾔語 • Python, Django • API実⾏環境 • gunicorn • Dockerクラスタ(Mesos+Marathon+Chronos) • 本番、ステージング、開発の3環境があります • ローカル • エディター • Vim, PyCharm • CI • Jenkins • APIドキュメント • Confluence • Swagger (Django REST Swagger) • コード管理 • GitHub Enterprise • デバッグ • Django Debug Toolbar • 作図 • Cacoo • django-extensions • PlantUML Macro(confluence)
11 開発からリリース までのフロー
開発からリリースまでのフロー 12 企画 仕様策定 コーディン グ テスト リリース レビュー
開発からリリースまでのフロー - 企画 • 企画 • VPSチームメンバーから発案 • お客様からのご要望 •
メール • さくらのユーザーフィードバックβ 13
開発からリリースまでのフロー - 仕様策定 • URI設計 • https://secure.sakura.ad.jp/vps/api/v6/*** • DB設計(モデル) •
JSONフォーマット • Key名 • 型 • ドキュメント作成 • Confluence • Swagger (Django REST Swagger) • エラー処理 • フロント / ホストサーバ側を開発するメンバーとMTGをしたり 14
開発からリリースまでのフロー - コーディング・レビュー • コーディング • PEP8準拠 • URLルーティング追加 •
モデルを書く(こともある) • ビューを書く • シリアライザーを書く • python manage.py runserver • git上で、レビュー • MTG 15
開発からリリースまでのフロー - テスト • ユニットテスト • テストを書く • Factoryboyでテストデータを作る •
総合テスト • シナリオテスト • コントロールパネルとホストサーバ(インフラ) と繋ぎこみテストを⾏う • 様々なブラウザ、OSでテスト 16
17 🙆🙆🙆🙆 絵文字以降の操作履歴が出力されない
18 🙆🙆🙆🙆 絵文字以降の操作履歴が出力されない
開発からリリースまでのフロー - リリース • リリース前⽇まで • お知らせの作成 • サポートページの作成 •
リリース当⽇ • リリースバージョンのAPIデプロイ • お知らせ、サポートページの公開 19
開発からリリースまでのフロー - リリース • リリースバージョンのAPIデプロイ(1) 20 コントロールパネル API (v6.0.0) https://secure.sakura.ad.jp/vps/api/v6/
リバースプロキシ
開発からリリースまでのフロー - リリース • リリースバージョンのAPIデプロイ(2) 21 コントロールパネル API (v6.0.0) リバースプロキシ
API (v6.0.1) https://secure.sakura.ad.jp/vps/api/v6/
開発からリリースまでのフロー - リリース • リリースバージョンのAPIデプロイ(3) 22 コントロールパネル リバースプロキシ https://secure.sakura.ad.jp/vps/api/v6/ 22
API (v6.0.0) API (v6.0.1)
開発からリリースまでのフロー - リリース • お知らせ、サポートページの公開 23
24 まとめ
まとめ • 割と⾃由な開発環境で開発しています • OSSを組み合わせてサービス開発 / 運⽤ • 便利なツールを使う •
テストが⼀番⼤変 • 様々なブラウザやOSでテストしなければならない 25
26 ご清聴ありがとうございました