Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
価値を届ける技術
@hirokiky
価値
情報
情報を届ける
使いやすい
落ちない
早い/速い
内部的な価値
楽しく開発
夜眠れる
技術が伸びる
内製化
内製化
既存サービスの内製化
新規のサービスから置き換え
アーキテクチャ
サービス指向アーキテクチャ
1つの機能を1サービスとして作る
各サービスを連携させる
SOA現状
4つの内部サービス
3つの連携サーバー
2つのフロントサーバー
APIゲートウェイ
認証、権限管理
内部サーバーへのプロキシ
既存APIの整形
APIゲートウェイ
AWS
ElasticBeanstalk
VPC・内部ELB
全体図
開発
Python
日経内部のPythonな人々
開発しやすい
BePROUDの豊富な実績
Python3
Python3
日本語問題の少なさ
5年後も使える
ライブラリの問題は?
Python3で問題なし
8ヶ月に軽微な2,3件
Django
Django1.8
LongTermSupport (3years)
マイグレーション (1.7で追加)
http://djangoproject.jp/weblog/dajngo-1-8/
プロジェクトテンプレート機能
Djangoのベストプラクティス
テストランナーの設定
Dockerfileなどの初期設定
http://d.hatena.ne.jp/hirokiky/20120702/1341231182
DjangoRestFramework
REST APIが簡単に作れる
http://www.django-rest-framework.org/
Djangoの不足機能を補う
API自動生成だけでない
便利な機能
Serializer (FormのAPI向け)
入れ子もバリデーションチェックできる
{
“articles”: [
{“title”: “title”,
“url”: “http://...”}...
]
“bundled”: 8,
}
django-rest-swaggerで自動生成
https://github.com/marcgibbons/django-rest-swagger
運用
Docker
既存の運用
Ansibleでの構築
コンテナでGracefulアップデート
Ansible
AnsibleMeetup 2015 09
http://ansible-users.connpass.com/event/18015/
新しい運用
ElasticBeanstalk
ElasticBeanstalk
1インスタンス複数コンテナ
オートスケール可能
CI連携で開発にデプロイ
ElasticBeanstalk
Fluent
S3, Bigqueryにアクセスログを集約
Fluent
Rundeck
バッチ管理サーバー
(スゴイcron)
http://rundeck.org/
Rundeck
Rundeckサーバー=>SSHログイン=>コマンド実行
定期実行
ジョブフロー定義
etc
Rundeck with Slack
https://github.com/higanworks/rundeck-slack-incoming-webhook-plugin
Sentry
https://getsentry.com/
Sentry
アプリケーションログの集約
管理・通知
Sentry
500系エラー
Pythonのロガーからのエラー
Sentry
エラー発生 => 初回のみ通知
エラーを確認済みにすると、再度通知
Slack通知
Sentry
Sentry
エラー通知からの対応の流れができる
ノート・GitHub Issue作成
Sentry
アプリケーションのトレースバック
発生時の変数が全て見れる
Sentry
エラー通知は対応フローが重要
NewRelic
http://newrelic.com/
NewRelicAPM
スキルの取得
スキルを盗んでもらう
スキルを一緒に取得する
(not 教える)
何がともあれ
信頼関係が大事だと思います
ペアプロ(作業)
まだ慣れない人と作業
モジュール設定で悩ましいとき作業
レビュー
いつものGitHub
レビュー伝え方
重要な実装上の問題
設計上のアドバイス
書き方などの軽微なコメント
レビュー伝え方
大事なことは大事と言う
どうでもいいことはどうでもいいと言う(or 言わない)
Wiki
Wikiに先にまとめる
書いたWikiを元に伝える
Wiki
読まれない文章に意味はない
技術の伝え方まとめ
信頼関係を大事にする
情報の重要度も伝える
情報は繰り返し使う
自戒を込めて。。。 :zoi:
サンクス
編成局メンバー
BePROUDメンバー
Py養成読本、Pyプロ
おわり
質疑応答 and/or 懇親会で
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
Upcoming SlideShare
Loading in …5
×

価値を届ける技術 #bpstudy 96

5,456 views

Published on

サービスの内製化をするにはチームの技術力が必要です。 Python/Djangoでの開発、Docker, Ansibleでの運用、NewRelic、Sentry、Rundeckでの監視など、最大限技術を活用したサービス構築を目指しています。 技術面でもまた、たくさんの課題があります。

どんな技術を使えばいいの?
どんなアーキテクチャにすればいいの?
どう技術を取得していけば良いの?

事例を中心に、技術の取得、活用方法を紹介します。

Published in: Internet

価値を届ける技術 #bpstudy 96

  1. 1. 価値を届ける技術 @hirokiky
  2. 2. 価値 情報
  3. 3. 情報を届ける 使いやすい 落ちない 早い/速い
  4. 4. 内部的な価値 楽しく開発 夜眠れる 技術が伸びる
  5. 5. 内製化
  6. 6. 内製化 既存サービスの内製化 新規のサービスから置き換え
  7. 7. アーキテクチャ
  8. 8. サービス指向アーキテクチャ 1つの機能を1サービスとして作る 各サービスを連携させる
  9. 9. SOA現状 4つの内部サービス 3つの連携サーバー 2つのフロントサーバー
  10. 10. APIゲートウェイ 認証、権限管理 内部サーバーへのプロキシ 既存APIの整形
  11. 11. APIゲートウェイ
  12. 12. AWS ElasticBeanstalk VPC・内部ELB
  13. 13. 全体図
  14. 14. 開発
  15. 15. Python 日経内部のPythonな人々 開発しやすい BePROUDの豊富な実績
  16. 16. Python3
  17. 17. Python3 日本語問題の少なさ 5年後も使える
  18. 18. ライブラリの問題は? Python3で問題なし 8ヶ月に軽微な2,3件
  19. 19. Django
  20. 20. Django1.8 LongTermSupport (3years) マイグレーション (1.7で追加) http://djangoproject.jp/weblog/dajngo-1-8/
  21. 21. プロジェクトテンプレート機能 Djangoのベストプラクティス テストランナーの設定 Dockerfileなどの初期設定 http://d.hatena.ne.jp/hirokiky/20120702/1341231182
  22. 22. DjangoRestFramework REST APIが簡単に作れる http://www.django-rest-framework.org/
  23. 23. Djangoの不足機能を補う API自動生成だけでない 便利な機能
  24. 24. Serializer (FormのAPI向け) 入れ子もバリデーションチェックできる { “articles”: [ {“title”: “title”, “url”: “http://...”}... ] “bundled”: 8, }
  25. 25. django-rest-swaggerで自動生成 https://github.com/marcgibbons/django-rest-swagger
  26. 26. 運用
  27. 27. Docker
  28. 28. 既存の運用 Ansibleでの構築 コンテナでGracefulアップデート
  29. 29. Ansible AnsibleMeetup 2015 09 http://ansible-users.connpass.com/event/18015/
  30. 30. 新しい運用 ElasticBeanstalk
  31. 31. ElasticBeanstalk 1インスタンス複数コンテナ オートスケール可能 CI連携で開発にデプロイ
  32. 32. ElasticBeanstalk
  33. 33. Fluent S3, Bigqueryにアクセスログを集約
  34. 34. Fluent
  35. 35. Rundeck バッチ管理サーバー (スゴイcron) http://rundeck.org/
  36. 36. Rundeck Rundeckサーバー=>SSHログイン=>コマンド実行 定期実行 ジョブフロー定義 etc
  37. 37. Rundeck with Slack https://github.com/higanworks/rundeck-slack-incoming-webhook-plugin
  38. 38. Sentry https://getsentry.com/
  39. 39. Sentry アプリケーションログの集約 管理・通知
  40. 40. Sentry 500系エラー Pythonのロガーからのエラー
  41. 41. Sentry エラー発生 => 初回のみ通知 エラーを確認済みにすると、再度通知 Slack通知
  42. 42. Sentry
  43. 43. Sentry エラー通知からの対応の流れができる ノート・GitHub Issue作成
  44. 44. Sentry アプリケーションのトレースバック 発生時の変数が全て見れる
  45. 45. Sentry エラー通知は対応フローが重要
  46. 46. NewRelic http://newrelic.com/
  47. 47. NewRelicAPM
  48. 48. スキルの取得
  49. 49. スキルを盗んでもらう スキルを一緒に取得する (not 教える)
  50. 50. 何がともあれ 信頼関係が大事だと思います
  51. 51. ペアプロ(作業) まだ慣れない人と作業 モジュール設定で悩ましいとき作業
  52. 52. レビュー いつものGitHub
  53. 53. レビュー伝え方 重要な実装上の問題 設計上のアドバイス 書き方などの軽微なコメント
  54. 54. レビュー伝え方 大事なことは大事と言う どうでもいいことはどうでもいいと言う(or 言わない)
  55. 55. Wiki Wikiに先にまとめる 書いたWikiを元に伝える
  56. 56. Wiki 読まれない文章に意味はない
  57. 57. 技術の伝え方まとめ 信頼関係を大事にする 情報の重要度も伝える 情報は繰り返し使う 自戒を込めて。。。 :zoi:
  58. 58. サンクス 編成局メンバー BePROUDメンバー Py養成読本、Pyプロ
  59. 59. おわり 質疑応答 and/or 懇親会で

×