Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Customer Migration Roadmap #4186

Open
20 of 57 tasks
ClaudeROSSI opened this issue Apr 14, 2023 · 0 comments
Open
20 of 57 tasks

Customer Migration Roadmap #4186

ClaudeROSSI opened this issue Apr 14, 2023 · 0 comments
Assignees

Comments

@ClaudeROSSI
Copy link
Contributor

ClaudeROSSI commented Apr 14, 2023

Some tenants may have to move to a different cluster. The list below provides details on how to proceed to minimize the downtime. The whole process will be tested using the ybg tenant moving it (for instance) from QA to LABS.

Prerequisites

  • Destination cluster is up and running
  • Destination cluster runs a version which is compliant with the source (no data migration)
  • Charger's template are the same on both clusters
  • CI/CD of the destination is in place and can build/deploy hotfixes from the open-source repository
  • SMTP is properly configured to allow sending notifications via emails
  • Smart-charging URL - do not use the one from SAP
  • Monitoring of the destination is live (prometheus/grafana)
  • PM2 monitoring is properly configured as well
  • Optional - Connection to MongoDB ATLAS is using a private link
  • Enable Access to ev-database (Car Catalog)

GCP Prerequisites

Create GCP Account - to enable Google's API

  • Firebase is properly configured to allow sending notifications to the mobile app
  • Recaptcha - secret key / key ID
  • Enable Google Maps
  • Enable Address Completion

OCPI Prerequisites

Gireve

  • Synchronize with GIREVE on how to migrate existing accounts
  • White list IP addresses of the destination cluster
  • Make sure Gireve is properly configured - handshake? - partner ID

Domain Name Prerequisites
All chargers that are to be moved should connect via a dedicated domain name - a.k.a a CPMS domain name.
e.g.: emobility-cpms.com
This domain is dedicated to charger connections - cannot be used for the dashboard/mobile app.

  • CPMS domain name MUST be registered on the destination registrar
  • [NS] records of the CPMS domain name points to the name server of the destination
  • Configure the load balancer (target group) at SAP - forward des web sockets
  • declare *.emobility-cpms.com in ACM on the destination
  • In route 53 - first route the trafic to the load balancer of the destination to activate SSL
  • [A] records of the CPMS domain name points to the static IP of the global accelerator (of the source)

Preparation Phase per Customer (Can be done in Parallel)

The preparation phase is important. Each customer will have to do it before moving the tenant to the destination.

  • Specify at the tenant level the CPMS domain name
  • The subdomain MUST be specified as well - e.g.: For tenant ybg, the new FQHN should be ybg.emobility-cpms.com
  • Ask the customer to update all chargers and make sure they all use the new URL
  • Plan the date of the switch to the destination
  • Make sure NOT TO DO IT when critical jobs are running (1st day of the month, etc...)
  • Plan with the customer the adaptation of external tools (Dashboards)
  • Plan with the customer the adaptation of their own mobile app
  • Clarify specific constraints (Gireve, IOThink, Concur, ...)

Cut-over to the Destination

  • Switch OFF all jobs for this tenant (both on the source and destination)
  • Backup/Restore tenant Data
  • Update the URL to the smart-charging endpoint
  • Update [A] records of the CPMS domain name (INCLUDING THE SUBDOMAIN) to target the ALB of the destination
  • Wait for the DNS replication worldwide - https://dnschecker.org/
  • Restart some charging stations manually - check the impact
  • Redirect of the whole tenant to the destination - redirectDomain property must be set on the source - DO NOT PUT THE SUBDOMAIN - DO NOT USE emobility-cpms!!!!
  • Trigger an OCPPJ restart on the source - can be done by triggering the OCPPJ deployment again
  • Monitor WebSocket connections (via Grafana) on both clusters
  • Check that chargers are now connected to the destination
  • Roaming - Get from GIREVE the new token and perform the handshake
  • Switch ON all jobs on the destination
  • ROAMING - pull tokens to check whether OCPI woks properly
  • Verify the behaviour of the web app and mobile app
  • Verify user registration (recaptcha)
  • Check for AsyncTask that didn't run while doing the cut-over
  • Check that the QR Codes still work

Rollback in Case of Emergency/Outage

In case of issues, a rollback should be possible

  • Revert [A] records of the CPMS domain name to make it target the ALB of the destination
  • Wait for the DNS replication worldwide - https://dnschecker.org/
  • Clear the redirectDomain property
  • Switch ON all jobs on the source
  • Trigger an OCPPJ restart on the source
  • Trigger an OCPPJ restart of the destination ?

Source Sunset

Anticipate the source sunset

  • Inform the customers about the future of the e-mobility-group.com domain. Still under discussion. Handover to SAP E-Mobility is ongoing
  • Existing QR codes can still be used for starting/stopping a session - the redirection feature of the mobile app is being used in that case
  • New QR codes will be necessary for downloading the new mobile app (as soon as we have it)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants