English
You can inquire about technical support after logging in.
GitHub 사용자 교육 웨비나
성공적인 DevOps 구축을 위한 해법, 차별화에서 찾으세요!
안녕하세요 GitHub 한국 총판 단군소프트입니다. COVID-19로 인해 더 이상 이전의 작업 방식을 지속할 수 없는 기업이 많이 생겼습니다.GitHub는 과연 기업들이 어떠한 작업 방식으로 변경하고 있는지를 조사했고 그 결과 많은 기업들이 DevOps 및 자동화를 통해 작업 방식을 변경하고자 한다는 것을 알 수 있었습니다. 그렇다면 성공적으로 DevOps 구축을 위해서는 어떻게 해야 할까요? 그 답을 게시글에서 찾아보세요.
GitHub Universe 2020 News _다크모드, 기업들을 위한 GitHub 스폰서 등등
안녕하세요 GitHub 한국 총판 단군소프트입니다. 지난 12월 8일 ~ 10일에 GitHub Universe 2020이 개최되었다는 사실 알고 계셨나요? 오늘은 GitHub Universe 2020에서 소개된 새로운 기능들에 대해 소개해볼까 합니다. 과연 어떤 새로운 소식들이 소개되었는지 지금 바로 살펴보세요.
DevOps 자동화를 시작하세요.
안녕하세요 GitHub 한국 총판 단군소프트입니다.여러분은 엔지니어, 개발자, 디자이너들이 협력해서 개발할 때 가장 중요한 것이 무엇이라고 생각하시나요? 그것은 바로 ‘시간’과 ‘비용’을 절약하는 것입니다. 하지만 개발을 위해 협력할 엔지니어, 개발자, 디자이너들이 적절한 포지션에서 작업을 진행하고 있지 않다면 불필요한 시간과 비용이 많이 사용되는데요. 이런 필요 없는 시간과 비용을 절약하기 위해서는 ‘시스템의 자동화’가 가장 중요합니다. 시스템의 자동화하면 요즘 가장 인기 있는 DevOps가 떠오르진 않으시나요? 그렇다면 DevOps에서 자동화는 어떤 역할을 할까요?자동화는 DevOps의 핵심 원칙 중 하나입니다. 자동화는 각각의 팀들이 문제점들을 발견하고 해결하기 쉽도록 조직내 지속성, 안정성 및 효율성을 높입니다. 저희가 많은 기업들과 작업을 진행하면서 어디서부터 시작해야 하는지 또는 어떤 프로세스를 자동화할 수 있는지, 그리고 자동화해야 하는 것이 무엇일지 처음부터 아는 사람은 많지 않았었습니다. 그래서 오늘은 DevOps가 적용된 몇 가지 모범 사례와 지침을 알아보겠습니다. 자세한 내용은 아래에서 확인하세요! DevOps 자동화의 경로는 지속적으로 진화하고 있습니다. 최적의 DevOps 자동화의 사례를 살펴보기 전에 자동화 대상과 방법을 결정할 때 염두에 두어야 할 3 계명을 알려드리겠습니다. 1. 개방형 표준을 선택하세요.기여자와 팀은 변경될 수 있지만 프로세스와 툴은 변경되면 안 됩니다. 패키징, 런타임, 시스템 구성, 심지어는 네트워킹과 스토리지까지 여러 항목의 커뮤니티 기반 표준을 만들어 온보딩을 단순화하고 전문 교육에 소요되는 시간을 절약하세요. 2. 동적 변수(dynamic variables)를 사용하세요.재사용 가능한 코드의 우선순위를 지정해 놓으면 재작업 및 중복되는 양을 줄일 수 있습니다. 스크립트 전문 툴이든 간에, 외부에서 정의된 변수를 안전하게 사용하는 것은 코드 자체를 변경할 필요 없이 다양한 환경에서 쉽게 자동화를 할 수 있는 방법입니다. 3. 모든 상황에 유연한 도구를 사용하세요.모든 상황에 맞는 도구를 항상 찾는 것은 힘든 일입니다. 그래서 기술을 변경할 수 있는 DevOps 툴을 사용하면 회사가 정책을 바꿀 때 필요한 재작업을 줄일 수 있습니다. 모든 클라우드에서 작동하면서 파트너로부터의 통합지원이 가능한 넓은 생태계가 형성된 솔루션을 선택하면 도구 변화의 제한 없이 목표를 달성할 수 있습니다. 1. CI/CD 많은 분이 "DevOps"라는 용어를 "CI/CD"와 동의어라고 생각합니다. 하지만 DevOps는 기여자가 코드를 빌드 및 실행 (또는 구성 배포) 할 수 있게 하는 것부터 개발자의 생산성 향상에 이르기까지 훨씬 더 많은 것을 포함하고 있는 용어입니다. CI/CD는 DevOps의 동의어가 아니라 핵심 구성 요소라고 할 수 있습니다. •지속적인 통합 (CI, Continuous integration): 모든 변경 사항에 대한 테스트를 구현하여 사용자가 자신의 변경 사항이 환경에 어떤 영향을 미치는지 확인할 수 있도록 하는 프로세스입니다. •지속적인 전달(CD, Continuous delivery): 성공적인 릴리스 후보를 언제든지 프로덕션에 배포할 수 있는 방식으로 소프트웨어를 구축하는 방법입니다. •지속적인 배포(CD, Continuous deployment): 지속적 전달(CD, Continuous delivery)을 한 단계 더 발전시킨 것입니다. 지속적 배포(CD, Continuous deployment)를 통하면,모든 성공적인 변경 사항이 자동으로 프로덕션에 배포됩니다. 산업 및 기술에 따라 고객에게 새로운 변경 사항을 출시하지 못할 수도 있기 때문에 지속적인 배포(CD, Continuous deployment)를 도입하는 방법은 조직과 제품에 따라 다릅니다. CI/CD는 함께 프로젝트를 진행하는 사람들이 협업할 수 있는 프로세스를 만듭니다. 동시에 팀들은 자동화를 통해 품질 관리를 유지하고 지속적인 배포(CD, Continuous deployment)를 통해 사용자에게 새로운 기능을 제공할 수 있습니다. 2. 변경 관리 변경 관리는 자주 비즈니스 프로세스에 중요한 부분을 차지합니다. 자동화 3계명과 마찬가지로 개발 및 운영의 일관성을 만드는 데 사용할 수 있는 몇 가지 공통 원칙과 툴이 있습니다. •버전 관리: 버전 관리는 변경 사항을 되돌리고 과거에 왜 이러한 결정을 했는지 알기 위해 매우 오래전부터 사용했습니다. RCS에서 SVN, CVS에서 Perforce, ClearCase에서 Git까지 버전 제어는 함께 작업할 수 있는 공유 워크 플로우 및 코드 기반을 제공하여 협업할 수 있도록 하는 필수 요소입니다. •변경 제어: 코드의 버전 기록을 유지하는 것과 함께 변경을 용이하게 조정하는 시스템을 갖추면 제품 방향을 유지하고 코드에 대한 유해한 변경 가능성을 줄여 협업 프로세스를 장려하는 데 도움이 됩니다. •구성 관리: 구성 관리를 통하여 모든 사람이 템플릿을 통해 복잡한 배포를 쉽게 관리하고 적절한 제어 및 승인을 통해 대규모 변경 사항을 관리할 수 있습니다. 3. ’~의 코드화’(‘~as code’) laC(infrastructure as code), CAC(configuration as code), policy as code, 이외의 “as code” 모델에 대해 들어 보셨나요?이러한 모델은 높은 수준의 추상화(abstraction)를 통해 운영 환경의 다양한 측면을 관리하기 위한 선언적 프레임 워크를 제공합니다. DevOps는 이 “as code” 모델을 신뢰할 수 있는 리소스 배포 방법, 신규 사용자에 대한 학습 곡선을 낮추는 방법 등 다양한 목적으로 사용합니다. 이러한 “as code”의 몇 가지 예시를 살펴보겠습니다. •IaC (Infrastructure as Code): 개발자가 소스 코드에 사용하는 것과 동일한 버전 관리 및 워크플로우를 사용합니다. 그리고 변경 불가능한 인프라를 만들기 위한 선언적 모델을 제공합니다. 인프라 요구 사항이 변경되면 자동화된 선언적 파이프라인을 통해 새로운 구성으로 인프라가 정의, 테스트 및 배포됩니다. •PaC (Platform as code): 코드 형 인프라가 동일한 인프라를 재생성하기 위한 프레임 워크를 제공하는 방식과 유사한 서비스에 대한 선언적 모델을 제공합니다.높은 수준의 추상화를 통해 기존 인프라에 서비스를 빠르게 배포할 수 있습니다. •CAC (Configuration as Code): 애플리케이션의 구성을 버전이 지정된 리소스로 정의하여 다음 수준의 선언적 파이프라인을 제공합니다. •Policy as code: 보안 및 정책 관리를 위해 버전 관리 및 DevOps 워크 플로우를 제공합니다. 지속적인 모니터링 소프트웨어 수명 주기 동안 애플리케이션과 인프라의 성능의 안정성을 지속적으로 모니터링하는 것은 운영팀에게 문제 해결에 도움이 되는 데이터를 제공하고 개발팀에게는 디버그 및 패치에 필요한 정보를 제공합니다. 이렇게 소프트웨어에 대한 다양한 정보를 얻게 되면 개발 환경에서 매우 중요한 운영 통찰력도 얻을 수 있습니다. 모니터링에 사용되는 도구는 매우 다양한데요. 하지만 어떤 모니터링 도구를 선택하는지에 따라 약간의 서비스 방해인가 아니면 주요 서비스 정지인가의 차이를 낼 수 있습니다. 그럼 모니터링에 고려되어야 하는 몇 가지 주요 항목에 대해 살펴보겠습니다. •로깅(Logging): 비즈니스의 핵심 구성 요소에 대한 지속적인 데이터 스트림을 제공합니다. 애플리케이션 로그, 인프라 로그 및 감사 로그 모두 팀이 제품을 배우고 개선하는 데 도움이 되는 중요한 데이터를 제공합니다. •모니터링(Monitoring): 로그 및 측정 항목에 제공된 원시 데이터에 대한 지능 및 해석 수준을 제공합니다. 고급 도구를 사용하면 모니터링을 통해 원시 데이터가 제공하는 것 이상의 상호 관련된 통찰력을 팀에 제공할 수 있습니다. •알림(Alerting): 각 팀에 사전 알림을 제공하여 주요 문제를 미리 파악할 수 있도록 도와줍니다. 효과적으로 구현되면 문제가 발생했을 때 알려줄 뿐만 아니라 문제를 신속하게 해결하는 데 도움이 되는 중요한 디버깅 정보를 팀에 제공할 수도 있습니다. •추적(Tracing): 로깅을 한 단계 더 발전시켜 개발 환경에서 애플리케이션의 안정성과 확장성에 큰 영향을 미칠 수 있는 더 깊은 수준의 애플리케이션 성능과 동작 통찰력을 제공합니다. 위에서 DevOps와 자동화에 대한 많은 이야기를 나누었습니다. 그렇다면 DevOps는 모두 자동화에 관한 것일까요? 아닙니다!자동화는 팀 간에 작업을 효율적으로 수행하기 위한 중요한 수단일 뿐입니다. DevOps를 사용할 때는 새로운 도구를 사용해보는 것도 좋은데요. 소규모 프로젝트나 새로운 프로젝트에서 새로운 도구를 사용해보는 것은 실험하는 조직 전체규모의 자동화를 확장하고 표준화하기 위한 최초 기반을 마련할 수 있게 합니다. 그리고 현재 팀의 워크플로우와 작업에 필요한 정보를 스스로 평가해보면, 성공을 위한 단계의 설정과 이를 위한 툴, 플랫폼을 선택하는 데 도움을 줄 것입니다.이에 도움이 되는 몇 가지 내용을 추가했으니 아래에서 살펴보세요. · DevOps 도구의 주기율표· DevOps 도구 용어집· 최고의 DevOps 도구 목록 여기까지 DevOps가 적용된 몇 가지 모범 사례와 몇 가지 지침에 관한 소개였습니다.긴 글 읽어주셔서 감사합니다. 이 글은 GitHub의 Getting started with DevOps automation를 번역한 글입니다.
단군소프트와 함께한 Azure Sprint 해커톤 행사 리뷰!
안녕하세요 GitHub 한국 총판 단군소프트입니다. 오늘은 단군소프트에서 진행한 Azure Sprint 해커톤* 행사에 대해 알려드리고자 찾아왔습니다!지난 12월 2일과 3일에 진행된 이 행사는 GitHub를 좋아하는 개발자들과 GitHub, Azure를 사용하여 직접 DevOps를 구축해 보는 해커톤 행사였습니다. 온/오프라인 형식으로 진행된 이번 행사는 총 11분이 참가해 주셨습니다. 그럼 Azure Sprint 해커톤 행사가 어떻게 진행되었는지 소개하겠습니다. * 해커톤: 그래픽 디자이너, 사용자 인터페이스 설계자, 프로젝트 매니저 등이 정해진 시간 내에 집중적으로 작업하여 결과물을 만들어내는 소프트웨어 관련 이벤트 ※ Azure Sprint 행사는 정부의 사회적 거리 두기 지침을 준수하여 철저한 방역관리 아래에 진행되었습니다. Azure 행사 내용을 알려드리기 전에 먼저 Azure가 무엇인지 알아보겠습니다. 특히 Azure는 GitHub와 연동해 사용할 수 있습니다. 그럼 본격적으로 이번 해커톤 행사가 어떻게 진행되었는지 보러 가실까요? 미션: 회사 사내에 DevOps를 적용해라! 이번 해커톤 행사에 참여한 참가자들은 가상의 시나리오를 적용하여 회사 내부에 DevOps를 적용하라는 미션을 받았습니다. 미션을 해결하기 위해서 총 5개의 과제가 주어졌는데요. 해당 과제들은 주어진 지문을 바탕으로 선별된 팀원들과 함께 과제를 진행해 나갔습니다. 중간에 생기는 질문이나 팀원끼리 해결하지 못한 어려운 부분들은 코치로 참여한 단군소프트의 김철호 엔지니어와 정인수 엔지니어가 도움을 주었습니다. 미션을 완료하기 위해 과제를 해결하자! 11명의 참가자들은 총 3개의 팀으로 나누어 가상의 회사 내부에 DevOps를 적용하기 위해 이틀 동안 5개의 과제를 해결해 나갔습니다. 미션을 클리어하기 위한 과제는 무엇이었을까요? 과제 1: GitHub 및 Azure DevOps 소개첫 번째 과제는 GitHub.com 계정을 이용해 조직을 만들고 팀과 협업하기 위한 환경을 구성하는 것입니다. 나누어진 팀원 간의 효율적인 생산성을 만들어 내기 위해서, 과제를 시작하기 전에 Azure Board를 이용하여 업무를 정리하고 업무를 분리하여 담당자를 지정했습니다. 과제 2: 빌드 워크플로우(Build Workflow) 생성두 번째 과제에서는 빌드 워크플로우를 생성하는 것입니다. 빌드 워크플로우 생성에는 GitHub Actions를 사용하는데요. GitHub Actions를 사용하면 빌드 워크플로우를 저장소에서 함께 관리할 수 있어 보다 빠르고 간편한 빌드 환경을 구축하는데 이번 과제의 목적이 있었습니다. 과제 3: 배포 워크플로우 빌드세 번째는 배포 워크플로우를 빌드하는 것입니다. Test 및 Prod 환경을 따로 구축하여 Prod 환경에 배포되기 전에 사전 테스트를 진행하도록 설정하는 과제였습니다. 이를 위해 Azure Resources 및 Azure WebApp, Azure Key Vault, Azure Resource Manager 등의 Azure DevOps를 사용했습니다. 과제 4: 솔루션 모니터링네 번째 과제는 개선점을 찾고 고객들에게 신뢰성을 주기 위해 요청 및 오류 등의 데이터를 모니터링을 하는 과제입니다. 모니터링할 데이터는 Azure에서 Application Insights 리소스를 생성해 기록하였습니다. 과제 5: 컨테이너 빌드 및 발송마지막 과제는 빌드 및 배포 워크플로우를 수정하여 컨테이너 이미지를 생성하고 Azure Container Registry로 push 하는 과제입니다. 각 환경에 Azure Web App for Containers 인스턴스에 컨테이너 이미지를 배포하도록 설정함으로써 보다 더 많은 작업을 자동화할 수 있게 하는 과제였습니다. 여기까지 Azure Sprint 해커톤 행사에 대한 짧은 리뷰였습니다.단순 교육 형태가 아니라 직접 참여하는 해커톤 형태였던 이번 행사에서 참가자들은 더 효과적으로 DevOps의 전반에 걸친 부분을 확인할 수 있었습니다. 다시 한번 행사에 참여해 주신 모든 분께 진심으로 감사의 인사를 전합니다. 이번 행사가 Azure, GitHub 그리고 DevOps에 대해 더 자세히 알 수 있었던 시간이 되었기를 바라며,내년에도 보다 나은 프로그램으로 개발자분들에게 도움을 드리는 단군소프트가 되겠습니다.감사합니다.
GitHub Enterprise (in sets of 10)
GitHub is a code development platform for efficient tasks. From open source to business, you can work with millions..