container기술을 통해 개발 환경 종속성 문제를 해결할 수 있다. 그 중 가장 많이 쓰이는 것은 당연 Docker이다. ROS + Docker 조합은 강력하지만 여러 보안 이슈를 안고 있다. 그래서 Canonical은 'Snapcraft'같은 대안 기술을 제공한다. 1
1. 내부 자원 접근 보안 문제
embedded programming을 하다보면 GPIO와 같은 하드웨어에 접근이 필요하다. 이 때 관리자 권한이 필요하다. 컨테이너에 관리자 권한을 주면, 하드웨어 해킹의 문제가 생길 수 있다.
2. 네트워크 보안 문제
docker container에서 통신은 storage를 사용한다. 결국 네트워킹이 어렵고 보안에 취약하다.
3. 지속적인 보안 업데이트가 어렵다.
위의 해킹 문제를 막기 위해, 보안 업데이트가 필요할 때, container에서 직접 업데이트가 필요하다고 요청하지 않는다.
4. transactional updates 안 됨
Docker update에는 업데이트 무결성있게 이뤄지기 힘들다. 다시 말하면, Docker container내에서 업데이트 하다가 중간에 끊키면 코드가 뒤죽 박죽 될 수 있다. ( PS. 읽다보니 궁금한 것. 그냥 이전에 있던 프로세스를 지우고 새로운 프로세스로 한번에 갈아 끼우면 안 되는가? )
5. delta update가 안 됨
로봇의 기능이 업데이트 될 때에도 로봇은 작동해야한다. 하지만 Docker는 업데이트 된 내용을 한번에 받아온다. 조금씩 업데이트 해서 서비스를 유지해야 하지만, 업데이트 될 때 큰 대역폭을 먹으면서 시스템이 중지 될 수 있다.
6. Docker fleet management is a challenge
차량 관리 시스템이 어렵다. multi agent일 때 edge node(돌아가는 머신)의 상태가 알기 어렵다. 로봇의 상태가 container에는 나오지 않는다.
Ref.
https://ubuntu.com/blog/ros-docker
https://ubuntu.com/engage/dockerandros?utm_medium=blog&utm_campaign=7014K000000UWJn
'Engineering > ROS' 카테고리의 다른 글
ROS2 Node Interface, Parameter, Namespace (0) | 2025.01.14 |
---|---|
ROS2 표준 시간, 좌표계 (0) | 2025.01.12 |
ROS2 참고 사이트 (0) | 2025.01.10 |
ROS2 빌드, 파일 시스템 (0) | 2025.01.08 |
ROS2, DDS와 QoS (0) | 2025.01.04 |