기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
현대적 애플리케이션 개발
잘 설계된 클라우드 네이티브 애플리케이션을 구축합니다.
최신 애플리케이션
최신 애플리케이션을 설계할 때 운영 및 개발을 위한 애자일 솔루션을 개발합니다. 최신 애플리케이션은 고객 수요 변화에 자동으로 대응하며 장애에 대한 복원력이 뛰어납니다. 엔지니어는 변경 사항을 신속하게 개발 및 배포하고 애플리케이션 성능을 모니터링할 수 있습니다. 최신 애플리케이션은 자가 복구가 가능하도록 설계되었으며 필요할 때 0의 비용으로 트래픽이 없는 것을 포함하여 대규모 또는 소규모 트래픽으로 확장할 수 있습니다.
잘 설계된 클라우드 네이티브 애플리케이션을 구축하려면 기본 기술과 모범 사례를 깊이 이해해야 합니다. 조직은 마이크로서비스 아키텍처를 채택하고 애플리케이션을 모듈식으로 느슨하게 결합하도록 설계하여 독립적인 배포와 확장성을 허용해야 합니다. 이 접근 방식을 통해 조직은 애플리케이션을 빠르고 독립적으로 개발, 테스트 및 배포되는 더 작고 관리 가능한 구성 요소로 나눌 수 있습니다.
시작
최신 접근 방식 살펴보기
먼저 컨테이너, 서버리스 기술 및 마이크로서비스
기존 클라우드 기반 애플리케이션을 업데이트할 때 성공적인 접근 방식에는 Strangler fig 패턴을
클라우드 네이티브 컴퓨팅 기능 채택
클라우드 네이티브 컴퓨팅 기능은 최신 애플리케이션 개발의 핵심입니다. 이 접근 방식을 사용하려면 조직이 컴퓨팅 단위를 호스팅하는 방법을 고려하고 각 사용 사례 또는 서비스에 가장 적합한 옵션을 식별해야 합니다. 예를 들어 AWS Lambda는 애플리케이션 코드를 실행하기 위한 서버리스 메커니즘을 제공하고 이벤트 기반 아키텍처에서 중요한 역할을 합니다. Lambda 함수는 온디맨드로 시작되고 정의된 최대 동시성까지 병렬로 실행되므로 다양한 작업을 수행하도록 확장할 수 있습니다.
컨테이너화 사용
최신 소프트웨어 개발에서 애플리케이션 및 종속성 관리는 특히 다양한 환경에서 일관성을 유지해야 할 필요성을 고려할 때 점점 더 복잡한 작업이 되었습니다. 이러한 문제를 해결하기 위해 Docker와 같은 컨테이너화 기술은 애플리케이션 및 해당 종속성을 패키징하는 효과적인 솔루션으로 부상했습니다. 컨테이너는 애플리케이션의 런타임 환경에 관계없이 일관되고 재현 가능한 배포를 보장하므로 로컬 환경의 개발은 클라우드 환경의 프로덕션 개발과 동일한 방식으로 작동합니다. 이 접근 방식은 환경 또는 구성 내 불일치로 인해 발생할 수 있는 오류를 줄입니다.
최신 데이터베이스 사용
최신 데이터베이스를 사용하는 경우 애플리케이션 내의 각 마이크로서비스는 요구 사항을 충족하는 용도에 맞게 구축된 데이터베이스를 사용할 수 있으므로 민첩성과 성능이 향상되고 비용은 절감됩니다. 예를 들어 한 마이크로서비스는 세션 데이터를 저장할 때 높은 처리량을 달성하기 위해 NoSQL 데이터베이스를 사용할 수 있고, 다른 마이크로서비스는 관계형 데이터베이스를 사용하여 복잡한 테이블 조인을 수행할 수 있으며, 또 다른 마이크로서비스는 양자 원장 데이터베이스를 사용하여 블록체인의 변경 사항을 추적할 수 있습니다.
최신 데이터베이스는 확장성과 유연성을 제공합니다. 또한 기존 데이터베이스보다 더 나은 보안, 규정 준수 및 신뢰성을 제공하는 데 도움이 됩니다. 이를 통해 조직은 데이터를 더 효율적으로 저장 및 관리하고 애플리케이션이 적시에 올바른 데이터에 액세스하여 성능과 사용자 경험을 개선할 수 있습니다.
최신 데이터베이스로 마이그레이션하는 것은 최신 애플리케이션 개발의 중요한 구성 요소입니다. 조직은 올바른 데이터 스토리지 솔루션을 사용하여 데이터 관리 기능을 최적화하고 보다 효율적이고 안정적인 애플리케이션을 제공할 수 있습니다. 각 마이크로서비스를 독립적으로 만들고 각 마이크로서비스에 적합한 기술을 선택하면 조직은 비용을 최소화하면서 효율성과 확장성을 극대화할 수 있도록 데이터 기능을 추가로 최적화할 수 있습니다.
고급
최신 아키텍처 최적화
추가 최적화를 달성하려면 서버리스 기술의 구현을 구체화하고 Amazon API Gateway 및와 같은 AWS 서비스를 사용하여 독립적으로 확장 및 배포할 수 있는 아키텍처를 개발합니다AWS Lambda. Amazon Route 53 및를 사용하여 서비스 검색을 구현AWS Cloud Map하여 구성 요소 간에 원활한 통신을 보장합니다.
API 버전 관리, 캐싱 및 속도 제한을 채택하여 다양한 애플리케이션 버전에서 호환성과 성능을 유지합니다. AWS Identity and Access Management (IAM) 및 리소스 정책을 사용하여 보안을 강화합니다. 이를 통해 인프라를 보호하고 승인된 엔터티에만 액세스 권한을 부여할 수 있습니다.
가능하면 서버리스 서비스를 사용하여 기본 인프라를 관리할 필요 없이 컨테이너를 실행합니다. 이를 통해 핵심 애플리케이션 개발에 집중할 수 있으며 리소스 관리 및 성능을 개선할 수 있습니다. 또한 확장성, 유연성 및 비용 효율성의 이점을 최대한 활용할 수 있습니다.
서버리스 아키텍처의 복잡성을 심층 분석하고 이러한 고급 사례를 통합하면 조직은 개선 및 미세 조정 기회를 발견하고 궁극적으로 클라우드 네이티브 애플리케이션의 잠재력을 극대화할 수 있습니다. 이러한 노력은 전반적인 사용자 경험을 더욱 향상시키는 보다 정교한 애플리케이션 패턴을 채택하는 데 도움이 됩니다. 또한 조직이 소프트웨어 개발 프로세스에서 더 민첩하고 효율적으로 작업할 수 있도록 지원합니다.
서비스 메시 기술 사용
조직이 애플리케이션을 구축하고 배포하기 위한 마이크로서비스 아키텍처를 점점 더 많이 채택함에 따라 이러한 서비스 간의 복잡성, 보안 및 통신을 관리하는 것이 중요합니다. Istio, Linkerd 또는 Consul과 같은 서비스 메시 기술은 마이크로서비스의 보안, 관찰성 및 신뢰성을 개선하는 데 중요한 역할을 합니다.
가시성 및 추적성 보장
최신 사례는 개발 프로세스에서 가시성과 추적성을 높이고 업계 표준 및 모범 사례를 더 쉽게 준수할 수 있도록 합니다. 가시성과 모니터링은 최신 애플리케이션 개발에 필수적입니다. 모니터링 및 로깅 솔루션을 구현하여 애플리케이션 성능에 대한 중요한 인사이트를 제공하면 조직은 개선이 필요한 영역을 식별하고 애플리케이션을 최적화할 수 있습니다. 플랫폼 엔지니어링 팀과 협력하여 애플리케이션 오류, 성능 및 규정 준수에 대한 end-to-end 가시성과 모니터링을 제공하는 도구를 제공하여 문제를 신속하게 감지, 진단 및 해결할 수 있도록 하는 것이 좋습니다.
Excel
마이크로서비스 수용
많은 조직에서 최신 애플리케이션 개발은 비즈니스 성공과 동의어입니다. 마이크로서비스는 이러한 혁신의 핵심이며 조직은 이러한 강력한 아키텍처 패턴을 수용하여 이점을 얻을 수 있습니다.
마이크로서비스는 확장성과 복원력이 뛰어나고 민첩한 애플리케이션 아키텍처를 제공합니다. 애플리케이션을 독립적으로 배포 가능한 소규모 서비스로 분류하여 조직은 애플리케이션의 다른 부분에 영향을 주지 않고 특정 구성 요소를 빠르게 반복하도록 선택할 수 있습니다. 회로 차단기 및 벌크헤드와 같은 고급 복원력 패턴은 이러한 애플리케이션의 고가용성을 보장하는 데 중요한 역할을 합니다.
회로 차단기는 비정상 서비스에서 통신을 일시적으로 중지하거나 전환하여 계단식 장애를 방지하는 안전 메커니즘 역할을 하므로 복구할 수 있습니다. 벌크헤드는 리소스를 격리하고 잠재적 장애의 영향 범위를 제한합니다. 이러한 패턴을 함께 사용하면 예상치 못한 중단을 견디고 최적의 성능을 유지하는 강력한 아키텍처가 생성됩니다.
마이크로서비스 구현의 또 다른 중요한 측면은 도메인 기반 설계(DDD) 원칙을 채택하는 것입니다. DDD는 비즈니스 도메인에 대한 이해를 공유하고 이를 잘 구성된 소프트웨어 설계로 변환하는 데 중점을 둡니다. 이 접근 방식은 보다 응집력 있고 유지 관리 가능한 마이크로서비스로 이어지며, 조직의 요구 사항에 따라 애플리케이션이 단계별로 발전하도록 합니다.
마이크로서비스 기반 애플리케이션에서는 서비스 간 통신을 최적화하는 것도 중요합니다. 조직은 gRPC 또는 GraphQL과 같은 고급 프로토콜을 구현하여 서비스 간의 통신 효율성을 크게 향상시킬 수 있습니다. 이러한 프로토콜은 유형의 안전성, 짧은 지연 시간 및 유연성과 같은 기능을 제공하여 애플리케이션의 전반적인 성능과 유지 관리를 개선하는 데 도움이 됩니다.
마이크로서비스를 채택하는 조직은 혁신, 민첩성 및 협업을 장려하는 환경을 제공합니다. 개발 팀은 일반적으로 비즈니스 역량을 중심으로 구성되며 지속적 통합 및 지속적 전달(CI/CD) 관행에 중점을 둡니다. 결정을 내리고, 실험하고, 반복할 수 있는 권한이 있으며, 공동 책임과 책임의 문화를 수용합니다.