클라우드 지원 애플리케이션 아키텍처 구축을 위한 5단계
게시 됨: 2019-03-01특정 플랫폼을 위한 애플리케이션을 구축하는 것은 항상 좋은 생각입니다. 오늘날 많은 사람들에게 이는 클라우드 지원 애플리케이션을 위한 구축을 의미합니다. 애플리케이션 아키텍처가 클라우드용으로 특별히 설계되었는지 확인하면 그 과정에서 직면하는 문제가 줄어들지만 그 자체로 문제가 될 수도 있습니다.
클라우드 지원 애플리케이션을 생성하려는 경우 처음부터 성공을 보장하기 위해 수행해야 하는 많은 단계가 있습니다. 예, 오늘날 생성되는 모든 애플리케이션이 클라우드 기반이 될 수 있다는 것은 사실입니다. 그러나 프로젝트 요구 사항과 함께 성장할 수 있는 클라우드 지원 애플리케이션을 원하는 경우 이를 촉진해야 하는 고유한 개발 단계가 있습니다.
기존 아키텍처와 비교하여 클라우드 지원 아키텍처와 다른 점은 무엇입니까? 애플리케이션과 해당 구성 요소는 현장 리소스 대신 가상 리소스에서 호스팅되기 때문에 이러한 리소스는 다르게 할당됩니다. 로컬이 아닌 WAN(광역 네트워크)을 통해 배포해야 합니다. 또한 애플리케이션 사용자가 퍼블릭 클라우드 정보에 액세스할 수 없도록 리소스를 관리해야 합니다.
이제 무엇이 다른지 알았으므로 애플리케이션을 "클라우드 지원"으로 만드는 요소도 인식해야 합니다. IBM의 Kyle Brown과 Mike Capern에 따르면 "공용 또는 사설 클라우드에 효과적으로 배포할 수 있는 애플리케이션은 클라우드 지원 "입니다. 즉, 앱은 호스트의 모든 PaaS(Platform-as-a-Service) 기능을 활용할 수 있어야 합니다.
이것은 보이는 것만큼 획기적인 것은 아닙니다. 실제로 클라우드 지원 애플리케이션을 만들기 위해 기존 도구를 모두 남겨둘 필요는 없습니다. 핵심은 구현 프로세스를 최대한 활용하기 위해 가장 필수적인 단계와 규칙을 염두에 두는 것입니다.
클라우드 환경으로 마이그레이션하는 것이 그 어느 때보다 간편하거나 더 필요합니다. 빠르게 변화하는 소비자 요구 사항 덕분에 개발자는 긴장을 풀고 항상 개선해야 합니다. 좋아요; 편해질 틈이 없습니다. 클라우드 기술은 확장을 보다 쉽고 저렴하게 만들어 오늘날과 같은 세상에서 더 이상 선택 사항이 아닙니다.
클라우드 지원 아키텍처와 클라우드 네이티브
먼저, 방에 있는 코끼리에게 말을 걸어야 합니다. 클라우드 지원 아키텍처와 클라우드 네이티브 아키텍처에는 차이가 있으며 이 차이는 상당히 중요합니다. 클라우드 네이티브 애플리케이션은 퍼블릭 클라우드에서 실행되도록 작성된 모든 프로젝트입니다. 이들은 원래 컨테이너 기반 배포로 구축되었습니다.
클라우드 네이티브 애플리케이션은 애자일 소프트웨어 개발을 사용하여 항상 새로운 반복을 생성합니다. 개체 스토리지 또는 대기열 시스템과 같은 클라우드 서비스에 대한 의존도가 높다는 것을 알게 될 것입니다. 이것은 우리가 여기서 말하는 클라우드 지원과는 많이 다릅니다.
위에서 설명한 것처럼 클라우드 지원 은 기존 엔터프라이즈 애플리케이션을 클라우드에서 작동할 수 있도록 변환할 때입니다. 그들이 퍼블릭 클라우드가 제공하는 모든 서비스를 절대 이용할 수는 없지만(클라우드 네이티브만이 할 수 있는 일), 전환을 하면 여전히 많은 이점이 있습니다.
이 상황에서 제한 요소는 코드가 아닙니다. 실제로 배포 역학입니다. 엔터프라이즈 애플리케이션은 기본적으로 다중 계층이며, 이로 인해 원래 설계에 수평적 자동 확장이 내장된 클라우드 네이티브와 일치시키기가 어렵습니다. 이것이 애플리케이션이 현재 어떻게 배포되고 있는지 조사하는 것이 중요한 이유입니다. 업데이트 설치를 자동화하는 스크립트 세트가 이미 갖춰져 있다면 클라우드 지원으로 전환하는 것이 훨씬 더 쉬울 것입니다.
이제 앱을 위한 클라우드 지원 아키텍처를 만드는 것이 무엇을 의미하는지 이해했으므로 전환할 때 따라야 할 5단계에 대해 논의해 보겠습니다.
1. 스케일링의 효과 고려
프로그래밍 환경을 클라우드 기반으로 변경하는 것은 쉽지 않습니다. 이는 과감한 변경이며 확장해야 할 때 문제가 발생하지 않도록 하려면 많은 근본적인 변경이 필요합니다.
확장은 클라우드 플랫폼을 사용하는 많은 이점 중 하나입니다. 가상 애플리케이션은 구축 및 업데이트가 쉽습니다. 그러나 특정 토폴로지로 앱을 코딩하면 문제가 빨리 발생합니다. 지금 준비하지 않으면 동적 확장이 큰 피해를 줄 수 있습니다. 모든 새로운 프로젝트에 초기 단계에 있는 것처럼 접근하십시오.
가장 좋은 전략은 가능한 한 일반적으로 앱을 개발하는 것입니다. 이렇게 하면 정기적인 업데이트를 개발하고 앱을 현재뿐 아니라 미래에도 가능한 한 공동 작업으로 유지하는 것이 훨씬 더 효율적입니다.

