Upgrade to Pro — share decks privately, control downloads, hide ads and more …

さくらのサービスを支えるAPI開発のお話(仮) - APIStudy#6

さくらのサービスを支えるAPI開発のお話(仮) - APIStudy#6

Hikaru Ashino

March 28, 2017
Tweet

More Decks by Hikaru Ashino

Other Decks in Programming

Transcript

  1. さくらのサービスを支える API開発のお話(仮) APIStudy#6 2017/3/28 (C) Copyright 1996-2016 SAKURA Internet Inc

    さくらインターネット株式会社 技術本部 アプリケーショングループ 芦野 光
  2. 自己紹介 • 芦野 光 • 2016年4⽉ 新卒⼊社 • 所属 •

    技術本部 アプリケーショングループ • 担当業務 • さくらのVPS • バックエンド開発(API) • 機能開発 • 社内向けAPIの開発 2 facebook https://www.facebook.com/hikaru.ashinon
  3. 歴史 5 インターネットインフラの提供を事業ドメインとして、 ⼤阪、東京、北海道の3都市に5つのデータセンターを展開 1996年12⽉に現社⻑の⽥中邦裕が、 舞鶴⾼専在学中に学内ベンチャーとして創業。 1999年8⽉に株式会社を設⽴。10⽉には、 第1号となるデータセンターを本町に開設。 2005年10⽉に東京証券取引所 マザーズ市場に上場。

    2011年11⽉、北海道⽯狩市に国内最⼤級の 郊外型⼤規模データセンターを開設。 ⽯狩データセンター開設 2011 東証マザーズ上場 2005 さくらインターネット創業 1996 ・最初のデータセンター開設 1999 ・株式会社を設⽴ 2015年11⽉に東京証券取引市場第⼀部に 市場変更。 東証⼀部に市場変更 2015
  4. 開発体制 • 開発メンバー(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)
  5. 開発からリリースまでのフロー - 仕様策定 • URI設計 • https://secure.sakura.ad.jp/vps/api/v6/*** • DB設計(モデル) •

    JSONフォーマット • Key名 • 型 • ドキュメント作成 • Confluence • Swagger (Django REST Swagger) • エラー処理 • フロント / ホストサーバ側を開発するメンバーとMTGをしたり 14
  6. 開発からリリースまでのフロー - コーディング・レビュー • コーディング • PEP8準拠 • URLルーティング追加 •

    モデルを書く(こともある) • ビューを書く • シリアライザーを書く • python manage.py runserver • git上で、レビュー • MTG 15
  7. 開発からリリースまでのフロー - テスト • ユニットテスト • テストを書く • Factoryboyでテストデータを作る •

    総合テスト • シナリオテスト • コントロールパネルとホストサーバ(インフラ) と繋ぎこみテストを⾏う • 様々なブラウザ、OSでテスト 16
  8. 開発からリリースまでのフロー - リリース • リリース前⽇まで • お知らせの作成 • サポートページの作成 •

    リリース当⽇ • リリースバージョンのAPIデプロイ • お知らせ、サポートページの公開 19