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.

DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し

2,408 views

Published on

https://devlove-kansai.doorkeeper.jp/events/36650
「インフラエンジニアの現場における仕事と文化」のDiff

Published in: Technology
  • Be the first to comment

DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し

  1. 1. 地道にAWS構築自動化に 取り組んでいるお話し 2016.2.5 DevLOVE関西
  2. 2. 自己紹介 1 株式会社サーバーワークス インプリメンテーション部[大阪]
  3. 3. 自己紹介(経歴) ユーザ系情報システム子会社(新卒〜2014.7) 自社グループ向け各種R&D 社外向けSI(エンタープライズJava) 自社グループ向け開発標準化 など 株式会社サーバーワークス(2014.8〜) 2 インフラエンジニア歴一年半
  4. 4. 自己紹介(CoderDojo長岡京) メンター募集中! http://coderdojo-nagaokakyo.doorkeeper.jp/ 3
  5. 5. たぶん、本日期待されている内容 インフラエンジニアの仕事 構築自動化活動の進め方 最新のインフラ技術動向 インフラエンジニアとアプリ開発者の距離の縮め方 4
  6. 6. 本日お話ししたいこと サーバーワークスのインフラエンジニアの仕事 構築自動化活動の進め方 最新のインフラ技術動向 インフラエンジニアとアプリ開発者の距離の縮め方 5
  7. 7. 本日のアジェンダ 1. サーバーワークスとAWS導入支援業務 2. AWS構築自動化の挑戦 3. なぜ構築自動化を推進していけるのか 4. 最後に 6
  8. 8. 本日のアジェンダ 1. サーバーワークスとAWS導入支援業務 2. AWS構築自動化の挑戦 3. なぜ構築自動化を推進していけるのか 4. 最後に 7
  9. 9. サーバーワークスのビジョン 8
  10. 10. サーバーワークスの社員って実際何してんの? 9 日々、社内チャットやSNSで 遊んでいます。
  11. 11. サーバーワークスの社員って実際何してんの? 10 我々自身も各種クラウドサービスを フル活用しながら働いています。
  12. 12. サーバーワークスの社員って実際何してんの? 11
  13. 13. サーバーワークスのAWS事業 お客様の要望に応じたクラウドの設計・導入支援 AWSの運用を自動化するSaaSサービス 24時間365日のAWSのマネージドサービス 12 本日のお話
  14. 14. サーバーワークスのAWS導入支援業務 13 様々なサービスを組み合わせ 価値を最大化できるソリューションを
  15. 15. 受託スコープ アプリ開発会社様 / コンテンツ制作会社様 AWSを導入するお客様 インフラ担当 アプリケーション担当 (アプリケーション担当) アプリ 開発会社様 AWSを導入する お客様 インフラ担当アプリケーション担当 よくあるパターン1 よくあるパターン2 最も得意とする AWSインフラSIで価値を提供 14
  16. 16. 1. 要件定義・概要設計※(担当:法人営業課) • 実現したいゴール共有 • AWSの構成・スペック設計 2. 詳細設計※(担当:技術課) • ネットワーク・各種パラメータ設計 3. 構築※(担当:技術課) 4. アプリケーション構築(担当:お客様) AWS導入支援業務の大まかな流れ ※サーバーワークス担当 本日のお話 15
  17. 17. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ 16 AWSパラメータ設計を お客様と Wiki上で共有
  18. 18. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ 17 『デフォルト値で』って何やねんw
  19. 19. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ 18 エンジニアは ノウハウを きちんと社内に溜めてる
  20. 20. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ 19 その情報あったんかい!!
  21. 21. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ まさに作業の構築フェーズ 20 設計したパラメータを黙々と転記w
  22. 22. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ まさに作業の構築フェーズ 増加・短納期化していく案件 21
  23. 23. AWS導入支援業務における課題 まだまだ属人性が高い設計フェーズ まさに作業の構築フェーズ 増加・短納期化していく案件 22 結果として、 AWS導入のスピードUPの障壁に
  24. 24. 本日のアジェンダ 1. サーバーワークスとAWS導入支援業務 2. AWS構築自動化の挑戦 3. なぜ構築自動化を推進していけるのか 4. 最後に 23
  25. 25. 2014.11末〜 自動化タスクフォース始動 (有志によるチーム活動) 24
  26. 26. 実現したいこと 漏れ、手戻りなく確実な設計が行えること サーバーワークスの設計構築ノウハウを集約・展 開できること 設計通りのAWS環境が、AWSマネジメントコン ソールと同等、もしくはそれ以上の早さで構築で きること 25
  27. 27. 解決策 定義書から構築用プログラムを 自動生成し、実行する。 26
  28. 28. AWS構築自動化の構想 AWSパラメータ定義(設定値)をYAMLファイルに記載 27
  29. 29. YAMLイメージ 28
  30. 30. AWS構築自動化の構想① AWSパラメータ定義(設定値)をYAMLファイルに記載 YAMLファイルからAWS CloudFormation(CFn)用JSON ファイルを生成し、CFnで一気に構築 29
  31. 31. CFn用JSONイメージ 30
  32. 32. CFn実行イメージ 31
  33. 33. AWS構築自動化の構想② AWSパラメータ定義(設定値)をYAMLファイルに記載 YAMLファイルからAWS CloudFormation(CFn)用JSON ファイルを生成し、CFnで一気に構築 顧客向けパラメータ設計書もYAMLファイルから自動生成 32
  34. 34. Markdownイメージ 33
  35. 35. AWS構築自動化の構想 AWSパラメータ定義(設定値)をYAMLファイルに記載 YAMLファイルからAWS CloudFormation(CFn)用JSON ファイルを生成し、CFnで一気に構築 34 本命のCFn用JSON生成機能開発 から着手
  36. 36. 活動開始から約2ヶ月後 35
  37. 37. 実プロジェクトで 自らドッグフーディング 36
  38. 38. こんな感じ $ ruby yml2json.rb project.yml 37
  39. 39. 『アカン。これはない。』 38
  40. 40. 課題 スクリプト実行環境の準備コスト 顧客向けパラメータ設計書とYAMLの二重管理 YAML地獄 CFn実行エラー・デバッグ 39
  41. 41. 今までの構築時間の数倍かかる。 40
  42. 42. AWSマネジメントコンソールによる 構築には絶対に勝てない。 41
  43. 43. 自動化タスクフォースにとっての課題 構築自動化の活動に時間が割けない YAML+CFnのアプローチが正しかったのか全くわ からない 42
  44. 44. 『構築自動化の構想は諦めよかw』 43 コレ、2回くらい考えた。
  45. 45. 引っ掛かる思い・・・ 44
  46. 46. AWSらしさって何や? サーバーワークスらしさって何や? 連敗の自動化活動 45
  47. 47. 考え方を修正 活動に時間が割けない →本業務の空き時間で活動を、という甘い考えは捨てた。 YAML+CFnのアプローチが正しかったのか全くわ からない →正解は誰にもわからない。小さく早く試して、たくさ ん失敗すること。 46
  48. 48. そして、軌道修正。 CFn用JSON生成機能の開発を 一旦止めたった。 47
  49. 49. 課題 スクリプト実行環境の準備コスト 顧客向けパラメータ設計書とYAMLの二重管理 YAML地獄 CFn実行エラー・デバッグ 48 最優先で対応すること で、導入障壁をなくす
  50. 50. ①スクリプトのWEBアプリ化 49
  51. 51. ①スクリプトのWEBアプリ化 50 • スクリプト実行環境準備の手間を解消 • エンジニアは常に最新の機能を利用可能
  52. 52. ②Markdown生成機能の追加 51
  53. 53. ②Markdown生成機能の追加 52 ・パラメータ設計書が作成不要に ・構築に必要なパラメータを全て網羅
  54. 54. 実プロジェクトで 自らドッグフーディング 53
  55. 55. 率直な感想 『これはSUGEEEEEEEE!!!!!』 54
  56. 56. 黄金のサイクル 55
  57. 57. 黄金のサイクル 56 少しずつ少しずつ 適用事例が増え始める。
  58. 58. 57 社内で公開しているYAML雛形に 少しづつ設計ノウハウが集約
  59. 59. 現場の負担増にも関わらず、 試してくれるメンバーに本当に感謝。 58
  60. 60. 後日談 59
  61. 61. ①CFn用JSONを分割生成 60 必要とされるAWSリソース(EC2やRDS)から優 先的にリリースできるように 要求の変化に柔軟に対応できるように
  62. 62. ②お手軽にRUN 61 CFnではDRY-RUNできないかわりに、生成される CFn用JSONの構成をひと工夫 よりお安く より柔軟に
  63. 63. ②お手軽にRUN 〜よりお安く〜 62 CFn実行時にインスタンスタイプを選択できるよう に
  64. 64. ②お手軽にRUN 〜より柔軟に〜 63 どのAWS環境でも起動できるように
  65. 65. ③構築後環境の確認 64 自動構築してもテスト(確認)は必要 CFnでカバーできていない箇所の把握 自動生成スクリプトの不具合(もあるかもしれない) 誤ったパラメータを指定した際の、CFnの想定外の挙動 現状は、非効率な 目視確認作業が発生
  66. 66. 目視確認から、自動テストへ 65 テストコードも自動生成 Ymlからaws-specコードを 生成
  67. 67. 目視確認から、自動テストへ 66 テストコードも自動生成 Ymlからaws-specコードを 生成 テストフレームワーク RSpec上で、AWS SDKで取 得したお客様環境の構築情 報を検証
  68. 68. 目視確認から、自動テストへ 67 テスト実行環境も提供 即テスト実行可能な状態の Jenkinsとビルドジョブを提供 お客様のCredentialを守る仕 組みも隠蔽
  69. 69. 目視確認から、自動テストへ 68 テスト実行環境も提供 即テスト実行可能な状態の Jenkinsとビルドジョブを提供 お客様のCredentialを守る仕 組みも隠蔽 先月から取り組みを始めたばかり。 地道にドッグフーディングから。
  70. 70. 本日のアジェンダ 1. サーバーワークスとAWS導入支援業務 2. AWS構築自動化の挑戦 3. なぜ構築自動化を推進していけるのか 4. 最後に 69
  71. 71. 自動化の取り組みでよくあるやつ 本業が忙しくて時間が割けない 作ったけど、誰も使わないオレオレツール 人手でカバーするほうが安いから見送り 70
  72. 72. 時間 モチベーション 行動指針 71 なぜ構築自動化活動が続いているのか
  73. 73. 時間 モチベーション 行動指針 72 なぜ構築自動化活動が続いているのか
  74. 74. 時間 『本業が忙しくて・・』 『じゃ、改善活動の優先度を上げよう。』 受注数を減らして時間を確保する? 緊急障害対応を後回しにする? 73 改善活動の優先度が 本業よりも上がることはない。
  75. 75. 改善活動は別腹と割り切る 自分の場合、、 定常業務時間内は、改善活動に手を出さず、本業 タスクに注力 定常業務時間外(残業時間)を、改善活動に充てる リモートワーク制度を活用し、通勤時間の往復二時間分 を改善活動に 74 少しずつ、確実に進捗するように
  76. 76. 時間 モチベーション 行動指針 75 なぜ構築自動化活動が続いているのか
  77. 77. モチベーション モチベーション1.0 生きるため、組織継続のために行動する(生理的欲求) モチベーション2.0 やればやるだけ報酬・メリットが増えるから行動する (社会的欲求・外的動機づけ) モチベーション3.0 自分が好きなことだから行動する(自己実現欲求・内的 動機づけ) 76 http://okanewiki.com/motivation-30.html
  78. 78. モチベーション モチベーション1.0 生きるため、組織継続のために行動する(生理的欲求) モチベーション2.0 やればやるだけ報酬・メリットが増えるから行動する (社会的欲求・外的動機づけ) モチベーション3.0 自分が好きなことだから行動する(自己実現欲求・内的 動機づけ) 77 http://okanewiki.com/motivation-30.html 40歳を目前にした おっさんの危機感
  79. 79. モチベーション モチベーション1.0 生きるために行動する(生理的欲求) モチベーション2.0 やればやるだけ報酬・メリットが増えるから行動する (社会的欲求・外的動機づけ) モチベーション3.0 自分が好きなことだから行動する(自己実現欲求・内的 動機づけ) 78 やっぱり、AWS、 CloudFormation楽しいれす ^q^ http://okanewiki.com/motivation-30.html
  80. 80. 余談)CloudFormationの魅力 ドSな仕様 限られた機能を駆使しながら如何にして実現するか 成功したときの快感 79
  81. 81. 時間 モチベーション 行動指針 80 なぜ構築自動化活動が続いているのか
  82. 82. サーバーワークスの行動指針 スピード オーナーシップ 成果 顧客視点 81 素早い行動によって得られる フィードバックを、何よりも重視
  83. 83. 構築自動化で得られるもの 削減コストではなく、スピード・正確さ ユーザに早く試していただき、そこから得られる フィードバックが重要 82 スピードに投資できる組織
  84. 84. 本日のアジェンダ 1. サーバーワークスとAWS導入支援業務 2. AWS構築自動化の挑戦 3. なぜ構築自動化を推進していけるのか 4. 最後に 83
  85. 85. 半年で一旦終わらせるつもりだった。 が、気づけば一年を経過。 84
  86. 86. 構築自動化活動は、常に 35点(自己採点)の出来栄え。 85
  87. 87. やるべきこといっぱい 新たな改善要望 進化する技術(AWS)への追従 ビジネスの変化、、 86 たぶん終わりがない。 改善と軌道修正をやめたら、負け。
  88. 88. 本日は、 構築自動化という 改善活動の一例でしたが、 87
  89. 89. お伝えしたいこと 誰でも自分にしかできないことがあるはず 大切なのは行動すること 最後まで続けること 88
  90. 90. END 89
  91. 91. ご参考)エンジニアアブログ 2015/07/09 http://blog.serverworks.co.jp/tech/2015/07/09/how_to_provision_aws_infrastructure_by_cloudformation/ 90

×