애플리케이션 개발의 미래는 다음과 같습니다 : 인프라를 코드로 다루기

우리가 어플리케이션을 개발하는 방식은 빠르게 변하고 있습니다. 인프라 스트럭처가 코드와 마찬가지로 코드가 일관성있는 DevOps 기반 문화로 전환함으로써 우리는 소스 코드 관리 사용에 초점을 맞추고 새로운 방식으로 자동화 도구를 구축합니다.

가상화를 사용하여 응용 프로그램과 인프라를 어떻게 생각해야하는지에 대한 근본적인 변화입니다. 하드웨어와 소프트웨어를 분리하는 동안 우리는 애플리케이션 개발 모델에서 언제 어디에서 일을 함께 할 것인지를 바꿀 수있는 위치에 있습니다.

구성 관리 도구 공급 업체 Chef의 포크는 “왼쪽으로 이동”에 대해 이야기합니다. 흥미로운 개념으로, 응용 프로그램 수명주기 모델을 살펴보고 프로세스의 이전 및 이전 요소를 이동합니다. 클라우드 서비스와 가상 인프라를 사용할 때는 코드 작성과 동시에 VM과 컨테이너를 정의 할 생각입니다. 그리고 우리가 그렇게한다면, 우리는 동시에 저장과 네트워킹에 대해 생각하지 않아야합니까?

이 접근 방식의 핵심은 변경 불가능한 컨테이너의 아이디어입니다. 컨테이너 화는 아마도 가상 인프라를 추상화하는 대신 실제 가상 인프라를 추상화하는 대신 응용 프로그램과 서비스를 자체 추상화 계층으로 만들지 만 가상 인프라에 더 많은 추상화를 추가하는 방법으로 생각할 수 있습니다. 불변 컨테이너의 경우 응용 프로그램이나 서비스를 래핑하는 Docker 또는 유사한 컨테이너가 빌드 프로세스의 끝입니다. 배포는 단순히 이전 컨테이너를 언로드하고 새 컨테이너를 설치하고 응용 프로그램을 실행시키는 문제입니다.

불변 컨테이너는 마이크로 서비스 세계를위한 이상적인 모델입니다. 컨테이너에 지원 코드가 모두 포함 된 node.js 서비스를 래핑하면 ready-to-roll 서비스 만있을뿐만 아니라 자동 스케일 아웃 서비스의 일부로 전달할 수있는 요소가 있습니다. 새로운 서비스가 필요하기 때문에 컨테이너 라이브러리에서 신속하게 복사하거나 Chef 나 PowerShell의 Desired State Configuration 같은 도구를 사용하여 구성한 다음 필요할 때까지 실행할 수 있습니다.

Amazon이 AWS Summit에서 발표 한 주제는 배포가 병렬 인프라를 구축하고 오래된 것에서 새로운 것 (문제가 발생할 경우 이전 버전을 오프라인으로 유지)의 방법으로 간주되는 방식입니다. 새로운 인프라 스트럭처가 안정되면 오래된 것을 삭제하기 만하면됩니다. A / B 테스트를 수행하는 동안 A 및 B 인프라를 유지할 수도 있습니다. 관리로드 밸런서를 사용하여 사용자를 적절한 버전으로 라우트하여 통계적으로 유효한 결과를 얻을 수있을뿐만 아니라 IP 주소가 항상 버전으로 라우팅되도록 할 수 있습니다 그들은 원래에 연결되어 있습니다.

클라우드와 가상화를 사용하면 인프라의 일부분을 코드로 만드는 것이 합리적입니다. 오늘날의 IT 세계에서 인프라를 구축하는 것은 10 년 전과 매우 다릅니다. 그런 다음 서버, 라우터 및 디스크와 랙의 모든 불필요한 구성 요소를 주문해야합니다. 배포를 시작하기 전에 몇 달을 기다렸다가 배포를 시작하기 전에 구성 및 설치해야합니다. 개발 및 테스트 환경). 이제 VM과 서비스를 정의하고 배포를 클릭하면 몇 분이 지나면 준비가 완료됩니다.

