<100 subscribers
Uvicorn & Gunicorn
Uvicorn and GunicornUvicorn and Gunicorn are important concepts when developing applications in Python. However, there are many concepts to be aware of in order to fully understand Uvicorn and Gunicorn. The following is a brief summary of the necessary concepts, and the details will be dealt with separately later.Necessary ConceptsStarletteStarlette is a Web application server that can run asynchronously. Starlette runs on top of Uvicorn.FastAPIFastAPI provides many features on top of Starlet...
Gas optimization in Solidity, Ethereum
I’m sorry but my English is terrible. I hope you understand that generously.Recently, I was developing a toy project named Blind Market. It’s a simple P2P trading application using smart contract. I was making a contract using Solidity, and the trade stage proceeded in the order of pending, shipping, and done. The problem was appeared in done phase. The problem was that when I tried to close the transaction by paying the price raised by the seller in msg.value, the following error occurred.Pe...
P2WPKH
P2WPKHP2WPKH란 비트코인 내에서 가장 일반적인 스크립트 형식으로 비트코인 프로토콜에 대한 지불 거래 유형이다. 주소는 1로 시작하는데, 세그윗을 지원하는 새로운 주소 3 또는 bc1로 시작하는 주소보다 훨씬 비싸다. https://mirror.xyz/0xA1d9f681B25C14C1eE7B87f1CF102E73cA3ad4d9/egjhNVklgy_LgZmcTXXAOTBa6ePBqO3Ja9ZSoDIad-8 즉, 비트코인 주소가 1로 시작하면 P2PKH 주소를 사용하고 있는 것이다. 공개키의 간단한 해시이며, 이 해시를 주소로 사용하는 것이다. 이것은 원래 비트코인 주소 형식이었으며 오늘까지도 충실히 작동한다. 레거시 주소는 세그윗과 호환되지 않지만, 여전히 문제없이 P2PKH 주소에서 세그윗 주소로 BTC를 보낼 수 있다. 그러나 레거시 주소 트랜잭션이 더 크기 때문에 P2PKH 주소에서 전송하는 평균 속도는 세그윗 주소에서 전송할 때보다 더 높은 요금이 발생할 수 있다....
라는 책에 나오는 5개의 마이크로서비스 배포 원칙에 대해서 살펴보자.
부하/배포에 있어 마이크로서비스간에 영향을 주어서는 안된다.
다음과 같은 상황을 보자.
Example : 한 호스트에서 여러 마이크로 서비스 인스턴스 실행.
한 마이크로서비스의 부하가 급격히 증가 → 다른 마이크로서비스 성능 저하
한 마이크로서비스 배포를 위한 설정 변경 → 다른 마이크로서비스 배포 영향
마이크로서비스는 서로 격리된 환경에서 실행되어야 한다. 그렇지 못하면 위와 같은 상황이 발생할 수 있다.
물리적으로 격리를 하던가 혹은 가상화, 컨테이너 등으로 격리를 하도록 한다.
물리적 격리 : 강한 격리
논리적 격리 : 빠른 제공
마이크로서비스가 증가할수록 더 복잡해진다.
더 많은 절차, 더 많은 설정, 더 많은 모니터링 대상
운영 부하 증가
운영 부하 감소 위해 자동화에 초점을 맞춰야한다.
자동화하지 않으면 성장에 빠르게 대응할 수 없음
개발자가 직접 인프라 서비스를 제공할 수 있도록 한다 → 생산성 증가로 이어진다.
인프라 구조를 코드로 정의하라.
자동화를 구현하는 한 가지 방법중 하나이다.
텍스트 형식으로 원하는 인프라 구조 정의
인프라 구조에 대한 버전 관리가 가능해진다.
Terraform, Pulumi 같은 특화된 도구가 있다.
마이크로서비스 개발/배포에 있어 무중단 배포는 필수이다.
서비스 사용자에 통지하지 않고 출시하는 것이 목표이다.
출시하기 위해 사용자와 일정을 조율하고 공유하는 과정 제거
독립적 배포를 위해서도 필요하다.
수작업 없이 인프라 구조를 원하는 상태로 유지할 수 있는 수단이 필요하다.
개발자의 개입 없이 인프라 상태를 원하는 상태로 유지하는 것을 말한다.
e.g. 최소 3개의 인스턴스가 실행중이어야 함.
e.g. CPU 부하가 50%이상이면 인스턴스를 1개 더 늘림.
플랫폼 지원/도구 필요.
라는 책에 나오는 5개의 마이크로서비스 배포 원칙에 대해서 살펴보자.
부하/배포에 있어 마이크로서비스간에 영향을 주어서는 안된다.
다음과 같은 상황을 보자.
Example : 한 호스트에서 여러 마이크로 서비스 인스턴스 실행.
한 마이크로서비스의 부하가 급격히 증가 → 다른 마이크로서비스 성능 저하
한 마이크로서비스 배포를 위한 설정 변경 → 다른 마이크로서비스 배포 영향
마이크로서비스는 서로 격리된 환경에서 실행되어야 한다. 그렇지 못하면 위와 같은 상황이 발생할 수 있다.
물리적으로 격리를 하던가 혹은 가상화, 컨테이너 등으로 격리를 하도록 한다.
물리적 격리 : 강한 격리
논리적 격리 : 빠른 제공
마이크로서비스가 증가할수록 더 복잡해진다.
더 많은 절차, 더 많은 설정, 더 많은 모니터링 대상
운영 부하 증가
운영 부하 감소 위해 자동화에 초점을 맞춰야한다.
자동화하지 않으면 성장에 빠르게 대응할 수 없음
개발자가 직접 인프라 서비스를 제공할 수 있도록 한다 → 생산성 증가로 이어진다.
인프라 구조를 코드로 정의하라.
자동화를 구현하는 한 가지 방법중 하나이다.
텍스트 형식으로 원하는 인프라 구조 정의
인프라 구조에 대한 버전 관리가 가능해진다.
Terraform, Pulumi 같은 특화된 도구가 있다.
마이크로서비스 개발/배포에 있어 무중단 배포는 필수이다.
서비스 사용자에 통지하지 않고 출시하는 것이 목표이다.
출시하기 위해 사용자와 일정을 조율하고 공유하는 과정 제거
독립적 배포를 위해서도 필요하다.
수작업 없이 인프라 구조를 원하는 상태로 유지할 수 있는 수단이 필요하다.
개발자의 개입 없이 인프라 상태를 원하는 상태로 유지하는 것을 말한다.
e.g. 최소 3개의 인스턴스가 실행중이어야 함.
e.g. CPU 부하가 50%이상이면 인스턴스를 1개 더 늘림.
플랫폼 지원/도구 필요.
Uvicorn & Gunicorn
Uvicorn and GunicornUvicorn and Gunicorn are important concepts when developing applications in Python. However, there are many concepts to be aware of in order to fully understand Uvicorn and Gunicorn. The following is a brief summary of the necessary concepts, and the details will be dealt with separately later.Necessary ConceptsStarletteStarlette is a Web application server that can run asynchronously. Starlette runs on top of Uvicorn.FastAPIFastAPI provides many features on top of Starlet...
Gas optimization in Solidity, Ethereum
I’m sorry but my English is terrible. I hope you understand that generously.Recently, I was developing a toy project named Blind Market. It’s a simple P2P trading application using smart contract. I was making a contract using Solidity, and the trade stage proceeded in the order of pending, shipping, and done. The problem was appeared in done phase. The problem was that when I tried to close the transaction by paying the price raised by the seller in msg.value, the following error occurred.Pe...
P2WPKH
P2WPKHP2WPKH란 비트코인 내에서 가장 일반적인 스크립트 형식으로 비트코인 프로토콜에 대한 지불 거래 유형이다. 주소는 1로 시작하는데, 세그윗을 지원하는 새로운 주소 3 또는 bc1로 시작하는 주소보다 훨씬 비싸다. https://mirror.xyz/0xA1d9f681B25C14C1eE7B87f1CF102E73cA3ad4d9/egjhNVklgy_LgZmcTXXAOTBa6ePBqO3Ja9ZSoDIad-8 즉, 비트코인 주소가 1로 시작하면 P2PKH 주소를 사용하고 있는 것이다. 공개키의 간단한 해시이며, 이 해시를 주소로 사용하는 것이다. 이것은 원래 비트코인 주소 형식이었으며 오늘까지도 충실히 작동한다. 레거시 주소는 세그윗과 호환되지 않지만, 여전히 문제없이 P2PKH 주소에서 세그윗 주소로 BTC를 보낼 수 있다. 그러나 레거시 주소 트랜잭션이 더 크기 때문에 P2PKH 주소에서 전송하는 평균 속도는 세그윗 주소에서 전송할 때보다 더 높은 요금이 발생할 수 있다....
Share Dialog
Share Dialog
No comments yet