Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Development practice
Daniel Sachse, Eirik Grøttum & Richard Borge
31.07.2017 1
Development projects
31.07.2017 2
Development section
Alpha α Delta δ Omega ω
NVB SO3 CRIStin FS-int FS-web
Management / support product owners
Security UI
• Different teams use different approaches
• Take the best from Scrum and Kanban and mix in some hard learned lessons
Scrum (ish)
31.07.2017 3
• Git (Bitbucket and Github)
• Eclipse and IntelliJ (and the odd text editor)
• Jira
• CI (Jenkins and Travis)
Development tools
31.07.2017 4
• Zabbix
• Piwik
• Graphite
• ELK (Elasticsearch, Logstash, Kibana)
Monitoring
31.07.2017 5
FS - Applications
31.07.2017 6
FS
JBoss EAP6 Docker Studentweb
Fagpersonweb
Søknadsweb
EpN
EVUWeb
Gaus
ROMS
FS-INT FS-API
Vitnemålsportalen
EWP Digipost
Folkeregisteret
PDF-sign (Native)
Nominasjonsweb
RUST
• Wishes / priorities discussed in expert groups led by PO and made into rough JIRA issues by PO. Refined by teams
• Scrumban – The development cycle follows Scrum light
• 2-3 week sprints • Planning • Stand-up • Retro
– Fast track for production systems with its own queue
FS - Development
31.07.2017 7
• JBoss – Build artifacts in Jenkins, upload to Nexus (Maven repo) – Deploy to test via Rundeck – Operations still deploy artifacts to productions
• Docker – Build artifacts in Jenkins, upload to Nexus – Build docker image on dev, deploy to Harbor (Local Docker hub) – Use image from Harbor on test / production, developers deploy
using Rundeck – Environment configured through Ansible-scripts in Git
FS - Deployment
31.07.2017 8
• All production systems are supported via dedicated support people
• One central contact point (RT – request tracker)
• Product owner either solves or creates Jira issues from RT
• In a crisis, product owner consults with developer to get a quick solution
• Hot fixing production systems can take less than an hour
FS - Production / support
31.07.2017 9
SO - Applications
02.07.2017 10
Postgresql
JVM and sbt
Sodb (angular)
Scala Play framework
Søkerportalen (angular)
• Full-stack team (including non-technical staff) • Small feature branches, automated tests, code review
SO - Development
02.07.2017 11
Project focus Deadlines, objectives, goals Team effort
• Semi-automated release pipeline • We build and deploy ourselves • Minimum 15 min release time
SO - Deployment
02.07.2017 12
Build rpm Release to test Release to prod
• The team has responsibility for all applications in production • Operations involved only if needed
SO - Production / support
02.07.2017
Monitor user activity
Monitor logs and events
Alarms in Slack Bugs handled as we go
Cristin - Applications
31.07.2017 14
Cristin
JBoss EAP6 Native
Cristin-Webapp
WS
API
Enterprise Integration
Employment Data Import
Search Publication Import
Cristin-Webapp (WO)
• Scrum light with three queues – Features and suggestions collected and prioritized by Cristin office – Specification queue: PO produces development-ready issues – Development queue: 2-3 week sprints
• Involvement of focus groups and the Cristin board in planning • Strong developer involvement in specification
• Variable release and deployment cycle • Recurring maintenance tasks, e.g. publication import
Cristin - Development
31.07.2017 15
• Jboss – Build artifact on Jenkins, deploys to pre-test environment – Deployment to test environment via Rundeck – Operations deploys to production servers
• Native / stand-alone
– Compiled directly on the respective systems using Git and Maven – DevOps potential – Docker may play a role
Cristin - Deployment
31.07.2017 16
• Developers share responsibility for production systems
• Layered support: – End users receive support from their institution’s Cristin superusers – Unresolved issues are passed to Cristin office via RT or mailing list,
developers assist troubleshooting as required
• PO creates and prioritizes bug issues if applicable – Hotfixing and redeployment can be achieved within the day
Cristin - Production / support
31.07.2017 17