고도화 if(kakao)2022 Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao.
공통서버 개선 빠른 롤백 빠른 배포 Server Side Rendering 도입 Open Graph 운영성 업무 FE 서비스 RC 배포 서비스 가시성 증진 레포 단위 A/B 테스트 도입 서비스 성능 지표 수집 운영성 업무 개선 Client Side Rendering 환경 개선과 관련된 이야기
너무 어려워.. 운영이 용이한 환경으로 바꿔야 할 때가 온 것 같은데.. SNS에서 페이지 미리보기가 제대로 나와야 잠재 사용자를 끌어올 수 있는데, Client Side Rendering 환경에서는 이 작업이 너무 번거로워! 새로운 기능을 퍼블릭 오픈하기 전에 운영 환경에서 최종 확인하고 싶은데.. 빠르게 핫픽스를 나가야 하는데.. 배포하는데 시간이 너무 오래 걸리네..
Storage 카카오페이 CSR* 공통 서버 Application * Client Side Rendering 공통 서버 (현재) 서비스 개수 50+ 인증 SEO 기타 공통 기능 공통 기능 사용을 위해 FE 서비스가 공통 서버에 의존 유입 트래픽의 지속적인 증가 현 상황에 맞는 신규 환경 구성 필요
A Git Repository 서비스 B Git Repository 서비스 C Git Repository Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.
Creative Commons Attribution 4.0 International. - 컨테이너화된 애플리케이션의 관리를 도와주는 오픈소스 시스템 - 점진적 롤아웃을 통한 안정적인 무중단 배포 가능 - 간편한 Scaling 지원 -> 물리 서버 환경에서 Container 기반의 K8s 환경으로 변경 이슈1) 유연한 운영이 어려운 기존 프론트엔드 서비스 제공 환경
Attribution 4.0 International. Kubernetes (K8s) - 컨테이너화된 애플리케이션의 관리를 도와주는 오픈소스 시스템 - 점진적 롤아웃을 통한 안정적인 무중단 배포 가능 - 간편한 Scaling 지원 -> 물리 서버 환경에서 Container 기반의 K8s 환경으로 변경 이슈1) 유연한 운영이 어려운 기존 프론트엔드 서비스 제공 환경 카카오페이는 Kubernetes를 적극적으로 사용 중 카카오페이의 K8s 운영 노하우 활용 가능 개발 편의성 운영 안정성
Manager - Node Module의 Plug'n'Play 지원 - 효율적인 의존성 관리 - 예측 가능한 의존성 사용 - 환경과 독립된 실행 환경 보장 Yarn Logo from yarnpkg/asset is licensed under the Creative Commons Attribution 4.0 International. -> Yarn Berry (Yarn 2) 도입 이슈2.1) 프론트엔드 서비스 배포에 오랜 시간이 소요됨
Protocol (aka. OG Tag) - 소셜 그래프 내에서 웹 페이지를 리치하게 표현하기 위한 프로토콜 - <meta> 태그의 Property와 Content를 사용하여 표현 <head> <meta property="og:type" content="website" /> <meta property="og:title" content="߽ਗࢲܨ ߊә" /> <meta property="og:description" content="प࠺ҳೡ ٸ ߽ਗ т ਃহ ߽ਗࢲܨ ߊә߉ਵࣁਃ!" /> <meta property="og:image" content="https://~/insurance-homme/images/insu-claim-docu-share-fb.png" /> </head>
IS> - Open Graph를 포함한 Static HTML 페이지를 만들어서 배포 - Static HTML 페이지에 사용자 접속 시 원래 서비스 페이지로 Redirect 사용자 Crawler FE 공통 서버 Static Page -> 경로별 Open Graph 설정 가능하게끔 변경 Open Graph 확인 Static Page 열람 공통 서버로 Redirect
IS> - Open Graph를 포함한 Static HTML 페이지를 만들어서 배포 - Static HTML 페이지에 사용자 접속 시 원래 서비스 페이지로 Redirect 사용자 Crawler FE 공통 서버 -> 경로별 Open Graph 설정 가능하게끔 변경 Open Graph 확인 Static Page 열람 공통 서버로 Redirect 필요 시마다 Static Page 생성 작업 필요 Static Page
있는 환경 구축 - 사용자가 요청한 경로에 해당되는 Open Graph 값 제공 이슈4) 외부 트래픽을 전이시키기 위한 운영성 개발업무 존재 -> 경로별 Open Graph 설정 가능하게끔 변경 사용자 Crawler FE 공통 서버 Open Graph 확인 경로별 Open Graph 설정 마케터 / PM / 개발자 서비스 사용
있는 환경 구축 - 사용자가 요청한 경로에 해당되는 Open Graph 값 제공 이슈4) 외부 트래픽을 전이시키기 위한 운영성 개발업무 존재 -> 경로별 Open Graph 설정 가능하게끔 변경 사용자 Crawler FE 공통 서버 Open Graph 확인 경로별 Open Graph 설정 마케터 / PM / 개발자 서비스 사용 운영성 개발업무 감소 개발자 없이 유연한 Open Graph 운영 가능
어려움 - 레거시 환경을 Container 기반 K8s 환경으로 이관하여 유연한 서버 관리 가능 - 배포 · 롤백에 오랜 시간 소요 - Yarn Berry 도입 및 롤백 전략 수립으로 배포 · 롤백 시간 대폭 단축 - 퍼블릭 오픈 전 기능 최종 확인 수단의 부재 - 계정 기반의 RC 배포 환경 도입으로 퍼블릭 오픈 전 추가 검증 레이어 확보 - 외부 트래픽을 전이시키기 위한 운영성 개발업무 존재 - 경로별 Open Graph 관리 시스템 구축으로 유연한 Open Graph 운영 가능