배포 방식도 간단히 deployment/release로 표현되기도 하지만.. 사실 많은 전략이 있다.



보통 웹 서비스에서 많이 사용되는 방식을 소개하면.. 다음과 같다. 




1) 롤링 업데이트 (rolling update), 또는 Ramped 라고도 한다.


일반적인 배포를 의미하는데, 


단순하게 한 대씩 재시작한다. 만약 코드 변경에 따른 side effect가 발생할 수 있다. 


하지만 롤백이 가능하다는 점, 관리가 편하다는 점에서 많이 사용되었다.


한 대만 배포해서 살펴볼 수도 있다.





2) 블루-그린(Blue-Green)


https://martinfowler.com/bliki/BlueGreenDeployment.html


예전 배포물을 블루(blue), 신규 배포물을 그린(green)이라고 해서 붙여진 이름이다. 


새로운 배포물을 배포하고 모든 연결을 새로운 배포물만 보게 한다. 코드 변경에 따른 side effect가 없다.


그러자 장애가 발생하면 크게 영향을 준다.




2) 카나리 (Canary)


1대 또는 특정 user에게만 미리 배포했다가 잘되면 전체 배포하는 방식이다.






수정한 코드가 워낙 많이 바뀌어서 좀 불안할 때 사용하는 방식이다. 


단순히 1대만 배포하는 경우도 있고. zookeeper/storage를 이용해 특정 user에게만 배포하는 형태를 가질 수 있다. 




3) A/B 테스트


카나리 배포와 비슷하지만 A/B 테스팅만을 위한 것이다. 






그림 출처 : https://martinfowler.com/


참조 

네이버에서의 SRE 경험.

https://martinfowler.com/

http://container-solutions.com/kubernetes-deployment-strategies/



Posted by '김용환'
,

맥 OS 사용자에게 도움이 되는 오픈 소스 애플리케이션을 소개한 페이지다.

(사실 정확히 말하면 개발자를 위한 것 같다..)


https://github.com/serhii-londar/open-source-mac-os-apps





Posted by '김용환'
,




2018 아마존(서울) aws 발표 중 좋았던 내용은 community에 있었다...


https://aws.amazon.com/ko/summits/seoul/on-demand/community/


Posted by '김용환'
,


레드햇에서 클라우드 네이티브 컨테이어 디자인 관련 문서(쿠버네티스)를 공유했다. 






http://blog.kubernetes.io/2018/03/principles-of-container-app-design.html?m=1




https://www.redhat.com/cms/managed-files/cl-cloud-native-container-design-whitepaper-f8808kc-201710-v3-en.pdf


PRINCIPLES OF

SOFTWARE DESIGN:

•Keep it simple, stupid (KISS)

•Don’t repeat yourself (DRY)

•You aren’t gonna need it

(YAGNI)

•Separation of concerns (SoC)

RED HAT APPROACH

TO CLOUD-NATIVE

CONTAINERS:

•Single concern principle (SCP)

•High observability

principle (HOP)

•Life-cycle conformance

principle (LCP)

•Image immutability

principle (IIP)

•Process disposability

principle (PDP)

•Self-containment

principle (S-CP)

•Runtime confinement

principle (RCP)



레드햇 아키텍트가 infoq에 쓴 글이다.


https://www.infoq.com/articles/kubernetes-effect



Posted by '김용환'
,



지도를 통한 미세먼지 

https://earth.nullschool.net/#current/chem/surface/level/overlay=cosc/orthographic=-234.88,34.11,1109







일본텐키

http://www.tenki.jp/particulate_matter/ (pc)

http://www.tenki.jp/lite/particulate_matter/  (모바일)






Posted by '김용환'
,

[펌] vault

scribbling 2018. 4. 2. 19:04


애플리케이션에서 DB userid/password와 같은 데이터를 저장하면 소스가 해커에 의해 탈취되면 위험할 수 있다.

이를 보호할 수 있는 오픈 소스로 vault가 있다. 


https://www.vaultproject.io/intro/getting-started/first-secret.html



아마존에서는 KMS로, 애저에서는 Vault를 사용해 클라우드 서비스를 진행하고 있다.

https://docs.microsoft.com/ko-kr/azure/architecture/multitenant-identity/key-vault




spring 연동이 있어서 Spring 자바 개발자에게는 편리할 것 같다.. (곧 적용할 예정이다.)


https://docs.spring.io/spring-vault/docs/current/reference/html/index.html



기본은 파일 기반인데, mysql DB 등 여러 스토리에 연동 가능하다.

https://www.vaultproject.io/docs/secrets/databases/mysql-maria.html


https://github.com/hashicorp/vault/blob/master/website/source/docs/configuration/storage/mysql.html.md



Posted by '김용환'
,



MovieLens의 ratings.csv 파일을 다운로드하는 방법



먼저 파일이 어디 있는지 확인한다.


http://files.grouplens.org/datasets/movielens/ml-20m-README.html


Summary

This dataset (ml-20m) describes 5-star rating and free-text tagging activity from MovieLens, a movie recommendation service. It contains 20000263 ratings and 465564 tag applications across 27278 movies. These data were created by 138493 users between January 09, 1995 and March 31, 2015. This dataset was generated on October 17, 2016.

Users were selected at random for inclusion. All selected users had rated at least 20 movies. No demographic information is included. Each user is represented by an id, and no other information is provided.

The data are contained in six files, genome-scores.csvgenome-tags.csvlinks.csvmovies.csvratings.csv and tags.csv. More details about the contents and use of all these files follows.

This and other GroupLens data sets are publicly available for download at http://grouplens.org/datasets/.



링크를 따라 들어가서 ml-20m.zip를 다운로드한다.



바로 접근하려면 다음 링크로 접속한다. 


https://grouplens.org/datasets/movielens/



저 파일 안에 ratings.csv 파일이 있다.



Posted by '김용환'
,

트위터는 이미 mesos 기반을 쓰고 있고..


넥플릭스는 mesos 기반의 컨테이너 개발이 진행 중이다. 


https://queue.acm.org/detail.cfm?id=3158370



Posted by '김용환'
,



kubernetes의 네트워킹과 Pod, Service, ServiceNetwork의 개념, 오버레이 네트워크(https://en.wikipedia.org/wiki/Overlay_network), 디플로이(https://kubernetes.io/docs/concepts/workloads/controllers/deployment/), kube-proxy를 잘 설명한 글이 소개한다.





1. Understanding kubernetes networking: pods


https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727



(주요 그림)




2. Understanding kubernetes networking: services


https://medium.com/google-cloud/understanding-kubernetes-networking-services-f0cb48e4cc82



(주요 그림)



내부적으로 동작하는 netfilter의 중요성을 설명한 내용이 포함되어 있다. 


3. Understanding kubernetes networking: ingress


https://medium.com/google-cloud/understanding-kubernetes-networking-ingress-1bc341c84078


(주요 그림)



Posted by '김용환'
,


개발자 역량/성장에 도움될만한 자료를 찾는 이에게 도움이 될만한 링크


https://artandlogic.com/what-makes-great-programmers-great/


http://sijinjoseph.com/programmer-competency-matrix/


https://news.ycombinator.com/item?id=4626695

Posted by '김용환'
,