클라우드 개발 : 시작하기 전에 알아야 할 9 가지 사항

더 많은 기업이 퍼블릭 및 프라이빗 클라우드 컴퓨팅 이니셔티브를 시작함에 따라 클라우드에서의 애플리케이션 개발 및 테스트가 인기를 얻고 있습니다. 클라우드 개발에는 일반적으로 통합 개발 환경, 애플리케이션 수명주기 관리 구성 요소 (예 : 테스트 및 품질 관리, 소스 코드 및 구성 관리, 지속적 배포 도구), 애플리케이션 보안 테스트 구성 요소가 포함됩니다.

클라우드 기반 개발 경험이있는 기술 경영진과 개발자는 이러한 환경에서 개발하는 데 비용 절감 및 시장 출시 속도 향상과 같은 분명한 이점이 있다고 말하지만주의해야 할 과제와 놀라움이 있습니다.

[편집자의 21 페이지 클라우드 컴퓨팅 심층 분석 PDF 특별 보고서에서 클라우드 컴퓨팅을 실제로 활용하는 데 필요한 말도 안되는 설명과 조언을 얻으십시오. | 의 클라우드 컴퓨팅 보고서 뉴스 레터를 통해 클라우드를 계속 유지하십시오. ]

클라우드에서의 일반적인 개발이 얼마나 될지는 명확하지 않습니다. 그러나 업계 분석에 따르면 증가하고 있습니다. 2011 년 2 월 리서치 노트에서 Gartner는 2010 년 회사의 심포지엄에 참석 한 고객이 기존 사용자 지정 웹 애플리케이션의 개발 및 유지 관리를 향상시키기 위해 클라우드 컴퓨팅에 "급격히 증가 된 관심"을 표명했다고 말했습니다.

Gartner의 수석 연구 분석가 인 Eric Knipp은 "프로토 타이핑 및 병렬 브랜치 개발 분야에서 가장 큰 비중을 차지하고 있지만로드 및 성능 테스트 공간에서도 엄청난 성장을 보이고 있습니다."라고 말합니다.

처음으로 클라우드 개발을 시작하려는 경우, 직면 할 수있는 9 가지 유형의 장애물과 실제로 작업을 수행 한 개발자로부터 해결 방법에 대한 제안이 있습니다.

클라우드 개발 문제 1 : 클라우드가 항상 "실제 세계"처럼 작동하지는 않습니다.

개발자는 프로덕션에서 사용하는 구성이 클라우드 서비스에서 복제하기 어렵다는 것을 알 수 있습니다. 예를 들어, 로컬로 다시 실행하기 전에 클라우드에서 개발 한 애플리케이션을 사용하면 단순히 클라우드 서비스에 복사 할 수없는 레거시 시스템에 대해 테스트해야 할 수 있습니다. "즉, 테스트 앱을 시작하고 실행하기 위해 개발자가 스터 빙해야하는 것들이 더 많습니다. "

Knipp은 서비스 가상화 기술이 도움이 될 수 있으며 개발자는 다중 / 병렬 지점 개발을 가능하게하는 시장 제품을 활용할 수 있다고 말합니다. 기업이 엔터프라이즈 애플리케이션을 클라우드로 이동하는 데 도움이되는 Lisa라는 소프트웨어 제품군을 제공하는 iTKO의 경우를 살펴보십시오.

비 클라우드 개발에 익숙한 개발자는 클라우드에서 웹 애플리케이션을 구축 할 때 놀라움에 직면 할 수도 있습니다. 예를 들어, Ohio Music Education Association의 온라인 등록 애플리케이션을 구축 한 Greg Taylor는 데이터베이스 구조에 대한 철저한 이해가 필요하고 사용자가 애플리케이션을 만들 때 사용자가 어떻게 상호 작용할지를 기대하지 않았습니다.

