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

17
Development practice Daniel Sachse, Eirik Grøttum & Richard Borge 31.07.2017 1

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

Page 1: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

Development practice

Daniel Sachse, Eirik Grøttum & Richard Borge

31.07.2017 1

Page 2: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

Development projects

31.07.2017 2

Development section

Alpha α Delta δ Omega ω

NVB SO3 CRIStin FS-int FS-web

Management / support product owners

Security UI

Page 3: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 4: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• Git (Bitbucket and Github)

• Eclipse and IntelliJ (and the odd text editor)

• Jira

• CI (Jenkins and Travis)

Development tools

31.07.2017 4

Page 5: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• Zabbix

• Piwik

• Graphite

• ELK (Elasticsearch, Logstash, Kibana)

Monitoring

31.07.2017 5

Page 6: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

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

Page 7: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 8: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 9: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 10: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

SO - Applications

02.07.2017 10

Postgresql

JVM and sbt

Sodb (angular)

Scala Play framework

Søkerportalen (angular)

Page 11: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 12: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 13: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 14: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

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)

Page 15: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 16: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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

Page 17: Daniel Sachse, Eirik Grøttum & Richard Borge Development ... · Digipost . Folkeregisteret . PDF-sign (Native) Nominasjonsweb RUST • Wishes / priorities discussed in expert groups

• 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