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
700
クラウドの作り方(GPUサーバ編)
picasa
0
3.2k
A story until offering openSUSE on Sakura VPS
picasa
0
140
自宅サーバでマストドンを立てる
picasa
1
3.1k
卒業制作 サーバーの脆弱性情報管理システム
picasa
0
72
Kickstartfileジェネレータを作ってみた
picasa
0
66
Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた - JAWS DAYS 2015
picasa
0
140
Amazon SNSでZabbixのアラートをプッシュ通知してみた
picasa
0
140
cobbler + koan VPS作成の自動化
picasa
0
45
Other Decks in Programming
See All in Programming
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
240
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.3k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
CSC307 Lecture 17
javiergs
PRO
0
320
さぁV100、メモリをお食べ・・・
nilpe
0
130
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
330
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
460
Webフレームワークの ベンチマークについて
yusukebe
0
140
Modding RubyKaigi for Myself
yui_knk
0
900
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
4.5k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Scaling GitHub
holman
464
140k
The Curious Case for Waylosing
cassininazir
1
380
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
240
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
440
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
It's Worth the Effort
3n
188
29k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
エンジニアに許された特別な時間の終わり
watany
107
250k
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 ご清聴ありがとうございました