주 전체 음악 콘텐츠에서 학교 음악 연주자의 등록을 처리하는이 앱은 MySQL 데이터베이스를 백엔드로 사용하고 Alpha Software의 Alpha Five 10.5를 프론트 엔드로 사용합니다. Taylor는 "저는 FileMaker Pro 배경 [그리고] 그 제품이 데이터베이스 구조와 관련하여 매우 관대합니다."라고 말합니다. "불량한 디자인은 여전히 ​​합리적 성공으로 사용될 수 있습니다."

그러나 MySQL을 사용하여 개발하면 Taylor는 웹 앱이 가능한 최고의 성능을 발휘할 수 있도록 매우 체계적으로 구성되었습니다. 더 많은 필드를 추가하기 위해 테이블 ​​구조로 돌아가는 것은 다른 개발 도구 인 MySQL 용 Navicat과 실제 웹 페이지 디자인을위한 Alpha Five 사이의 순환을 포함하기 때문에 시간이 많이 걸립니다. 첫 번째 도구는 데이터베이스 구조를 생성하고 두 번째 도구는 사용자가 데이터베이스에 정보를 입력하고 편집하기 위해 상호 작용하는 페이지를 생성합니다.

Taylor는 "이미 생성 된 데이터베이스를 활용하는 개발자에게는 문제가되지 않을 수 있습니다."라고 말합니다. "그들은 단순히 Alpha Five를 사용하여 사용자가 액세스 할 웹 페이지를 개발했습니다. 제 경우에는 데이터베이스와 웹 페이지를 동시에 개발하고 있었기 때문에 계획하지 않았다면 개발 도구간에 전환해야했을 것입니다. 조심스럽게."

지속적인 라운드 트립을 피하기 위해 Taylor는 자신의 데이터베이스 개발 접근 방식을 변경해야했습니다. "먼저 필요한 모든 필드가 포함 된 명확한 ERD [엔티티 관계 다이어그램]을 개발함으로써 내 웹 앱이 효율적이고 전체 개발 시간이 크게 단축되었습니다."

어떤 경우에는 클라우드 개발 도구가 적어도 어제 실제 세계와 같이 작동합니다. 신장 투석 전문 의료 회사 인 DaVita의 HRIS 수석 분석가 인 Jeff Hensley는 클라우드에서 작업하는 개발자가 명령 줄 도구, XML 및 SQL을 사용해야한다는 사실에 놀랐습니다. 그는 채택이 증가함에 따라 시간이 지남에 따라 구식 접근 방식이 바뀔 것으로 예상합니다.

DaVita는 클라우드 기반 애플리케이션 제공 플랫폼과 호스팅 서버를 모두 사용하여 인적 자원 데이터웨어 하우스 및 비즈니스 인텔리전스 애플리케이션을 개발하고 제공합니다.

클라우드 개발 문제 2 : 일부 앱은 클라우드 개발에 적합하지 않습니다.

예를 들어 Faith Educational Ministries의 IT 부사장 인 Dan Stueck은 극단적 인 데이터 보안 또는 규제 제한이 있거나 Cobol과 같은 레거시 코딩 프로젝트에 의존하는 클라우드에서 고급 애플리케이션을 개발하지 않습니다. "이 두 가지는 아마도 사내에 가장 잘 보관 될 것입니다. 첫 번째는 명백한 보안 문제로 인한 것이고 두 번째는 '죽은'언어 문제 때문입니다."라고 그는 말합니다.

Stueck이 클라우드를 사용한 곳은 Amazon.com의 퍼블릭 클라우드 서비스에서 개발 서버를 실행하고 클라우드에서 학생 정보 시스템, 학생 성적표 아카이브 및 홈 스쿨 북 판매 애플리케이션을 구축하는 것입니다.

클라우드 개발 문제 3 : 개발자는 종종 익숙하지 않은 클라우드 영역을 싫어함

