본문 바로가기
반응형

분류 전체보기760

개발에서 아티팩트 개발 산출물을 주로 Artifact라고 합니다. 또한 Java외에 기타 다른 다양한 '산출물'을 Artifact라고 부르며, Delivery 및 Deploy를 위해 최종적으로 관리되는 산출물로 생각하시면 되겠습니다. 참고로, Artifact를 모아서 저장하는 공간을 Library 또는 Artifactory 라고 합니다 https://www.inflearn.com/roadmaps?terms=9&page=1 로드맵 - 더 나은 학습을 위한 가이드 | 인프런 잘 설계된 로드맵을 따라 효율적으로 강의를 학습해보세요. 한 단계 성장한 나를 발견할 수 있을 거예요. - 로드맵 | 인프런... www.inflearn.com 2021. 8. 25.
Unit Test 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다. 이상적으로, 각 테스트 케이스는 서로 분리되어야 한다. 이를 위해 가짜 객체(Mock object)를 생성하는 것도 좋은 방법이다. 유닛 테스트는 (일반적인 테스트와 달리) 개발자(developer) 뿐만 아니라 보다 더 심도있는 테스트를 위해 테스터(tester)에 의해 수행되기도 한다. 문제점 발견 유닛 테스트의 목적은 프로그램의 각 부분을 고립 시켜서 각각의 부분.. 2021. 8. 25.
개발 환경(staging, production etc.) 환경 description local 로컬 개발 환경 먼저 개발을 하려면, 각자 개발자 PC에 개발 및 테스트 환경이 셋업 되어 있어야 한다. 각 개발자마다, 설치된 서버 환경을 local 환경이라고 한다. (예. 각 PC에 MySQL등의 DB와 Tomcat등의 제품을 설치하고, Eclipse와 같은 개발툴과, 컴파일러 등이 설치되어 있는 환경) 이 local 환경을 구축할시에 가장 주의해야 할점은 모든 개발자가 같은 개발 환경을 사용해야 한다는 것이다. 실제로 많이 일어나는 문제인데, 다른 version은 JVM를 사용하거나, 다른 버전의 Tomcat을 사용하거나 Lang (문자 local 설정)을 서로 다르게 해서, 정작 코드를 합칠때, local에서 잘 작동했던 코드가 작동하지 않는 경우가 많다. .. 2021. 8. 25.
Canary 배포 - Rollbacks 카나리아의 상태를 모니터링하면 CodeDeploy에서 롤백이 필요한지 여부를 결정할 수 있습니다. 지정된 CloudWatch 경보 중 하나라도 ALARM 상태가 되면 CodeDeploy는 배포를 자동으로 롤백합니다. 오류를 넣어봅니다. 배포 중에 CanaryErrorsAlarm이 트리거되도록 의도적으로 Lambda 함수를 중단할 수 있습니다. sam-app/hello-world/app.js의 람다 코드를 업데이트하여 다음과 같이 모든 호출에서 오류를 발생시킵니다. let response; exports.lambdaHandler = async (event, context) => { throw new Error("This will cause a deployment rollback"); // try { // .. 2021. 8. 24.
Canary 배포 - Sam 탬플릿 업데이트 및 Canary 모니터링 프로젝트에서 SAM 템플릿(sam-app/template.yaml)을 열고 HelloWorldFunction 속성 섹션에 다음 줄을 추가합니다. AutoPublishAlias: live DeploymentPreference: Type: Canary10Percent5Minutes 배포 기본 설정 유형 이 워크샵에서는 Canary10Percent5Minutes 전략을 사용합니다. 즉, 트래픽이 2단계로 이동됩니다. 첫 번째 증분에서는 트래픽의 10%만 새 Lambda 버전으로 이동되고 5분 후에 나머지 90%가 이동됩니다. CodeDeploy에서 선택할 수 있는 다른 배포 전략이 있습니다. Canary10Percent30Minutes Canary10Percent5Minutes Canary10Percent10.. 2021. 8. 24.
Canary 배포 개요(SAM) 카나리아 배포는 전체 고객 기반에 롤아웃하기 전에 소규모 사용자 하위 집합에 변경 사항을 천천히 롤아웃하여 새 버전의 애플리케이션 배포 위험을 줄이는 기술입니다. 블루/그린 및 카나리아 배포의 개념은 한동안 사용되어 왔으며 소프트웨어 배포의 위험을 줄이기 위한 모범 사례로 잘 확립되었습니다. 기존 애플리케이션에서는 애플리케이션 상태를 확인하는 동시에 플릿의 서버를 천천히 점진적으로 업데이트합니다. 그러나 이러한 개념을 서버리스 세계에 매핑할 때 약간의 임피던스 불일치가 있습니다. 서버가 없을 때는 여러 서버에 소프트웨어를 점진적으로 배포할 수 없습니다. 이것을 가능하게 하는 데 관련된 몇 가지 서비스와 기능이 있다는 것입니다. Lambda 버전 및 별칭 AWS Lambda를 사용하면 동일한 함수의 여러 .. 2021. 8. 24.
배포, 테스트 방식(전략)(Recreate, Rolling, blue/green, Canary, A/B, Shadow) 목차 배포 방식에 대해 찾아 보았는데 롤백하고 카나리하고 비슷하게 적어 놓는 경우도 있고 블루/그린도 비슷하게 적어놓은경우가 많아 역시 구글에서 정리해놓은 것을 옮겨보는게 좋아 보여 포스팅 했습니다. 배포 방식 서비스를 배포할 때 항상 사용자에게 즉시 노출되는 것은 아닙니다. 서비스가 출시된 후에만 사용자에게 애플리케이션의 변경사항이 표시되기도 합니다. 그러나 서비스가 인플레이스 출시되면 배포와 출시가 동시에 발생합니다. 이 경우 새 버전을 배포하면 프로덕션 트래픽이 허용되기 시작합니다. 또는 여러 서비스 버전을 동시에 프로비저닝하기 위한 배포 전략이 있습니다. 이러한 배포 패턴을 사용하면 들어오는 요청을 수신하는 버전을 제어하고 관리할 수 있습니다. Recreate, Rolling, Blue/green.. 2021. 8. 24.
AWS codecommit 리포지토리 연결 및 에러 로컬에서 codecommit을 이용하는데 the requested url returned error 403 aws codecommit 다음과 같은 에러가 떠버렷습니다. 근데 이상한게 첫번째는 잘 됬었던거 같은데 중간에 설정값을 바꾼것같네요. Troubleshooting을 하자면 Codecommit에는 3가지 접근방법이 있다. https - credential helper 사용하는방식 ssh - ssh(퍼블릭,프라이빗) key 이용하는 방식 https(GRC) - 로컬로 연결하는 방식 저는 로컬에서 git-remote-codecommit 을 사용하므로 https(GRC)를 사용해야하는데 https입력하라고 해서 맨위에 것을 사용한게 원인이었습니다. 헌데 push를 했는데 git: 'remote-codeco.. 2021. 8. 24.
Pipeline 만들기(SAM) Pipeline 구축 방법 CI/CD 파이프라인 생성을 자동화하는 가장 좋은 방법은 코드로서의 인프라를 통해 프로그래밍 방식으로 프로비저닝하는 것입니다. 이는 마이크로서비스당 파이프라인이 있는 마이크로서비스 환경에서 특히 유용합니다. 이는 잠재적으로 수십 개의 파이프라인을 의미할 수 있습니다. 이러한 파이프라인을 자동으로 생성하는 방법을 사용하면 개발자가 매번 콘솔에서 수동으로 빌드하지 않고도 필요한 만큼 생성할 수 있습니다. 파이프라인을 만드는 다양한 방법 프로그래밍 방식으로 파이프라인을 생성하기 위해 다양한 메커니즘을 사용하는 고객을 봅니다. 오늘날 개발자는 선택할 수 있는 선택지가 많지만 가장 일반적인 것은 다음과 같습니다. AWS CloudFormation AWS CDK Terraform AWS .. 2021. 8. 23.
Pipeline 만들기(SAM) 개요 및 리포지토리 생성 AWS Code Pipeline을 사용하여 지속적 전달 파이프라인을 생성하여 빌드, 패키징 및 배포 명령을 자동화하는 방법을 배우게 됩니다. 사용하는 서비스는 CodeCommit, CodeBuild, CodePipeline, CloudFormation 및 AWS CDK입니다. 모든 CI/CD 파이프라인은 코드 리포지토리로 시작합니다. 여기에서는 간편한 통합을 위해 AWS CodeCommit을 사용하지만 GitHub와 같은 다른 소스 코드 통합을 사용할 수도 있습니다. 터미널에서 다음 명령을 실행하여 새 CodeCommit 리포지토리를 생성합니다. aws codecommit create-repository --repository-name sam-app 나중에 cloneUrlHttp의 값이 필요하니 복사해둡.. 2021. 8. 23.
AWS에 수동 배포(SAM) 완전 자동화된 지속적 전달 파이프라인 구축을 시작하기 전에 이 장에서는 AWS SAM CLI를 사용하여 서버리스 애플리케이션을 구축, 패키징 및 배포하는 방법을 배웁니다. 이 워크샵은 배포 자동화에 관한 것이지만 이 장은 Serverless 애플리케이션을 패키징하고 배포하는 방법의 기초를 배우는 데 매우 중요합니다. 수동 배포를 수행하는 방법을 배우는 것은 소스 제어 리포지토리에 변경 사항을 커밋하기 전에 자신의 개인 스택을 만들고 자주 배포하여 변경 사항을 테스트하려는 개발자에게도 유용합니다. Artifacts 아티팩트는 CI/CD 컨텍스트에서 빌드 프로세스의 출력을 나타냅니다. 아티팩트는 일반적으로 zip/tar 파일, jar 또는 바이너리 형태입니다. 그런 다음 이러한 아티팩트를 가져와 다른 환경(.. 2021. 8. 23.
로컬에서 프로젝트 실행(SAM) 이제 SAM 응용 프로그램이 있습니다. AWS SAM CLI를 사용하여 로컬에서 실행하고 테스트하는 방법을 배우게 됩니다. 이는 일상적인 개발 워크플로의 일부이기 때문에 중요합니다. 애플리케이션이 예상대로 작동하는지 확인하고, 무엇이 잘못되었는지 디버그하고, 변경 사항을 중앙 저장소로 푸시하기 전에 문제를 수정하는 데 도움이 됩니다. 애플리케이션을 로컬에서 실행하기 전에 애플리케이션에서 사용할 수 있는 타사 라이브러리 또는 종속성을 설치하는 것이 일반적입니다. 이러한 종속성은 런타임에 따라 다른 파일에 정의됩니다(예: NodeJS 프로젝트의 경우 package.json 또는 Python 프로젝트의 경우 requirements.txt). cd sam-app/hello-world npm install SAM.. 2021. 8. 23.
반응형