Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret ....

Post on 26-Sep-2020

2 views 0 download

Transcript of Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret ....

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