SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Zeitnahe Reaktion auf
Verordnungsänderungen
mit Feature Toggles
Iris Hunkeler / Lead Engineer
Bern, Juni 2022
BATbern
https://xkcd.com/2289/
20.06.2022
3
Erfahrung
− Software Engineering (11 Jahre)
− Requirements Engineering (4 Jahre)
− Business Analyse (4 Jahre)
− Projektleitung (2 Jahre)
Expertenwissen
− Kotlin, Java
− AWS (DynamoDB, Kinesis, EC2, S3,
Cognito, CloudWatch,
CloudFormation, Personalize)
− Spring, Spring Boot
− REST
− Scrum
− Hibernate, OpenJPA
− jOOQ
Branchenwissen
− Grosshandel / E-Commerce
− Öffentliche Verwaltung
− Banken / Finanzbranche
Ausbildung
− CAS in Big Data and Machine Learning (Universität Zürich)
− MSc in Business Information Systems (FHNW)
− BSc ZFH in Betriebsökonomie mit Vertiefung in
Wirtschaftsinformatik (ZHAW)
− EFZ Applikationsentwicklerin mit kaufmännischer
Berufsmaturität
Iris Hunkeler
Über mich
Lead Engineer
Einführung 2’
Übersicht Covid-Zertifikat 5’
Herausforderungen 3’
Feature Toggles – Was und weshalb? 5’
Feature Toggles beim Covid-Zertifikat 10’
Live Demo 5’
Fragen 10’
20.06.2022
4
Agenda
Schweizer Covid-Zertifikat
20.06.2022
5
− Was ist das Covid-Zertifikat?
«Das Covid-Zertifikat ist ein offizieller Nachweis, der bestätigt, dass Sie gegen
Covid-19 geimpft sind, die Erkrankung bereits durchgemacht haben oder über ein
negatives PCR-Test- bzw. Antigen-Schnelltest-Ergebnis verfügen.»
https://bag-coronavirus.ch/zertifikat/
− Das Covid-Zertifikat der Schweiz ist Open Source:
https://github.com/admin-ch
− Das Covid-Zertifikat basiert auf der PKI Infrastruktur des Bundes
− Zertifikate werden mit geheimen, sicher aufbewahrten Private Keys signiert
− Zertifikate können mit den dazugehörenden Public Keys verifiziert werden
Übersicht Covid-Zertifikat
EU Digital Covid Certificate
20.06.2022
6
− Die EU definierte den «EU Digital COVID Certificate» Standard, welcher
innerhalb und ausserhalb der EU von verschiedenen Ländern
umgesetzt wurde
− EU Spezifikation
https://eur-lex.europa.eu/legal-
content/EN/TXT/PDF/?uri=CELEX:32021D1073&from=EN
− Die Umsetzung des «EU Digital COVID Certificates» ist Open Source
https://github.com/eu-digital-green-certificates
− Das Schweizer Covid-Zertifikat setzt den «EU Digital COVID Certificate
Standard» um
Standards ermöglichen die internationale Zusammenarbeit
Übersicht Covid-Zertifikat
EU Gateway
Check App
Holder App
Nationale Antragsstelle
https://covidcertificate-form.admin.ch/
Management UI
https://www.covidcertificate.admin.ch/
20.06.2022
7
Übersicht Covid-Zertifikat / Komponenten
Manage-
ment
Service
Signing
Service
Notification
Service
Printing
Service
Verification
Service
Trans-
formation
Service
Delivery
Service
Config
Service
Holder
Config
Service
Verifier
…
PostgreSQL
HSM
Light
Certificate
Service
Recovery
Request
API
Drittsysteme
(z.B. VacMe, OneDoc)
Interop
Service
API
Gateway
Service
Ausstellung
Covid-Zertifikate
durch autorisiertes
Personal
Antragsstellung (für alle), Bestätigung
durch autorisiertes Personal
Apps sind frei
verfügbar
Ablauf Ausstellung eines Covid-Zertifikates
20.06.2022
8
und mit einem Private Key signiert
Übersicht Covid-Zertifikat
Medizinisches Personal
(Testzentrum, Impfzentrum,
Apotheke, Hausarztpraxis)
Management UI
Erfasst Test /
Impfung /
Genesung
Signierung
PDF
Auslieferung
HSM
Verwendung Private Key
für Signierung
Erstellung Covid-Zertifikat
Payload
(Vorname, Nachname,
Geburtsdatum, Testtyp,
Impfprodukt etc.)
Holder App
Post
Private
Key
Public
Key
Die Daten werden von medizinischem Personal erfasst
Covid-Zertifikat
20.06.2022
9
− Sämtliche im PDF sichtbaren Daten sind im QR Code enthalten
− Personendaten werden nicht zentral bei der Bundesverwaltung
gespeichert.
Übersicht Covid-Zertifikat
Check App
Ablauf Verifikation eines Covid-Zertifikates
20.06.2022
10
Die digitale Signatur macht das Covid-Zertifikat fälschungssicher
Übersicht Covid-Zertifikat
PDF
Holder App
Post
HSM
Private
Key
Public
Key
Verwendung Public Key für
Verifikation der Signatur
Public Key Datenbank
Einführung 2’
Übersicht Covid-Zertifikat 5’
Herausforderungen 3’
Feature Toggles – Was und weshalb? 5’
Feature Toggles beim Covid-Zertifikat 10’
Live Demo 5’
Fragen 10’
20.06.2022
11
Agenda
Verordnungsänderungen
20.06.2022
12
− Die rechtliche Grundlage fürs Covid-Zertifikat ist in einer
Verordnung festgehalten
− Es gab 41 Fassungen der Verordnung zwischen 04. Juni
2021 und 27. April 2022
Herausforderungen
https://www.fedlex.admin.ch/eli/cc/2021/325/de
Risikofaktor «Herbst 2022»
20.06.2022
13
− Entwicklung der Fallzahlen, Hospitalisationen und
Todesfälle in Zukunft unbekannt
− Ziel: Möglichst gut vorbereitet sein, falls das Covid-
Zertifikat wieder verstärkt benötigt wird
Herausforderungen
Herbst 2022
Herbst 2022
Herbst 2022
https://www.covid19.admin.ch/de/weekly-report/situation
Einführung 2’
Übersicht Covid-Zertifikat 5’
Herausforderungen 3’
Feature Toggles – Was und weshalb? 5’
Feature Toggles beim Covid-Zertifikat 10’
Live Demo 5’
Fragen 10’
20.06.2022
14
Agenda
Was sind Feature Toggles?
20.06.2022
15
“Feature Toggles (often also referred to as Feature Flags) are a
powerful technique, allowing teams to modify system behavior
without changing code.”
Feature Toggles
https://martinfowler.com/articles/feature-toggles.html
Einteilung von Feature Toggles
20.06.2022
16
− Dimensionen:
− Langlebigkeit: Wie lebt der Feature Toggle?
− Dynamik: Wie dynamisch ist die Toggle Entscheidung?
− Kategorien von Feature Toggles:
− Release Toggles: Separierung Code Deployment und
Feature Release («Shift right»)
− Experiment Toggles: Für A/B Tests
− Ops Toggles: «Kill Switches» für (neue) Features für den
Fall dass in Produktion Probleme auftauchen
− Permission Toggles: Freischalten von Features für
spezifische Usergruppen (Beta Users, Premium User)
Feature Toggles gibt es in unterschiedlichen Ausprägungen
Feature Toggles
Dynamik
Langlebigkeit
Änderungen mit
Deployment
Änderungen zur
Laufzeit
Änderungen bei
jedem Request
Tage
Wochen
Monate
Jahre
Release
Toggles
Ops
Toggles
Experiment
Toggles
Permission
Toggles
https://martinfowler.com/articles/feature-toggles.html
Einführung 2’
Übersicht Covid-Zertifikat 5’
Herausforderungen 3’
Feature Toggles – Was und weshalb? 5’
Feature Toggles beim Covid-Zertifikat 10’
Live Demo 5’
Fragen 10’
20.06.2022
17
Agenda
Zertifikatsarten
20.06.2022
18
https://www.bag.admin.ch/bag/de/home/krankheiten/ausbrueche-epidemien-pandemien/aktuelle-
ausbrueche-epidemien/novel-cov/covid-zertifikat/covid-zertifikat-erhalt-gueltigkeit.html
Die verfügbaren Zertifikatsarten haben sich mehrfach verändert und werden sich (vermutlich) weiterhin verändern
Feature Toggles beim Covid-Zertifikat
Covid-Zertifikatsarten in der Schweiz
EU Standard Schweiz intern
Impfzertifikat
Testzertifikat
Genesungszertifikat
Genesungszertifikat mit Schnelltest
Antikörper
Impfung im Ausland
Ausnahmezertifikat
Neu auch mit Schnelltest
Feature Toggle für Zertifikatsarten
20.06.2022
19
Feature Toggles beim Covid-Zertifikat / Implementierung
Änderungen mit
Deployment
Änderungen zur
Laufzeit
Änderungen bei
jedem Request
Tage
Wochen
Monate
Jahre
Release
Toggles
Ops
Toggles
Experiment
Toggles
Permission
Toggles
− Anforderungen
− (temporär) nicht benötigte Zertifikatsarten ausschalten
− Bei Verordnungsänderungen Zertifikatsarten rasch
wieder einschalten
− Testen von (neuen) Zertifikatsarten von Deployment
trennen können
Covid-
Zertifikat
Dynamik
Langlebigkeit
Ziele der Implementierung
20.06.2022
20
− Toggle via Deployment
− Ein-/ausschalten soll alle möglichen Aufrufe abdecken:
− Manuell via UI
− CSV Upload
− API Gateway
− Die Feature Toggle sind sehr langlebig
→ Implementierung mit guter Wartbarkeit wichtig!
− «Minimal invasive» Implementierung
Feature Toggles beim Covid-Zertifikat / Implementierung
Implementierung der Feature Toggles
20.06.2022
21
Feature Toggles beim Covid-Zertifikat / Implementierung
Backend Frontend Weiteres
− Konfiguration (muss deployed werden)
− REST Endpunkt zum Auslesen aller
Toggles (für UI)
− Interceptor welcher sämtliche Requests
überprüft
− UI Elemente abhängig von Toggles − Dokumentation
− Automatisierte Tests
https://github.com/admin-ch/CovidCertificate-Management-Service
Konfiguration
20.06.2022
22
Feature Toggles beim Covid-Zertifikat / Implementierung
FeatureData
− uris: List<String>
− type: CertificateType
− start: LocalDateTime
− end: LocalDateTime
<<enumeration>>
CertificateType
− RECOVERY
− RECOVERY_RAT
− TEST
− VACCINATION
− VACCINATION_TOURIST
− ANTIBODY
− EXCEPTIONAL
REST Endpunkt
20.06.2022
23
− Auslesen getoggelten Features für
Darstellung im UI
Feature Toggles beim Covid-Zertifikat / Implementierung
Interceptor
20.06.2022
24
− Zentrale Stelle, welche den Zugriff auf die
Zertifikatstypen prüft
Feature Toggles beim Covid-Zertifikat / Implementierung
Weitere Aspekte
20.06.2022
25
− Dokumentation
z.B. https://github.com/admin-ch/CovidCertificate-Apidoc
− Automatisierte Tests: Konfiguration der erwarteten Toggles in Tests
Feature Toggles beim Covid-Zertifikat / Diverses
Live Demo
First rule of live demos:
Don‘t do live demos
Zusammenfassung: Feature Toggles beim Covid-Zertifikat
20.06.2022
27
Zertifikatsarten können via Feature Toggle ein- und ausgeschaltet werden
Die Toggles werden über eine Konfiguration gesteuert
Eine zentrale Logik im Backend (Interceptor) verifiziert sämtliche Requests
Ein REST Endpunkt gemeinsam mit Toggle-Entscheidungen im Frontend passen das UI an
die aktuell verfügbaren Zertifikatsarten an
Damit ist das Covid-Zertifikat vorbereitet für weitere potentiell kurzfristige Anpassungen der
verfügbaren Zertifikatsarten
zeitnahe Reaktion auf Verordnungsänderungen
Abschluss
Feature Toggles für Zertifikatsarten unterstützen eine
Fragen
Wir digitalisieren Ihr Unternehmen.
ti8m.com
ti&m AG
Buckhauserstrasse 24
CH-8048 Zürich
+41 44 497 75 00
ti&m AG
Monbijoustrasse 68
CH-3007 Bern
+41 31 960 15 55
ti&m AG
Innere Margarethenstrasse 5
CH-4051 Basel
+41 61 501 29 99
ti&m GmbH
Schaumainkai 91
D-60596 Frankfurt am Main
+49 69 24745268-0
ti&m GmbH
Kesselstraße 3
DE-40221 Düsseldorf
+49 69 24745268-0
ti&m Pte. Ltd.
18 Robinson Road #15-16
Singapore 048547
+65 6983 9530
Dankeschön!

