新人でも大丈夫。Web apiで業務改善

143 views

Published on

新人でもできる。WEB APIを利用してツールを作成して開発チームに貢献しよう。事例紹介。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
143
On SlideShare
0
From Embeds
0
Number of Embeds
75
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

新人でも大丈夫。Web apiで業務改善

  1. 1. Copyright © BizReach, Inc. All Right Reserved. 新人でも大丈夫。WEB APIで業務改善 株式会社ビズリーチ 澤口 勲 2016/11/01
  2. 2. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  3. 3. Copyright © BizReach, Inc. All Right Reserved. 今日話すこと話さないこと 話すこと ● ごく簡単なAPIについての説明。 ● WEBサービスが公開している REST APIを利用して   実際にビズリーチの開発チームで作ったツールの事例紹介。 話さないこと ● APIの詳しい概念。 ● APIの詳しい使い方。
  4. 4. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  5. 5. Copyright © BizReach, Inc. All Right Reserved. 自己紹介 ● 澤口 勲 ● ビズリーチ 4年目 ● JAVA 5年くらい PHP 10年くらい ● 品質管理や業務改善してます ● クラフトビールとボードゲーム好き
  6. 6. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  7. 7. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? APIとは、アプリケーションプログラムインターフェイスの略語で、プログラミングの際に使 用できる命令や規約、関数等の集合の事を指す。ソフトウェア開発の際、いちから全て を作るより、APIを利用すればもともとあるプログラムを呼び出して、その機能を組み込 んだソフトウェアを開発することができる。 現在Webサービスの提供事業者は自社サービスを普及させるために自社サービスの 機能の一部などを積極的に公開している。この時に利用される仕組みもAPI(WebAPI) である。逆に既に広く普及しているサービスと自社のアプリケーションやWebサービスを APIで連携させることで、自社サービスの価値を向上させることもできる。また、APIを公 開して、機能の利用に応じて課金するビジネスモデルも一般的になっている。 引用元:http://it-trend.jp/words/api
  8. 8. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? APIとは、アプリケーションプログラムインターフェイスの略語で、プログラミングの際に使 用できる命令や規約、関数等の集合の事を指す。ソフトウェア開発の際、いちから全て を作るより、APIを利用すればもともとあるプログラムを呼び出して、その機能を組み込 んだソフトウェアを開発することができる。 現在Webサービスの提供事業者は自社サービスを普及させるために自社サービスの 機能の一部などを積極的に公開している。この時に利用される仕組みもAPI(WebAPI) である。逆に既に広く普及しているサービスと自社のアプリケーションやWebサービスを APIで連携させることで、自社サービスの価値を向上させることもできる。また、APIを公 開して、機能の利用に応じて課金するビジネスモデルも一般的になっている。 引用元:http://it-trend.jp/words/api
  9. 9. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? APIとは、アプリケーションプログラムインターフェイスの略語で、プログラミングの際に使 用できる命令や規約、関数等の集合の事を指す。ソフトウェア開発の際、いちから全て を作るより、APIを利用すればもともとあるプログラムを呼び出して、その機能を組み込 んだソフトウェアを開発することができる。 現在Webサービスの提供事業者は自社サービスを普及させるために自社サービスの 機能の一部などを積極的に公開している。この時に利用される仕組みもAPI(WebAPI) である。逆に既に広く普及しているサービスと自社のアプリケーションやWebサービスを APIで連携させることで、自社サービスの価値を向上させることもできる。また、APIを公 開して、機能の利用に応じて課金するビジネスモデルも一般的になっている。 引用元:http://it-trend.jp/words/api
  10. 10. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? APIを公開しているWEBサービスは たくさんあるんです!
  11. 11. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? 開発チームで使うサービスにも
  12. 12. Copyright © BizReach, Inc. All Right Reserved. REST API叩いてみたイメージ # GET(データ取得) $ curl http://example.com/api_endpoint?name=hoge&age=35 # POST(データ登録) $ curl http://example.com/api_endpoint -X POST -d "user[name]=hoge" -d "user[age]=20" -d "user[gender]=male" # PUT(データ更新) $ curl http://example.com/api_endpoint -X PUT -d "user[name]=fuga" -d "user[age]=35" # DELETE(データ削除) $ curl http://example.com/api_endpoint -X DELETE -d "user[id]=XXXXXXXXXX" { "id": "XXXXXXXXXX", "name": "fuga" "age": "35" "gender": "male" } APIにリクエストを投げるとJSONやXMLでレスポンスが返ってくる! WEB APIってなんだろう?
  13. 13. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? イメージが湧きづらいと思いますので ブラウザでGETリクエストを叩いてみます。(実演)
  14. 14. Copyright © BizReach, Inc. All Right Reserved. WEB APIってなんだろう? googleやamazon、Facebookなど大きなサービスの場合は API規模もでかいので、使いやすいよう各種言語用のSDKが提供されています。 [簡単に言うと] リクエストを送ると、XMLやJSONでレスポンスが返ってくるやつ!
  15. 15. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  16. 16. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 どこでもよくある問題かと思いますが・・・ 開発しているサイトのError発生件数やSlowQuery件数 その発生件数の多いもの サイトの平均表示時間、時間のかかっているページ 計測する環境はあるし、開発メンバーなら誰でも観られるけれど 一部の人しか観ていない or 毎日は観ていないってことありませんか?
  17. 17. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 サイトの規模が大きくなればなるほど増えるErrorやSlowQuery たしかに、主要機能はちゃんと動いているのだけれど
  18. 18. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 でも、問題を認識していて危機感をおぼえているのは一部の人だけ。 そんな状況にビズリーチ開発チームもありました。      
  19. 19. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 でも、問題を認識していて危機感をおぼえているのは一部の人だけ。 そんな状況にビズリーチ開発チームもありました。 ErrorLog発生件数、SlowQuery発生件数 数千件/週 (フロント、管理画面、バッチ合計 )      うーん、こまった>
  20. 20. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 数字を共有して、周囲に修正を呼びかけてみるもののなかなか減らない エラーやSlowquery件数たち・・・ 一部の人しか関心を持っていないみたい。         どうしよう>
  21. 21. Copyright © BizReach, Inc. All Right Reserved. 開発チームで気づいた問題点 じゃあ、みんなが毎日件数を見るようにしよう! 可視化はできているんだから、デリバリーしよう。 ここ最近、新しく出てきたErrorや 発生件数が伸びてきているErrorも通知しよう。 みんなの関心を引き出そう!
  22. 22. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  23. 23. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた kibanaからデータをとって開発者チャットに流そう!
  24. 24. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた kibanaにはAPIがありませんでした…。
  25. 25. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた kibanaにはAPIがありませんでした…。 どうしよう、エラー件数の一覧画面からスクレイピング…? でもkibanaの画面、Ajaxでデータ取得してるから取れない…。             
  26. 26. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた あれ?そういえば、ログ情報を入れてるElasticsearchは?
  27. 27. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた あった!!
  28. 28. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた あった!!
  29. 29. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた 業務ではJAVA8を使っているけれど、慣れたPHPで書いちゃいました。 ・どうせコード量は大したことない(2〜3ファイル) ・慣れているから実装が早い ・LLなのでトライ&エラー、調整しやすい ・macに最初から環境が入ってる
  30. 30. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた PHPでElasticSearchAPIを叩いて、ChatworkにError件数やSlowQuery件数を通知
  31. 31. Copyright © BizReach, Inc. All Right Reserved. WEB APIを利用してツールを作ってみた PHPでElasticSearchAPIを叩いて、ChatworkにError件数やSlowQuery件数を通知 ついでにGoogleSpreadsheetに新着Errorや急上昇Errorのログを取っておこう。
  32. 32. Copyright © BizReach, Inc. All Right Reserved. できました。 ・昨日のErrorLog件数、Slowquery件数通知BOT ・新着ErrorLog、Slowquery&急上昇ErrorLog、Slowquery通知BOT WEB APIを利用してツールを作ってみた
  33. 33. Copyright © BizReach, Inc. All Right Reserved. できました。 新着ErrorLog、Slowquery&急上昇ErrorLog、Slowquery通知BOT [新着] 昨日と過去2週間のLogを比較し、新しく発生したメソッドと件数を通知 WEB APIを利用してツールを作ってみた
  34. 34. Copyright © BizReach, Inc. All Right Reserved. できました。 新着ErrorLog、Slowquery&急上昇ErrorLog、Slowquery通知BOT [新着] 昨日と過去2週間のLogを比較し、新しく発生したメソッドと発生件数を通知 [急上昇] 直近1週間と、それ以前3週間のLogを比較し 上昇角度(arctan)が上がっているメソッドと発生件数通知 WEB APIを利用してツールを作ってみた
  35. 35. Copyright © BizReach, Inc. All Right Reserved. 新着情報、急上昇を毎日始業時間に開発チームチャットへ自動投稿  → みんなのErrorLogやSlowQueryへの関心が上がった!    プログラムもどんどん修正されました! WEB APIを利用してツールを作ってみた
  36. 36. Copyright © BizReach, Inc. All Right Reserved. 新着情報、急上昇を毎日始業時間に開発チームチャットへ自動投稿 結果半年で… ErrorLog発生件数  90%OFF WEB APIを利用してツールを作ってみた
  37. 37. Copyright © BizReach, Inc. All Right Reserved. 新着情報、急上昇を毎日始業時間に開発チームチャットへ自動投稿 結果半年で… ErrorLog発生件数  90%OFF SlowQuery発生件数  75%OFF                      (ほぼBatchサーバーのみ) WEB APIを利用してツールを作ってみた
  38. 38. Copyright © BizReach, Inc. All Right Reserved. 他の問題を探しました バグトラッキングシステムから、リリース物件一覧を作りたい。 ● テンプレートシートをコピー ● バグトラッキングシステムからリリース日で絞ってCSVエクスポート ● シートにペーストして整形
  39. 39. Copyright © BizReach, Inc. All Right Reserved. バグトラッキングシステムから、リリース物件一覧を作りたい。                 作りました。 他の問題を探しました
  40. 40. Copyright © BizReach, Inc. All Right Reserved. 他の問題を探しました バグトラッキングシステムのチケットに   リリース日項目の値が入っていないとリリース前テストから漏れる。 ● マージ済ステータスだけれどリリース日が入っていないもの一覧取得 ● メンションを付けてチャットで通知
  41. 41. Copyright © BizReach, Inc. All Right Reserved. 他の問題を探しました バグトラッキングシステムのチケットに   リリース日項目の値が入っていないとリリース前テストから漏れる。                 作りました。
  42. 42. Copyright © BizReach, Inc. All Right Reserved. 他の問題を探しました サイトのレスポンスタイム改善プロジェクトが発足 GoogleAnalyticsを見ればいいのですが・・・ ● 担当者しか毎日は見ないので他の人は経過がわからない ● 権限的にアクセスできない人もいる ● 一覧性が悪い(一度に表示すると重い)
  43. 43. Copyright © BizReach, Inc. All Right Reserved. 他の問題を探しました サイトのレスポンスタイム改善プロジェクトが発足 GoogleAnalyticsを見ればいいのですが・・・                             やっぱり作りました
  44. 44. Copyright © BizReach, Inc. All Right Reserved. 作ったもの一覧 ● 前日のErrorLog,Slowquery件数をサーバー毎に開発者チャットに通知 ● 新着、伸び率の情報をサーバー毎に通知 ● バグトラッキングシステムからリリース物件一覧表を作成 ● バグトラッキングシステムの入力不備を通知 ● GoogleDriveにある開発資料の定期バックアップ ● UnitTestのテスト数、カバレッジ率、成功率などを通知 ● サイトのレスポンスタイム、時間のかかっているものを記録 ● 定時の時報 ● etc….
  45. 45. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  46. 46. Copyright © BizReach, Inc. All Right Reserved. 他の部署から仕事がきた 業務の合間にWEB APIを叩きまくっていたある日…。
  47. 47. Copyright © BizReach, Inc. All Right Reserved. 他の部署から仕事がきた 業務の合間にWEB APIを叩きまくっていたある日…。 マーケティング部の効果測定用レポートの作成に時間がかかっている。 主要な広告媒体はAPI公開を公開しているので自動化したい。
  48. 48. Copyright © BizReach, Inc. All Right Reserved. 他の部署から仕事がきた 各広告媒体からAPIで取得→ googleスプレッドシートに出力+完了通知 サーチネットワーク(検索広告) ディスプレイアドネットワーク(バナー広告) スポンサードサーチ(検索広告) ディスプレイアドネットワーク(バナー広告)
  49. 49. Copyright © BizReach, Inc. All Right Reserved. まとめ ● 情報は手を伸ばすより、向こう側から来る方がよい   興味のある人、必要のある人は自分から情報にアクセスするが   関心の少ない人も定期的に通知がくると見てくれる。   情報の集まる場所もなるべく1箇所に集約する。   (作るだけじゃなくて、見る意義を伝えることも大事)
  50. 50. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  51. 51. Copyright © BizReach, Inc. All Right Reserved. まとめ ● 情報は手を伸ばすより、向こう側から来る方がよい ● 自分の業務もいいけれど、チームの業務にも目を向ける ● できることからはじめてみよう
  52. 52. Copyright © BizReach, Inc. All Right Reserved. まとめ ● 自分の業務もいいけれど、チームの業務にも目を向ける 自分の業務効率を改善するのも大事だけれど チームが抱えている問題に目を向ける。 問題というと難しいけれど、面倒だなぁと思うこと、本当はこうだったらいいのにと 思った事のそばに問題はあります。
  53. 53. Copyright © BizReach, Inc. All Right Reserved. まとめ ● できることからはじめてみよう 使い方がわかってしまえば、APIはかんたんです。 興味のある言語を勉強するついででもよいですし まず「使っているWEBアプリ API」で検索してみましょう。   
  54. 54. Copyright © BizReach, Inc. All Right Reserved. おまけ WEBサービス同士をノンプログラミングで繋いで連携するWEBサービス IFTTT(イフト) https://ifttt.com/ zapier(ザピア) https://zapier.com/ mythings https://mythings.yahoo.co.jp/   
  55. 55. Copyright © BizReach, Inc. All Right Reserved. アジェンダ 1. 自己紹介 2. WEB APIってなんだろう? 3. 開発チームで気づいた問題点 4. WEB APIを利用してツールを作ってみた 5. 他の部署から仕事がきた 6. まとめ 7. 質疑応答
  56. 56. Copyright © BizReach, Inc. All Right Reserved. ご静聴ありがとうございました。

×