공부하고 기록하는, 경제학과 출신 개발자의 노트

학습일지 153

Deview 2021 - NAVER 암호화 트래픽을 책임지는 HTTPS 플랫폼 기술 - 1. 기술

https://tv.naver.com/v/23651836 NAVER 암호화 트래픽을 책임지는 HTTPS 플랫폼 기술 NAVER Engineering | 공진호/김해랑 - NAVER 암호화 트래픽을 책임지는 HTTPS 플랫폼 기술 tv.naver.com Naver 암호화 트래픽을 책임지는 https 플랫폼 기술 SSL Termination / PassThrough termination : 암호화 트래픽의 연산작업을 대행해주는 기능. back에 있는 서버는 복호화되어 있는 데이터만 처리함. 리소스 효율화 / 백엔드의 외부 노출이 방지되어 보안에 유리한 솔루션. nFront 플랫폼이 오픈하던 시기는 2018년. 브라우저가 https를 디폴트 통신으로 설정하는 추세, https 아닐 경우 경고메시지 표시... ..

DevNation Day 2020 - Knative Backstage (how autoscaler actually works)

Knative BackStage - how autoscaler Actually works https://youtu.be/sh9mfUExX9o Paul Morie. Serverless Engineering team at RedHat 일반적으로 Serverless 하면 Function as a Service나 AWS Lambda를 떠올린다. 그 정도 full experience를 다루는 건 아니고 Enabling core technology / concept를 다룬다고 보면 됨. Knative Serving: Scaling Application on-demand. Knative Eventing: working with events that are emitted by different sources. Knat..

Writing Beautiful Package in Go

Golang UK Conference 2017 발표. https://youtu.be/cmkKxNN7cs4 go로 개발한 오픈소스 패키지가 여러 사람들에게 유용하고 쉽게 쓰이려면 어떻게 해야 하는지를 설명한 강연 package는 go파일 (_test.go 포함) 로 구성된 하나의 디렉토리. 다른 프로젝트에서 import해서 사용할 수 있음 exported / internal 두 종류가 있음 main 패키지 말고. main 패키지는 command를 의미함 user-centred Design 결국 사람이 쓰는 거니까, 개발하려는 프로덕트의 최종 사용자의 요구사항, 제한조건을 고려해서 설계해야 한다. 따라서 고민해야 할 점 누가 쓸 건지 하려는 건 무엇인지 왜 하려는 건지 굳이 내 패키지를 쓰려는 이유는 뭔지 ..

Go - Context 정리

Context Package https://youtu.be/mgJMIZsWfB4 go의 다양한 패키지에서 사용되고 있는 Context Context의 기능은 크게 세 가지. Deadlines Concellation Signals Request-scoped values Deadline - withTimeout, withDeadline WithDeadline: 시작 시간과 끝 시간을 정하고, 그 시간동안만 실행되도록 (endtime) WithTimeout: 시작 시간을 정하고, 얼마의 시간이 지난 뒤 종료되도록. (Duration) const shortDuration = 1 * time.Millisecond func main() { ctx, cancel := context.WithTimeout(context..

Complete Jenkins Pipeline Tutorial | Jenkinsfile explained 정리

https://youtu.be/7KCS70sCoK0?si=9hFFX18UXpCPfres Jenkinsfile Jenkins 파이프라인의 종류는 크게 두 가지. script : groovy engine으로 직접 실행. node {} 명령어를 사용하며, groovy를 알아야 쓸 수 있음 declarative : 간단하게 파이프라인을 생성할 수 있지만 script에 비해 제약이 있는 편. post 명령어 파이프라인 맨 끝에서 실행할 수 있도록 하는 명령어. always: 성공 실패여부 관계없이 반드시 실행 success : 성공했을 경우 실행 failure : 실패했을 경우 실행 Define Conditional / When, Environment Variable when { expression { }} 형태..

학습일지/CI-CD 2022.04.10

CKA 대비 kubernetes 스터디 - 8. Networking (2)

Networking Cluster Nodes k8s cluster는 여러 개의 노드 - 마스터 노드, 워커 노드 - 가 network interface로 연결되어 있는 형태. 각각의 노드에는 ip address가 매핑되어 있어야 하고, unique hostName이 있어야 하며, 고유한 Mac Address 값이 있어야 한다. 기존 VM을 복사해서 노드를 생성할 때 특히 유의할 부분임. kubernetes 컴포넌트를 실행하고, 컴포넌트 간 통신을 위해 열려 있어야 하는 포트들. https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/#steps-for-the-first-control-plane-node ..

CKA 대비 kubernetes 스터디 - 8. Networking (1)

알아둬야 할 Linux Networking Prerequisite 내용. Basics : Linux Networking A가 B에게 통신하려면? Switch에 연결한다. -> switch는 두 개의 시스템을 연결하는 네트워크를 생성한다. switch에 연결하기 위해서는, 각 호스트가 사용해야 할 인터페이스가 있다. ip link 명령어로 해당 PM / VM의 인터페이스를 확인할 수 있다. 예컨대 예시의 경우 eth0 이라는 이름의 인터페이스가 확인됨. switch 내부의 네트워크가 192.168.1.0 이라고 가정한다면, 두 개의 컴퓨터 A와 B는 아래의 명령어를 사용해서 switch 내부의 네트워크에 자신의 정보를 등록할 수 있다. ip addr add 192.168.1.10/24 dev eth0 ip..

CKA 대비 kubernetes 스터디 - 7. Storage

Docker Storage 크게 두 가지 개념이 있다. Storage Driver docker는 데이터를 어디에 저장하는지, container에서 fileSystem을 어떻게 관리하는지. docker image를 실행하면, /var/lib/docker 라는 경로를 컨테이너 내부에 생성한다. aufs, containers, image, volumes 등 하위 경로도 같이 만들어진다. 여기까지가 docker에서 흔히 말하는 'data' 필드. Docker의 Layered Architecture dockerfile의 맨 윗줄부터 하나씩 레이어를 쌓아가면서 이미지를 생성한다. 각 레이어는 이전 레이어에서 추가된 내용만을 저장하며, 로컬에 캐시된다. 따라서, 비슷한 dockerfile을 빌드하게 될..

CKA 대비 kubernetes 스터디 - 6. Security (2)

API Group - prerequisite for Authorization version: 클러스터 버전 확인용. health / monitor: checking health를 위해 사용함. logs : 3rd party 프로덕트와 통신할 목적으로 사용함 API - cluster functionality를 위한 API라서 좀더 상세히 다룬다. api : Core Group. k8s 자체의 핵심 기능을 주로 담당한다. Namespace, node, Persistent Volumes 등등 apis : Named Group. more organized / newer features are available. 특정 리소스를 docs에서 선택하면, 어떤 API에서 호출할 수 있는지 확인해준다. 아니면 클러스터에..

CKA 대비 kubernetes 스터디 - 6. Security (1)

Security Primitives in K8s 기본적인 cluster의 security 옵션 access to these hosts must be secured. root access disabled password based Authentication 사용하지 않음 SSH key-based authentication 사용. 기타 k8s가 올라가있는 VM / PM 자체의 Security. 시험에서는 k8s 내부 리소스에 관련된 Security가 주로 나옴 kube-apiserver : 모든 요청과 통제를 담당하는 컴포넌트. 따라서 이 컴포넌트의 보안이 제일 중요함 누가 접근할 수 있는가? 무엇을 어디까지 통제할 수 있게 할 것인가? 가 핵심. Who can Access의 경우... Authenticat..