"가장 예상치 못한 점은 전체 [클라우드 개발] 프로젝트가 관리 및 영업 팀과 시스템을 사용하는 모든 사람이 얼마나 잘 받아들 였는지, [그리고] IT 조직과 특히 개발자가 얼마나 잘 받아들 였는지, "20/20의 수석 아키텍트 인 Mark Warren은 말합니다.

IT 직원들은 Microsoft .Net, SQL Server, Java 및 기타 기존 개발 플랫폼으로 작업하는 데 익숙했고 Force.com은 완전히 다른 모델이었습니다. "SQL과 Java를 알고 있다면 그것은 당신의 도구 상자이며, 앞으로 나올 완전히 외계 플랫폼으로 가고 싶지 않을 것입니다."라고 Warren은 말합니다.

그 결과 영업 애플리케이션은 주로 IT 개발자가 아닌 비즈니스 직원이 개발했습니다. 워렌은 그 자체로 일련의 도전을 불러 일으켰고, 가장 큰 문제는 변화 관리와 IT 거버넌스에 대한 기업인들의 이해 부족이었습니다. Warren은 "IT에는 기업인이 강요하는 데 익숙하지 않은 수준의 규율이 있습니다. "우리는 변경 관리 문제에 대해 신속하게 알려야했습니다."

기술 인력이 클라우드 환경에서 개발하는 것을 꺼리는 문제를 해결하기 위해 IT 부서가 내부적으로 클라우드 컴퓨팅을 채택 할 수 있도록 구현할 수있는 프로그램이 있다고 Warren은 말합니다. "교육은 확실히 촉진하기에 좋은 방법입니다."라고 그는 말합니다. "그러나 IT 문화가 새로운 방법과 기술에 개방되어 있지 않으면 조직의 변화 [새로운 개발자 확보]가 유일한 옵션 일 수 있습니다."

클라우드 개발 문제 4 : 문서 부족으로 클라우드 개발자 방해

Hensley는 "수요가 증가하고 점점 더 많은 회사가 클라우드 개념을 채택하기 시작함에 따라 변경 될 것으로 예상합니다."라고 말합니다. "우리는 컨설팅 회사와 협력하여이 문제를 해결할 수있었습니다."

클라우드 개발 문제 5 : 네트워크 문제는 사설 클라우드 환경을 위협 할 수 있습니다.

Embarcadero는 애플리케이션 구축 및 테스트를 위해 가상화 된 데이터 센터를 사용하고 있습니다. Intersimone은 "내부 사설 클라우드의 경우 예약 된 날짜 / 시간을 선택하고 특정 순서로 수행되는 서버를 스테이징하는 두 가지 옵션이 있습니다."라고 Intersimone은 말합니다. "우리의 메인 사설 클라우드와 지역 개발 사무소에서 항상 실행되는 자동화 된 빌드 및 자동화 된 연기 테스트 프로세스가 있습니다."

더 가용 한 환경을 확보하기 위해 Intersimone은 온 디맨드 확장, 장애 조치, 재해 복구 및 재해 대비를 제공하기 위해 퍼블릭 및 프라이빗 클라우드에 설치할 수있는 CohesiveFT의 클라우드 컨테이너 및 가상 프라이빗 네트워크 제품을 찾고 있다고 말합니다.

개발 및 테스트에 영향을 미칠 수있는 다른 문제에는 특히 세계 특정 지역에서 네트워크 지연 및 대기 시간, 네트워크 파이프 크기가 ​​포함됩니다. Embarcadero는 캘리포니아 주 스코 츠 밸리, 캘리포니아 주 몬터레이, 토론토, 플로리다 주 상트 페테르부르크, 루마니아 이아시에 연구 개발 센터를두고 있으며 전 세계에 소규모 팀과 개인이 흩어져 있습니다.

