OSC2017 Chiba Ansible による自動構築 ベストプラクティスを OSS で公開 配布用 2017 年 9 月 2 日 TIS 株式会社 OSS 推進室 溝口則行 Copyright 2017 TIS Inc. All rights reserved.
Agenda n 自己紹介 & 私たちのチームの紹介 n 私たちが目指していること n SHIFT 紀元前 : OSS ミドルウェアのおすすめパターン化 n Project SHIFT & SHIFT ware n SHIFT ware" 公開 n まとめ Copyright 2017 TIS Inc. All rights reserved. 2
自己紹介 溝口則行, TIS 株式会社 IT 基盤技術本部 OSS 推進室長 2000 年代前半 : LISP でエキスパートシステム型ビジネスアプリの開発 UNIX と C 言語を中心にしたシステム開発 消費者向けインターネットサイトのシステム構築, 運用保守 2000 年代前半 : TIS 戦略技術センター ( 現組織名 ) にて技術コンサルティング 得意分野 : Linux/UNIX 系システムでのミドルウェア 性能エンジニアリング ミドルウェアを中心にした OSS 活用推進グループのリーダ 2015 年度 : OSS 推進室室長 その他 : オープンソースビジネス推進協議会 (OBCI) 理事 OSS コンソーシアム理事 OSS 運用管理勉強会世話人 経済産業省所管情報処理技術者試験試験委員 執筆 : @IT 連載 性能エンジニアリング入門, 他 http://www.atmarkit.co.jp/fnetwork/index/index_perform.html Copyright 2017 TIS Inc. All rights reserved. 3
私たちのチーム OSS コミュニティへの貢献 : Zabbix の情報発信 機能強化 クラウド環境を監視するための 拡張機能を OSS 公開 コミュニティ活動への 参加 運営協力 ラトビア共和国 リガで開催された 年次大会での講演 マニュアルだけではわからない 活用のノウハウを書籍化 宣伝! Copyright 2017 TIS Inc. All rights reserved. 4
私たちのチーム OSS コミュニティへの貢献 : PostgreSQL の情報発信 機能強化 コンソーシアム WG リーダと して検証成果を発表 PostgreSQL 監視 機能を OSS 公開 有力メディアを通じて 検証成果を発表 コミュニティからの表彰 宣伝! Copyright 2017 TIS Inc. All rights reserved. 5
私たちのチーム OSSコミュニティへの貢献 Ansibleの情報発信 今年 集客力抜群な ネタとタレント 既に満員御礼 Copyright 2017 TIS Inc. All rights reserved. 宣伝 6
私たちの取り組み OpenStack 技術者育成 宣伝! Copyright 2017 TIS Inc. All rights reserved. 7
私たちの取り組み - これまで公開してきた OSS TIS & SRA OSS 共同開発 宣伝! Copyright 2017 TIS Inc. All rights reserved. 8
私たちが目指していること クラウド時代のオープンな IT 基盤のために Copyright 2017 TIS Inc. All rights reserved. 9
OSS の活用推進の立場から 個々の OSS 自体の成熟度の問題ではなく, 主に活用ノウハウの成熟度の問題 O S S の成熟度 ー 領域 Web, メール ( 単体 ) ワークグループ OA DB ( 単体 ) 製品毎の成熟度 Web, AP サーバ 業務 サービス 基幹業務 個別製品を越えた対応が必要 = インテグレーションが必要 参考 : IPA, オープンソースで構築! IT システム導入虎の巻 http://www.ipa.go.jp/software/open/ossc/book/toranomaki.html Copyright 2017 TIS Inc. All rights reserved. 10
IT 基盤技術参照モデル ( 策定中 ) ( 運用サービス ) ( 業務アプリケーション / サービス ) 運用サービス 運用自動化 運用管理基盤 監視 バッチジョブ管理 構成管理 バックアップ 性能管理 インシデント管理 セキュリティ管理 運用インテグレーション ( 基盤構築 ) 導入 パラメータ設計 設定 構築自動化 Copyright 2017 TIS Inc. All rights reserved. 基盤ソフトウェア ( 従来系ミドル ) Webサーバ AP サーバ DBMS OS ( 新世代サービス系 ) AI/Deep Learning ビッグデータ処理 分散処理基盤 仮想化基盤 オーケストレーション サーバ仮想 SDS 化 ハードウェア サーバ (CPU) ストレージ ( 共通サービス系 ) 認証 ID 管理 メッセージング クラスタウェア SDN ネットワーク 可用性 性能 拡張 ( 他 ) 11
推奨構成パターンの一例 ( 運用サービス ) ( 業務アプリケーション / サービス ) 運用サービ ス 運用自動化 運用管理基盤 監視 Zabbix バッチジョブ管理 JobSch. 構成管理 バックアップ Bacula 性能管理 インシデント管理 OTRS セキュリティ管理 運用インテグレーション Copyright 2017 TIS Inc. All rights reserved. ( 基盤構築 ) 導入 パラメータ設計 設 定 構築自動化 Ansible Serverspec 基盤ソフトウェア ( 従来系ミドル ) Webサーバ AP サーバ JBoss DBMS OS 仮想化基盤 AWS Apache Tomcat PostgreSQL サーバ仮想化 ハードウェア サーバ (CPU) ( 新世代サービス系 ) AI/Deep Learning ビッグデータ処理 分散処理基盤 オーケストレーション SDS ストレージ ( 共通サービス系 ) 認証 ID 管理 メッセージング クラスタウェア Linux Windows Pacemaker DRBD vsphere (OpenStack) SDN ネットワーク 可用性 性能 拡張 ( 他 ) 12
自動化をエンジンとして, 品質と生産性の向上を目指す ( 運用サービス ) ( 業務アプリケーション / サービス ) 運用サービ ス 運用自動化 運用管理基盤 監視 Zabbix script バッチジョブ管理 JobSch. script 構成管理 バックアップ Bacula script 性能管理 インシデント管理 OTRS script セキュリティ管理 運用インテグレーション Copyright 2017 TIS Inc. All rights reserved. ( 基盤構基盤ソフトウェア ( 従来系ミドル ) ( 新世代サービス系 ) ( 共通サービス系築 ) ) Webサーバ AI/Deep 認証 ID 管理 Apache 可用性 Learning script APサーバ ビッグデータ処メッセージング 性能 JBoss Tomcat 理 拡張 script script DBMS 分散処理基盤 PostgreSQL Ansible script Serverspec OS Linux Windows クラスタウェ script script Pacemaker script DRBD 導入 パラメータ設計 設 定 構築自動化 仮想化基盤 オーケストレーション AWS vsphere (OpenStack) サーバ仮想 script SDS script SDN script 化 ハードウェア サーバストレージ ネットワーク (CPU) ア ( 他 ) 13
SHIFT 紀元前 : OSS ミドルウェアのおすすめパターン化 ISHIGAKI Template 2010 年 Copyright 2017 TIS Inc. All rights reserved. 14
OSS 推奨組合せ ISHIGAKI Template このときは Chef だった Copyright 2017 TIS Inc. All rights reserved. 15
ISHIGAKI Template の構成パターン Copyright TIS Enterprise 2017 TIS OSS Inc. All Support rights reserved. - 8 - TIS Inc. http://www.tis.jp/r/oss 16
Project SHIFT & SHIFT ware Copyright 2017 TIS Inc. All rights reserved. 17
これまでの IT インフラ構築 保守 運用 品質低下 属 化 引き継ぎの課題 コストアップ ドキュメントと実機の乖離 順書 設計書 的ミス リニアなコスト増加 Copyright 2017 TIS Inc. All rights reserved. 18
これからの IT インフラ構築 保守 運用 ー 化 品質 使 者に依存しない品質 SHIFT ware 産性 コード管理による運 簡素化 順書 設計書 自動化 テスト済みのコードで構築 コード 台数に依存せず並列実 SHIFT ware Copyright 2017 TIS Inc. All rights reserved. 19
IT インフラエンジニアの課題 だけど IT インフラエンジニアは 従来の課題をクリアしつつ 技術の変化にも対応しないといけない板挟み状態 OLD NEW Copyright 2017 TIS Inc. All rights reserved. 20
Infrastructure as Code IT インフラの構成を プログラムのコードで管理する手法 - name: network configurajon os_network: cloud: demo name: demo_network - name: subnet configurajon os_subnet: cloud: demo name: demo_subnet network_name: demo_network cidr: 192.168.151.0/24 - name: router configurajon os_router: cloud: demo name: demo_router network: provider interfaces: demo_subnet = イコール - name: instance configurajon os_server: cloud: demo name: demo_instance_{{ item }} image: cirros flavor: m1.nano network: demo_network with_items: [1,2,3] Copyright 2017 TIS Inc. All rights reserved. 21
Infrastructure as Code 構成管理ツールによって コードに基づきインフラが構成される コードは何度実行しても同じ状態に収束するため ( 冪等性 ) コード = 構成である コード 構成管理ツール Deploy / Install / Config 何回実行しても同じ状態 Copyright 2017 TIS Inc. All rights reserved. 22
IaC 推進に向けての課題 しかしながら すぐに IaC を実践できるわけではない やり方が変わる コードアレルギー 学習 育成コスト 時間がないという言い訳 Copyright 2017 TIS Inc. All rights reserved. 23
TIS の取り組み 課題に対する 2 方向のアプローチ たぶんこれが王道 ハードル DOWN コードライブラリ フレームワーク スクリプト ツール スキル UP 社内勉強会 セルフハンズオン ナレッジ公開 案件利用支援 Copyright 2017 TIS Inc. All rights reserved. 24
SHIFT ware とは Infrastructure as Code を誰でも利用しやすく ハードル DOWN コードライブラリ フレームワーク スクリプト ツール スキル UP 社内勉強会 セルフハンズオン ナレッジ公開 案件利用支援 Copyright 2017 TIS Inc. All rights reserved. 25
SHIFT ware とは ( 全体像 ) ユーザ.s h.sh.sh 呼び出し Ansible コード群 動設定 および テスト サーバ群.xlsx インタフェース スクリプト 設定ファイル 成ツール 設定ファイル Serverspec コード群 実 ログ / テスト結果 Copyright 2017 TIS Inc. All rights reserved. 26
SHIFT ware とは 実体は Ansible Serverspec のコード集 コードライブラリを利用するための フロントエンドツール Copyright 2017 TIS Inc. All rights reserved. 27
SHIFT ware で出来ること OS の 自動設定 / 自動テスト ミドルウェアの 自動インストール / 自動設定 / 自動テスト OrchestraJon OrchestraJon App Cluster/Integrate ConfiguraJon MW Config Install SHIFT Bootstrapping OS HW Config Install Deploy Copyright 2017 TIS Inc. All rights reserved. 28
提供するもの - Linux Roles Linux Roles 1-0001_Base 1-0102_apache 1-0103_Tomcat 1-0104_postgreSQL 1-0105_openJDK 1-0106_PrivateCA 1-0201_RedHatSatellite 1-0401_JP1Agents 1-0501_OracleClient 1-0502_OracleJRE 1-0701_LogstorageAgent 1-0801_DynatraceAgent 1-0901_DeepSecurityAgent 1-1001_UnixAgentForLDAPManager 1-1101_ES1Acquire 1-1102_ES1Logscn Linux Base Tasks 1-0001-04_Hosts 1-0001-05_Resolv 1-0001-07_Service 1-0001-08_Ntp 1-0001-10_Selinux 1-0001-12_Crontab 1-0001-14_Lang 1-0001-17_Logrotate 1-0001-20_Nsswitch 1-0001-23_Sshd 1-0001-39_Snmp 1-0001-40_Syslog 1-0001-13_OSGroup 1-0001-16_PasswordRules 1-0001-37_SystemRunLevel 1-0001-38_InterfaceNmcli 1-0001-24_OSUser.yml 1-0001-27_Kdump 1-0001-28_Keyboard 1-0001-29_Timezone 1-0001-40_Grub 1-0001-02_Interface 1-0001-03_Network 1-0001-22_Route 1-0001-39_Bonding 1-0001-35_SetDirectory 公開するものとは差異があるかもしれません Copyright 2017 TIS Inc. All rights reserved. 29
提供するもの - Windows Roles Windows Roles 2-0001_Base 2-0101_Cygwin 2-0401_JP1Agents 2-0501_OracleClient 2-0701_LogstorageAgent 2-0901_DeepSecurityAgent 2-1002_LDAPManagerWindowsAgent 2-1101_ES1Acquire 2-1102_ES1Logscn Windows Base Tasks 2-0001-002_Memory 2-0001-011_User 2-0001-012_UserGroup 2-0001-013_Uac 2-0001-024_Timezone 2-0001-025_RecoverOs 2-0001-051_Directory 2-0001-071_Hostname 2-0001-072_Interface 2-0001-073_Routing 2-0001-074_Firewall 2-0001-075_Teaming 2-0001-076_Domain 2-0001-077_IPv6Disable 2-0001-078_DnsSuffix 2-0001-079_NameResolve 2-0001-095_Feature 2-0001-096_Service 2-0001-098_Rdp 2-0001-102_ErrorReport 2-0001-103_WinUpdate 2-0001-104_Owner 2-0001-105_EventLog 2-0001-106_Registry 2-0001-107_PsExecPolicy 2-0001-109_Organization 公開するものとは差異があるかもしれません Copyright 2017 TIS Inc. All rights reserved. 30
提供するもの - Excel2YAML SIer は Excel が大好きらしい Excel2YAML とは Ansible Serverspec のパラメータファイルを Excel で作成できるツール ( おまけとして作ったが ウケがよく 需要は高い ) Copyright 2017 TIS Inc. All rights reserved. 31
提供するもの - Excel2YAML Property 設定 テストのパラメータを定義するファイル こっちの方がラクなんじゃないかと思うが Copyright 2017 TIS Inc. All rights reserved. 32
提供するもの - Excel2YAML Inventory 実行対象 ( ターゲット ) と実行する処理 ( ロール ) を定義するファイル Inventory これは ちょっとわかる! AnsibleYAML Copyright 2017 TIS Inc. All rights reserved. 33
SHIFT ware を使ってカンタン IaC SHIFT ware Roles & Tools SHIFT Repository Linux Linux Linux Linux Linux Linux 今回は説明を省略したものもあります Excel2YAML Linux Linux and more... Ansible Serverspec Win Win Win Win Win Win Log SHIFT ware VM Template Win Win and more... Ansible-play Spec-play Copyright 2017 TIS Inc. All rights reserved. 34
SHIFT ware" 公開 Copyright 2017 TIS Inc. All rights reserved. 35
公開のねらい l Infrastructure as CodeにおけるSIer( ならでは ) としてのSI 市場でパイオニア地位確立 TISのSIerとして 他社にない強みはなんだ? と言われた時に より具体的に表現できるものの 1つとして確立したい l 市場価値向上 労働生産性に関連する国策への社会貢献 ~IT エンジニアの働き方改革への貢献 ~ IT 企業 ( 日本の SIer は特に ) の長時間労働が問題視されているのは明らかで それに対して 元々品質生産性向上の施策として活動していた本取り組みの成果物エッセンスを対外的に公開することで 同業他社やユーザ等にも影響を及ぼし ひいては結果として IT 業界 /SI 市場での長時間労働の軽減や労働生産性の向上に貢献する 社会貢献 Copyright 2017 TIS Inc. All rights reserved. 36
SHIFT ware ~ 沿革 技術施策 作業レス化 スタート SHIFT PJ スタート 0.x 1.2 SHIFT ware 本部内リリース 2.0 ISHIGAKI template マージ SHIFT ware 全社リリース 2.08 2.12 4 4 9 1 4 2015 2016 2017 OSS 化 3.x 9 Copyright 2017 TIS Inc. All rights reserved. 37
IaC のスキルアップに向けて l ゆくゆくは SHIFT ware ユーザの誰もが l Operator から Contributor / Committer へ generalization maintenance SHIFT ware Repository git clone Coding SHIFT ware 管理者 Pull Request SHIFT ware ユーザ Copyright 2017 TIS Inc. All rights reserved. 38
成果の公開に向けたあれやこれや 面倒なこといろいろ l 何をどこまで公開する? 公開できる? 問題 l 承認問題 l そもそも承認方法や承認者が決まってる? l クオリティ問題 l 既存コードの品質, コード規約,CI の仕組み,etc l ライセンスは何を選ぶ? 問題 l リポジトリをどこに置く問題 ( 社外は GitHub! 社内はどうする?) l 名称と商標 l コミュニティの形成 ( 立ち上げ ) l プロモーション l 公開しちゃった後どうする? 問題 Copyright 2017 TIS Inc. All rights reserved. 39
( 配布しません ) 世間に出すならクオリティもそれなりにしたい Copyright 2017 TIS Inc. All rights reserved. おまけ 40
SHIFT ware 公開! 2017 年 9 月下旬 ( 予定 ) コミュニティ SHIFT ware ユーザーグループ すみませんが, もうちょっとお待ちください https://github.com/shift-ware/shift_ware/wiki/shift-ware-user-group お問い合わせなど https://groups.google.com/forum/#!forum/shiftware Copyright 2017 TIS Inc. All rights reserved. 41
THANK YOU