価値を届ける技術 #bpstudy 96

61
価値を届ける技術 @hirokiky

Upload: hirokiky

Post on 09-Jan-2017

5.059 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: 価値を届ける技術 #bpstudy 96

価値を届ける技術

@hirokiky

Page 2: 価値を届ける技術 #bpstudy 96

価値

情報

Page 3: 価値を届ける技術 #bpstudy 96

情報を届ける

使いやすい

落ちない

早い/速い

Page 4: 価値を届ける技術 #bpstudy 96

内部的な価値

楽しく開発

夜眠れる

技術が伸びる

Page 5: 価値を届ける技術 #bpstudy 96

内製化

Page 6: 価値を届ける技術 #bpstudy 96

内製化

既存サービスの内製化

新規のサービスから置き換え

Page 7: 価値を届ける技術 #bpstudy 96

アーキテクチャ

Page 8: 価値を届ける技術 #bpstudy 96

サービス指向アーキテクチャ

1つの機能を1サービスとして作る

各サービスを連携させる

Page 9: 価値を届ける技術 #bpstudy 96

SOA現状

4つの内部サービス

3つの連携サーバー

2つのフロントサーバー

Page 10: 価値を届ける技術 #bpstudy 96

APIゲートウェイ

認証、権限管理

内部サーバーへのプロキシ

既存APIの整形

Page 11: 価値を届ける技術 #bpstudy 96

APIゲートウェイ

Page 12: 価値を届ける技術 #bpstudy 96

AWS

ElasticBeanstalk

VPC・内部ELB

Page 13: 価値を届ける技術 #bpstudy 96

全体図

Page 14: 価値を届ける技術 #bpstudy 96

開発

Page 15: 価値を届ける技術 #bpstudy 96

Python

日経内部のPythonな人々

開発しやすい

BePROUDの豊富な実績

Page 16: 価値を届ける技術 #bpstudy 96

Python3

Page 17: 価値を届ける技術 #bpstudy 96

Python3

日本語問題の少なさ

5年後も使える

Page 18: 価値を届ける技術 #bpstudy 96

ライブラリの問題は?

Python3で問題なし

8ヶ月に軽微な2,3件

Page 19: 価値を届ける技術 #bpstudy 96

Django

Page 20: 価値を届ける技術 #bpstudy 96

Django1.8

LongTermSupport (3years)

マイグレーション (1.7で追加)

http://djangoproject.jp/weblog/dajngo-1-8/

Page 21: 価値を届ける技術 #bpstudy 96

プロジェクトテンプレート機能

Djangoのベストプラクティス

テストランナーの設定

Dockerfileなどの初期設定

http://d.hatena.ne.jp/hirokiky/20120702/1341231182

Page 22: 価値を届ける技術 #bpstudy 96

DjangoRestFramework

REST APIが簡単に作れる

http://www.django-rest-framework.org/

Page 23: 価値を届ける技術 #bpstudy 96

Djangoの不足機能を補う

API自動生成だけでない

便利な機能

Page 24: 価値を届ける技術 #bpstudy 96

Serializer (FormのAPI向け)

入れ子もバリデーションチェックできる