Embarcadero의 지리적으로 다양한 개발 환경은 "체크인, 빌드 및 자동화 된 테스트를 동기화하기 어렵게 만듭니다"라고 Intersimone은 말합니다. 이 중 일부를 해결하기 위해 개발자는 모두가 사용할 수있는 가상 서버에서 코드 체크인뿐만 아니라 로컬 빌드 및 지역 빌드를 수행합니다. 개발자는 또한 자신의 컴퓨터에서 로컬 빌드를 수행합니다. Embarcadero는 소스 코드 제어를위한 오픈 소스 도구 인 Subversion을 사용하여 이러한 문제가 프라이빗 클라우드의 마스터 버전과 동기화되지 않도록합니다.

"빌드가 발생하면 자동화 된 테스트가 실행되어 빌드를 검증합니다."라고 Intersimone은 말합니다. "그런 다음 모든 개발 팀에 알림이 전달되고 빌드가 자동으로 중국 벽을 넘어 우리 개발 센터의 수많은 자동화 된 테스트 가상 머신으로 전달됩니다." 상태를 확인하기 위해 결과 빌드에서 자동화 및 수동 테스트가 수행되고이 프로세스가 완료된 후 이메일이 다른 팀원에게 발송됩니다. "이 모든 것은 프로젝트 개발 기간 동안 지속적으로 발생합니다."라고 그는 말합니다.

클라우드 개발 문제 6 : 측정기가 클라우드에서 불필요하게 실행되도록하는 것은 쉽습니다.

또 다른 잠재적 인 문제는 클라우드 요금에 돈을 낭비하는 것입니다. 개발자는 사용하지 않는 가상 머신을 끄는 것을 쉽게 잊거나 무시할 수 있습니다. Gartner의 Knipp은 "개발자가 가상 ​​머신 리소스에 열광 할 수 있도록 허용하는 일부 클라이언트로부터 때때로 개발자가 주말에 걸쳐 작업을 중단하고 실행하는 것을 들었습니다."라고 말합니다. "사내 자본화 서버에 있었을 때는 큰 문제가 아니 었습니다. 그러나 퍼블릭 클라우드 컴퓨팅과 같이 사용량이 측정되고 임대 된 리소스에있을 때는 이것은 비용 낭비입니다."

Knipp은 이것이 기업이 사설 클라우드 이니셔티브를 시작함에 따라 새로운 도전이 될 것으로 기대한다고 말합니다.

Knipp은 사설 클라우드에서 개발자 가상 머신 사용에 대해 예상치 못한 큰 비용을 청구 할 위험이 거의 없지만 "셀프 서비스, 사설 IaaS 환경에서 개발자는 VM을 가동 할 수 있으며 절대로 끌 수 없습니다."라고 말합니다. "이는 효과적으로 활용되지 않는 기계에서 자원을 효과적으로 소모하고 계획이 왜곡되어 조직이 너무 많은 용량을 구매하게 할 수 있습니다."

클라우드 개발 문제 7 : 클라우드 라이선스에는 놀라운 배포 제한이 포함될 수 있습니다.

개발에 영향을 미칠 수있는 클라우드의 비 기술적 문제 중에는 라이선스 제한이 있습니다. 2 년 전 전국 임시 기관인 Kelly Services는 Salesforce.com의 Force.com 플랫폼을 전달 수단으로 사용하여 자체 개발 한 여러 애플리케이션에 클라우드 기반 개발을 사용하기로 결정했습니다.

Kelly Services의 CIO 인 Joe Drouin은 클라우드 개발을 통해 앱 개발에 소요되는 시간을 단축하고 비용을 절감하는 등의 이점을 얻었습니다. 그러나 회사는 라이선스와 관련하여 예상치 못한 문제, 특히 보유한 사용자 시트 유형 및 제한 사항과 관련하여 예상치 못한 문제에 직면했습니다. 예를 들어 좌석에는 사용자가 액세스 할 수있는 개체 수가 설정되어있을 수 있습니다. 그 결과 "어떤 시점에서 우리가 할 수있는 일과 할 수없는 일에 놀랐습니다"라고 Drouin은 말합니다.

클라우드 개발 문제 8 : 통합 문제 해결이 더 어려울 수 있음