IoT

[CI] Flutter IoT 무중단 운영 시 Shorebird 고려사항

너드나무 2024. 7. 29. 17:48
반응형

서론

IoT 프로젝트를 제품으로 외부에 활용한지 2개월 가량이 지나갔다.

앱 충돌, 메모리 최적화 등 많은 이슈가 있었고 네이티브를 제외한 개선은 Shorebird로 자동배포를 기획하였다.
하지만, 백그라운드에서 앱이 다운로드가 정상적으로 이뤄졌는지에 대한 확인과 앱 재시작 시 shorebird patch가 정상적으로 동작하는지에 대한 검토에서 24시간 무중단 운영 상황에서의 Shorebird의 단점을 정리해보고자 한다.

* Shorebird의 기술적 단점이 주제가 아닌 무중단 운영 환경에서의 단점임을 유의하자.

Shorebird 동작 과정

  1. Develop : 네이티브 영역을 제외한 dart 코드 수정
  2. shorebird patch --platforms=android --release-version={version} : shorebird를 통한 Codepush
  3. 패치 내역 확인 후 Device Background App Update
  4. 앱 재시작 시 Update App Install

Shorebird Daily Patch Install


고려사항

  • 무중단 환경에서의 Shorebird Updater
    • 프로젝트에서 활용하는 IoT는 24시간 무중단 운영이 요구사항이다.
    • Background 에서 Shorebird App Update가 동작하나, 재시작을 수행하는 UX가 없으므로 Install 과정이 유기적으로 수행될 수 없다.
    • 원격 지원을 통해 재부팅을 수행하거나 앱을 재시작하는 방법으로 Patch를 반영해야 한다.
    • 영업 시간 외에는 불필요 전원 OFF를 수행하는 업체의 경우에는 재부팅 후 자동 실행으로 해당 이슈가 해결될 수 있다.
  • 어떤 IoT 기기가 Patch 되었는가에 대한 고민
    • 현재, 전국에 설치한 IoT 기기의 수는 100대 이상으로 지속적으로 증가하고 있다.
    • 자잘한 버그 개선 등 Patch를 수행하였을 때, install에 대한 개수는 표시되지만 특정 단말기의 현재 Patch 버전이 몇인지 확인이 불가능하다.
    • 심각한 이슈 발생 시, release 버전을 신규로 생성하여 설치하고 있지만, shorebird가 불필요해진다는 모순이 발생한다.
    • 고도화 시, 특정 API를 통해 현재 버전을 return 하는 Logic을 개발하는 부분이 필요하다.

결론

  1. A to Z 테스트가 완료된 앱 버전을 릴리즈하자.
  2. 현장 상황에 맞추어 개발을 타이트하게 하면 위험하다.
728x90
반응형