Salesforce World Tour Tokyo 2017 でSalesforceDX事例について発表しました。
Salesforce World Tour Tokyo 2017Salesforce DX 〜Salesforce開発にも継続的デリバリーを〜2017/9/27
View Slide
About meAkira Kuratani / 倉⾕ 彰TeamSpirit Inc.Architect@a_kurataniPodcast(migration.fm)ハッシュダグ︓#migrationfmWinterʻ17
「毎⽇の業務に必要な事務処理ツール」をひとつにまとめた働き⽅改⾰プラットフォーム「TeamSpirit」シリーズで、変化に挑戦する⼈と企業に貢献することを⽬指す企業です。株式会社チームスピリット勤怠管理就業管理経費精算カレンダー⼯数管理電⼦稟議SNSダッシュボードマイナンバー管理社員情報管理シフト管理プロジェクト原価管理
株式会社チームスピリットAppExchange Partner of the year2016ISV GOLD Partner 2016(Global)導⼊実績 AwardAppExchange アプリケーション AppExchange5年で800社 10万ID突破
急成⻑を⽀える仕組みづくり
継続的デリバリーとはソースコード管理 ビルド ステージング プロダクション継続的インテグレーション継続的デリバリー継続的デプロイ→⾃動デプロイ✓承認&デプロイ静的解析・⾃動テスト
TeamSpiritを⽀える継続的インテグレーションBitBucketetc.Jenkinsソースコード静的解析通知ドキュメント⽣成ユニットテストSlackE2EテストAWS EC2Migration ToolsJUnitユニットテスト組織Developer EditionE2Eテスト組織Developer EditionSelenium Docker BrowserStack
DEMO
ここに⾄るまでの問題と対策
最初の問題• リポジトリとパッケージ作成組織が不⼀致リポジトリパッケージ作成組織開発組織開発組織≠≠
• ソースコード管理の⼀元化• リポジトリからパッケージ作成組織にデプロイする対策リポジトリパッケージ作成組織開発組織開発組織
次に出てきた問題• リリース直前に問題が発覚する• デプロイエラー、テスト失敗、カバレッジ不⾜リポジトリパッケージ作成組織開発組織開発組織
• Jenkinsを導⼊し、デプロイ・Apexテストを定期実⾏対策リポジトリパッケージ作成組織開発組織開発組織 開発組織Jenkins
さらなる問題が…• 終わらない回帰テスト…機能数2012年 2013年 2014年 2015年 2016年 2017年
• ブラウザを操作して⾃動テスト(GUIテスト⾃動化)対策開発組織JenkinsDocker開発組織開発組織ローカルBrowserStackSeleniumSelenium
次のステップ• コード品質を上げたい• コーディングスタイルの不統⼀• セキュリティ脆弱性• ドキュメントの作成が⾯倒
• 静的解析• Force.com Security Source Code Scanner⾃動化対策有償化の連絡!
• 静的解析• Force.com Security Source Code Scanner⾃動化• PMD Apex導⼊• Jenkinsでもローカルでもチェック可能対策• ドキュメント⾃動⽣成• ApexDoc• メタデータ(XML)をHTMLに変換
SalesforceDXで変わる継続的インテグレーション
Before SalesforceDXBitBucketetc.Jenkinsソースコード静的解析通知ドキュメント⽣成ユニットテストSlackE2EテストAWS EC2Migration ToolsJUnitユニットテスト組織Developer EditionE2Eテスト組織Developer EditionSelenium Docker BrowserStack
After SalesforceDXBitBucketetc.Jenkinsソースコード静的解析通知ドキュメント⽣成ユニットテストSlackE2EテストAWS EC2SalesforceDX CLI ScratchOrg並⾏化Selenium Docker BrowserStack
Before SalesforceDXリポジトリmasterfeature/TS-145feature/TS-137feature/TS-143⾃動テストDeveloper Edition
After SalesforceDXmasterfeature/TS-145feature/TS-137feature/TS-143⾃動テストScratch Orgリポジトリ
SalesforceDXで変わる継続的デリバリー
継続的デリバリー(SI・⾃社開発の場合)ソースコード管理 ビルド ステージング プロダクションSandbox組織運⽤組織デプロイデプロイ変更セット開発組織デプロイ
継続的デリバリー(ISV/OEMの場合)ソースコード管理 ビルド ステージング プロダクションパッケージ作成組織ユーザ運⽤組織デプロイプッシュアップグレード開発組織デプロイパッケージ確認組織パッケージ作成
• SalesforceDXでモダンな開発スタイルに移⾏• 継続的インテグレーション• 継続的デリバリー• すぐに始められるSalesforceDX• PMD Apex による静的解析• Apexテストの⾃動実⾏まとめ
We’reHiring!
質問タイム
ありがとうございました