용기:'인프라 시설 즉 코드'를 더욱 쉽게

4240 단어 용기.
컨테이너는'인프라스트럭처 as 코드(Infrastructure as Code)'에서 어떤 의미가 있습니까?
한마디로 용기는 모든 것을 의미한다.
왜 그랬을까?단일 응용 프로그램과 마이크로 서비스를 비교할 때, 반드시 약간의 균형과 취사가 있을 것이다.한편, 단일 모델에서 마이크로 서비스 모델로 옮기면 프로세스를 독립된 작업 단원으로 분리할 수 있다.이로써 개발자들은 단일 기능에 주의를 기울일 수 있고 테스트와 확장에 도움이 된다.다른 한편, 모든 것을 단독 서비스로 나누기 때문에 과거에는 단일한 배치 단원의 인프라 시설만 관리했지만 지금은 모든 서비스의 인프라 시설을 관리해야 한다.바로 이 도전에 대응하기 위해'인프라 즉 코드'가 해결 방안으로 탄생했다.
용기 기술은 이미 한동안 존재해 왔으며, 서로 다른 형식으로 실현되었고, 이미 어느 정도의 성공을 거두었다.이 기술은 1980년대 초 크루트에서 시작되었고 그 후에 Virtuozzo와Sysjail 같은 형식의 제품을 가져왔다.2013년 Docker의 탄생과 그 후의 급속한 발전에 이르러서야 모든 것이 정리되었고 응용 프로그램이 용기 모델에서의 개발, 테스트와 배치에 깊은 영향을 미치기 시작했다.
'인프라 시설 즉 코드'의 실천은 Docker 용기와 함께 가장 전복적이고 혁신적인 변화를 상징하고 오늘날 우리가 소프트웨어를 개발하고 발표하는 과정에 영향을 주었다.
인프라 즉 코드(IaC)는 무엇입니까?
IaC와 용기와의 관계를 깊이 연구하기 전에 IaC의 구체적인 의미를 살펴보자.IaC는 응용 프로그램 자체를 개발하는 동시에 하드웨어와 운영체제에 대한 공급과 스크립트를 작성하는 실천을 말한다.일반적으로 이러한 스크립트를 관리하는 방식은 소프트웨어 코드 라이브러리와 유사하며 버전 제어와 자동화 테스트를 포함한다.
정확하게 실행할 때, 스크립트는 관리자를 대신해서 새 기계에 로그인하고 설정할 것입니다.이 스크립트들은 새로운 기계의 이상적인 상태를 설명하고, 이 상태를 실현하기 위해 필요한 절차를 수행할 것이다.
인프라 즉 코드의 핵심 편의성
IaC는 시스템 구성을 이용하여 가장 일반적인 문제점을 완화하기 위해 설계되었으며, 특히 이전에 새로운 환경을 설정하는 데 많은 시간이 걸렸다.모든 환경은 단독으로 설정해야 하며, 만약 어떤 곳에 오류가 발생하면 통상적으로 전체 과정을 다시 진행해야 한다.IaC는 이러한 문제점을 없애고 개발자와 운영자에게 다음과 같은 추가 편의를 제공한다.
4
  • 흔히 볼 수 있는 스크립트를 다시 사용하는 것이 비교적 간단해졌다

  • 4
  • 전체 공급 과정은 자동화를 실현할 수 있고 공급 하드웨어까지 지속적인 납품 과정의 일부가 될 수 있다

  • 4
  • 버전 제어, 필요에 따라 비교적 새로운 설정을 테스트하고 롤백할 수 있습니다

  • 4
  • 동종 심사와 스크립트 강화.문서나 메모리에서 수동으로 구성하지 않고도 스크립트를 검토, 업데이트 및 지속적으로 개선할 수 있습니다

  • 4
  • 문서는 자동입니다. 본질적으로 스크립트 자체이기 때문입니다

  • 4
  • 과정은 테스트될 수 있다

  • 용기, "인프라 시설 즉 코드"를 새로운 높이로
    개발자로서 나는 우리가 모두'난 몰라. 어차피 내 기계에서 일하니까!'이런 경우.좋은 쪽으로 말하자면, 이것은 익살스럽고 재미있는 표현이다.그러나 나쁜 점은 우리가 매일 처리해야 할 매우 큰 문제를 대표한다.Docker라는 혁신적인 기술은 개발자의 이러한 우려를 효과적으로 해소할 뿐만 아니라 IaC를 개발 과정에서 핵심 구성 요소로 만들었다.
    이를 더 잘 설명하기 위해서, 간단한 UI 인터페이스가 있는 Docker화된 웹 응용 프로그램을 상상해 봅시다.이 응용 프로그램에는 응용 프로그램이 포함된 컨테이너의 구성 정보를 설명하는 다음과 같은 Dockerfile이 있습니다.
    FROM ubuntu:12.04
    # Install dependencies
    RUN apt-get update -y && apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql
    # Install app
    RUN rm -rf /var/www/*
    ADD src /var/www
    # Configure apache
    RUN a2enmod rewrite
    RUN chown -R www-data:www-data /var/www
    ENV APACHE_RUN_USER www-data
    ENV APACHE_RUN_GROUP www-data
    ENV APACHE_LOG_DIR /var/log/apache2
    EXPOSE 80
    CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

    만약 당신이 Docker에 익숙하다면, 이것은 상당히 전형적이고 간단한 Dockerfile입니다. 이것은 무엇인지 이미 알고 있을 것입니다.Dockerfile에 익숙하지 않다면, 이 파일은 Docker 거울을 만드는 데 사용되며, 본질적으로 용기를 만드는 템플릿입니다.Docker 컨테이너가 생성되면 미러는 컨테이너를 구성하는 데 사용되므로 포함된 응용 프로그램이 이렇게 생성됩니다.개발 워크스테이션부터 고가용 클라우드 그룹까지 이미 실례화된 모든 기계에서 사용할 수 있다.
    파일에서 몇 가지 주요 매개변수를 살펴보고 그 과정에서 어떤 이점을 얻을 수 있는지 살펴보겠습니다.
    FROM ubuntu:12.04

    이 행은 새 컨테이너의 기반으로 Docker Hub에서 Ubuntu Docker 미러를 가져옵니다.Docker Hub은 주요 Docker 미러 온라인 웨어하우스입니다.Docker Hub에 방문하여 이 이미지를 검색하면 Ubuntu 이미지 창고를 찾을 수 있습니다.이것은 공식 거울로 Docker가 지원하는 전문 팀에서 관리한다.이 렌즈를 사용하는 장점은 밑바닥 기술에 문제가 생겼을 때 누군가가 복구 패치를 개발하고 이를 실현할 가능성이 높다는 것이다. 또한 Dockerfile을 새 버전으로 업데이트하고 렌즈를 재구성하고 용기를 다시 테스트하고 배치하는 것만이 필요하다.
    Dockerfile의 나머지 줄은 apt-get을 사용하여 기본 이미지에 다양한 패키지를 설치합니다.프로그램의 원본을/var/www 디렉터리에 추가하고 Apache를 설정한 다음 용기의 공개 포트를 포트 80으로 설정합니다.
    마지막으로 용기가 만들어진 후에 CMD 명령을 실행하면 http 요청을 받기 위해 아파치 서버를 초기화하고 엽니다.
    이것은 인프라 시설 즉 코드의 가장 간단한 형식이다.이것이 그것의 전부다.
    워크스테이션에서 Docker를 설치하고 실행한 경우 Dockerfile이 있는 디렉토리에서 다음 명령을 실행할 수 있습니다.
    $ docker build -t my_demo_application:v0.1

    Docker가 당신을 위해 거울을 만들어 my 로 명명합니다demo_응용 프로그램 및 라벨 v0.1,v0.1은 실제 버전 번호입니다.미러가 생성되면 다음 명령을 사용하여 미러를 가져오고 미러를 사용하여 컨테이너를 생성할 수 있습니다.
    $ docker run -d my_demo_application:v0.1

    이렇게 하면 로컬 기기에서 프로그램을 실행하거나 선택한 하드웨어에서 프로그램을 실행할 수 있다.
    결어
    간단한 Dockerfile로 원본 코드를 검사하고 응용 프로그램의 환경, 설정, 접근 경로를 지정할 수 있습니다. 이것이 바로 Docker와 '인프라 시설 즉 코드'의 가장 간단한 형식입니다.또한 docker compose를 사용하여 다차원 서비스의 조합 응용을 정의할 수 있습니다. 모든 서비스는 독립된 Dockerfile을 포함하거나 Docker 창고에 가져오는 이미지를 포함합니다.docker compose의 증강 버전인 rancher compose를 사용할 수 있습니다. 이것은 마이크로 서비스 배치의 이점으로 롤링 upgrade 등 고급 기능을 더욱 편리하게 감상할 수 있습니다.
    번역자: 류리, Rancher Labs 중화권 프로그래머.
    Rancher Labs

    좋은 웹페이지 즐겨찾기