Akamai가 개발 프로세스 동안 소프트웨어 보안을 개선하기 위해 사용하는 절차를 간략히 소개합니다. 이것은 모든 엔지니어링 팀이 구축 프로세스 동안 불안정해질 수 있는 경우를 최소화하기 위해 따르는 프로세스입니다.

Akamai가 다수의 QA 테스트를 진행하는 동안 전체 인터넷에서 한 지리적 영역, ISP 또는 고객에만 적용되는 극단적인 문제가 발생할 수 있습니다.

우선 배경지식을 조금 쌓아보겠습니다. Akamai 엔지니어가 소프트웨어를 개발하면 이 소프트웨어는 Akamai 배포 네트워크를 구성하는 수십만 대의 서버에 설치됩니다. Akamai 소프트웨어 개발 프로세스에는 다른 대형 SaaS(Software as a Service) 공급자들이 활용하는 것과 비슷한 운영 중심 모델이 이용됩니다. 이는 팀워크, 역할 분담 및 위험 관리를 강조하는 적응형 모델이라 할 수 있습니다. 내부에서 개발된 소프트웨어 외에도 Akamai는 업스트림 공급업체의 FLOSS 및 독자적인 소프트웨어를 비롯해 타사에서 개발한 소프트웨어도 광범위하게 이용합니다.

이러한 구성 요소는 확장성, 문제 해결 개선, 모니터링 시스템에 대한 원격 분석 및 상태 확인 보고, 또는 소프트웨어의 특정 부분만 사용하도록 Akamai에서 수정할 수 있습니다.

Akamai Engineering 부서는 허용되는 소프트웨어의 변경 한도를 제한하고 소스 코드 제출을 추적해 적시에 알림을 제공하는 RCS(개정 관리 시스템)를 사용합니다. 소스 코드의 체크아웃 및 체크인은 액세스 제어와 비거부를 모두 제공할 수 있도록 공개 키 암호화를 통해 승인됩니다.

변경 사항은 Akamai 서비스에 영향을 최소화하기 위해 "페이즈(Phase)"라는 단계별로 적용됩니다. Akamai는 구성 요소가 정확한 개정 버전인지 그리고 전송 중 변경되지 않았는지 확인하는 보호 기능이 있는 보안 연결을 통해 소프트웨어를 설치합니다.

각 단계에서 제대로 실행되고 안정적인 것으로 검증되면 나머지 부분도 배포하도록 결정이 내려집니다. Akamai에서는 이를 "월드" 배포 단계라 합니다. 어떤 단계든 설치를 롤백하는 방법에 대한 문서화된 프로세스가 마련되어 있습니다. 왜냐하면 문제가 있을 때 소프트웨어에서 새로 설치된 지역으로의 트래픽 전송을 자동으로 억제하지는 못하기 때문입니다. 많은 경우, 롤백이 필요할 때 영향을 받는 서버는 자체적으로 중지됩니다.

소프트웨어는 일반적으로 전 세계 배포 시 Akamai 서비스에 대한 영향을 최소화하기 위해 "그룹"으로 설치됩니다. 예를 들어 어떤 지역에 서버가 3개인 경우 한 번에 서버 1개만 설치됩니다. 연속성 보장을 위해 Akamai는 전체 지역에 소프트웨어를 한꺼번에 설치하지 않습니다.

이러한 관리 조치는 설치 시 소프트웨어 변경으로 인해 네트워크에 의도하지 않은 영향을 미치는 사례를 최소화함으로써 고객에게 중단 없이 서비스를 제공할 수 있도록 마련된 것입니다.