Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[deSymfony] Trovit Deployment pipeline
Search
albertplaya
September 16, 2016
Technology
0
450
[deSymfony] Trovit Deployment pipeline
Trovit Deployment pipeline using ansible and jenkins pipeline
albertplaya
September 16, 2016
Tweet
Share
Other Decks in Technology
See All in Technology
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
980
AI駆動開発を事業のコアに置く
tasukuonizawa
1
280
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
670
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
190
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
130
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
250
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
210
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
Featured
See All Featured
The browser strikes back
jonoalderson
0
390
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
KATA
mclloyd
PRO
34
15k
Designing for Timeless Needs
cassininazir
0
130
Accessibility Awareness
sabderemane
0
53
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Tell your own story through comics
letsgokoyo
1
810
A Tale of Four Properties
chriscoyier
162
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
100
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
Presentation styleguide May 2016
Presentation styleguide May 2016
TROVIT & DEPLOYMENT OVERVIEW TROVIT DEPLOYMENT SYSTEM (PAST, PRESENT AND
FUTURE) ADVICE
TROVIT & DEPLOYMENT OVERVIEW TROVIT DEPLOYMENT SYSTEM (PAST, PRESENT AND
FUTURE) ADVICE
A CLASSIFIED SEARCH ENGINE FOR PROPERTY, JOBS, CARS AND PRODUCTS
None
None
PLATFORM NUMBERS 5 SERVERS 40 SERVERS 20 SERVERS 4 SERVERS
50 SERVERS 400 SERVERS
Deployment
Build
Synchronization
Release
TROVIT & DEPLOYMENT OVERVIEW TROVIT DEPLOYMENT SYSTEM (PAST, PRESENT AND
FUTURE) ADVICE
Trovit deployment system (Past, present and future)
Old deployment system
BUILD CREATION Build host Internal External Services Commands SATIS
OLD TROVIT DEPLOYMENT - BUILD 1 PROJECT PROJECT FRAMEWORK symlink
✔ BUILD SIZE ✘ BUILD DEPENDENCY ✘ QA INSECURITY
OLD TROVIT DEPLOYMENT - BUILD X PROJECTS PROJECT 1 FRAMEWORK
symlink PROJECT 2 symlink PROJECT 3 symlink
✔ BUILD SIZE ✘ DEPENDENCY ✘ QA INSECURITY ✘ COMPLEXITY
✘ COMMUNICATION ✘ C&P BASH SCRIPTS ✘ CHANGELESS OLD TROVIT DEPLOYMENT - BUILD X PROJECTS
DEPLOYMENT WITHOUT SYMBOLIC LINK Deployment host tag ../project/ ../project/
DEPLOYMENT WITHOUT SYMBOLIC LINK ✔ UPLOAD ONLY MODIFIED FILES (rsync)
✘ SLOW ROLLBACK ✘ ERRORS 500! ✘ SERVERS WITH DIFFERENT VERSIONS
DEPLOYMENT WITH SYMBOLIC LINK Deployment host tag ../project/ ../project/releases/tag ../project/current
Symbolic link Full copy
DEPLOYMENT WITH SYMBOLIC LINK ✔ FAST VERSION INSTALLATION ✔ SERVERS
WITH THE SAME VERSION ✔ IMMEDIATE ROLLBACK ✔ AVOID ANY ERRORS DURING THE DEPLOY ✘ SLOW UPLOAD
RELEASE • Change symbolik link (with symbolic link ) •
Php bin/console cache:clear --env=prod --no-debug • Clean opcache • Apache graceful
Sum up
DEPLOYMENT SYSTEM OVERVIEW • Copy-Paste. • Poor design (rigidity, fragility,
immobility, viscosity). • Command line execution. • Slow deploys (20 minutes!!!). • Multi builds for different environments. • Some projects with releases and others without. • Production errors!
Current deployment system
Vision
10 BACKEND TEAMS +15 PHP PROJECTS
None
+
+
ABOUT ANSIBLE App deployment, configuration management and orchestration. • Minimal
in nature • Consistent • Secure • Highly reliable • Low learning curve INFRASTRUCTURE AS CODE • Cost reduction • Faster execution • Remove errors and security violations
HOW ANSIBLE WORKS?
ANSIBLE STRUCTURE
INVENTORY
PROJECT
ROLES
https://docs.ansible.com/ansibl e/deploy_helper_module.html DEPLOY HELPER
FOLDER STRUCTURE
EXAMPLE
JENKINS OVERVIEW
JENKINS PROGRAM
None
CONTINUOUS DELIVERY DEPLOYMENT PIPELINE CODE REVIEW QA OR DEVELOPER BUILD
PREPRODUCTION PRODUCTION
BUILD Execute ansible playbook Execute all the roles Tag: X.X.X
Get tags
BUILD
PRODUCTION Get tags Tag: X.X.X DEPLOYMENT ENVIRONMENT
DEPLOYMENT ENVIRONMENT
UI DEPLOYMENT PIPELINE
UI DEPLOYMENT PIPELINE
PIPELINE DSL (GROOVY)
JENKINS TROVIT BUILDS
JENKINS TROVIT DEPLOYMENT
Rollback
Future
AGILE WORKFLOW CONTINUOUS INTEGRATION CONTINUOUS DELIVERY CONTINUOUS DEPLOYMENT
PIPELINE SCALABILITY
QA WORKFLOW QA SYSTEM TO BE TESTED AUTOMATED TESTING PRACTICES
TESTING PLATFORM TEST ADMINISTRA TOR TESTING TOOLS TEST LIBRARY
SERVICE CONTAINER
CONTAINER DEPLOYMENT LOAD BALANCER WEB SERVER APP SERVER DATABASES
WIKI • ANSIBLE: https://www.ansible.com/ • ANSIBLE DEPLOY HELPER: https://docs.ansible.com/ansible/deploy_helper_module.html •
JENKINS: https://jenkins.io/solutions/pipeline • BLUE GREEN DEPLOYMENT: http://martinfowler.com/bliki/BlueGreenDeployment.html • KUBERNETES: http://kubernetes.io/ • DOCKER: https://www.docker.com/ • NETFLIX: http://techblog.netflix.com/2015/11/global-continuous-delivery-with.html • ETSY: https://www.infoq.com/news/2014/03/etsy-deploy-50-times-a-day • CONTINUOUS INTEGRATION VS CONTINUOUS DELIVERY VS CONTINUOUS DEPLOYMENT: http://stackoverflow.com/questions/28608015/continuous-integration-vs-continuous-delivery-vs-continuou s-deployment • PMP: https://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledge • TROVIT: https://www.youtube.com/channel/UCz8S73iKoCom2RN8B8l-Heg • TROVIT CAREERS: http://careers.trovit.com/
TROVIT & DEPLOYMENT OVERVIEW TROVIT DEPLOYMENT SYSTEM (PAST, PRESENT AND
FUTURE) ADVICE
Advice
GLOBAL VISION SCOPE COST TIME
GLOBAL VISION RISK QUALITY STAKEHOLDERS INTEGRATION COMMUNICATION
None
Albert Playà (@albertplaya) Software Development Manager
QUESTIONS?