6P by xguru 2022-04-04 | favorite | 댓글과 토론
  • BBC가 클라우드로 이관하면서 서버리스 기반 플랫폼인 'WebCore'를 구축
  • 지난 1년간 최종목표까지 30%정도만 달성했지만, 이미 효과가 보이기 시작
  • 서버리스를 사용하면 플랫폼 기반을 엔지니어링 하는데 시간을 들이는 것보다, 고객에게 제공하는 가치에 집중할 수 있음
  • BBC는 캐슁을 통해서 안전성과 성능을 극대화 해왔음. 하지만 요즘 추세에 맞게 독자 개인별로 맞춤한 콘텐츠를 제공하기 위해서는, 더 많은 변화를 줘야하고 더 큰 부하를 받게됨

Personalisation / Relevancy

  • 독자별로 개인화된 페이지를 지원하게 구축중
  • 프론트 페이지의 경우 현재 개인화 되어있으며, 500ms 정도의 렌더링 시간이 소요되며 그동안 30개 정도의 펑션을 호출
  • 2022/2월에 1.45억개의 호출이 개인화 되었으며, 전체 WebCore 트래픽의 6%
  • 다음 12개월동안 대부분의 페이지가 독자별로 개인화 되도록 만들 것

Experimentation

  • 캐슁에 의존했던 기존 플랫폼에서는 페이지에서 다양한 실험을 수행하기 어려웠음
  • A/B/n 테스팅으로 다양한 실험이 가능하게 개발을 진행중

Speed of Updates

  • 평일에는 BBC 뉴스 및 스포츠 섹션이 편집자에 의해 초당 3번씩 변경됨(기사, 인덱스, 비디오, 숏폼 포스팅등)
  • 개인화 되지 않은 페이지들은 최대한 새로운 컨텐츠가 반영되기를 원하지만, 캐쉬 때문에 어려움
  • 서버리스 Redis를 통해서 새로운 기사가 사용자에게 보여지는 시간을 계속 개선중
  • 8개월간 2.5분에서 30초까지 줄였고, 다음 12개월동안 5초 이하로 줄이는 것을 목표

Build times

  • 기술팀이 빠르고 안전하게 Deploy 하기 위해서, 기존의 CI/CD 파이프라인에서 탈피
  • Jekins 기반에서 서버리스 CI/CD 파이프라인으로 변경
  • 빌드시간이 최초 24분에서 현재는 5분까지 줄였고, 2분을 목표

마이너한 이슈

  • 시끄러운 이웃 문제 : 클라우드의 서버리스 플랫폼이 공유된 자원을 사용하므로 가끔 느려지는 경우가 발생