소프트웨어 도입
Software deployment시리즈의 일부 |
소프트웨어 개발 |
---|
소프트웨어 배포는 소프트웨어 시스템을 [1]사용할 수 있도록 하는 모든 작업입니다.
일반적인 전개 프로세스는 서로 관련된 몇 가지 액티비티와 그 사이에 이행이 가능한 액티비티로 구성됩니다.이러한 활동은 생산자 측 또는 소비자 측 또는 둘 다에서 발생할 수 있습니다.모든 소프트웨어 시스템은 고유하기 때문에 각 활동 내의 정확한 프로세스 또는 절차를 정의할 수 없습니다.따라서 '도입'은 특정 요건 또는 [2]특성에 따라 커스터마이즈해야 하는 일반적인 프로세스로 해석해야 합니다.
역사
![]() |
컴퓨터가 매우 크고, 비싸고, 부피가 큰(메인프레임과 미니컴퓨터) 경우, 소프트웨어는 제조업체에 의해 하드웨어와 함께 번들되는 경우가 많았다.기존 컴퓨터에 비즈니스 소프트웨어를 설치해야 하는 경우 시스템 설계자 또는 컨설턴트가 비용이 많이 들고 시간이 오래 걸릴 수 있습니다.오늘날 엔터프라이즈 소프트웨어를 사내에 복잡하게 설치하는 경우에도 이러한 경우가 있을 수 있습니다.
그러나 1980년대 마이크로컴퓨터의 새로운 시대를 위한 대량 시장 소프트웨어의 개발로 인해 소프트웨어 배포의 새로운 형태가 등장했습니다. 즉, 처음에는 카트리지, 그 다음에는 콤팩트 카세트, 그 다음에는 플로피 디스크, 그 다음에는 광학 미디어, 인터넷 및 플래시 드라이브입니다.즉, 소프트웨어 도입을 고객에게 맡길 수 있었습니다.그러나, 시간이 지남에 따라, 고객의 소프트웨어 설정이 중요해져, (예를 들면, 고객이 Windows 로 레지스트리 엔트리를 편집하도록 요구하는 것이 아니라) 유저 친화적인 인터페이스를 가지는 것이 이상적이라는 것도 인식되고 있습니다.
인터넷 이전의 소프트웨어 도입에서는 도입(및 그와 밀접하게 관련되어 있는 새로운 소프트웨어 릴리스)은 비용이 많이 들고, 드물게 대량의 작업이 필요했습니다.따라서 인터넷의 보급으로 엔드 투 엔드의 신속한 변화를 위한 소프트웨어 개발이 가능해진 것은 논쟁의 여지가 있다.실제로 클라우드 컴퓨팅과 서비스로서의 소프트웨어(SaaS)의 등장은 소프트웨어를 인터넷을 통해 몇 분 만에 다수의 고객에게 배포할 수 있다는 것을 의미했습니다.또, 통상, 도입 스케줄은, 고객이 아니고, 소프트웨어 써플라이어에 의해서 결정되는 것을 의미합니다.이러한 유연성으로 인해 특히 위험도가 낮은 웹 애플리케이션의 경우 실행 가능한 옵션으로 지속적인 제공이 증가했습니다.
도입 액티비티
- 풀어주다
- 릴리스 액티비티는 완료된 개발 프로세스부터 계속되며, 도입 프로세스가 아닌 개발 프로세스의 일부로 분류될 수 있습니다.이 작업에는 시스템을 조립하여 실제 가동되는 컴퓨터 시스템으로 이전하기 위한 모든 작업이 포함됩니다.따라서 시스템이 충분한 성능을 발휘하기 위해 필요한 자원을 결정하고 도입 프로세스의 후속 액티비티를 계획하거나 문서화해야 하는 경우가 있습니다.
- 설치 및 활성화
- 단순한 시스템의 경우 설치에는 소프트웨어를 실행하기 위한 명령어, 숏컷, 스크립트 또는 서비스의 형태(수동 또는 자동)가 포함됩니다.복잡한 시스템의 경우 시스템의 구성을 수반하는 경우가 있습니다.예를 들어 최종 사용자에게 시스템의 용도에 대해 질문하거나 구성 방법을 직접 묻거나 필요한 서브시스템을 모두 사용할 수 있도록 준비합니다.액티베이션이란 소프트웨어의 실행 가능 컴포넌트를 최초로 기동하는 액티비티입니다(디지털 권리 관리 시스템의 기능인 소프트웨어 라이선스에 관한 액티베이션이라는 용어의 일반적인 사용과 혼동하지 마십시오).
- 서버의 대규모 소프트웨어 전개에서는 사용자가 사용하는 소프트웨어의 메인 카피(「실가동」)가, 실가동 환경의 실가동 서버에 인스톨 되는 일이 있습니다.도입된 소프트웨어의 다른 버전은 테스트 환경, 개발 환경 및 디저스터 리커버리 환경에 설치할 수 있습니다.
- 복잡한 연속 전달 환경 및/또는 서비스형 소프트웨어(SaaS) 시스템에서는 서로 다른 내부 또는 외부 고객을 위해 서로 다른 구성 버전의 시스템이 운영 환경에 동시에 존재하거나(이것을 멀티 테넌트 아키텍처라고 부릅니다), 다른 그룹의 c와 병렬로 단계적으로 전개될 수도 있습니다.1개 이상의 병렬 전개를 취소할 수 있습니다.예를 들어, Twitter는 새로운 기능과 사용자 인터페이스 변경에 대한 A/B 테스트에 후자의 접근방식을 사용하는 것으로 알려져 있습니다.블루 그린 도입을 목적으로 실가동 환경 내에 아직 실가동 로드 밸런서에 접속되어 있지 않은 서버로 구성된 "숨겨진 라이브" 그룹을 작성할 수도 있습니다.
- 비활성화
- 비활성화란 활성화의 역순으로, 이미 실행 중인 시스템의 컴포넌트를 셧다운하는 것을 말합니다.다른 전개 액티비티를 실행하기 위해 비활성화해야 하는 경우가 많습니다.예를 들어 업데이트를 실행하기 전에 소프트웨어 시스템을 비활성화해야 할 수 있습니다.자주 사용되지 않거나 사용되지 않는 시스템을 서비스에서 제거하는 방식을 흔히 애플리케이션 폐기 또는 애플리케이션 폐기라고 합니다.
- 언인스톨
- 언인스톨은 인스톨의 반대입니다.더 이상 필요하지 않은 시스템을 제거하는 것입니다.또한 제거된 시스템의 종속성을 제거하기 위해 다른 소프트웨어 시스템을 재구성해야 할 수도 있습니다.
- 갱신하다
- 업데이트 프로세스는 소프트웨어 시스템의 전체 또는 일부 이전 버전을 최신 릴리스로 바꿉니다.일반적으로 비활성화 후 설치로 구성됩니다.시스템의 패키지 매니저를 사용하는 Linux 등의 일부 시스템에서는 일반적으로 이전 버전의 소프트웨어 응용 프로그램도 프로세스의 일부로 자동으로 제거됩니다.(이는 일반적으로 리눅스 패키지 관리자가 소프트웨어 패키지가 이 제한 사항을 해결하도록 특별히 설계되지 않은 한 소프트웨어 응용 프로그램의 여러 버전을 동시에 설치하는 것을 지원하지 않기 때문입니다.)
- 빌트인
- 업데이트를 설치하는 메커니즘은 일부 소프트웨어 시스템에 내장되어 있습니다(Linux, Android, iOS 등의 일부 운영 체제의 경우 운영 체제 자체에 내장되어 있습니다).이러한 업데이트 프로세스의 자동화는 완전 자동에서 사용자 시작 및 제어에 이르기까지 다양합니다.Norton Internet Security는 안티바이러스 정의와 시스템의 기타 컴포넌트 모두에 대한 업데이트를 가져오고 설치하는 반자동 방식을 사용하는 시스템의 예입니다.다른 소프트웨어 제품에서는 업데이트를 사용할 수 있는 시기를 결정하기 위한 쿼리 메커니즘을 제공합니다.
- 버전 추적
- 버전 추적 시스템은 사용자가 소프트웨어 시스템의 업데이트를 찾아 설치하는 데 도움이 됩니다.예를 들어 다음과 같습니다.소프트웨어 카탈로그는 로컬 시스템에 설치된 각 소프트웨어 패키지의 버전 및 기타 정보를 저장합니다.버튼을 한 번 클릭하면 브라우저 창이 열리고 로그인이 필요한 사이트의 사용자 이름과 비밀번호 자동 입력이 포함됩니다.Linux, Android 및 iOS에서는 버전 추적을 위한 표준화된 프로세스(공식 지원 방식으로 설치된 소프트웨어 패키지)가 운영 체제에 내장되어 있기 때문에 이 프로세스가 더욱 쉬워집니다.따라서 별도의 로그인, 다운로드 및 실행 단계가 필요하지 않으므로 프로세스를 완전히 자동화하도록 구성할 수 있습니다.일부 서드파티 소프트웨어에서는 특정 Windows 소프트웨어 패키지에 대한 자동 버전 추적 및 업그레이드도 지원합니다.
도입 역할
소프트웨어 제품의 복잡성과 다양성으로 인해 도입 프로세스의 조정과 엔지니어링에 특화된 역할이 등장하게 되었습니다.데스크톱 시스템의 경우 최종 사용자는 머신에 소프트웨어 패키지를 설치할 때 '소프트웨어 디플로이더'가 되는 경우가 많습니다.엔터프라이즈 소프트웨어의 도입에는 더 많은 역할이 수반되며, 일반적으로 이러한 역할은 애플리케이션이 테스트(사전 운영)에서 운영 환경으로 진행됨에 따라 변경됩니다.엔터프라이즈 애플리케이션용 소프트웨어 도입에 관여하는 일반적인 역할은 다음과 같습니다.
- 운영 전 환경에서 다음을 수행합니다.
- 운영 환경:
- 시스템 관리자
- 데이터베이스 관리자
- 릴리스 코디네이터: "DevOps" 참조
- 운영 프로젝트 매니저: "ITIL" 참조
「 」를 참조해 주세요.
레퍼런스
- ^ Roger S. Pressman 소프트웨어 엔지니어링: 실무자의 접근법 (제8판)
- ^ Rees-Carter, Stephen (13 July 2018). "How to Install and Configure Ansible on Ubuntu 18.04". DigitalOcean. Archived from the original on 9 June 2019. Retrieved 8 June 2019.
Configuration management systems are designed to make controlling large numbers of servers easy for administrators and operations teams. They allow you to control many different systems in an automated way from one central location.
외부 링크
- 표준화 작업
- 기사들
- Carzaniga, Antonio; Fuggetta, Alfonso; Hall, Richard S.; Van Der Hoek, André; Heimbigner, Dennis; Wolf, Alexander L. (April 1998). "A Characterization Framework for Software Deployment Technologies – Technical Report CU-CS-857-98" (PDF). Boulder, CO: Department of Computer Science, University of Colorado Boulder.
- 자원.