2. 처리 및 데이터 분리
앱을 방해하는 일반적인 실수 중 하나는 데이터를 애플리케이션에 연결하는 것입니다. 다른 상황에서는 이것이 문제가 되지 않을 수 있지만 클라우드 지원 앱을 디자인할 때 처리 및 데이터를 별도의 구성 요소로 유지해야 합니다.
대부분의 공용 및 사설 클라우드는 이 데이터와 처리를 분리하기를 원합니다. 또한 특히 민감한 정보를 저장하는 경우 훨씬 더 안전합니다. 더 중요한 것은 앱에 부담을 주는 추가 데이터 스토리지가 없기 때문에 앱이 훨씬 더 잘 실행된다는 것입니다.
오늘날과 같이 느리고 신뢰할 수 없으며 사용자에게 응답하지 않는 앱은 감당할 수 없습니다. 클라우드 아키텍처에서는 앱이 항상 최고의 성능을 발휘하도록 하려면 데이터를 분리하는 것이 중요합니다.
3. 액세스 가능한 로그 유지
어떤 응용 프로그램도 100% 안전하고 오류가 없습니다. 이것은 개발자의 잘못이 아니라 기술의 현실일 뿐입니다. 로컬 파일 시스템에 로그를 쓰지 마십시오. 이렇게 하고 문제가 발생하면 이러한 로그에 액세스하는 것이 훨씬 더 어렵습니다. 전체 애플리케이션 충돌이 발생하는 경우 이러한 로컬 로그가 어떻게 도움이 될까요?
소중한 데이터를 잃지 마세요. 로그는 문제가 존재한다는 것을 알기도 전에 문제로 돌아가게 하는 이동 경로의 흔적입니다. 파일을 로컬에 저장하는 대신 타사의 로그 수집기를 사용하십시오. 오픈 소스 애그리게이터를 사용하든 상용 애그리게이터를 사용하든 관계없이 개발 팀이 스칼라 서버 및 인프라 모니터링에 액세스할 수 있도록 유지하십시오.
이러한 로그 프레임워크를 활용하면 많은 이점이 있습니다. 보고 싶은 정보를 필터링할 수 있고, 클라우드 스토리지에서 로그 파일을 추적할 수 있습니다. 문제가 발생하지 않도록 하는 가장 좋은 방법은 애그리게이터를 사용하여 실시간 변경 사항을 최신 상태로 유지하는 것입니다.
4. 보안이 최우선
예, 보안은 기술적으로 이 목록에 있지만 개발자에게는 항상 최우선이어야 합니다. 또 다른 모바일 앱 개발 회사 데이터 침해에 대한 또 다른 보고서를 보지 않고는 오늘 뉴스피드를 스크롤할 수 없습니다. 매일 사이버 공격이 더 보편화되고 있습니다. 앱이 또 다른 통계가 되는 것을 원하지 않습니다.
앱의 데이터를 암호화해야 합니다. 시스템 간에 흐르기 때문에 더 취약합니다. 이 정보를 저장하고 보호하는 시스템을 만드십시오.
클라우드 기반 보안은 기업 보안을 기반으로 해야 합니다. 아직 완전히 클라우드에 있지 않더라도 개발 단계 이상에서 앱 보안에 대한 접근 방식을 일관되게 유지하세요. 명확한 보안 사양을 만들고 DevOps 자동화를 이러한 표준으로 유지하십시오. 마지막으로 해당 산업의 보안 규정 및 규정 준수 조건에 대해 교육하십시오. 이들은 크게 다를 수 있습니다.
5. 데이터 이동 전략 수립
마지막으로 앱 개발 데이터를 클라우드로 이동하는 방법을 고려해야 합니다. 이러한 이전 단계에서 충분히 준비하면 간단한 과정이 될 것입니다. 물론 이것은 이동하는 데이터의 양에 따라 다릅니다. 데이터가 많지 않은 경우 인터넷 연결을 통해 이 데이터를 복사하는 것만큼 간단합니다.
더 큰 워크로드의 경우 보내기 전에 데이터를 압축해야 할 수 있습니다. 매우 큰 경우 물리적 드라이브를 클라우드 제공업체에 배송해야 할 수 있습니다. 귀하의 제공자는 최상의 이사 관행에 대한 구체적인 지침을 제공할 수 있습니다.
그러나 앱 개발 회사의 애플리케이션이 드라이브에 있으면 이식 가능한지 확인하십시오. 당신은 당신의 공급자가 당신의 응용 프로그램을 그들과 함께 "고정"하는 것을 원하지 않습니다. 메타데이터는 종종 단일 플랫폼에만 적용되므로 이식성도 유지해야 합니다. 마지막으로, 이상적으로는 자동화된 최종 테스트 전략을 진행합니다. 그게 다야, 당신은 클라우드에 있습니다!
결론
기존 개발에서 클라우드 지원 아키텍처로 전환할 때 주의해야 할 사항이 많이 있습니다. 예, 도중에 실수를 할 수 있습니다. 그러나 기술을 배우고 성장하는 한 더 효과적인 전략을 만들고 있습니다.
클라우드 기술에 투자하면 프로젝트가 다양한 이점을 누릴 수 있습니다. 이제 빠르고 효과적으로 확장할 수 있습니다. 그러나 위의 단계를 사용하여 안전하고 안정적인 전환을 수행해야 합니다. 쉽지는 않지만 그 이상의 가치가 있습니다.
2020년에 자신 있게 모바일 애플리케이션을 홍보하는 방법 자세히 알아보기