Serverless computing is one of the most prominent trends in cloud computing. Praecipuum operandi principium est quod infrastructura non pertinet ad DevOporum, sed ad servitium provisoris. Resource scalis automatice ad onus accommodet et magnas commutationes habet.
Alia notatio communis est propensio ad codicem umbilicum extenuandi, quae idcirco computatio sine calculo interdum munus serviendi appellatur (FaaS).
Historice, primum nubes provisor offerre Faas cum AWS Labda Amazon erat, unde nomen. Aliae nubis officia similia etiam praebent;
Cloud functiones de Google
Caeruleus functiones Microsoft
Omnes hae societates supputationem, auto- scalis servientem praebent, et tantum solvet quod actu uteris, sed clientes in operis proprietatis claudunt. Nihilominus, liber et apertus fons optionum rationum ministrantium computandi sunt. Notatu dignum est;
Ver Cloud functiones, ut pars satis opulenti fontis Framework ecosystematis, quae etiam uti frons pro AWS Labda, Azure functionibus et OpenWhisk adhiberi potest,
Omnes hae omnino sine nubibus sunt, id est, in quavis nube inaugurari possunt, etiam tuo proprio, publico vel privato, et sane in Exoscale.
Quomodo operatur in Fn project
Fn Docker perfecte fundatur in duobus principalibus componentibus constat;
CLI programma ordinatur ad omnes rationes Fn infrastructure administrandas et cum Fn servo interacte;
Ipsum Fn servo regularis applicationis in Docker continente sarcinam constringit.
Munera in Fn explicata etiam in vasis separatis exsecuta sunt, quae multum tibi permittit ut linguas programmandi, exempli gratia... Clojure!
Munus argumentorum ad regulam input (STDIN), eventus scripti sunt ad vexillum output (STDOUT). Si rationes vel valores reditus simplices non sunt (ut obiectum JSON), converti possunt utentes abstractionis iacuit, dummodo per ipsum Fn in forma functionis Development Kit (FDK).
Pro opportunitate, aedificata in locis templaterum faciliorem praebentur instruere Faas in amplissimo indice diversarum linguarum earumque versionum (Ite, variae versiones Javae, Python, etc.).
Faas facile creando hoc schemate sequendo;
Explicare munus utens Fn CLI: applicatio configurationis fasciculi Fn creatur fundatur in template delectae.
Munus proprium evolvimus, iterum utendo CLI Fn: continens imaginem in quodam repositorio collocatur, post quod de exsistentia et collocatione huius imaginis notificatur.
Principium munera tradendi ad Fn
Locus institutionem et probatio functionum serverless
Nunc parati sumus ad munus nostrum explicandum initio utendi CLI. Pro simplici utemur in ambitu fabricato, ut Node:
$ fn init --runtime node --trigger http hellonode
Creating function at: /hellonode
Function boilerplate generated.
func.yaml created.
Novum directorium creabitur hellonode ut adhuc munus nostrum Fn cum quibusdam fasciculis fundamentalibus conformationis enucleet. Intra directorium novi creatum, applicationem tuam creare potes secundum signa linguae electae vel runtime:
# Каталог с node выглядит так:
hellonode
├── func.js
├── func.yaml
└── package.json
# Свежеустановленное окружение Java11 такое:
hellojava11
├── func.yaml
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── example
│ └── fn
│ └── HelloFunction.java
└── test
└── java
└── com
└── example
└── fn
└── HelloFunctionTest.java
Fn structuram projecti initialem creat, fasciculum creat func.yamlcontinens loca necessaria pro Fn, et Formulam Codicis in lingua quam elegeratis ponit.
In casu nodi runtime hoc significat:
$ cat hellonode/func.js
const fdk=require('@fnproject/fdk');
fdk.handle(function(input){
let name = 'World';
if (input.name) {
name = input.name;
}
return {'message': 'Hello ' + name}
})
Nunc munus nostrum localiter experiemur quomodo omnia opera faciant.
Primum incipiemus a Fn servo. Ut iam dictum est, servo Fn Docker continente est, ergo, post satus, ibit et imaginem e Docker registro accipiet.
$ fn start -d # запускаем локальный сервер в фоне
Unable to find image 'fnproject/fnserver:latest' locally
latest: Pulling from fnproject/fnserver
ff3a5c916c92: Pull complete
1a649ea86bca: Pull complete
ce35f4d5f86a: Pull complete
...
Status: Downloaded newer image for fnproject/fnserver:latest
668ce9ac0ed8d7cd59da49228bda62464e01bff2c0c60079542d24ac6070f8e5
Ut munus nostrum currat, necesse est ut « evolvatur ». Hoc postulat имя приложения: In Fn, omnes applicationes ut nomina spatii ad functiones relatas specificari debent.
Fn CLI quaeram tabella func.yaml in directorio hodierno quod munus configurare debet. Prius ergo debes ire ad nostrum presul hellonode.
$ cd hellonode
$ fn deploy --app fnexo --local # выкатываем функцию локально, имя приложения - fnexo.
# параметр local не заливает образ в удаленный реестр,
# запуская его напрямую
Deploying hellonode to app: fnexo
Bumped to version 0.0.2
Building image nfrankel/hellonode:0.0.3 .
Updating function hellonode using image nfrankel/hellonode:0.0.3...
Successfully created app: fnexo
Successfully created function: hellonode with nfrankel/hellonode:0.0.3
Successfully created trigger: hellonode-trigger
Ut videre potes ex imperio output, novum Docker continens imaginem creatur in quo munus nostrum est. Munus advocandi paratus est, et duos modos ad id faciendum habemus;
per imperium Fn invoke
vocant directe per http
voca invoke via Fn simpliciter aemulatur opus per HTTP pro probationibus, quod convenit ad probationes vivas;
Fn server munera sua in portu 8080 exponit et munus URL apparet exemplar aequare t/app/functionsed non omnino. Per HTTP functionem non directe dicitur, sed per felis sic dictam, quae, secundum nomen suum, munus vocatum "incipit". Triggers definiuntur `func.yml exstare:
Omnia laborat! Tempus est ut experimenta probemus et nostrum Faas in calculonis divulgent!
Installing serverless function services on your own infrastructure
Cito machinam virtualem instituamus utens Exoscale CLI. Si nondum eam posuisti, uti potes nostri velox initium dux. Hoc instrumentum frigidum est quod augebit ubertatem tuam magis. Noli oblivisci te regulam configurare ad portum apertum 8080 in Societas Securitatis! Praecepta sequentia virtualem machinam puram deducet, ad munera nostra hospitio parata;
Tunc ssh in machinam virtualem potes et in servo Fn remoto institue:
$ exo ssh fn-server
The authenticity of host '185.19.30.175 (185.19.30.175)' can't be established.
ECDSA key fingerprint is SHA256:uaCKRYeX4cvim+Gr8StdPvIQ7eQgPuOKdnj5WI3gI9Q.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '185.19.30.175' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)
Deinde Docker et Fn server eodem modo inaugurare, qua iam in machina locali factum est, servo incipere:
Fn munera accipere parata est! Pro iaculis functionum translatione ad remotum server, mandato utemur deploy de locali computatrum omittendo vexillum --local.
Praeterea, Fn requirit ut locum designatum subcriptio servo Fn et Docker. Haec optiones per ambitum variabilium constitui possunt FN_API_URL и FN_REGISTRY respective, sed etiam commodiorem viam praebet ut facilius creationem et administrationem figurarum instruere possit.
In Fn verbis conformatio instruere dicitur context. Sequens mandatum contextum creabit:
$ fn list contexts
CURRENT NAME PROVIDER API URL REGISTRY
default default http://localhost:8080/
exoscale default http://185.19.30.175:8080 nfrankel
Et vertas ad contextum qui modo creatus est sic:
$ fn use context exoscale
Now using context: exoscale
Hinc in pluma Fn partus detrahet Docker imagines utens ratione delectae DockerHub (in causa mea - nfrankel) et postea certiorem servo remotum (in hoc exemplo - http://185.19.30.175:8080) de situ et versione imaginis novissimae continens munus tuum.
$ fn deploy --app fnexo . # выполняется на локальной машине из каталога hellonode
Deploying function at: /.
Deploying hellonode to app: fnexo
Bumped to version 0.0.5
Building image nfrankel/hellonode:0.0.5 .
Munus Lifecycle in Fn-Substructio Serverless Computing
Commoda serverless computandi ad facultatem tuam
In calculonis servis solutio opportuna est ad partes independentes celeriter exsequendas applicationis, quae inter se occurrunt cum applicationibus multiplicioribus vel microformiis.
Hoc saepe ob absconditum sumptum claudendi ad electum venditorem, qui, pro certo casu ac volumine, ad altiores sumptus ducere potest ac flexibilitatem in futurum reduci.
Multi-nubes et nubes hybrida architecturae in hoc casu etiam patiuntur, quia facile te invenire potes in casu quo velis calculonis servis uti, sed propter corporates rationes fieri non potest.
Fn facillime uti potest, et eadem fere faas interfaciei, cum paulo supra caput. Excludit quemlibet venditorem in seram et in locum institui potest vel in qualibet nube convenienti solutionis provisoris electionis tuae. Est etiam libertas loquendi programmandi.
Articulus hic solum fundamenta Fn operit, sed runtime proprium creans est admodum simplex, et altiore architectura latius Fn librario onere utendo explicari potest, vel post tutelae procuratorem ponendo Fn.