리눅스에서는 base64 명령으로 base64 인코딩, 디코딩을 쉽게 할 수 있다.

 

1.  문자열 인코딩, 디코딩

1

2

3

4

5

6

7

// base64 encoding (with new_line)

# echo 'hello world' | base64

aGVsbG8gd29ybGQK

 

// base64 decoding

# echo 'aGVsbG8gd29ybGQK' | base64 --decode

hello world

 

이 때 주의할 점은 개행(\n)이 함께 인코딩 된다는 점이다.

개행을 제외하여 인코딩을 하고자 할 경우에는 -n 옵션을 추가하여 인코딩을 한다.

1

2

3

4

5

6

7

// base64 encoding (without new_line)

# echo 'hello world' | base64

aGVsbG8gd29ybGQ=

 

// base64 decoding

# echo 'aGVsbG8gd29ybGQ=' | base64 --decode

hello world#

 

2. 파일 인코딩, 디코딩

파일을 이용하여 인코딩, 디코딩을 할 수 있다.

1

2

3

4

5

6

7

// base64 encoding

# echo 'hello world' | base64 > hello.txt

# cat hello.txt

aGVsbG8gd29ybGQK

// base64 decoding

# base64 -di hello.txt

hello world

'IT기술 > 리눅스' 카테고리의 다른 글

리눅스에서 base64 인코딩, 디코딩 하는 방법  (0) 2019.10.27

FQDN은 '절대 도메인 네임' 또는 '전체 도메인 네임' 이라고도 불리는

도메인 전체 이름을 표기하는 방식을 의미한다.

 

웹 사이트 주소를 예로 들어보자.

 

1. www.tistory.com  

2. onlywis.tistory.com

 

위의 두 주소 중 www  onlywis 부분이 '호스트'이고, tistory.com 부분이 '도메인'이다.

위에 쓴 것처럼 호스트와 도메인을 함께 명시하여 전체 경로를 모두 표기하는 것을 FQDN 이라 한다.

 

FQDN와 달리 전체 경로명이 아닌 하위 일부 경로만으로 식별 가능하게 하는 이름을 PQDN(Partially~)라 한다.

 

쿠버네티스의 경우 다른 Pod를 찾을 시 동일 네임스페이스 안에서 찾을 때에는 PQDN을 사용할 수 있지만,

네임스페이스 외부에서 찾을 때에는 FQDN을 사용해야 한다.

'IT기술 > 네트워크' 카테고리의 다른 글

FQDN(Fully Qualified Domain Name) 이란?  (0) 2019.09.29

예전에는 수 개월(혹은 수 년)에 한 번씩 서비스를 릴리즈 했었지만, 최근에는 서비스를 더 작게 만들고(마이크로서비스) 더 자주 배포(Deployment) 하는 방식으로 변화하고 있다. 이러한 트렌드에 맞춰 서비스 배포 전략도 다양하게 개발되고 발전되어 왔다.


본 포스트에서는 가장 대표적인 배포 전략 Rolling, Blue/Green, Canary 기법에 대해 알아보겠다.



1. Rolling

Rolling 배포는 서버를 한 대씩 구 버전에서 새 버전으로 교체해가는 전략이다. 서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가한다. 이렇게 구 버전에서 새 버전으로 트래픽을 점진적으로 전환한다. 이와 같은 방식은 서버 수의 제약이 있을 경우 유용하나 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 한다.




2. Blue/Green

Blue/Green 배포는 구 버전에서 새 버전으로 일제히 전환하는 전략이다. 구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환시킨다. 하나의 버전만 프로덕션 되므로 버전 관리 문제를 방지할 수 있고, 또한 빠른 롤백이 가능하다. 또 다른 장점으로 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능하다. 예를 들어 구 버전과 새 버전을 모두 구성하고 포트를 다르게 주거나 내부 트래픽일 경우 새 버전으로 접근하도록 설정하여 테스트를 진행해 볼 수 있다. 단, 시스템 자원이 두 배로 필요하고, 전체 플랫폼에 대한 테스트가 진행 되어야 한다.




3. Canary

'Canary'라는 용어의 어원을 알면 이해가 더 쉽다. Canary는 카나리아 라는 새를 일컫는 말인데, 이 새는 일산화탄소 및 유독가스에 매우 민감하다고 한다. 그래서 과거 광부들이 이 새를 옆에 두고 광산에서 일을 하다가 카나리아가 갑자기 죽게 되면 대피를 했다고 한다.

Canary 배포는 카나리아 새처럼 위험을 빠르게 감지할 수 있는 배포 기법이다. 구 버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단한다. 이 기법으로 A/B 테스트도 가능한데, 오류율 및 성능 모니터링에 유용하다. 트래픽을 분산시킬 라우팅은 랜덤으로 할 수도 있고 사용자 프로필 등을 기반으로 분류할 수도 있다. 분산 후 결과에 따라 새 버전이 운영 환경을 대체할 수도 있고, 다시 구 버전으로 돌아가 수도 있다.





[참고]

https://www.slideshare.net/awskorea/ci-cd-pipleine-on-aws

https://dev.to/mostlyjason/intro-to-deployment-strategies-blue-green-canary-and-more-3a3

'IT기술 > DevOps' 카테고리의 다른 글

배포 전략: Rolling, Blue/Green, Canary  (1) 2019.03.12
CI/CD란 무엇인가?  (0) 2019.03.08
  1. 마법삼 2019.10.14 15:45

    잘 봤습니다~, 큰 도움 되었습니다.

+ Recent posts