[Istio] Introduction - Istio란?
·
Infra/Service Mesh
이 글은 istio 공식 문서에서 발췌한 내용들로 구성되어 있습니다. The Istio service mesh What is Service Mesh? 일반적으로 모던 어플리케이션들은 몇몇의 이산적인 비즈니스 로직을 수행하는 분산된 마이크로서비스 집합들로 설계됨 서비스메시는 전용 인프라 계층(dedicated infrastructure layer)이라서 자체 코드를 추가하지 않고도 observability, traffic management, security 같은 기능을 추가할 수 있음 "서비스 메시"라는 용어는 이 패턴을 구현하는 데 사용하는 소프트웨어 유형과 해당 소프트웨어를 사용할 때 생성되는 보안 또는 네트워크 도메인을 모두 설명 운영 요구사항: 검색, 로드 밸런싱, 장애 복구, 메트릭 및 모니터링..
[마이크로서비스 패턴] 분해 전략
·
컴퓨터 공학/소프트웨어 공학
마이크로서비스 아키텍처란 무엇인가? 마이크로서비스 아키텍처의 핵심 사상은 기능 분해이다. 이전에는 확장성, 신뢰성, 보안 등이 아키텍처의 주요 목표였지만, 이제는 신속, 안전하게 소프트웨어를 전달하는 능력도 매우 중요해졌다. 마이크로서비스 아키텍처는 관리성, 테스트성, 배포성이 높은 아키텍처 스타일. ▶ 소프트웨어 아키텍처의 4+1 뷰 모델 애플리케이션 아키텍처를 바라보는 관점은 다양하다. 필립 크러첸(Phillip Krutchen)은 소프트웨어 아키텍처가 4+1 뷰 모델이라고 기술한 논문을 발표했다. 4+1 뷰 모델은 소프트웨어 아키텍처를 바라보는 상이한 4뷰를 정의한다. 논리 뷰 (logical view): 개발자가 작성한 소프트웨어 엘리먼트: 클래스, 패키지 (객체 지향). 상속(inheritanc..
[마이크로 서비스 패턴] 모놀리식 지옥에서 벗어나라
·
컴퓨터 공학/소프트웨어 공학
FTGO 애플리케이션 아키텍처 모놀리스(monolith): 일체형 비즈니스 로직 각자가 도메인 객체 컬렉션인 모듈(예: 주문 관리, 배달 관리, 과금, 지불)로 구성됨 외부 시스템과 연계하는 어댑터 REST API, 웹 UI 어댑터 등 비즈니스 요청을 호출하여 처리하는 인바운드 어댑터 비즈니스 로직에서 MySQL DB에 접근하거나 트윌리오, 스트라이프 등 클라우드 서비스를 호출하게 해주는 아웃바운드 어댑터 모놀리식 아키텍처의 장점 규모가 작은 초기에는 모놀리식 아키텍처의 장점이 많았음 개발이 간단 애플리케이션을 쉽게 변경할 수 있음 테스트하기 쉬움 배포하기 쉬움 확장하기 쉬움 하지만 시간이 흐를수록 개발, 테스트, 배포, 확장하기가 쉽지 않음 모놀리식 지옥의 실상 너무 복잡해서 개발자가 주눅 듬 개발이 ..
[스파크 완벽 가이드] Part 3. 저수준 API
·
Data Engineering/Spark
대부분의 상황에서는 구조적 API를 사용하는 것이 좋다. 그러나 비즈니스가 기술적 문제를 고수준 API를 사용해 모두 처리할 수 있는 것은 아니므로, 스파크의 저수준 API를 사용해야 할 수도 있다. CHAPTER 12. RDD 사용자가 실행한 모든 DataFrame이나 Dataset 코드는 RDD로 컴파일된다. RDD는 간단히 말해 불변성을 가지며 병렬로 처리할 수 있는 파티셔닝된 레코드의 모음이다. RDD의 레코드는 자바, 스칼라, 파이썬의 객체일 뿐이다. 또한 구조적 API와는 다르게 레코드의 내부 구조를 스파크에서 파악할 수 없으므로, 최적화를 하려면 훨씬 많은 수작업이 필요하다. RDD에는 수많은 하위 클래스가 존재하며, DataFrame API에서 최적화된 물리적 실행 계획을 만드는데 대부분 ..
[스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset
·
Data Engineering/Spark
CHAPTER 4. 구조적 API 개요 구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰 배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다. 스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다. 본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다. 스파크의 DataFrame은 Row 타입으로..
[스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기
·
Data Engineering/Spark
CHAPTER 1. 아파치 스파크란? 스파크는 통합 컴퓨팅 엔진이며, 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합 스파크는 네 가지 언어(파이썬, 자바, 스칼라, R)을 지원하며 SQL뿐만 아니라 스트리밍, 머신러닝에 이르기까지 넓은 범위의 라이브러리를 제공 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행할 뿐 영구 저장소 역할은 수행하지 않음 스파크의 등장 배경 하드웨어의 성능 향상은 2005년경에 멈췄음 → 성능 향상을 위해 병렬 처리가 필요함 결과적으로 데이터 수집 비용은 극히 저렴해졌지만, 데이터는 클러스터에서 처리해야 할 만큼 거대해짐 기존 데이터 처리 애플리케이션의 전통적인 프로그래밍 모델이 한계점이 도래 → 스파크 탄생 스파크 실행하기 jupyter에서 제공하는 공식 d..
YSCEC 크롤러2
·
개발/NodeJS
YSCEC-CRAWLER2 /와이섹 크롤러/ 와이섹 크롤/ 크롤링/ 와이섹 연세대학교 지식창조 커뮤니티라는 거창한 이름의 사이트가 있습니다. 이 사이트는 연세대학교 재학생들의 강의 공지와 강의 자료들이 올라오는 사이트인데, 매일매일 로그인하고 수강하는 과목의 자료들이 업로드 되었는지 확인하는 작업이 여간 귀찮은게 아닙니다. 그래서 이번 개강을 맞아 나 대신 매일매일 와이섹 내용을 체크해주는 크롤러를 다시금 개발하게 되었습니다. 이전에 YSCEC-CRAWLER 를 올렸었는데, 이에 관한 내용은 다음 링크에서 확인해보시기 바랍니다. 블로그 : http://dytis.tistory.com/6깃허브 : https://github.com/pfldy2850/YSCEC-CRAWLER 개발환경 NodeJSES7 문법으..
[ML lec 08] Deep Neural Nets for Everyone
·
AI/Lecture notes
우리 인류의 궁극적인 꿈이라고 하는 것이 바로 우리를 대신해서 골치아픈 문제를 생각해주는 기계를 만들자라고 할 수 있습니다. 따라서 우리의 뇌와 같은 모습을 만들고자했고, 뇌에 대해서 공부를 하게되었습니다. 뇌를 공부하였더니, 굉장히 복잡하게 연결되있어서 놀랐고 또 연결된 부분부분들을 자세하게 봤더니 뉴런이라고 불리는 유닛이 너무나 단순하게 동작이 되었습니다. 봤더니 어떤 인풋이 있고, 길이에 따라 신호의 양이 달라졌습니다. 따라서 X*W으로 둘 수 있고. 이 것들이 다 합쳐지고, 어떤 bias가 더해져서 그것이 그 다음으로 전달되더라... 이 다 모여있는 값이 어떤 값 이상이 되면 활성화되고, 그렇지 않으면 활성화가 되지 않습니다. 이런 것에 영감을 받아서, 수학적으로 만들어낸 모델이 뉴럴 넽입니다. ..
[ML lec 07] Application & Tips
·
AI/Lecture notes
이번 포스트에서는 머신러닝 알고리즘을 실제로 사용하는데 있어서, 몇가지 팁을 알려드리겠습니다. 크게 러닝 레이트를 조정하는 방법과 전처리 방법 그리고 오버피팅을 방지하는 방법에 대해서 이야기하겠습니다. 우리가 cost function을 정의하고 그 cost function을 최소화하는 것에 Gradient descent 알고리즘을 사용해왔습니다. Gradient descent 알고리즘에서 우리는 Learning rate를 지정해주게 되는데요, 이 때 Learning rate를 잘 정하는 것이 중요합니다. Learning rate란 그래프를 내려가는 것의 step과 같습니다. 만약 step이 너무 크다면, 그래프 바깥으로 나가버리거나, 계속 주위를 맴돌게 되는 상황이 만들어질 수도 있습니다. 이것을 ove..
[ML lec 06] Softmax Regression
·
AI/Lecture notes
이번에는 여러개의 Class가 있을 때, 그것을 예측하는 Multinomial Classification 중에서도 가장 많이 사용되는 Softmax Classification을 알아보겠습니다. 지난번 포스트에서 Logistic regression classification이라는 것에 대해서 알아봤습니다. 자세한 내용은 지난번 포스트를 참고해주세요. 아무튼 이 Logistic regression classification은 Binary classification에 사용됩니다. 기본적으로 서로 다른 데이터들을 구분하는 것인데, 아래와 같이 생각할 수 있습니다. 이러한 아이디어를 Multinomial classification에 적용을 시킬수 있습니다. 아래와 같은 데이터가 있다고 가정합니다. 여기에서 Bin..