여러 구름이 참여할 수있는 클라우드 컴퓨팅 용 응용 프로그램을 설계하는 방법

StackOverflow https://stackoverflow.com/questions/1619650

  •  06-07-2019
  •  | 
  •  

문제

방금이 질문을 보았습니다. https://stackoverflow.com/questions/753122/ whith-cloud-computing-platform-i-choose

그러나 안전 엔지니어를위한 응용 프로그램을 설계 할 때 무엇을 해야하는지 확실하지 않으므로 높은 가동 시간이 중요합니다.

따라서 내 애플리케이션이 SQL Server를 사용하여 ASP.NET에 작성된 경우 가장 좋은 방법은 Azure를위한 디자인이지만 Amazon의 솔루션이 좋은 선택일까요? 동일한 시스템에 모든 것을 갖추어야하는지 또는 Amazon의 클라우드와 Azure의 ASP.Net에 데이터를 가지고 있어야하는지 어떻게 결정합니까?

유틸리티 정보, 물 및 전기에 대한 거래에 대한 또 다른 응용 프로그램이 있으므로 사용 및 청구 정보가 있으며 SQL Server를 사용하여 PHP에 작성되었습니다. 클라우드 컴퓨팅에 좋은 응용 프로그램 일 수 있습니까? Amazon의 솔루션이 PHP를위한 최상의 솔루션이 될 것 같으므로 유일한 옵션이지만, 사용할 수있는 제품의 일부를 어떻게 결정합니까?

기본적으로 내 질문은 응용 프로그램 아키텍처에 관한 것입니다. 호스팅을위한 디자인은 쉽지만 클라우드 컴퓨팅은 새로운 과제가 추가됩니다.

나의 주요 관심사는 순전히 내 응용 프로그램의 디자인에 관한 것입니다.

언어를 결정하면 클라우드 솔루션에 나를 잠그나요?

데이터베이스가 응용 프로그램과 다른 클라우드에있을 때 언제 원하십니까?

리프트 프레임 워크 (스칼라로 작성)를 사용하려면 필요한 것을 설치할 수 있습니까?

도움이 되었습니까?

해결책

우리는 Amazon AWS에서 상당히 큰 금융 서비스 SaaS를 운영합니다.

여기에는 두 가지 일반적인 문제가 있습니다 : 응용 프로그램 아키텍처 및 클라우드 플랫폼 서비스.

응용 프로그램 아키텍처는 사내 가상 머신 또는 실제 하드웨어에 배포하는 경우와 동일하다는 것을 알았습니다. 우리는 주로 오픈 소스 도구 (Java, Spring, Hibernate, MySQL, Terracotta, ...)를 사용하여 상당히 표준 N-Tier 응용 프로그램을 만들었습니다. 하드웨어 기반 옵션을 사용할 수 없기 때문에 고도로 사용할 수있는 / 오류 허용 범위 데이터베이스에 대한 몇 가지 고려 사항이 있지만 특정 클라우드 구현을 실제로 "타겟팅"하지는 않습니다.

클라우드 플랫폼 서비스는 전적으로 또 다른 문제입니다. 즉, 나는 다음과 같은 것을 의미합니다.

  • 시작 / 중지 / 모니터링 / 관리 / 스케일링 인스턴스
  • 가용성 / 중복성 (예 : Amazon에는 가용 영역이 있습니다)
  • 인스턴스 배포 / 초기화 / 구성
  • 파일 백업 / 복구
  • 보안 (예 : 방화벽 제어)

해당 영역의 표준화는 거의 없지만 적극적인 관심 분야이지만.

광범위하게, 당신은 아마도 클라우드 중립적 인 방식으로 애플리케이션을 건축 할 것이지만, 매우 구체적인 운영 절차를 생성 할 것입니다.

다른 공급자간에 프레젠테이션과 DB를 분할하는 것과 관련하여 다음과 같이 제안하지 않습니다.

  • 두 공급자 중 하나가 다운되면 다운됩니다
  • 인터넷을 통한 데이터 전송은 하나의 클라우드 제공 업체 내에서 데이터 전송보다 느리고 비싸며 안전합니다.