Weitere ähnliche Inhalte

Ähnlich wie Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles

Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow OeffentlichRalf Ruethlein
 
System Center Configuration Manager with Azure, Intune and Application Manage...
System Center Configuration Manager with Azure, Intune and Application Manage...System Center Configuration Manager with Azure, Intune and Application Manage...
System Center Configuration Manager with Azure, Intune and Application Manage...Digicomp Academy AG
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Digicomp Academy AG
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes QAware GmbH
 
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software Intland Software GmbH
 
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Marc Müller
 
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...Marc Bless
 
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...Minerva SoftCare GmbH
 
Camunda@1&1
Camunda@1&1Camunda@1&1
Camunda@1&11&1
 
[DE] Itris Automation - Unternehmenspräsentation
[DE] Itris Automation - Unternehmenspräsentation[DE] Itris Automation - Unternehmenspräsentation
[DE] Itris Automation - UnternehmenspräsentationItris Automation Square
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Apigunnarmorling
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensivecamunda services GmbH
 
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDNUG e.V.
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenKai Donato
 
Whitepaper Visual Studio 2010 Lab Management
Whitepaper Visual Studio 2010 Lab ManagementWhitepaper Visual Studio 2010 Lab Management
Whitepaper Visual Studio 2010 Lab ManagementNico Orschel
 
