우리는 왜 개원을 이전합니까😼inboxkitten(7700만 서버 요청 없음)🔥로켓통☁️Cloudflare 일꾼과🐑공동 사회자
14852 단어 whyweshowdevjavascriptserverless
어서 우편물을 가져가라!📩
우리가 최초로 inboxkitten.com을 출시한 이래로, 이것은 일회용 전자 우편 서비스를 만드는 데 사용되는 무료 소스 오픈 서버 프로젝트이다.
창고: 14시간 동안 무료 소스 오픈 일회용 전자 우편 서비스 만들기 (inbox kitten.com)😼
유금·사・ 2018년 9월 22일・ 4분 읽기
#opensource
#serverless
#javascript
#vue
이것🐈 새끼 고양이가 배로 번식하여 통제를 잃다...
창고: 14시간 동안 무료 소스 오픈 일회용 전자 우편 서비스 만들기 (inbox kitten.com)😼
유금·사・ 2018년 9월 22일・ 4분 읽기
#opensource
#serverless
#javascript
#vue
좋은 고양이 팀, 우리는 여름철 세일을 보호할 계획이 필요해!💳
기존 AWS lambda나 GCP/Firebase 클라우드 함수의 관건적인 제한은 요청이 언제든지 응용 프로그램의 실례로 제한된다는 것이다.
만약 네가 그림을 압축하고 있거나 복잡한 일을 하고 있다면 정말 좋겠다.
Inboxkitten API의 유일한 역할은 API 키를 사용하여 mailgun에게 HTTP 요청을 보내고 mailgun은 실제 전자메일을 저장하고 결과를 되돌려주는 것입니다.
따라서 우리의 자원 소모는 CPU의 1%보다 훨씬 낮거나 요청당 <10MB의 램보다 훨씬 낮다.128MB 이하의 메모리와 각 요청에 대한 전용 CPU입니다.
그래서 우리의 최초의 계획은 이 새끼 고양이들이 매우 일정한 부하에서 자라면 그것을 $5/month Linode Nanode 1GB instance의 상자에 던지는 것이다.
그러나 단점은 피크 워크로드 시 자동으로 '확장' 되지 않거나, 매달 대량의 요청을 받으면, 이것은 실례를 초과할 수 있다는 것이다.(이런 작업량을 지원해야 한다는 것은 아니다.)
그래서 서버의 즐거움이 없는 정신을 유지하기 위해서 (이 프로젝트는 인기가 많다) 우리는 이 옵션을 한쪽에 놓고 요구할 것이다...
만약 서버가 없는 플랫폼이 있다면, 또 다른 비용 계산 모드가 있을 것이다.만약 그것이 모든 요청에 대해서만 비용을 지불하거나, CPU와 램의 사용량에만 비용을 지불한다면?하면, 만약, 만약...
cat Cloudflare workers 사용☁️
Cloudflare worker는 "Edge"서버 없는 컴퓨팅의 발전 추세의 일부입니다.또한 서버 비용 청구를 단일 지표로 단순화합니다.
이전에 복잡하고 이해하기 어려웠던 GCP 계산서를 뒤집어라...
비용 계산 항목
사용법
유닛
총원가
평균 가격(백만 회당 호출)
부르다
77,418,914
부르다
$30.17
$0.390
CPU 시간
4,677,797
기가헤르츠 초
$44.78
$0.578
초과하다
215.12
지비트
$25.21
$0.326
기억 시간
2,923,623
기비트 초
$6.31
$0.082
통나무 부피
61.16
지비트
$5.58
$0.072
합계:
$112.05
$1.447
사실대로 말하면, 만약 역사 데이터가 없다면, GCP/AWS에서 백만 개의 요청의 API 원가를 미리 추측하기는 불가능하다
더 쉽게 이해할 수 있는 것이 되고, 부탁마다 더 싸다...
비용 계산 항목
사용법
유닛
총원가
평균 가격(백만 회당 호출)
부르다
77,418,914
부르다
$39
$0.5
합계:
$39
$0.5
최저 가격은 매월 5달러입니다.
😸 이것은 여름 세일 기간에 9.99달러의 경기를 7경기 더 절약하기에 충분하다.
그리고 또 다른 장점은 더 낮은 지연 테두리 계산이다!
하지만 함정이 있어...
1) <5ms CPU 시간 제한
모든 요청의 CPU 시간은 <5ms로 제한됩니다. 이것은 요청 시간 (괘종시간) 과 크게 다르다. 왜냐하면 CPU가 함수 자체에 걸리는 시간만 계산하고 모든 수면/대기 시간을 무시하기 때문이다.
이는 GCP 또는 AWS가 모든 수면/대기 시간을 포함하여 기능에서 시작부터 끝까지의 시간을 측정하는 방식과 상반된다.
이러한 설정에서 서버 기능이 없으면 DNA 체인이나cat 이미지를 접을 수 있으며 대량의 CPU나 RAM을 차지한다.Cloudflare를 사용할 수 없습니다.
그러나 서버가 없는 함수는 99.99%가 mailgun API의 응답을 기다리고 있습니다.5ms 이하의 극한을 최고로 하다.
또한 <10ms로 업그레이드해야 한다면 그것은 an optional addon입니다.
나는 너희들의 선장이다: 배에서 뛰어내리는 것은 일종의 시도이다.
2) express와 호환되지 않습니다.js (웹 워크러스 모드를 사용하기 때문에)
또 하나 주의해야 할 것은 클라우드flare workers는 web workers model 기반으로 클라우드flare의'fetch '이벤트와 연결되어 마치 차단기 함수와 같다는 것이다.
따라서 express JS에서는 다음과 같은 내용을 사용하지 않습니다. (우리가 현재 Firebase에 대해 하고 있는 것처럼)
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
const port = 3000
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Cloudflare에서는 다음 항목이 표시됩니다.
addEventListener('fetch', event => {
event.respondWith(fetchAndApply(event.request))
})
async function fetchAndApply(request) {
return new Response('hello world')
}
이것은 코드 구조의 거대한 근본적인 변화이기 때문이다.기존의 대형 프로젝트에 대해 말하자면, 이것은 아마도 매우 큰 장애일 것이다. 왜냐하면 그 중에는 대량의 재작성 작업과 관련되기 때문이다.비록 매우 비슷하지만.
Perhaps one day someone will come up with a Cloudflare to express.js adapter?
그러나 우리에게 있어서 프로젝트의 단순성 때문에 이것은 단지 간단한 재작성일 뿐이다.코드의 차이점express js version here과 Cloudflare 버전here on github을 비교할 수 있습니다.
workers는 개방적인 표준이고Cloudflare는 유일한 주요 공급 업체이지만 현재도 공급 업체의 잠금 형태이다.
나는 특급 배달 고양이 한 마리를 상자에서 클라우드 플레이어의 일꾼에게 밀어붙일 수 없다
3) 도메인마다 스크립트 제한이 있습니다. (enterprise에 있지 않으면)
비록 inbox kitten은 거래를 깨뜨릴 수 없지만, 이것은 많은 상업/생산 업무의 장애가 될 수 있다.
Cloudflare 서버 없는 패키지는 단일 하위 도메인 및/또는 URI 라우팅의 작은 패키지로 분해될 수 없기 때문입니다.
이것은 일을 매우 복잡하게 하여 테스트와 생산 코드를 한 영역에서 분리할 수 없고, 많은 더 복잡한 설정에서 분리할 수 없게 한다.
그러나 우리의 용례에서 이것은 취미 항목이기 때문에...괜찮아요.
유감스럽게도 우리는 한 상자 안에서 여러 개의 다른 고양이를 쉽게 공유할 수 없다
어쨌든 이 스크래치들...
Cloudflare worker는 "Edge"서버 없는 컴퓨팅의 발전 추세의 일부입니다.또한 서버 비용 청구를 단일 지표로 단순화합니다.
이전에 복잡하고 이해하기 어려웠던 GCP 계산서를 뒤집어라...
비용 계산 항목
사용법
유닛
총원가
평균 가격(백만 회당 호출)
부르다
77,418,914
부르다
$30.17
$0.390
CPU 시간
4,677,797
기가헤르츠 초
$44.78
$0.578
초과하다
215.12
지비트
$25.21
$0.326
기억 시간
2,923,623
기비트 초
$6.31
$0.082
통나무 부피
61.16
지비트
$5.58
$0.072
합계:
$112.05
$1.447
사실대로 말하면, 만약 역사 데이터가 없다면, GCP/AWS에서 백만 개의 요청의 API 원가를 미리 추측하기는 불가능하다
더 쉽게 이해할 수 있는 것이 되고, 부탁마다 더 싸다...
비용 계산 항목
사용법
유닛
총원가
평균 가격(백만 회당 호출)
부르다
77,418,914
부르다
$39
$0.5
합계:
$39
$0.5
최저 가격은 매월 5달러입니다.
😸 이것은 여름 세일 기간에 9.99달러의 경기를 7경기 더 절약하기에 충분하다.
그리고 또 다른 장점은 더 낮은 지연 테두리 계산이다!
하지만 함정이 있어...
1) <5ms CPU 시간 제한
모든 요청의 CPU 시간은 <5ms로 제한됩니다. 이것은 요청 시간 (괘종시간) 과 크게 다르다. 왜냐하면 CPU가 함수 자체에 걸리는 시간만 계산하고 모든 수면/대기 시간을 무시하기 때문이다.
이는 GCP 또는 AWS가 모든 수면/대기 시간을 포함하여 기능에서 시작부터 끝까지의 시간을 측정하는 방식과 상반된다.
이러한 설정에서 서버 기능이 없으면 DNA 체인이나cat 이미지를 접을 수 있으며 대량의 CPU나 RAM을 차지한다.Cloudflare를 사용할 수 없습니다.
그러나 서버가 없는 함수는 99.99%가 mailgun API의 응답을 기다리고 있습니다.5ms 이하의 극한을 최고로 하다.
또한 <10ms로 업그레이드해야 한다면 그것은 an optional addon입니다.
나는 너희들의 선장이다: 배에서 뛰어내리는 것은 일종의 시도이다.
2) express와 호환되지 않습니다.js (웹 워크러스 모드를 사용하기 때문에)
또 하나 주의해야 할 것은 클라우드flare workers는 web workers model 기반으로 클라우드flare의'fetch '이벤트와 연결되어 마치 차단기 함수와 같다는 것이다.
따라서 express JS에서는 다음과 같은 내용을 사용하지 않습니다. (우리가 현재 Firebase에 대해 하고 있는 것처럼)
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
const port = 3000
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Cloudflare에서는 다음 항목이 표시됩니다.
addEventListener('fetch', event => {
event.respondWith(fetchAndApply(event.request))
})
async function fetchAndApply(request) {
return new Response('hello world')
}
이것은 코드 구조의 거대한 근본적인 변화이기 때문이다.기존의 대형 프로젝트에 대해 말하자면, 이것은 아마도 매우 큰 장애일 것이다. 왜냐하면 그 중에는 대량의 재작성 작업과 관련되기 때문이다.비록 매우 비슷하지만.
Perhaps one day someone will come up with a Cloudflare to express.js adapter?
그러나 우리에게 있어서 프로젝트의 단순성 때문에 이것은 단지 간단한 재작성일 뿐이다.코드의 차이점express js version here과 Cloudflare 버전here on github을 비교할 수 있습니다.
workers는 개방적인 표준이고Cloudflare는 유일한 주요 공급 업체이지만 현재도 공급 업체의 잠금 형태이다.
나는 특급 배달 고양이 한 마리를 상자에서 클라우드 플레이어의 일꾼에게 밀어붙일 수 없다
3) 도메인마다 스크립트 제한이 있습니다. (enterprise에 있지 않으면)
비록 inbox kitten은 거래를 깨뜨릴 수 없지만, 이것은 많은 상업/생산 업무의 장애가 될 수 있다.
Cloudflare 서버 없는 패키지는 단일 하위 도메인 및/또는 URI 라우팅의 작은 패키지로 분해될 수 없기 때문입니다.
이것은 일을 매우 복잡하게 하여 테스트와 생산 코드를 한 영역에서 분리할 수 없고, 많은 더 복잡한 설정에서 분리할 수 없게 한다.
그러나 우리의 용례에서 이것은 취미 항목이기 때문에...괜찮아요.
유감스럽게도 우리는 한 상자 안에서 여러 개의 다른 고양이를 쉽게 공유할 수 없다
어쨌든 이 스크래치들...
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
const port = 3000
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
addEventListener('fetch', event => {
event.respondWith(fetchAndApply(event.request))
})
async function fetchAndApply(request) {
return new Response('hello world')
}
Perhaps one day someone will come up with a Cloudflare to express.js adapter?
cloudflares 일꾼에게 세 가지 문제가 있습니다. 저희는 개의치 않습니다!
하루의 빠른 개작만 있으면 된다
, 우리는 완성했다.
멋있는데 왜 인박스 키튼으로 일회용 이메일을 써야 합니까?
현재의 관건적인 용례이자 우리가 이 프로젝트를 구축한 이유는 자동화 테스트 스크립트의 일부로서 전자메일 검증을 실행하는 것이다.예를 들면 아래...
// Lets goto inbox kitten
I.goTo("https://inboxkitten.com");
I.see("Open-Source Disposable Email");
// Go to a random inbox inbox
I.fill("email", SAMPLE.id(22));
I.click("Get Mail Nyow!");
// Check that its empty
I.see("There for no messages for this kitten :(");
// Testing for regular email
// (sent using a jenkins perodic build)
I.goTo("https://inboxkitten.com");
I.see("Open-Source Disposable Email");
I.fill("email", "ik-reciever-f7s1g28");
I.click("Get Mail Nyow!");
// See an email we expect, nyow
I.see("Testing inboxkitten subject");
테스트 결과 공유(예:
Catfeeding: Uilicious testing inboxkittens XD
게다가 그것은 간단하고 멋지며 재미있다.
고양이와 양은 친구가 될 수 있다!
여보시오, 31달러짜리 Firebase 정적 파일 위탁 관리는 어떻습니까?
가장 간단한 무료 해결 방안은 전체 사이트를 github pages에 놓는 것이다.
그러나 개원의 정신에 따라...
저희가 친구를 위해서 소리를 질러야 돼요.🐑 commonshost.com, 싱가포르에서 개발 중인 정적 사이트 위탁 관리 플랫폼🇸🇬
또한 전 세계 네트워크에 있는 22개 이상의 서버에서 진정한 프로덕션 워크로드 테스트를 수행하여 네트워크의 발전을 추진할 수 있도록 지원합니다.
왜 commons 호스트가 GitHub이 아닌지...쿨하기 때문에 CDN 세계의 패배자를 지지하고 테스트 세계의 패배자가 되고 싶습니다.
아이고, 실패자 말인가?고양이를 가리키는 거예요.😼
다음은요?
이 프로젝트는 상당히 독특한 단순성(빠른 재작성)과 무거운 생산 부하 때문이다.docker 기반의 배치까지 가능한 한 많은 서버 옵션을 확장하는 것을 고려하고 있습니다.
실제 24/7 프로덕션 로드의 다양한 균형을 탐색합니다.
다은
// Lets goto inbox kitten
I.goTo("https://inboxkitten.com");
I.see("Open-Source Disposable Email");
// Go to a random inbox inbox
I.fill("email", SAMPLE.id(22));
I.click("Get Mail Nyow!");
// Check that its empty
I.see("There for no messages for this kitten :(");
// Testing for regular email
// (sent using a jenkins perodic build)
I.goTo("https://inboxkitten.com");
I.see("Open-Source Disposable Email");
I.fill("email", "ik-reciever-f7s1g28");
I.click("Get Mail Nyow!");
// See an email we expect, nyow
I.see("Testing inboxkitten subject");
가장 간단한 무료 해결 방안은 전체 사이트를 github pages에 놓는 것이다.
그러나 개원의 정신에 따라...
저희가 친구를 위해서 소리를 질러야 돼요.🐑 commonshost.com, 싱가포르에서 개발 중인 정적 사이트 위탁 관리 플랫폼🇸🇬
또한 전 세계 네트워크에 있는 22개 이상의 서버에서 진정한 프로덕션 워크로드 테스트를 수행하여 네트워크의 발전을 추진할 수 있도록 지원합니다.
왜 commons 호스트가 GitHub이 아닌지...쿨하기 때문에 CDN 세계의 패배자를 지지하고 테스트 세계의 패배자가 되고 싶습니다.
아이고, 실패자 말인가?고양이를 가리키는 거예요.😼
다음은요?
이 프로젝트는 상당히 독특한 단순성(빠른 재작성)과 무거운 생산 부하 때문이다.docker 기반의 배치까지 가능한 한 많은 서버 옵션을 확장하는 것을 고려하고 있습니다.
실제 24/7 프로덕션 로드의 다양한 균형을 탐색합니다.
다은
쾌락항운🖖🏼🚀
Reference
이 문제에 관하여(우리는 왜 개원을 이전합니까😼inboxkitten(7700만 서버 요청 없음)🔥로켓통☁️Cloudflare 일꾼과🐑공동 사회자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/uilicious/why-we-migrated-serverless-inboxkitten-from-firebase-to-cloudflare-workers-and-commonshost-gd3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(우리는 왜 개원을 이전합니까😼inboxkitten(7700만 서버 요청 없음)🔥로켓통☁️Cloudflare 일꾼과🐑공동 사회자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/uilicious/why-we-migrated-serverless-inboxkitten-from-firebase-to-cloudflare-workers-and-commonshost-gd3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)