⛓️블록체인 개발에 DevOps를 도입한다면

블록체인은 최근 큰 관심을 이끈 기술입니다. 분산 거래 기록 시스템이라고도 불리는데요.

지금도 블록체인은 다양한 곳에서 활용되고 있고, 수많은 블록체인 프로젝트도 개발 및 유지보수되고 있습니다.

블록체인은 네트워크를 구성하고 있는 노드들이 네트워크에서 발생하는 데이터를 함께 검증해서 무결성을 증명해내는 기술이기 때문에, 시간이 흘러 블록체인 네트워크가 성숙해질수록 효율적인 네트워크 관리와 보안 사고 예방이 매우 중요해집니다.

이렇게 블록체인 프로젝트를 개발하면서 가시화되는 문제를 정리하면 아래와 같을 것입니다.

  • 복잡성과 규모
    • 블록체인 네트워크는 수많은 노드와 방대한 양의 데이터로 점점 더 복잡해지고 있습니다.
    • 그로 인해 효율적인 노드 관리가 더욱 필요해지고 있습니다.
  • 보안
    • 트랜잭션과 데이터의 보안은 블록체인 기술에서 가장 중요한 요소입니다.
    • 그렇기 때문에 블록체인 네트워크에 대한 악의적인 공격을 실시간으로 감지하고 대응하는 것이 필요합니다.
    • 또한 스마트 컨트랙트나 블록체인 애플리케이션 코드에 취약점이 있는지 미리 검사하여 보안 사고를 예방하는 것 역시 중요해졌습니다.
  • 급속한 트렌드 변화
    • 블록체인 도메인은 빠르게 성하고 있기 때문에 이런 흐름에 맞추려면 애플리케이션이나 서비스를 짧은 주기로 자주 업데이트하고 적응하는 것이 필요합니다.

위 내용은 DevOps를 통해 해결할 수 있는 문제와 많이 닮아있는데요.

그래서 블록체인 개발 프로젝트에 DevOps를 도입하여 이런 문제들을 해결하는 경우가 많습니다.

🧑‍💻블록체인 개발에 적용 가능한 DevOps

블록체인 프로젝트 개발에 적용할 수 있는 DevOps 요소는 아래와 같이 크게 4가지로 나눠서 정리할 수 있습니다.

CI/CD

  • 테스트 자동화
    • 스마트 컨트랙트 및 블록체인 애플리케이션 테스트 자동화
  • CI/CD 파이프라인 구축
    • 블록체인 애플리케이션 빌드, 테스트, 배포를 자동화하는 CI/CD 파이프라인 구축

IaC

  • 인프라 프로비저닝 자동화
    • Terraform 등의 툴로 블록체인 네트워크 구축에 필요한 인프라 리소스 프로비저닝 자동화
    • 우리는 이미 IaC에 대해 알아본 적이 있는데요. 지난 글에서 더 자세한 내용을 확인해보세요.
  • 일관성 및 확장성
    • 필요 시 블록체인 네트워크가 일관성있게 재구축 가능하며, 네트워크의 규모도 일관성 있게 변경 가능

보안

  • 보안 취약점 검사
    • 스마트 컨트랙트나 블록체인 애플리케이션을 배포하기 전 코드에 대한 보안 취약점을 검사하여 보안 사고를 사전에 예방
  • 네트워크 공격 감지
    • 블록체인 네트워크를 실시간으로 모니터링하고 의심되는 행위 발견 시 관리자 또는 개발자에게 알림을 보내는 시스템 구축

모니터링 및 로깅

  • 네트워크 모니터링
    • 블록체인 네트워크의 상태와 퍼포먼스를 모니터링할 수 있는 시스템 구축
  • 트랜잭션 모니터링
    • 트랙잭션 로그를 수집하고 추적 가능한 시스템 구축

✅블록체인 개발에 DevOps를 적용 사례들

이미 여러 조직에서 블록체인 개발 프로세스에 DevOps를 적용하고 있는데요. 아래와 같이 사례를 간단히 정리해봤습니다.

IBM 블록체인 플랫폼

IBM은 블록체인 플랫폼을 Kubernetes 클러스터에서 이용할 수 있도록 별도의 Kubernetes Operator를 제공하고 있습니다.

Kubernets 클러스터 위에 블록체인 네트워크 운영에 필요한 컴포넌트를 배포하고 관리할 수 있기 때문에 확장성과 회복성을 제고할 수 있죠.

Ethereum Development

Ethereum의 패키지 중 Kurtosis는 Docker나 Kubernetes를 활용해서 프라이빗 Ethereum 테스트넷을 구성할 수 있습니다.

블록체인 애플리케이션 테스트를 위한 테스트넷을 Kubernetes로 구성함으로써, 필요할 때마다 동일한 테스트 환경을 재구축하거나 설정 변경도 용이합니다.

References