3 min to read
처음 겪은 마이그레이션 전략-intro
처음 있었던 서비스 인수인계, 도메인 URL을 활용해서 마이그레이션 작업을 수행하다
Summary
회사에서 북딜
이란 서비스를 샀다. 그럼과 동시에 북딜
의 서버를 우리 회사의 인프라로 가져와야한다.
하지만, 북딜
서버를 인스턴스 째로 가져오고 싶지만 해당 인스턴스 안에 보안관련한 api키들이 가득하니 그렇게 할 수는 없다고 한다.
즉 보안관련된 정보는 받아볼 수 없기때문에 직접 받아볼 수 있는것들은 소스코드뿐, 구술로 들은 아키텍쳐들의 내용..
이 포스팅의 마이그레이션 작업의 중요점것 바로
DNS를 활용하여 url을 교체하는 마이그레이션 작업.
상황
초기 인수인계 상황
- 인수인계를 우리측 경영자와 건내주는 CEO 둘이서 이야기를 하며 인수인계 절차를 밟고 있음
- 인수인계 해줄 개발자가 있지만 퇴사하고 다른 회사에 있는 상태
- 직접 작업해 줄 수 있는건 인수해오는 회사의 개발에 관련된 질의응답 그리고 요청
얻을 수 있는 리소스
- Android의 소스코드: 플래이 스토어에 배포되어있던 녀석이 아님]
- iOS의 소스코드: 다행히 앱 스토어에 배포되어있던 녀석]
- API Server: 소스코드속성에 대한 모든 설정값이 비어있음[protocol을 붙여야하는지, 어떤 형태의 값이 들어가는지 모름][shall script 코드를 짠걸로 실행하고 배포하는것 같았음][하지만 pm2가 더 나을꺼라 판단]
- Web Server: 소스코드(소개페이지이며, 서비스DB에 접근을 하지만 정말 인트로 소개페이지 뿐임)
- Web Admin Server: 소스코드(관리페이지이며, 라이브러리 의존성을 내가 해결하지 못해서 올리지 못하였다)
- Scheduler 소스코드: 소스코드(배치 프로그램이며, 통계의 결과 및 SMS, Email, SNS(kakatalk)의 푸쉬 및 알림서비스를 제공하는 용도)
- External API(kakaotalk): 소스코드(Third Party 회사와 연동하여 카카오톡의 알림톡을 보낼 수 있도록 하는 서버)
- 구두로 전해들은 아키텍쳐에 대한 내용…
위 모든 소스들의 설정값은 다 비어있다. 하지만 소스코드들을 살펴보고 주석에 조금씩 흔적들이 남아있었다.
작업 순서
- 마이그레이션 인트로 Link
- 전해들은 정보들을 토대로 아키텍쳐 파악 Link
- 서드파티(facebook login, google analytics, firebase, playstore, android player… 등등.. 또는 sms, kakao BizMsg .. 등등 약 9개 정도 된 듯) 권한 및 계정 가져오기 Link
- 운영 서버 설계 Link
- 마이그레이션 전략 구상 [포스팅 포기..]
- 테스트 환경 구축 [포스팅 포기..]
- 마이그레이션 [포스팅 포기..]
- 운영 서버 배포 [포스팅 포기..]
- 후속작업… [포스팅 포기..]
마이그레이션 전략이 다른 회사들은 어떻게 되는지 모르겠다.. 서적들이나 인터넷의 다른 자료들은 어떻게 마이그레이션을 진행하는지 모르겠지만 가능한 내가 처한 상황에서 가장 이상적인 방법으로 실천하려했다…. (결과는 성공적)..
문서는 이 순서대로 가며, 실제 작업 진행 또한 이러한 순서대로 했다.
2. 서드파티, 및 서비스 권한 획득
- Apple Store에 올라가 있는 서비스 양도 받기
- Play Store에 올라가 있는 서비스 양도 받기
- 루트계정(어드민) 이것이 즉 개발자 계정임 이 계정으로 받아야 한다.
- 페이스북
- 대쉬보드에 관리자 권한으로 부여할 사람 초대하고 부여한 사람이 나가면 양도 끝
- 구글 애널리틱스
- 관리->사용자관리 에서 관리자 권한으로 부여할 사람 초대하고 부여한 사람이 나가면 양도 끝
- 파이어베이스, API dashboard(Google Login 및 GCM 포함)
- 관리->사용자관리 에서 관리자 권한으로 부여할 사람 초대하고 부여한 사람이 나가면 양도
- 샌드버드
- 고객지원과 통화하며 … api키를 그대로 쓰는 상태로 API의 권한을 받고싶다.. 라고 컨택해야함. 샌드버드 특성상 본사가 실리콘벨리에있어 작업 처리에 조금 늦는 감이 있다.
- SMS(SKTelink)
- Kakao Message(BizTalk)
- 7번과 8번은 여러 서류가 필요한데…. 상담사분깨 대놓고 신입 커밍아웃했다. 상담사분이 뭐가 필요한지 알려주는데 하나도 못알아 들었다. 그래서 결국.
“저 개발자이며 이 쪽 분야에 대해 하나도 모릅니다. 하지만 필요하신 문서가 뭔지 알려주시면 스스로 검색해서 찾아보도록 하겠습니다. 그 문서들은 어떻게 준비 하면 되나요?…..”
** 위 작업에 중요한 점: 안드로이드, iOS 배포를 새로 하지 않으려고 권한을 받으려고 하는것. 안드로이드, iOS 를 .. 새로 배포하게 될 경우… 이전에 바라보던 서버와, 새로 바라보는 서버. 두개를 켜야하는데.. 이전에 바라보던 서버를 제어하지 못하는 상황이므로.. 위 방법은 위험하고 여러 불편함을 감내 해야한다는 생각을 하게됨
** 7,8 항목에서 중요한 점: 이 두 서드파티 회사들은 2개의 장비에서 하나의 발급받은 ID를 사용하지 못하기 때문에 인수인계가 끝나자마자 이전에 사용하고 있던 장비(서버)가 접근을 하지 못하도록 Agent프로그램의 접근을 막아버린다.
-
비즈톡에서는 기존에 쓰던 ip주소를 지우고, 새로 말씀드린 ip 주소로 바꿔버려서 이전에 사용하던 API서버의 BizTalk Agent프로그램이 죽었었다. 이 때에는 화이트 리스트에 “추가” 해달라 해야한다. “대체”가 아니라..
-
SKtelink에서는 인수인계 작업이 끝나면서 기존에 사용하던 번호를 제거시켜버렸다. 발신자 번호를 항상 넣어주어야 하는데, 발신자 번호가 사라지게 되면서 SkTelink의 Agent프로그램이 또 사망했다.
즉.. 마이그레이션 작업 3일 남기고 두 서버가 제 기능을 못하고 죽어버리게 되었다.
이 사실을 전혀 인지하지 못하다가 고객 피드백을 받고서야 알았다.
정말 멘탈이 나가버리는줄 알았다.
Comments