Whitepaper Team Foundation Server 2010 Lab Management
Whitepaper Team Foundation Server 2010 Lab ManagementWhitepaper Team Foundation Server 2010 Lab Management
Whitepaper Team Foundation Server 2010 Lab ManagementNico Orschel
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 

Ähnlich wie Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles (20)

Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
 
System Center Configuration Manager with Azure, Intune and Application Manage...
System Center Configuration Manager with Azure, Intune and Application Manage...System Center Configuration Manager with Azure, Intune and Application Manage...
System Center Configuration Manager with Azure, Intune and Application Manage...
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
 
CWMC Insights 2020|11 - Technische Grundlagen zur Industrie 4.0 Umsetzung
CWMC Insights 2020|11 - Technische Grundlagen zur Industrie 4.0 UmsetzungCWMC Insights 2020|11 - Technische Grundlagen zur Industrie 4.0 Umsetzung
CWMC Insights 2020|11 - Technische Grundlagen zur Industrie 4.0 Umsetzung
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
 
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
 
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...
Wir erledigen alles sofort - Warum Qualität, Risikomanagement, Usability und...
 
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
 
Camunda@1&1
Camunda@1&1Camunda@1&1
Camunda@1&1
 
[DE] Itris Automation - Unternehmenspräsentation
[DE] Itris Automation - Unternehmenspräsentation[DE] Itris Automation - Unternehmenspräsentation
[DE] Itris Automation - Unternehmenspräsentation
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Api
 