{ “articles”: [ {“title”: “title”, “url”: “http://...”}... ] “bundled”: 8,}

Page 25: 価値を届ける技術 #bpstudy 96

django-rest-swaggerで自動生成

https://github.com/marcgibbons/django-rest-swagger

Page 26: 価値を届ける技術 #bpstudy 96

運用

Page 27: 価値を届ける技術 #bpstudy 96

Docker

Page 28: 価値を届ける技術 #bpstudy 96

既存の運用

Ansibleでの構築

コンテナでGracefulアップデート

Page 29: 価値を届ける技術 #bpstudy 96

Ansible

AnsibleMeetup 2015 09

http://ansible-users.connpass.com/event/18015/

Page 30: 価値を届ける技術 #bpstudy 96

新しい運用

ElasticBeanstalk

Page 31: 価値を届ける技術 #bpstudy 96

ElasticBeanstalk

1インスタンス複数コンテナ

オートスケール可能

CI連携で開発にデプロイ

Page 32: 価値を届ける技術 #bpstudy 96

ElasticBeanstalk

Page 33: 価値を届ける技術 #bpstudy 96

Fluent

S3, Bigqueryにアクセスログを集約

Page 34: 価値を届ける技術 #bpstudy 96

Fluent

Page 35: 価値を届ける技術 #bpstudy 96

Rundeck

バッチ管理サーバー

(スゴイcron)

http://rundeck.org/

Page 36: 価値を届ける技術 #bpstudy 96

Rundeck

Rundeckサーバー=>SSHログイン=>コマンド実行

定期実行

ジョブフロー定義

etc

Page 37: 価値を届ける技術 #bpstudy 96
Page 38: 価値を届ける技術 #bpstudy 96
Page 39: 価値を届ける技術 #bpstudy 96

Rundeck with Slack

https://github.com/higanworks/rundeck-slack-incoming-webhook-plugin

Page 40: 価値を届ける技術 #bpstudy 96

Sentry

https://getsentry.com/

Page 41: 価値を届ける技術 #bpstudy 96

Sentry

アプリケーションログの集約

管理・通知

Page 42: 価値を届ける技術 #bpstudy 96

Sentry

500系エラー

Pythonのロガーからのエラー

Page 43: 価値を届ける技術 #bpstudy 96

Sentry

エラー発生 => 初回のみ通知

エラーを確認済みにすると、再度通知

Slack通知

Page 44: 価値を届ける技術 #bpstudy 96

Sentry

Page 45: 価値を届ける技術 #bpstudy 96

Sentry

エラー通知からの対応の流れができる

ノート・GitHub Issue作成

Page 46: 価値を届ける技術 #bpstudy 96

Sentry

アプリケーションのトレースバック

発生時の変数が全て見れる

Page 47: 価値を届ける技術 #bpstudy 96

Sentry

エラー通知は対応フローが重要

Page 48: 価値を届ける技術 #bpstudy 96

NewRelic

http://newrelic.com/

Page 49: 価値を届ける技術 #bpstudy 96

NewRelicAPM

Page 50: 価値を届ける技術 #bpstudy 96

スキルの取得

Page 51: 価値を届ける技術 #bpstudy 96

スキルを盗んでもらう

スキルを一緒に取得する

(not 教える)

Page 52: 価値を届ける技術 #bpstudy 96

何がともあれ

信頼関係が大事だと思います

Page 53: 価値を届ける技術 #bpstudy 96

ペアプロ(作業)

まだ慣れない人と作業

モジュール設定で悩ましいとき作業

Page 54: 価値を届ける技術 #bpstudy 96

レビュー

いつものGitHub

Page 55: 価値を届ける技術 #bpstudy 96

レビュー伝え方

重要な実装上の問題

設計上のアドバイス

書き方などの軽微なコメント

Page 56: 価値を届ける技術 #bpstudy 96

レビュー伝え方

大事なことは大事と言う

どうでもいいことはどうでもいいと言う(or 言わない)

Page 57: 価値を届ける技術 #bpstudy 96

Wiki

Wikiに先にまとめる

書いたWikiを元に伝える

Page 58: 価値を届ける技術 #bpstudy 96

Wiki

読まれない文章に意味はない

Page 59: 価値を届ける技術 #bpstudy 96

技術の伝え方まとめ

信頼関係を大事にする

情報の重要度も伝える

情報は繰り返し使う

自戒を込めて。。。 :zoi:

Page 60: 価値を届ける技術 #bpstudy 96

サンクス

編成局メンバー

BePROUDメンバー

Py養成読本、Pyプロ

Page 61: 価値を届ける技術 #bpstudy 96

おわり

質疑応答 and/or 懇親会で