Netflix OSS 스택 전체와 배포에 익숙하지 않습니다. 현재 현명한 지식 수준에 대한 배경으로서, 제 주된 역할은 프론트 엔드 애플리케이션 엔지니어입니다. 그러나 저는 운영 측면이 즐겁기 때문에 새로운 배포 전략과 새 프로젝트를위한 도구를 설정하려고합니다.
우리의 목표
- 매우 손쉬운 배포 (버튼을 눌러 프로덕션 업데이트)
- 테스트 환경에 자동 배포 (Jenkins 사용)
- 손쉬운 유지 보수 (작성할 앱이 있으며 생산 문제를 처리하는 데 시간을 허비하고 싶지 않음)
- 서비스 지향 아키텍처 (많은 소규모 앱, 다양한 언어 및 데이터 저장소)를 처리하는 기능
- 조만간 전략을 변경할 필요가없는 충분한 유연성 (이미 RightScale에서 벗어나려고합니다)
이렇게하면 초기 설정 시간이 조금 더 길어질 경우 나중에 두통을 덜 수 있습니다.
따라서이 라인을 따라 팟 캐스트를 듣고 Ops 강의를보고 수많은 블로그 게시물을 읽었으며 목표와 모범 사례를 형성하기 위해 취한 사항을 바탕으로 다음과 같은 계획을 세우기 시작했습니다. 마찬가지로 패키지를 jar로 롤링하고 AMI로 롤링합니다.
우리는 이것을 모두 계획하고 Chef 서버를 사용하고 인스턴스를 즉석에서 수렴하는 것과 비교할 때의 이점을 좋아했습니다 (우리는 제한된 타임 라인과 Chef 서버 워크 플로에 대한 이해 부족으로 인해 오류가 발생하기 쉽다고 생각했습니다). 그러나 동료는 자신을 둘러 보았고 Elastic Beanstalk가 우리의 요구를 충족시키는 것처럼 느꼈습니다.
나는 그것을 조사하고 WAR 파일과 첨부 RDS 데이터베이스로 테스트 환경을 회전시켰다. 문제가없는 것 같고 AWS API를 통해 Jenkins를 사용하여 테스트 환경에 배포를 자동화 할 수 있다고 생각합니다. 충분히 간단 해 보인다 ... 아마도 너무 단순하다.
내가 궁금한 것은 캐치가 무엇입니까? Elastic Beanstalk가 매우 간단하고 효과적이라면 왜 더 이야기하지 않습니까? 두 가지 배포 전략에 대한 객관적인 의견과 사실을 찾는 데 어려움을 겪고 있습니다.
Elastic Beanstalk를 사용하십니까? 그렇다면 왜 그리고 어떤 요인들이 그 결정을 이끌어 냅니까? 무엇을 좋아하고 싫어합니까?
Elastic Beanstalk를 사용하지 않고 고려한 경우 무엇을 사용하고 왜 Elastic Beanstalk를 사용하지 않았습니까?
SOA를위한 Elastic Beanstalk 기반 배포 전략의 장단점은 무엇입니까? 즉, Elastic Beanstalk는 서로 의존하는 많은 소규모 응용 프로그램에서 제대로 작동합니까?