해당 글은 구글 스터디잼 Kubernetes in the Google Cloud를 통해 경험한 내용을 바탕으로 합니다.해당 과정의 Link는 https://run.qwiklabs.com/quests/29 3주간의 kubernetes 체험기 마지막날이다. 이번주엔 Build a Slack Bot with Node.js on kube, private kube cluster, helm package manager, NGINX ingress controller까지 경험하며 사실상 입문 과정을 마무리하였다. 동시에 쿠버네티스 내부 파트를 집중적으로 책을 읽었다. 뒤늦게 조대협님의 블로그를 접했는데, 먼저 읽고 시작했으면 어땠을까싶다. 쿠버네티스를 이해하는데에 있어 실습과정을 따르면서, pods/service/de..
해당 글은 구글 스터디잼 Kubernetes in the Google Cloud를 통해 경험한 내용을 바탕으로 합니다. 해당 과정의 Link는 https://run.qwiklabs.com/quests/29 이번 스터디 잼을 통해 Kubernetes를 이용하여 Blue-Green/Canary 배포를 해보고, Jenkins/MongoDB 등을 연동해보았다. 다만, Kubernetes가 기존의 아키텍처를 추상화하였기에, Infrastructure as a Code를 구현할 수 있다는 체험을 했을 뿐이다. 각 명령어가 담고 있는 의미를 재해석하는 노력은 사용자 측면에서는 유의미할 수 있으나, 엔지니어 시점에서 다소 아쉬움이 남는다. 그래서 이번 포스팅을 하며 쓰고 지우기를 반복했다. 이번 포스팅에서는 지난주에 ..
해당 글은 구글 스터디잼 Kubernetes in the Google Cloud를 통해 경험한 내용을 바탕으로 합니다. 해당 과정의 Link는 https://run.qwiklabs.com/quests/29 Kubernetes란 무엇일까? (https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/) - Kubernetes는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. Kubernetes에 대한 첫 인상은, - 컨테이너 기반이므로, VM 이미지를 사용하는 방식보다 이미지 생성이 쉽고 효율적이겠다. (지난 공감세미나에서 보았듯이, Container를 활용하면 Cold booting을 없앨 수 있다..
1. 도커 이녀석..http://www.bench87.com/content/50생각해보면 당연한 부분인데 docker를 자꾸만 vm처럼 생각하게 되는 것 같다. 2. 작은 성공광고매체 자동 입찰 시스템을 담당하게 되었다. 그 전초작업으로 시스템 구축을 한번 해보았는데, ansible은 참 볼 때마다 매력적인 도구인 것 같다. 전에 '두려움'에 관한 글을 인용한 적이 있는데, 그저 막연한 일도 대상을 구체화하여 문제를 직시하고 작업 단위를 잘게 쪼개다보면, 해결가능한 일로써 내재화되는 듯하다. 그리고 이 한번의 작은 성공이 각 컴포넌트들에 대한 심리적 허들을 걷어낸다. 3. 반성회사 내에서 데이터 플랫폼 스터디를 하기로 계획했지만, 각자의 사정으로 이제야 1주차가 진행되었다. 꽤 시간이 있었음에도 나 역시..
1. .아직 저를 잘 모르시는거 같네요. 너도 날 잘 모르잖아, 여자를 잘 모르는 것 같아요, ㅋㅋ 너가 아직 날 잘 몰라서 그래. 정말 몰랐어요? 나한테 관심이 없어서 그런거지.올해 들어 뭘 모른다고 그러는 사람들이 많네.. 2. 공부한게 없네..처음엔 fluentd interval이 기본 60s인데 interval 생각안하고 네트워크, 보안, 빅쿼리 설정, fluent 설정, access log format, access log permission 등등 트러블 슈팅하면서 삽질을 하다 값이 잘 들어가는 거 같더니.. 왜 자꾸 time 등에 null 값이 들어가는걸까..fluent 설정인 td-agent.conf 문제일듯 한데.. 삽질만 계속..apache, nginx 둘다 저러고 time format도..
1. . 트럼펫 소리가 들리자 하인에게 저 소리가 무슨 뜻이냐고 물었다.하인은 아무것도 몰랐고 아무 소리도 듣지 못했다.하인이 문가에서 나를 막아서며 물었다."주인님, 어디로 가십니까?"모른다" 내가 말했다."그냥 여기서 나갈거다. 여기서 나갈거야. 여기서 나가려는 것 뿐이다. 그것만이 내 목표에 이를 수 있는 길이야"그럼 주인님은 목표를 아시나요?" 하인이 물었다. "알고말고" 내가 대답했다. "방금 말했지 않느냐 여기서 나가는 것. 그게 내 목표다" - 프란츠카프카, 돌연한 출발 中 저 트럼펫 소리는 떠날 수 있는 자에게만 들리는 것인가,그렇다면 그들은 "어디에서", "어디로" 도망치는지.. 왜 대답을 회피하는 것일까.아니면, 그저 머문다는 것에 대한 생내적인 거부감인가. 그 자신이 떠난 모든 여행을..
1. ." 가장 먼저 해야 할 일은 두려움에서 '불안'으로 이동하는 것이다. 두려움은 우리가 정체성을 위협한다고 여기는 외부 대상에 대한 감정인 반면에, 불안은 우리가 두려운 외부의 위협으로 부터 보호하고 싶은 정체성에 문제가 생겼다고 인식할 때 생기는 감정이다. 두려움은 외부 대상을 몰살시키려드는 반면, 불안을 마주하는 방식은 우리를 변화시킨다.... 새로운 상태로 넘어가는 과정에서 오래된 질서가 생명력을 잃고 새로운 질서가 아직 나타나지 않을 때 공포는 뚜렷이 눈에 두드러지고 비정상화된다. 그리고 그런 희망의 순간에 위대한 행동이 가능해진다. 현 상황의 급박함을 핑계로 삼으면 결코 안된다. 급박하다는 말은 생각을 해야 할 때라는 뜻이다. ... 하늘 아래 거대한 무질서가 있으니 더할 나위 없이 좋은 ..
1. redshiftSQL 공부를 하던 중에 예제 쿼리들이 mysql 5.x 버전에서 지원되지 않는 것이 많아, 처음에는 변환해서 학습했었다. 그런데 중첩되는 부분들이 점차 많아져서 우선은 빅쿼리로 해결하려고 했다. mysql의 데이터를 embulk로 빅쿼리에 올려서 처리 후 tableau로 연동하는 작업을 해보았으나, mysql to bigquery, bigquery to tableau는 무난하게 해결했는데 bigquery에서도 legacy sql이든, standard sql이든 mysql 8 (혹은 ORACLE)에서 지원하는 함수들이 안먹힌다. 그래서 aws emr로 하려고 했으나, 처음 sbt 라이브러리받는데 너무 오랜 시간이 걸리고 무엇보다 내가 spark를 모름 ㄷㄷ.. 해서 redshift로 ..
1. batchno update 그리고 join문을 최대한 없애더라도 대규모 데이터 INSERT에 대한 고민과 DB scale out와 관련하여 persistence랄까 messaging architecture에 대한 고민은 여전히 남는다. 우선 지금의 프로젝트는 메시징까지는 고려할 필요는 없으나 대규모 데이터 INSERT가 예상되었고, 팀 내에서 아직 mybatis를 사용하고 있는터라, 이를 기준으로 고민해보았다.결론은 mybatis의 executor-type을 batch로 하고, insert문 하나로 처리하되 이 때 values를 일정 단위로 잘라서 보내는 것이 가장 효율적이란 생각이 들었다. 그 외 이전까지 구현해야 했던 SqlSessionTemplate 및 Factory 등은 mybatis-spr..
1. decode vs case, URL 추출하기#### 코드값을 레이블로 변경하기로그데이터 혹은 업무데이터에 코드값으로 저장한 경우 집계에 그대로 사용하면 리포트의 가독성이 떨어지므로 변환작업이 필요하다.SELECTuser_id, CASEWHEN register_device = 1 THEN '데스크톱' /* WHEN : 비교 조건을, THEN : WHEN 조건이 TRUE일 때 */WHEN register_device = 2 THEN '스마트폰' /* 위 조건이 FALSE 일경우 다음 WHEN으로 */WHEN register_device = 3 THEN '애플리케이션'ELSE '' /* 모든 조건이 해당되지 않을 때 */END AS device_nameFROM mst_users/* 위의 CASE문은 탐색..