사물인터넷 설비 중의 Docker 용기는 얼마나 좋습니까?
6870 단어 devopsproductivityiotdocker
그런데 사물인터넷 설비는?이 글은 가장자리에 있는 Docker 용기가 어떤 장점이 있는지, 주의해야 할 사항을 다루고 있다.
Docker 컨테이너는 이미 사물인터넷 설비를 위해 준비가 되었습니까?
그래.이 장치 자체의 기능은 매우 강해서 일반적인 리눅스 버전을 실행할 수 있고 Docker 엔진을 설치할 수 있으며 용기를 실행할 때 많은 비용이 들지 않는다.대부분의 장치는 오래된 하드웨어라도 주요 클라우드 서비스에서 제공하는 소형 가상 기기보다 강하다.
Synpse는 RaspberryPi 2와 비슷한 대형 장비(현재 세대 장비보다 훨씬 약함)에 이미 배치되어 있으며, 지금까지 우리는 성능과 관련된 어떠한 문제도 발견하지 못했다.
예를 들어 15달러까지 저렴한 가격Pi Zero 2을 보면 1GHz 시계와 512MB SDRAM의 쿼드 코어 64비트 ARM Cortex-A53 프로세서를 제공할 수 있다.또는 일반적인 Raspberry Pi 4 또는 Jetson Xavier를 보면 더 높은 계산 능력을 제공할 수 있다.
소프트웨어 배포 및 OTA 업데이트
Docker의 가장 큰 장점은 사용자가 원하는 방식으로 프로그램을 포장할 수 있고 호스트를 너무 걱정하지 않아도 된다는 것이다. (운영체제를 고려해야 하지만 많이 고려하지 않아도 된다.)Go로 소프트웨어를 작성하기 전에, 나는 파이톤으로 백엔드 프로그램을 작성한 적이 있다.응용 프로그램의 배치는 과거에는 매우 복잡하고, 업데이트는 매우 취약했으며, 때때로 우리는 의존 충돌에 부딪힐 수도 있다.Docker는 설치된 의존 항목으로 전체 파일 시스템을 포장해서 이 문제를 해결합니다.너는 너의 가방을 가지고 있고, 너의 정적 파일은 용기 안에 두어라.
이런 방식을 통해 용기를 구축하여 자동 테스트를 실행한 다음 서버에 배치할 수 있습니다.또한 문제가 발생하면 이전 버전의 Docker 컨테이너를 시작할 수 있는 간단한 롤백 메커니즘을 위해 도로를 평평하게 깔았다.
소형 응용 프로그램과 비교적 적은 소프트웨어 패키지를 가진 IoT 제품의 경우 OTA 업데이트 과정은 보통 경량급이고 간단하다. 새 이미지를 다운로드하고 실행을 중지하는 용기, 새 Docker 이미지에서 새 용기를 시작하는 것이다.
다중 아치(또는 최소한 팔) 이미지 준비
x86/amd64 Docker 이미지와 사물인터넷 장치에 배치해야 할 이미지 사이의 주요 차이점은 그들의 체계 구조에 있다.RaspberryPi나 다른 장치에서 용기를 실행하려고 시도할 때, 이것은 때때로 어려운 문제일 수도 있다. 왜냐하면 오류는 보통 신비롭기 때문이다.
고맙습니다. DockerHub와 다른 등록 센터에서는 아치형 이미지를 지원합니다. x86,arm 32비트,arm 64비트 이미지를 전송할 수 있습니다.Docker 데몬이 다운로드할 이미지를 결정하기 때문에 배치가 크게 간소화됩니다.우리는 building multi-arch images에 관한 글을 한 편 썼다.
영구화 데이터
이미지 처리 등 인공지능 작업을 수행하거나 로컬 데이터베이스를 보유한 응용 프로그램은 지속적인 데이터를 필요로 한다.사람들이 Docker 용기를 처음 사용할 때, 저장소는 업데이트 기간에 용기를 다시 만들 때, 용기에 저장된 모든 내용이 오래 지속되지 않기 때문에 곤혹스러울 수 있습니다.데이터를 영구화하는 방법은 장치의 파일 시스템에서 용기에 볼륨을 불러오는 것이다.Dockerhere에서 지속성에 대한 더 많은 정보를 읽을 수 있습니다.
대용량 카탈로그 쓰기/읽기 및 디바이스의 파일 시스템 수명 연장
장치 사용 시간을 연장할 준비를 할 때, 업데이트뿐만 아니라, 구성 요소의 수명도 고려해야 합니다.SD 카드나 내장 메모리는 오래 사용할 수 있지만, 부하를 줄일 수 있는 방법이 있다.
응용 프로그램에서 대량의 데이터를 쓰고 읽어야 할 경우, 보통 마운트할 수도 있습니다.
/dev/shm
공유 메모리에 대한 더 많은 정보here를 읽을 수 있습니다.컨테이너에 하드웨어 장치 노출
보통 직렬 장치를 사용해야 합니다.컨테이너 응용 프로그램은 아무 문제 없이 접근할 수 있지만, Docker가 이 장치를 컨테이너에 노출시키려는 것을 알아야 합니다.Docker CLI에서는 다음과 같이 표시됩니다.
docker run -t -i --device=/dev/ttyACM0 ubuntu bash
또는 Synpse에서 다음 사항을 응용 프로그램 사양에 추가할 수 있습니다. devices:
- hostPath: /dev/ttyACM0
containerPath: /dev/ttyACM0
보안
수천 대의 장치에 소프트웨어를 배포할 때는 다음날 작업을 고려해야 합니다.응용 프로그램을 발표하기 전에도 운영체제와 응용 프로그램 업데이트를 계획하고 테스트하는 것이 중요하다.응용 프로그램을 어떻게 업데이트할 겁니까?만약 설비가 인터넷에 연결된다면, 몇 년 후에 그 안전을 보장할 수 있는 가장 좋은 방법은 무엇입니까?
장치에 설치해야 하는 패키지 수를 줄여 공격 면적을 대폭 줄일 수 있습니다.예를 들어, NodeJS, Python, Ruby 기반 프로그램을 배치하고 있다면, 장치 운영체제가 실행될 필요가 없을 때 가능한 한 간단할 수 있습니다.이것은 어떤 물건이 설치되어 있지 않아도 업데이트할 필요가 없다는 데 매우 도움이 된다.
도구를 사용하여 이미지의 취약점을 자동으로 검색할 수도 있습니다.
개발자 생산성
가장자리에 용기화 응용 프로그램을 배치하는 또 다른 중요한 부분은 개발자와 운영진이 이미 알고 있는 도구를 다시 사용하는 것이다.Docker를 edge로 선택한 것은 새로운 포장 시스템을 도입하는 것이 아닙니다.CI 파이프를 다시 사용할 수도 있습니다.
총결산
하드웨어와 운영체제가 허용된다면, Docker 용기를 선택해서 프로그램을 배치하는 것이 거의 항상 좋습니다.그것은 안전성을 높이고 배치 과정을 간소화하며 장시간의 운행 중에 문제의 전체 수량을 줄일 것이다.가장 중요한 부분은 용기를 업데이트하는 믿을 만한 전략이다.
온라인 여행사 업데이트 Synpse
Synpse는 대형 컨테이너 선대 관리에 대해 언급할 때 이를 위해 세워졌다.대규모 작업을 성공적으로 배포하고 실행하는 데 필요한 모든 것을 제공합니다.
Reference
이 문제에 관하여(사물인터넷 설비 중의 Docker 용기는 얼마나 좋습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/krusenas/how-good-are-docker-containers-in-the-iot-devices-3o2b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)