presented at Confluence & JIRA Community Day 2010 (http://www.communardo.de/home/communardo/technologien/atlassian-confluence-wiki/atlassian-community-day-2010-2)
Integration von Atlassian-Produkten: JIRA & CROWD im Cluster bei mobile.international
1. JIRA und Crowd im Cluster
bei mobile.international
zl e?
Integration von Atlassian-Tools z
Pu
der
o
oo
Z
Dr. Alexander Schwartz
Donnerstag, 23. September 2010
2. Über mobile.international
• mobile.de - Deutschlands größter Fahrzeugmarkt
63 Milliarden Besuche pro Monat (Quelle: IVW März 2010)
• gehört zur eBay Classifieds Group
• Marktplätze in
Frankreich, Italien, Polen und Rumanien
Donnerstag, 23. September 2010
3. Zu meiner Person & Rolle Dr. Alexander
Schwartz
• Ausbildung: Mathematiker
• 20 Jahre IT-Branche in diversen Rollen:
Entwickler, Consultant, Projekt-Manager,
Team-Leiter etc.
• Scrum Master
• meine Rolle bei mobile.international:
Leiter “Engineering Support Group”
- Release Management www.xing.com/profile/Alexander_Schwartz7
- Test Automation
ch
- Build Management
ti s
- Tools
lis
ho
- Konfigurations-Management
Donnerstag, 23. September 2010
4. Agile Entwicklung bei mobile
3 Jahre Scrum
1 Jahr Kanban für Maintenance
70+ Personen
6+ Teams, 2 verteilte Teams
parallele Entwicklung am gleichen Produkt
Donnerstag, 23. September 2010
5. Hilft JIRA bei der Agilen Entwicklung?
Unser Lieblings-Tool:
das Story-Bord
(aka Kanban-Bord)
Achtung:
Der Einsatz eines
Ticketsystems kann viele
Nachteile haben.
Beispiel: “Ticket-Ping-Pong”
Donnerstag, 23. September 2010
6. JIRA bei mobile
Wir verwenden JIRA.
- 50+ JIRA-Projekte
- komplexe Modellierung
Regel:
Anforderung:
Nachvollziehbarkeit für SOX Jedes Commit in der
Als ein SOX-Reviewer kann ich in Versionsverwaltung referenziert
einem Report die Veränderung des ein JIRA-Ticket.
gesamten Quellcodes einsehen
und analysieren.
JIRA-Ticket
VCS-Commit
Donnerstag, 23. September 2010
7. Unser Tool-Zoo für Agile Entwicklung
Subversion Maven
Version Control Build Tool
JIRA
Ticket System
Eclipse
IDE
Donnerstag, 23. September 2010
8. Unser Tool-Zoo für Agile Entwicklung
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRA
Ticket System
Eclipse IntelliJ
IDE IDE
Confluence
Wiki System Nexus
Maven Repository Proxy
FishEye TeamCity
Version Control Browsing
Continuous Integration
Crucible Hudson
Code Review Tools
Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010
9. Unser Tool-Zoo für Agile Entwicklung
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRA
Ticket System
Anforderung: schnelle Benutzerverwaltung
Eclipse IntelliJ
IDE IDE
Confluence Als ein Tool-Admin kann ich einen neuen
Wiki System Benutzer für alle Tools innerhalb von 3 Minuten
Nexus
anlegen (mit einheitlichen Zugangsdaten).Maven Repository Proxy
FishEye Verwandte Anforderungen: TeamCity
Version Control Browsing
- User deaktivieren Continuous Integration
- E-Mail-Adresse ändern
Crucible - Zugangsberechtigungen verändern Hudson
Code Review Tools
Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010
10. Unser Tool-Zoo für Agile Entwicklung
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRA
Ticket System
Eclipse IntelliJ
IDE IDE
Confluence
Wiki System Nexus
Crowd Maven Repository Proxy
FishEye ID Management
TeamCity
Version Control Browsing
Continuous Integration
Crucible Hudson
Code Review Tools
Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010
11. Crowd-Tipp: Umstellung eines Tools auf Crowd
Crowd
Gegeben:
Verzeichnis A in Crowd, A
verwendet von Confluence
Schritte:
• JIRA-Benutzer in neues Crowd-
Verzeichnis B importieren
• JIRA mit Crowd-Verzeichnis B Confluence JIRA
verbinden
• Verzeichnisse A und B mischen
und als neues Verzeichnis C
importieren
• JIRA und Confl. mit C
verbinden.
Donnerstag, 23. September 2010
12. Crowd-Tipp: Umstellung eines Tools auf Crowd
Crowd
Gegeben:
Verzeichnis A in Crowd, A B
verwendet von Confluence
Schritte:
• JIRA-Benutzer in neues Crowd-
Verzeichnis B importieren
• JIRA mit Crowd-Verzeichnis B Confluence JIRA
verbinden
• Verzeichnisse A und B mischen
und als neues Verzeichnis C
importieren
• JIRA und Confl. mit C
verbinden.
Donnerstag, 23. September 2010
13. Crowd-Tipp: Umstellung eines Tools auf Crowd
Crowd
Gegeben:
Verzeichnis A in Crowd, A B
verwendet von Confluence
Schritte:
• JIRA-Benutzer in neues Crowd-
Verzeichnis B importieren
• JIRA mit Crowd-Verzeichnis B Confluence JIRA
verbinden
• Verzeichnisse A und B mischen
und als neues Verzeichnis C
importieren
• JIRA und Confl. mit C
verbinden.
Donnerstag, 23. September 2010
14. Crowd-Tipp: Umstellung eines Tools auf Crowd
Crowd
Gegeben:
Verzeichnis A in Crowd, A B C
verwendet von Confluence
Schritte:
• JIRA-Benutzer in neues Crowd-
Verzeichnis B importieren
• JIRA mit Crowd-Verzeichnis B Confluence JIRA
verbinden
• Verzeichnisse A und B mischen
und als neues Verzeichnis C
importieren
• JIRA und Confl. mit C
verbinden.
Donnerstag, 23. September 2010
15. Crowd-Tipp: Umstellung eines Tools auf Crowd
Crowd
Gegeben:
Verzeichnis A in Crowd, C
verwendet von Confluence
Schritte:
• JIRA-Benutzer in neues Crowd-
Verzeichnis B importieren
• JIRA mit Crowd-Verzeichnis B Confluence JIRA
verbinden
• Verzeichnisse A und B mischen
und als neues Verzeichnis C
importieren
• JIRA und Confl. mit C
verbinden.
Donnerstag, 23. September 2010
16. Crowd-Tipp: eingeschränkter Zugriff
• Situation: Sie eine Usergruppe, die Crowd
Zugriff auf ein Tool, aber niemals Mitarbeiter externer CS
andere
• Beispiel: externe Customer-Support-
Gruppe bei mobile
• Lösung:
JIRA Confluence
- separates Directory in Crowd für
dieses Gruppe anlegen Subversion
- Directory für nur Confluence
freischalten, nicht für die weiteren
Applikationen ......
...
Donnerstag, 23. September 2010
17. Crowd-Tipp: Betriebsvariante Cold-Standby
• Anzahl Lizenzen: eine Server 0
• nicht offiziell unterstützt
durch Atlassian Apache Load Balancer
• unterstützt durch
Communardo
Server 1 Server 2 passiv
aktiv
Crowd Crowd
Instanz 1 Instanz 2
passiv
MySQL-DB
MySQL-
Replikation
Donnerstag, 23. September 2010
18. Crowd-Tipp: Synchronization
• Situation: Sie wollen ein Tool an Crowd Crowd
anbinden, für welches kein Connector API
existiert.
• Beispiel:
Plug-In
- TeamCity von JetBrains Sync-
TeamCity Prozess
- Gitorious
• Lösung:
- Authentifizierung via Plug-in
- Authorisierung via automatischen
Sync von Crowd (API) zu Zielsystem-
DB
Donnerstag, 23. September 2010
19. Erfahrungen mit Crowd
Positiv Negativ
• verschachtelte Gruppen • Passwort-Reset unsicher
erleichtern die Modellierung • Integration in Atlassian-Tools
(und verringern den uneinheitlich
Aufwand) (Password-Reset usw.)
• unklare Fehlermeldungen bei
• Integration vieler Java-Tools
Verwendung einer Password-
einfach
Policy
• Bugs mit verschachtelten
Gruppen (z.B. Apahe)
• Import/Mischen von
Verzeichnissen fehlerhaft.
Donnerstag, 23. September 2010
20. Erfahrungen mit Crowd (2)
Kontext: Positiv Negativ
Wir wollen einen zentralistischen
Ansatz für Konfigurations-
• keine Verwaltung für
management vermeiden.
Teilstrukturen
Anforderung: • keine Audits
Nachvollziehbarkeit für SOX
Als ein SOX-Reviewer kann ich in
einem Report die Veränderung
der Nutzerbasis und ihrer
Berechtigungen einsehen.
Anforderung: Nachvollziehbarkeit
Als ein Tool-Admin kann zwecks
Analyse einer aktuellen Störung ein
Protokoll der letzten Änderungen
Donnerstag, 23. September 2010
21. Erfahrungen mit Crowd (2)
Kontext: Positiv Negativ
Wir wollen einen zentralistischen
Ansatz für Konfigurations-
• keine Verwaltung für
management vermeiden.
Teilstrukturen
Anforderung: • keine Audits
Nachvollziehbarkeit für SOX
Als ein SOX-Reviewer kann ich in
Gutes Beispiel für ein Change-Audit: TeamCity von JetBrains
einem Report die Veränderung
der Nutzerbasis und ihrer
Berechtigungen einsehen.
Anforderung: Nachvollziehbarkeit
Als ein Tool-Admin kann zwecks
Analyse einer aktuellen Störung ein
Protokoll der letzten Änderungen
Donnerstag, 23. September 2010
22. Genügt ein Tool-Zoo unseren Anforderungen?
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRA
Ticket System
Eclipse IntelliJ
IDE IDE
Confluence
Wiki System Nexus
Crowd Maven Repository Proxy
FishEye ID Management
TeamCity
Version Control Browsing
Continuous Integration
Crucible Hudson
Code Review Tools Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010
23. Genügt ein Tool-Zoo unseren Anforderungen?
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRAAnforderung: neues Projekt anlegen
Ticket System
Als ein Tool-Admin (von Communardo) kann ich Eclipse IntelliJ
für ein neues Kundenprojekt alle Ressourcen in IDE IDE
Confluence Tools anlegen innerhalb 30 Minuten.
allen
Wiki System Nexus
Crowd
Verwandte Anforderungen: Maven Repository Proxy
FishEye - Zweig (Branch) in
ID Management
Version Control Browsing Versionsverwaltung erstellen
TeamCity
- ... Continuous Integration
Crucible Hudson
Code Review Tools Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010
24. Genügt ein Tool-Zoo unseren Anforderungen?
Subversion Git/Gitorious Maven
Version Control Version Control Build Tool
JIRA
Ticket System
Eclipse IntelliJ
le ? IDE IDE
Confluence
u zz
Wiki System
r P Nexus
Crowd
ID Managementd
e Maven Repository Proxy
FishEye o
Version Control Browsing o o TeamCity
Z Continuous Integration
Crucible Hudson
Code Review Tools Continuous Integration
Clover Active Sonar
Code Coverage
Code Metriken
Directory
Donnerstag, 23. September 2010