분류 전체보기 (65) 썸네일형 리스트형 Jikji Code 클라우드(Cloud Computing) 환경을 기반한 서비스의 안정적이고 효율적인 운영을 위한 데브옵스(DevOps) 사례를 소개하는 발표를 했었다. 당시에 발표자료를 준비하면서 문득 떠오른 생각이 있었다. 클라우드 환경의 시스템을 코드로 관리하는 방법에 대한 개념과 실천 방법에 대한 소개였다. 이 것을 잘 설명하는 비유를 생각하다가 우리나라 사람이라면 한 번쯤은 들어봤을 법한 '직지'가 떠올랐다. 우리가 자랑스럽게 생각하는 현존하는 세계 최고(最古, 가장 오래된)의 금속활자와 그 활자로 출판한 책이다. 직지와 인프라스트럭처 코드(Infrastructure as Code)는 닮은 점이 있다. 반복적인 작업을 피하고 대량의 결과물을 효율적으로 생산한다는 같은 목적을 갖는다. 그리고 틀을 만드는 초기 비용이.. Git 깃(Git)은 버전관리체계(Version Control System)이며, 소포트웨어(Software)개발 또는 버전관리 작업을 위한 위한 도구이다. 깃은 2005년 리누스 토발즈(Linus Torvalds) 가 리눅스 커널(Linux Kernel) 개발 협업을 위해 만들었다. 역사리눅스 커널은 굉장히 규모가 큰 오픈소스 과제(Opensource project)다. 리눅스 커널개발의 대부분 기간 동안(1991-2002) 패치(Patch)와 아카이브(Archive)로만 관리했다. 2002년에 리눅스 커널은 비트키퍼(BitKeeper)라는 상용 분산형 버전관리체계(DVCS: Distributed Version Control System)를 사용했다. 그러다가 2005년에 비트키퍼와 관계가 나빠지면서 리눅스 .. Continuous Integration 지속적 통합(Continuous Integration)은 짧은 주기로 소프트웨어(Software)를 개발하고, 사용자에게 빠르게 전달한 다음, 개선사항을 제안받아 다음 번 개발에 반영함으로써 지속적이고 주기적으로 소프트웨어를 개선해 나가는 개발 방법을 말한다. 이렇게 하면 사용자의 요구사항이 변경되더라도 쉽고 유연하게 맞춰나갈 수 있다. 보통 소프트웨어 개발은 설계, 개발, 검증, 배포의 과정으로 진행하는데, 전통적으로 전 과정에서 각 단계는 분리되어 있었고 뒤로 되돌아 가기 어려웠다. 그래서 보다 꼼꼼하게 설계하고 많은 시간을 설계 문서 작성에 공을 들였다. 일부의 경우 이러한 방법이 잘 맞았다. 요구사항의 변화 폭이 크지 않은 경우엔 충분히 설계를 검토하고 문서를 꼼꼼하게 잘 만들수 있었고, 검증도 .. Continuous Delivery 지속적 전달(Continuous Delivery)은 짧은 주기로 소프트웨어를 개발하고, 언제든지 안정적으로 배포할 수 있도록 하는 소프트웨어 공학(Software Engineering)이다. 모든 변경사항은 언제라도 운영가능한 상태(Production-ready)가 되도록 만드는 것이다.작은 규모의 소프트웨어를 짧은 시간동안 개발해서 즉각적으로 사용자에게 전달하겠다는 도전은 도달하기 쉽지 않은 목표이지만, 이를 통해서 사용자(소비자, 고객)의 만족을 높일 수 있으므로 매우 중요하다. 그래서 지속적 전달이라는 용어가 정립되기 전에도 같은 목표(애자일 철학)을 이루기 위한 여러 시도가 있었다. 바로, 지속적 통합이다. 지속적 통합을 통해서도 사용자의 피드백을 지속적으로 반영하고 개선하는 노력을 하였고, 주로.. About Pull Requests 코드 리뷰(Code Review)의 목적에 대해서 이야기해 본 적이 있다. 코드 리뷰의 목적에 대해 말하면서 다음 번에는 코드 리뷰를 잘 하는 방법에 대해 이야기 하기로 했다. 그래서 코드 리뷰를 잘하기 위한 방법에 대해 공유해 보고자 한다. 가장 먼저 하고 싶은 이야기는 '숙제 검사 이야기'다. 코드 리뷰를 처음 접하는 사람들이 리뷰를 숙제 검사로 받아들이는 경우가 많았다. 어떤 일이 주어지면 그 것에 대한 기능을 개발하고나서 결과를 검사해 달라는 의미로 리뷰를 요청하였다. 보통 이런 경우는 몇 가지 특징이 있다. 예상 일정의 마감 직전에 풀 리퀘스트(PR; Pull Request)가 올라온다. 그리고 거기에는 꽤 많은 양의 코드가 포함되어 있다. 또한 코드에 대한 설명이 별로 없다. 보통 이런 코드 .. Chaos Engineering Update: 2021년, AWS에서 제공하는 카오스 엔지니어링 서비스인 장애 주입 실험기(Fault Injection Simulator, FIS)를 출시하였다. 그래서 서비스 장애 주입 실험기를 활용하는 카오스 엔지니어링 테라폼 예제(https://github.com/Young-ook/terraform-aws-fis/)를 만들었다. EC2 오토스케일링 그룹, EKS 컨테이너 클러스터, RDS 데이터베이스 클러스터, Redis 클러스터, VPC 네트워크를 대상으로 장애를 주입하는 카오스 엔지니어링을 직접 실습 해볼 수 있다.카오스 엔지니어링(Chaos Engineering)이라는 이름만 들었다면, 여러가지 상상이 떠오를 것이다. 아니다, 어쩌면 모든 사람이 같은 생각을 떠 올렸을 수도 있다. 우주가 탄생.. Multi-Cloud Platform Update: 구글에서도 같은 생각을 했던 것 같다. 앤소스(Anthos)도 있었지만 스핀에커(Spinnaker), 쿠버네티스(Kubernetes), 이스티오(Istio) 조합으로 멀티클라우드(Multi-Cloud)를 지원하는 방법도 있다는 것을 구글 클라우드 넥스트 리와인드'18(Google Cloud Next Rewind '18)에서 소개했었다.멀티 클라우드(Multi-Cloud)는 문자를 그대로 해석했을 때, 여러 개의 클라우드 컴퓨팅 환경을 뜻한다. 보통 이런 경우, 대부분 규모가 큰 업체를 떠올리게 된다. 멀티 클라우드 전략이라는 말을 들었을 때 아마도 아마존(Amazon), 구글(Google), 마이크로소프트(Microsoft)를 떠올렸을 것이다. 레드햇(Redhat), 오라클(Oracle) .. Spinnaker Authentication 지금은, 할야드(Halyard)를 이용해서 쉽고 간편하게, 사용자인증, 데크 및 게이트 노출을 처리하고 있다. 지금은 아래 설정 방법을 직접 할 필요는 없다. 할야드를 사용하면 알아서 적절한 위치에 관련 설정을 잘 적용해 주기 때문이다. 다음은 OAuth2 인증을 적용하는 예제를 보여준다. 공식적으로는 구글(Google), 깃헙(Github), 애저(Azure)를 지원하고 있지만, 다른 사용자정보 제공자(IdP, Identity Provider)도 사용할 수 있다. 그럴 경우에는 PROVIDER 부분에 OTHER라고 입력한다. 그 외 나머지 정보는 프로바이더에서 제공하는 URL을 알맞게 연결해주면 된다.CLIENT_ID=myClientIdCLIENT_SECRET=myClientSecretPROVIDER=.. 이전 1 2 3 4 5 6 7 8 9 다음