DOI QR코드

DOI QR Code

리눅스 컨테이너와 버전 관리 시스템을 이용한 소프트웨어 연구 환경 구축

Building Software Research Environment using Linux Container and Version Control System

  • 하완수 (부경대학교 에너지자원공학과)
  • Ha, Wansoo (Department of Energy Resources Engineering, Pukyong National University)
  • 투고 : 2021.04.27
  • 심사 : 2021.05.25
  • 발행 : 2021.05.31

초록

소프트웨어 기술 발달에 따라 점점 더 많은 과학자와 공학자들이 연구를 위해 컴퓨터 소프트웨어와 프로그래밍 도구들을 사용하고 있다. 소프트웨어를 이용한 연구에서는 환경 설정, 재현성 및 소스 코드 손실과 같은 문제들이 발생할 수 있다. 이 해설에서는 리눅스 컨테이너와 버전 관리 시스템을 사용하여 이러한 문제를 방지하는 방법에 대해 조사하였다. 연구 프로젝트 단위로 클라우드 저장소를 통해 코드를 관리하고 리눅스 컨테이너에 연구 환경을 구축하면 위의 문제들을 방지하고 협동 연구를 더 쉽게 만들 수 있다. 리눅스 컨테이너 사용 경험이 없는 연구자들을 위해 컨테이너 생성과 실행에 필요한 스크립트를 포함한 연구 프로젝트 템플릿 저장소를 공개하였다.

With advancements in software technology, more scientists and engineers are employing computer software and programming tools for research. However, several issues can arise in software-based research: environment setting, reproducibility, and loss of source codes. This study investigates the use of Linux containers and version control systems to prevent these problems. Managing research projects using a cloud source-code repository and building a research environment in a Linux container can prevent the abovementioned problems and make research collaboration easier. For researchers with no experience with Linux containers, a repository of project template containing shell scripts for building and running containers has been released.

키워드

과제정보

다양한 오픈 소스 소프트웨어들의 개발자들에게 감사합니다.

참고문헌

  1. Andreessen, M., 2011, Why Software Is Eating The World, The Wall Street Journal, http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html (April 15, 2021 Accessed)
  2. Conda, 2021, https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html (April 15, 2021 Accessed)
  3. Dionisio, J. D. N., Burns III, W. G., and Gilbert, R., 2013, 3D virtual worlds and the metaverse: Current status and future possibilities, ACM Comput. Surv., 45(3), p.1-38, doi: 10.1145/2480741.2480751.
  4. Docker, 2021, https://docs.docker.com (April 15, 2021 Accessed)
  5. Docker Hub, 2021, https://hub.docker.com (April 15, 2021 Accessed)
  6. Git, 2021, https://git-scm.com/docs (April 15, 2021 Accessed)
  7. GitHub, 2021, https://github.com (April 15, 2021 Accessed)
  8. Hannay, J. E., MacLeod, C., Singer, J., Langtangen, H. P., Pfahl D., and Wilson, G., 2009, How do scientists develop and use scientific software?, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering, Vancouver, BC, Canada, p.1-8, doi: 10.1109/SECSE.2009.5069155.
  9. Kubernetes, 2021, https://kubernetes.io (April 15, 2021 Accessed)
  10. Linux containers, 2021, https://linuxcontainers.org (April 15, 2021 Accessed)
  11. Morris, K., 2016, Infrastructure as code: Managing servers in the cloud, O'Reilly.
  12. Negri, E., Fumagalli, L., and Macchi, M., 2017, A review of the roles of digital twin in CPS-based production systems, Procedia Manufacturing, 11, 939-948. https://doi.org/10.1016/j.promfg.2017.07.198
  13. Negroponte, N., 1995, Being Digital, Alfred A. Knopf, Inc., USA.
  14. Nvidia Container Toolkit, 2021, https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.htm (April 15, 2021 Accessed)
  15. Prabhu, P., Kim, H., Oh, T., Jablin, T. B., Johnson, N. P., Zoufaly, M., Raman, A., Liu, F., Walker, D., Zhang, Y., Ghosh, S., August, D. I., Huang, J., and Beard, S., 2011, A survey of the practice of computational science, Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, Seattle, WA, USA, p.1-12, doi: 10.1145/2063348.2063374.
  16. Samba, 2021, https://www.samba.org (April 15, 2021 Accessed)
  17. Tercek, R., 2015, Vaporized: Solid stragegies for success in a dematerialized world, LifeTree Media, USA.
  18. Wilson, G., Bryan, J., Cranston, K., Kitzes, J., Nederbragt, L., and Teal, T. K., 2017, Good enough practices in scientific computing, PLoS Comput. Biol., 13(6), e1005510, doi: 10.1371/journal.pcbi.1005510.
  19. Venv, 2021, https://docs.python.org/3/library/venv.html (April 15, 2021 Accessed)
  20. Version control, 2021, https://en.wikipedia.org/wiki/Version_control (April 15, 2021 Accessed)