Chef와 같은 도구를 사용하면 인프라 구성이 서버 구성과 함께 유지됩니다. 클라우드 서비스 (공개, 비공개 또는 하이브리드)에 대한 RESTful API는 JSON 정의를 제공하고 필요한 서버와 서비스를 얻을 수 있다는 것을 의미합니다. 정의를 만드는 툴을 사용하면 Git을 사용하여 정의를 저장하고 Gitflow와 같은 프로세스를 사용하여 개발 분기, 버그 수정 및 릴리스를 관리하고 Jenkins 또는 Chef 기반 빌드의 일부로 배포 할 수 있습니다.

코드와 같은 인프라를 다루는 것은 많은 의미가 있습니다. 가상 장치가 아닌 물리적 인 장치를 관리하는 경우에도 마찬가지입니다. 항상 시스템을 구성하고 사전 요구 사항을 배포해야합니다. Chef 또는 Ansible과 같은 도구를 사용하여 서버 OS 기능을 설정하고 응용 프로그램 및 모든 보조 요소를 컨테이너에 래핑하면 최소한의 시간에 베어 메탈에서 서비스로 이동할 수 있으며 동일한 기본 코드를 사용하여 가상 인프라를 관리 할 수 ​​있습니다. 게다가.

인프라를 코드로 처리하고 컨테이너를 사용하여 응용 프로그램과 서비스를 래핑함으로써 이제 dev 서버에서 랙으로 스탬프 세트로, 그리고 개인에서 하이브리드로 일반 서버 및 서비스의 전체 세트를 가져올 수 있습니다 클라우드 – 소스 컨트롤이나 지속적인 개발 및 전달 도구를 변경하지 않고

실패한 앱에 대한 오래된 농담이지만 ​​아직 개발 노트북에서 작동하는 것은 기술적으로 사실입니다. 물론 우리는 개발자 랩톱을 프로덕션 환경에 배치 할 수 있지만 사용중인 가상 인프라와 그들이 구축 한 응용 프로그램 컨테이너를 재배포하는 것이 훨씬 낫습니다.

모든 것이 코드 인 응용 프로그램과 인프라에 대한 생각을 변경하는 것은 개발자 작업 방식을 채택하는 것 이상입니다. 이는 우리가 응용 프로그램을 제작, 실행 및 관리하는 방식에서 근본적인 변화입니다. 그리고 확실히 최선의 변화입니다.

추가 읽기

3D 인쇄 손 : 나무 작업

? CommBank, 바클레이와 모바일 결제, fintech 혁신 제휴

ERP에 대한 BYOD 및 클라우드 서비스의 영향 연구 : IT 리더는 엔터프라이즈 소프트웨어의 미스, 현재 동향 및 미래, Windows Azure 네트워킹에 대한 Microsoft 엔터프라이즈 입문서, 비용 분석 툴킷 : Google Apps vs. Office 365

6 가지 비즈니스 클라우드 스토리지 서비스, 툴킷 : 테이프 백업 요구 계산, 스토리지 문제 해결 순서도

빅토리아, 지역 기술 인력을위한 꿈의 장을 목표로 함

오늘날의 디지털 작업장의 조직 원리는 무엇입니까?

스티브 발머 (Steve Ballmer)의 재평가 : Satya Nadella만이 Microsoft가 다시 멋지게 만나는 유일한 이유는 아니지만, 컴퓨터가 정말로 멋있는 유일한 컴퓨터 : 클라우드 : 개발자, 개발자, 개발자 : Microsoft의 경우 조정은 달라질 수 있지만 단어는 동일하게 유지됩니다. 어디서나 : 제조사와 사물의 인터넷, SQL, NoSQL? 요즘의 차이점은 무엇입니까?

3D 프린팅, 3D 인쇄, 나무 작업, 은행 업무, 바클레이즈와의 모바일 지불, fintech 혁신, 혁신, 빅토리아가 현지 기술 인재를위한 꿈의 장을 목표로 함, 협업, 오늘날의 디지털 작업장 구성 원리는 무엇입니까?