전체카테고리 468

Cache Store(Redis) 읽기/쓰기 전략

1. Cache 읽기 전략 (Read Cache Strategy) cache hit : Cache Store (redis)에 데이터가 있을 경우 바로 가져옴 (빠름) cache miss : Cache Store (redis)에 데이터가 없을 경우 주기억장치(DB)에서 가져옴 (느림) 1) Look Aside 패턴(=Cache Aside 패턴) 데이터를 찾을때 우선 Cache에 저장된 데이터가 있는지 우선적으로 확인 후 Cache Miss 일 경우 DB(주기억장치)에서 조회 - 특징 : Look Aside 패턴은 애플리케이션에서 캐싱을 이용할때 일반적으로 사용되는 기본적인 Cache 전략이다. (Spring Cache도 본 로직 수행). 이 방식은 Cache에 장애가 발생하더라도 DB(주기억장치)에 요청을..

PaaS/Data 2023.11.05

Netflix 서버 API의 GraphQL로의 이관 여정

Netflix의 UI 팀에서 상당량의 Server API를 GraphQL로 이관하였다고 합니다. 이 포스팅에서는 운영중인 Netflix 서비스를 어떻게 안정적으로 이관하였는지 노하우를 설명하는 포스팅입니다. 원문링크: https://netflixtechblog.com/migrating-netflix-to-graphql-safely-8e1e4d4f1e72 Migrating Netflix to GraphQL Safely By Jennifer Shin, Tejas Shikhare, Will Emmanuel netflixtechblog.com 2022년에는 Netflix의 iOS 및 Android 애플리케이션에 큰 변화가 있었습니다. 다운타임 없이 Netflix의 모바일 앱을 GraphQL로 마이그레이션했으며,..

Programming/기타 2023.11.03

GCP가 말하는 Kubernetes를 GCP에서 운영해야 하는 이유

원문 : https://cloud.google.com/blog/products/containers-kubernetes/why-choose-gke-as-your-kubernetes-service?hl=en Why choose GKE as your Kubernetes service | Google Cloud Blog Google's contributions to Kubernetes have helped make Google Kubernetes Engine (GKE) more robust, scalable, secure, and reliable. cloud.google.com 고객은 다양한 이유로 GKE를 사용하여 미션 크리티컬 애플리케이션을 실행합니다. Kubernetes를 만든 팀보다 환경을 더 잘 운영하..

PaaS/Kubernetes 2023.11.03

Functional Programming model 이 대세가 되고 있다.

총평 : 왠지 점점 개발이라는 것이.. 유지관리가 쉬워지는 쪽(사람의존성을 줄이는 방향)으로 빠르게 가고 있다. 최근에 AWS Lambda로만 어플리케이션 개발하는 것들이 심심찮게 나오는데, 앞으로 내가 생각하는 개발은 다음과 같이 변할 것 같다. - Backend 에서 이루어 지는 모든 프로그래밍은 Function화 시킨다. - Function화된 프로그래밍을 연결, 분기, 반복하는 작업은 Platform에서 한다. (AWS StepFunction, AirFlow 등 활용) Functional Programming이란? Functional Programming (FP)은 순수한 기능을 사용하여 유지 관리 가능한 소프트웨어를 만드는 소프트웨어 개발 접근 방식입니다. 즉, Function을 적용하고 구성하..

Programming/기타 2023.11.01

Kubernetes "Container runtime network not ready" 오류 발생시

master01 kubelet[912]: E1031 23:57:51.650427 912 kubelet.go:2855] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network 위오류로 Controlplain이 Ready상태로 안올라오면 $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml $ sudo systemctl restart kubelet 이렇게 하면 해결된다.

PaaS/Kubernetes 2023.11.01

AWS SaaS Boost 아키텍처에 대해서 알아보자

SaaS Boost 배포 과정 설명 1,2,3) SaaSBoost 환경을 프로비저닝 한다. https://github.com/awslabs/aws-saas-boost 4) 프로비저닝된 SaaSBoost 환경에 로그인 한다. 5) 앞으로 배포하게될 어플리케이션을 등록한다. 6) ECR레지스트리에 Image Build된 해당 어플리케이션을 Push 한다 7) 테넌트에 배포한다. SaaSBoost 콘솔 SaaSBoost 콘솔 아키텍처 Git소스코드를 보면 SaaSBoost의 모든 어플리케이션은 Lambda에서 돌아간다... 콘솔뿐만 아니라 다양한 도메인을 Lambda로 구성해서 운영하고 있다. 도메인은 Onboarding, Metrics, User, Settings, Tenant, Quata가 있다. Bill..

Programming/MSA 2023.10.30

핵사고날 아키텍처의 설계와 구현 - 서비스

서비스 토폴로지 및 인벤토리 시스템은 네트워크 자산의 가상화와 관리에 대한 것이므로 사용자가 이러한 네트 워크 자산의 컬렉션을 처리할 수 있게 해야 한다. 이를 수행하는 방법 중 하나는 서비스를 이용하는 것이 다. 서비스를 통해 시스템 엔티티와 값 객체를 처리하기 위한 동작을 정의할 수 있다. 라우터 서비스 앞에서 Router , CoreRouter , EdgeRouter 엔티티를 구현할 때 라우터 컬렉션을 필터링하는 프레디케이 트를 반환하는 메서드도 작성했다. 도메인 서비스를 사용하면 다음과 같이 그러한 컬렉션을 필터링하는 다음과 같은 프레디케이트를 사용할 수 있다. package dev.davivieira.topologyinventory.domain.service; import dev.daviviei..

Programming/기타 2023.10.26