Simplify SCCM with netECM
Simplify SCCM with netECMSimplify SCCM with netECM
Simplify SCCM with netECM
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensive
 
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
 
Whitepaper Visual Studio 2010 Lab Management
Whitepaper Visual Studio 2010 Lab ManagementWhitepaper Visual Studio 2010 Lab Management
Whitepaper Visual Studio 2010 Lab Management
 
Whitepaper Team Foundation Server 2010 Lab Management
Whitepaper Team Foundation Server 2010 Lab ManagementWhitepaper Team Foundation Server 2010 Lab Management
Whitepaper Team Foundation Server 2010 Lab Management
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 

Mehr von BATbern

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceBATbern
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureBATbern
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisBATbern
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at LifestageBATbern
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesBATbern
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!BATbern
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersBATbern
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionBATbern
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenBATbern
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLBATbern
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarBATbern
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?BATbern
 

Mehr von BATbern (20)

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und Knacknüsse
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplace
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven Architecture
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der Praxis
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at Lifestage
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless Architectures
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/ML
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdf
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdf
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?
 

Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles

  • 1. Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles Iris Hunkeler / Lead Engineer Bern, Juni 2022 BATbern
  • 3. 20.06.2022 3 Erfahrung − Software Engineering (11 Jahre) − Requirements Engineering (4 Jahre) − Business Analyse (4 Jahre) − Projektleitung (2 Jahre) Expertenwissen − Kotlin, Java − AWS (DynamoDB, Kinesis, EC2, S3, Cognito, CloudWatch, CloudFormation, Personalize) − Spring, Spring Boot − REST − Scrum − Hibernate, OpenJPA − jOOQ Branchenwissen − Grosshandel / E-Commerce − Öffentliche Verwaltung − Banken / Finanzbranche Ausbildung − CAS in Big Data and Machine Learning (Universität Zürich) − MSc in Business Information Systems (FHNW) − BSc ZFH in Betriebsökonomie mit Vertiefung in Wirtschaftsinformatik (ZHAW) − EFZ Applikationsentwicklerin mit kaufmännischer Berufsmaturität Iris Hunkeler Über mich Lead Engineer
  • 4. Einführung 2’ Übersicht Covid-Zertifikat 5’ Herausforderungen 3’ Feature Toggles – Was und weshalb? 5’ Feature Toggles beim Covid-Zertifikat 10’ Live Demo 5’ Fragen 10’ 20.06.2022 4 Agenda
  • 5. Schweizer Covid-Zertifikat 20.06.2022 5 − Was ist das Covid-Zertifikat? «Das Covid-Zertifikat ist ein offizieller Nachweis, der bestätigt, dass Sie gegen Covid-19 geimpft sind, die Erkrankung bereits durchgemacht haben oder über ein negatives PCR-Test- bzw. Antigen-Schnelltest-Ergebnis verfügen.» https://bag-coronavirus.ch/zertifikat/ − Das Covid-Zertifikat der Schweiz ist Open Source: https://github.com/admin-ch − Das Covid-Zertifikat basiert auf der PKI Infrastruktur des Bundes − Zertifikate werden mit geheimen, sicher aufbewahrten Private Keys signiert − Zertifikate können mit den dazugehörenden Public Keys verifiziert werden Übersicht Covid-Zertifikat
  • 6. EU Digital Covid Certificate 20.06.2022 6 − Die EU definierte den «EU Digital COVID Certificate» Standard, welcher innerhalb und ausserhalb der EU von verschiedenen Ländern umgesetzt wurde − EU Spezifikation https://eur-lex.europa.eu/legal- content/EN/TXT/PDF/?uri=CELEX:32021D1073&from=EN − Die Umsetzung des «EU Digital COVID Certificates» ist Open Source https://github.com/eu-digital-green-certificates − Das Schweizer Covid-Zertifikat setzt den «EU Digital COVID Certificate Standard» um Standards ermöglichen die internationale Zusammenarbeit Übersicht Covid-Zertifikat
  • 7. EU Gateway Check App Holder App Nationale Antragsstelle https://covidcertificate-form.admin.ch/ Management UI https://www.covidcertificate.admin.ch/ 20.06.2022 7 Übersicht Covid-Zertifikat / Komponenten Manage- ment Service Signing Service Notification Service Printing Service Verification Service Trans- formation Service Delivery Service Config Service Holder Config Service Verifier … PostgreSQL HSM Light Certificate Service Recovery Request API Drittsysteme (z.B. VacMe, OneDoc) Interop Service API Gateway Service Ausstellung Covid-Zertifikate durch autorisiertes Personal Antragsstellung (für alle), Bestätigung durch autorisiertes Personal Apps sind frei verfügbar
  • 8. Ablauf Ausstellung eines Covid-Zertifikates 20.06.2022 8 und mit einem Private Key signiert Übersicht Covid-Zertifikat Medizinisches Personal (Testzentrum, Impfzentrum, Apotheke, Hausarztpraxis) Management UI Erfasst Test / Impfung / Genesung Signierung PDF Auslieferung HSM Verwendung Private Key für Signierung Erstellung Covid-Zertifikat Payload (Vorname, Nachname, Geburtsdatum, Testtyp, Impfprodukt etc.) Holder App Post Private Key Public Key Die Daten werden von medizinischem Personal erfasst
  • 9. Covid-Zertifikat 20.06.2022 9 − Sämtliche im PDF sichtbaren Daten sind im QR Code enthalten − Personendaten werden nicht zentral bei der Bundesverwaltung gespeichert. Übersicht Covid-Zertifikat
  • 10. Check App Ablauf Verifikation eines Covid-Zertifikates 20.06.2022 10 Die digitale Signatur macht das Covid-Zertifikat fälschungssicher Übersicht Covid-Zertifikat PDF Holder App Post HSM Private Key Public Key Verwendung Public Key für Verifikation der Signatur Public Key Datenbank
  • 11. Einführung 2’ Übersicht Covid-Zertifikat 5’ Herausforderungen 3’ Feature Toggles – Was und weshalb? 5’ Feature Toggles beim Covid-Zertifikat 10’ Live Demo 5’ Fragen 10’ 20.06.2022 11 Agenda
  • 12. Verordnungsänderungen 20.06.2022 12 − Die rechtliche Grundlage fürs Covid-Zertifikat ist in einer Verordnung festgehalten − Es gab 41 Fassungen der Verordnung zwischen 04. Juni 2021 und 27. April 2022 Herausforderungen https://www.fedlex.admin.ch/eli/cc/2021/325/de
  • 13. Risikofaktor «Herbst 2022» 20.06.2022 13 − Entwicklung der Fallzahlen, Hospitalisationen und Todesfälle in Zukunft unbekannt − Ziel: Möglichst gut vorbereitet sein, falls das Covid- Zertifikat wieder verstärkt benötigt wird Herausforderungen Herbst 2022 Herbst 2022 Herbst 2022 https://www.covid19.admin.ch/de/weekly-report/situation
  • 14. Einführung 2’ Übersicht Covid-Zertifikat 5’ Herausforderungen 3’ Feature Toggles – Was und weshalb? 5’ Feature Toggles beim Covid-Zertifikat 10’ Live Demo 5’ Fragen 10’ 20.06.2022 14 Agenda
  • 15. Was sind Feature Toggles? 20.06.2022 15 “Feature Toggles (often also referred to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code.” Feature Toggles https://martinfowler.com/articles/feature-toggles.html
  • 16. Einteilung von Feature Toggles 20.06.2022 16 − Dimensionen: − Langlebigkeit: Wie lebt der Feature Toggle? − Dynamik: Wie dynamisch ist die Toggle Entscheidung? − Kategorien von Feature Toggles: − Release Toggles: Separierung Code Deployment und Feature Release («Shift right») − Experiment Toggles: Für A/B Tests − Ops Toggles: «Kill Switches» für (neue) Features für den Fall dass in Produktion Probleme auftauchen − Permission Toggles: Freischalten von Features für spezifische Usergruppen (Beta Users, Premium User) Feature Toggles gibt es in unterschiedlichen Ausprägungen Feature Toggles Dynamik Langlebigkeit Änderungen mit Deployment Änderungen zur Laufzeit Änderungen bei jedem Request Tage Wochen Monate Jahre Release Toggles Ops Toggles Experiment Toggles Permission Toggles https://martinfowler.com/articles/feature-toggles.html
  • 17. Einführung 2’ Übersicht Covid-Zertifikat 5’ Herausforderungen 3’ Feature Toggles – Was und weshalb? 5’ Feature Toggles beim Covid-Zertifikat 10’ Live Demo 5’ Fragen 10’ 20.06.2022 17 Agenda
  • 18. Zertifikatsarten 20.06.2022 18 https://www.bag.admin.ch/bag/de/home/krankheiten/ausbrueche-epidemien-pandemien/aktuelle- ausbrueche-epidemien/novel-cov/covid-zertifikat/covid-zertifikat-erhalt-gueltigkeit.html Die verfügbaren Zertifikatsarten haben sich mehrfach verändert und werden sich (vermutlich) weiterhin verändern Feature Toggles beim Covid-Zertifikat Covid-Zertifikatsarten in der Schweiz EU Standard Schweiz intern Impfzertifikat Testzertifikat Genesungszertifikat Genesungszertifikat mit Schnelltest Antikörper Impfung im Ausland Ausnahmezertifikat Neu auch mit Schnelltest
  • 19. Feature Toggle für Zertifikatsarten 20.06.2022 19 Feature Toggles beim Covid-Zertifikat / Implementierung Änderungen mit Deployment Änderungen zur Laufzeit Änderungen bei jedem Request Tage Wochen Monate Jahre Release Toggles Ops Toggles Experiment Toggles Permission Toggles − Anforderungen − (temporär) nicht benötigte Zertifikatsarten ausschalten − Bei Verordnungsänderungen Zertifikatsarten rasch wieder einschalten − Testen von (neuen) Zertifikatsarten von Deployment trennen können Covid- Zertifikat Dynamik Langlebigkeit
  • 20. Ziele der Implementierung 20.06.2022 20 − Toggle via Deployment − Ein-/ausschalten soll alle möglichen Aufrufe abdecken: − Manuell via UI − CSV Upload − API Gateway − Die Feature Toggle sind sehr langlebig → Implementierung mit guter Wartbarkeit wichtig! − «Minimal invasive» Implementierung Feature Toggles beim Covid-Zertifikat / Implementierung
  • 21. Implementierung der Feature Toggles 20.06.2022 21 Feature Toggles beim Covid-Zertifikat / Implementierung Backend Frontend Weiteres − Konfiguration (muss deployed werden) − REST Endpunkt zum Auslesen aller Toggles (für UI) − Interceptor welcher sämtliche Requests überprüft − UI Elemente abhängig von Toggles − Dokumentation − Automatisierte Tests https://github.com/admin-ch/CovidCertificate-Management-Service
  • 22. Konfiguration 20.06.2022 22 Feature Toggles beim Covid-Zertifikat / Implementierung FeatureData − uris: List<String> − type: CertificateType − start: LocalDateTime − end: LocalDateTime <<enumeration>> CertificateType − RECOVERY − RECOVERY_RAT − TEST − VACCINATION − VACCINATION_TOURIST − ANTIBODY − EXCEPTIONAL
  • 23. REST Endpunkt 20.06.2022 23 − Auslesen getoggelten Features für Darstellung im UI Feature Toggles beim Covid-Zertifikat / Implementierung
  • 24. Interceptor 20.06.2022 24 − Zentrale Stelle, welche den Zugriff auf die Zertifikatstypen prüft Feature Toggles beim Covid-Zertifikat / Implementierung
  • 25. Weitere Aspekte 20.06.2022 25 − Dokumentation z.B. https://github.com/admin-ch/CovidCertificate-Apidoc − Automatisierte Tests: Konfiguration der erwarteten Toggles in Tests Feature Toggles beim Covid-Zertifikat / Diverses
  • 26. Live Demo First rule of live demos: Don‘t do live demos
  • 27. Zusammenfassung: Feature Toggles beim Covid-Zertifikat 20.06.2022 27 Zertifikatsarten können via Feature Toggle ein- und ausgeschaltet werden Die Toggles werden über eine Konfiguration gesteuert Eine zentrale Logik im Backend (Interceptor) verifiziert sämtliche Requests Ein REST Endpunkt gemeinsam mit Toggle-Entscheidungen im Frontend passen das UI an die aktuell verfügbaren Zertifikatsarten an Damit ist das Covid-Zertifikat vorbereitet für weitere potentiell kurzfristige Anpassungen der verfügbaren Zertifikatsarten zeitnahe Reaktion auf Verordnungsänderungen Abschluss Feature Toggles für Zertifikatsarten unterstützen eine
  • 29. Wir digitalisieren Ihr Unternehmen. ti8m.com ti&m AG Buckhauserstrasse 24 CH-8048 Zürich +41 44 497 75 00 ti&m AG Monbijoustrasse 68 CH-3007 Bern +41 31 960 15 55 ti&m AG Innere Margarethenstrasse 5 CH-4051 Basel +41 61 501 29 99 ti&m GmbH Schaumainkai 91 D-60596 Frankfurt am Main +49 69 24745268-0 ti&m GmbH Kesselstraße 3 DE-40221 Düsseldorf +49 69 24745268-0 ti&m Pte. Ltd. 18 Robinson Road #15-16 Singapore 048547 +65 6983 9530 Dankeschön!