여러 클라우드 제공 업체를 더 잘 사용하는 것은 애플리케이션의 전체 사본을 둘 이상으로 배포하여 2 개 이상의 부하를 균형을 맞추거나 1 차가 다운 된 경우 핫 스탠드에 하나를 가질 수 있습니다. 그러나 거래 데이터를 캡처하면 대기 환경에서 캡처 된 데이터를 조정하는 전략이 필요합니다. 응용 프로그램의 특성에 따라 실행 가능하거나 실행되지 않을 수도 있습니다.

Azure에 대한 특정 경험은 없지만 일반적으로 가상 서버에서 원하는 소프트웨어를 설치할 수 있습니다. AWS 또는 유사한 서비스를 사용하는 경우 리프트를 설치하는 데 문제가되지 않습니다.

다른 팁

언어를 결정한다고해서 당신을 공급자에게 고정 시키지는 않습니다. 그러나 Windows에서 실행되도록 설계하는 것은 그렇습니다. Windows Virtualization은 Linux 가상화보다 훨씬 좁은 시장입니다. Xen, Technology Linode, Slicehost 등은 Windows를 두 번 이상 가상화하지 않습니다.

응용 프로그램이 Windows를 대상으로하면 선택이 결정적으로 더 얇습니다. 내 시장에서 나는 아마존이 Windows를 제공한다는 것을 알고 있습니다 (분명히 Azure와 마찬가지로). 그러나 우리와 같은 비용 효율적인 솔루션 및 Slicehost 's Will은 Windows의 비용이 소요됩니다.

클라우드 분리와 관련하여 : 여러 "클라우드"로 응용 프로그램을 분류하는 주요 이유는 애플리케이션 신뢰성을 제공하는 것입니다. 구름은 내려 가고 거의 거의 없으며, 한 바구니에 계란을 모두 갖는 데는 고 가용성이 필요한 응용 프로그램의 비용이들 것입니다. 그러나 데이터베이스가 응용 프로그램에서 별도의 클라우드에있는 경우 인터넷을 통해 SQL을 수행하는 데 대한 대기 시간을 갖게됩니다 (또한 SSH 터널과 같은 트래픽을 보호하기위한 아키텍처 또는 SQL Server가 제공 할 수있는 프로토콜 레벨 암호화 [확실하지 않아, 나는 PostgreSQL 남자]).

클라우드 호스팅이 호스팅과 다르다는 생각의 함정에 빠지지 마십시오. 사실, 그들은 거의 동일합니다. 우리 회사에서 우리는 클라우드 호스팅이 동일한 '올레 호스팅에 대한 새로운 사고 방식 일 뿐이라는 의견을 가지고 있습니다. 마법이 아닙니다.

클라우드 호스팅 용 디자인을 위해서는 애플리케이션이 샤딩 기능을 갖추어야하며 언제든지 노드가 추가되거나 제거 될 수 있음을 알고 있어야합니다. 건축 방식에 따라 설명하기가 크게 어렵지 않습니다. 일반적으로로드 밸런싱 애플리케이션 만 클라우드 별 의미를 알고 있습니다.

그것은 "클라우드 컴퓨팅"의 새벽이며 그러한 어떤 것과 마찬가지로 참가자들이 누워 있습니다. 그들의 가능한 많은 사람들을 잡기를 바라는 "마우스 트랩". 플레이어가 공통 근거 (즉, 어떤 형태의 표준)을 정의하기까지 시간이 걸릴 것이며, 그때까지 "차별화"무기는 우리가 측면을 선택하도록 강요 할 것입니다.

나는 이것이 너무 "비즈니스 지향적"이라고 생각하고 투표 할 것입니다. 그러나 나는 비즈니스 측면에 대해 생각합니다. ~ 전에 기술/언어. 하루가 끝나면 돈을 벌게됩니다.

누구든지 생각한다면 잠겨 있지 않습니다 클라우드 컴퓨팅 공급 업체 (SaaS/PaaS 유형 인 반면 IAAS 유형 공급 업체가 더 이상 따라)에이 게임 초반에, 당신은 큰 놀라움을 느끼고 있습니다. 화재!

부인 성명: 나는 어떤 유형의 클라우드 컴퓨팅 공급 업체 (SaaS, Paas, IAA)를 대표하지 않습니다. 나에게 투표 한 사람들이 자신의 충성을 식별하기 위해 돌보아 줄까요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top