Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?

Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?
Proximo anno incipiendo, societas nostra hackathonum ordinare coepit. Prima talis certaminis valde felix fuit, nos de ea scripsimus articulus. Secunda hackathon facta est in Februario MMXIX et non minus prospere. De finibus tenentis hunc non ita pridem scripsi auctor.

Participes datum est munus magis interesting cum plena libertate in eligendo acervum technologiam ad exsequendum. Necesse erat ut suggestum decernendo efficiendum ad functiones mollis molestie adipiscing instruere posset quae celeriter fluxum applicationum, onera gravia sustinere poterant, et ratio ipsa scalabilis facilis erat.

Negotium non leve est et multis modis solvi potest, sicut nobis persuasum est in demonstratione finalium consiliorum participantium. VI iugis quinque hominum in hackathon erant, omnes participes bene inceptis habebant, sed suggestum nostrum maxime competitive evasit. Valde interesting consilium habemus, de quo in hoc articulo loqui vellem.

Nostra solutio est suggestum in architectura Serverless architecturae intus Kubernetes fundatum, quod tempus minuit ut novas lineamenta ad productionem afferat. Permittit analystas scribere codicem in ambitu opportuno ad eos explicandum sine participatione fabrum et tincidunt in productionem.

Quod scoring

Tinkoff.ru, sicut multae societates modernae, emptorem scoring habet. Scoring est ratio taxationis emptoris secundum statisticas methodos analysis.

Exempli causa, cliens nos vertit rogando ut ei mutuum ferat, vel rationem individui manceps aperi nobiscum. Si mutuum emittere cogitamus, tum solutionem eius aestimare oportet, et si manceps ratio est singularis, tum certe opus est clientem dolosis negotiis non gerere.

Fundamentum ad huiusmodi decisiones exempla sunt mathematica, quae tam notitias ex ipsa applicatione quam ex notitia e tabulario nostro resolvent. Praeter scoring, similes statisticae methodi adhiberi possunt etiam in servitio generandi singula commendationes pro novis clientibus nostris productis.

Modus talis taxationis varias input notitias accipere potest. Et aliquando novum modulum addere possumus initus, qui innixus analysi in historicis notitiis, conversionem augebit utendi servitio.

Copiosas notitiarum circa relationes emptorum tenemus, et volumen huius informationis perpetuo crescit. Ad opus scoring, processus notitiarum etiam regulas requirit (vel exempla mathematica) quae permittit ut cito decernas quis applicationem approbare, qui recusare, et qui duos plures fructus offerat, eorum possibilitatem aestimando.

Ad munus quod adest, iam specialioribus deliberationis systematis utimur IBM WebSphere ILOG JRules BRMSQuae, secundum normas ab analysticis, technologis et cyclicis statutis, iudicat utrum peculiare opus argentarium clienti approbare vel recusare possit.

Multae solutiones in foro paratae factae sunt, et exempla scor- pionis et systemata decernendi. Una harum systematum in nostra societate utimur. Negotium autem augetur, variatur, et numerus clientium et numerus productorum oblatorum augetur, et cum hoc, ideae oriuntur in modum decernendi existentium. Certe homines cum systemate existente laborantes multas ideas habent in quo simplicius, melius, commodius fiat, interdum autem ideae extrinsecus utiles sunt. Nova Hackathon instituta est eo consilio ut sanas notiones colligeret.

Negotium

Hackathon habita est 23 die Februarii. Participes oblati sunt munus pugnae: systema decernendi evolvere, quae pluribus condicionibus occurrere debebat.

Dictum est quomodo functiones systematis existens et quae difficultates oriuntur in eius operatione, et quaenam proposita negotia suggestum progressum persequantur. Ratio debet habere ieiunium temporis ad mercatum ad regulas explicandas, ut analystarum operatio quam celerrime in productionem recipiat. Et ad accessum applicationum venientium, tempus decernendi ad minimum tendere debet. Item, systema crescendo debet habere facultatem crucis-vendendi facultatem ut clienti facultatem emendi alias fructus societatis, si a nobis probatae sint et a cliente usuris habeantur.

Patet impossibile esse scribere propositum pernoctare promptum-ad-remissionis, quod certe in productionem ingredietur, et difficillimum est totam rationem operire, sic quaesitum est ut saltem partem eius efficiamus. Aliquot requisita constituta sunt ut prototypum satisfacere deberent. Potuit experiri utrumque ad omnia requisita in toto complexu, et in singulis partibus gradatim crescentibus singillatim elaborare.

Quod ad technologiam attinet, omnes participes plenam electionis libertatem dederunt. Quibusvis notionibus ac technologiae uti licuit: Data effusis, apparatus eruditionis, eventus transnationale, notitiae magnae et aliae.

Nostra solutio

Post paulo brainstorming, decrevimus solutionem Faas utilem fore ad negotium perficiendum.

Ad hanc solutionem, necesse erat ut aptam compagem Serverless invenire ad normas decernendi systematis crescendi efficiendas. Cum Tinkoff active utitur Kubernetes ad administrationem infrastructuram, complures solutiones paratas in ea fundatas inspeximus, de qua postea plura dicam.

Ad solutionem efficacissimam inveniendam, productum per oculis utentium eius crescendo perspeximus. Praecipui utentes nostri systematis analystae implicatae regulae evolutionis sunt. Regulae servo explicandae sunt, vel, ut in nobis est, in nube disponi, ad deliberationem subsequentem. Ex prospectu analysti, cursus laboris hoc simile est:

  1. Analysta scribit scriptionem, regulam, vel ML exemplar in notitia e horreis fundatum. Pro parte hackathonis Mongodb uti decrevimus, sed electio rationum notitiarum repositionis hic non magni momenti est.
  2. Cum normas de historicis notitiis elaboratas tentaverit, analysta uploads codicem suum ad tabulam admin.
  3. Ut versiones curent, omnia codice ad Git repositoria pergam.
  4. Per tabulam admin poterit codicem in nube explicari ut separati muneris Serverless moduli.

Primae notitiae clientium per peculiarem opulentiam ministerium transire debent ad petitionem initialem cum notitia de horreis ditare. Praecipuum erat hoc ministerium efficere ita ut opus esset cum uno reposito (ex quo analysta notitias cum regulas explicans) ad unam datam structuram conservandam accipit.

Etiam ante hackathon decrevimus in compage Serverless quo utimur. Hodie satis multae sunt technologiae in mercatu quae ad hanc accessionem efficiunt. Plurimae solutiones populares intra architecturae Kubernetes sunt Fission, Open FaaS et Kubeless. Sunt etiam bonus articulus cum eorum descriptione et analysi comparativo.

Perpensis omnibus pros et cons, elegimus fission. Haec compage Serverless facilis est et ad munus opportunum disponendum occurrit.

Laborare cum Fissione debes intelligere duas notiones praecipuas: munus et ambitum. Munus est fragmentum codicis in una lingua conscriptum cuius ambitus est Fission. Index ambituum intra hoc compage implendum includit Python, JS, Go, JVM et plures aliae linguae populares ac technologiae.

Fissio etiam apta est ad munera exercenda in plures ordines divisa, in archivum praestructum. Operatio fissionis in botro Kubernetes conservatur per siliquas speciales, quae ab ipso compage tractantur. Ad siliquas inter se cohaerentes, unumquodque munus suum iter assignare debet, et cui transire parametros seu corpus petere possis in casu postulationis cursoriae.

Quam ob rem cogitavimus solutionem obtinere quae analystas permitteret ad explicandam regulam scriptorum explicatam sine participatione fabrum et opum. Descriptus accessus etiam necessitatem excludit tincidunt ad analyticum codicem in aliam linguam scribendam. Exempli causa, ad hodiernam deliberationis rationem utimur, regulas scribere debemus in technologiarum et linguarum valde specialibus, quarum ambitum valde circumscriptum est, et fortis etiam est dependentia a servo applicationis, cum omnes regulae capturae argentariae regulantur. explicantur in unum environment. Quam ob rem ad novas regulas explicandas necesse est totam rationem dimittere.

In solutione proposita nostra, regulas emittere non oportet, codicem ad pressione globuli facile explicari potest. Etiam administratio infrastructura in Kubernetibus permittit ne cogitare de onere et scalis, quae problemata e pixide solvuntur. Et usus unius notitiae cellae aufert necessitatem comparandi notitia reali temporis cum notitia historica, quae opus analyticum simplificat.

Quod nos obtinuit

Cum ad hackathon venimus cum solutione prompta (in phantasiis nostris), omnia quae facienda erant, omnes cogitationes nostras in codicis lineas converterunt.

Clavis ad rem quavis hackath est praeparatio et consilium bene scripti. Primum igitur quod constituimus constituimus quibus modis architecturae nostrae systematis constaret quibusque technologiae uterentur.

Architectura propositi nostri talis erat:

Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?
Hoc schemate duo puncta ingressum ostendit, analyticum (principale usoris nostri systematis) et clientem.

Processus operis sic sistitur. Analysta enucleat munus regulae ac munus suum ad exemplar data locupletandi, codicem suum in Git reposito reponit et exemplar suum ad nubem per applicationem administratoris explicat. Consideremus quomodo munus explicandum vocetur et decernat de petitionibus advenientis clientium:

  1. Cliens formam in situ implet et rogatu suo ad moderatorem mittit. Applicatio qua decernitur conficienda venit ad initus systematis et in database in pristinam formam refertur.
  2. Deinde, rudis postulatio locupletandi, si opus sit, arcessitur. Petitionem initialem supplere potes cum notitia tum ab officiis externis tum ex tabulario. Inde quaesitum locupletatum etiam in database conditum est.
  3. Munus analysta emittitur, quae locupletata quaestionem tamquam input accipit et solutionem efficit, quae etiam ad tabularium scripta est.

MongoDB in repositione in systemate nostro uti decrevimus ob documenti repositionis repositorium in forma documentorum JSON, quia opera locupletanda, inclusa petitione originali, omnia notitia per REQUIEM moderatoris aggregata sunt.

Ita habuimus XNUMX horas ad suggestum peragendum. Munera satis feliciter distribuimus, unumquemque sodalicium suum ambitum responsabilitatis in consilio nostro habebat:

  1. Ante-end tabulas admin pro opere analysti, per quod praecepta de versionis systemate scriptorum scriptorum detrahere potuit, optiones selectas ad inputandas notitias augendas et ad regulam scriptorum recensendam online.
  2. Backend admin, incluso CETERA API pro fronte et integratione cum VCS.
  3. Constituere infrastructuram in Google Cloud et ministerium explicandi ad fontem augendum data.
  4. Modulus applicandi admin applicatione cum Serverless compage pro instruere regulas subsequentes.
  5. Scripta regulae ad probandum effectum totius systematis et aggregationis analyticorum in applicationibus advenientibus (decisiones factae) ad demonstrationem finalem.

Lets 'satus a principio.

Nostra frontenda scripta est in angularis 7 usura argentaria UI Kit. Ultima versio tabulae admin hoc simile videbatur:

Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?
Cum modicum tempus esset, solum clavem functionis efficere conati sumus. Ad munus explicandum in botro Kubernetes, eventum eligere oportuit (pro quo regula in nube explicari debet) et codicem functionis quae logicam decernendo exercet. Utraque regula pro servitio selecto instruere, huius eventus truncum scripsimus. In tabula admin tabulas omnium certe videre potuistis.

Omnia functionis codicem in repositorio remoto Git repositum erat, quod etiam in tabula admin exarandum erat. Ad codicem versionem, omnia munera in diversa repositorii reposita erant. Admin tabula facultatem etiam praebet adaptationes scriptis scriptis conficiendi, ut antequam munus ad productionem disponas, codicem scriptum non solum reprimere, sed etiam necessarias mutationes facere possis.

Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?
Praeter regulas functiones, etiam facultatem adhibuimus ut fons notitiarum utentium functionum locupletationis paulatim locupletaret, cuius codicem etiam scriptorum in quo ad notitias horreis adire licebat, tertiae factionis officia vocare ac calculis praeliminaris praestare. . Ad solutionem nostram demonstrandam, zodiacum signum clientis computavimus, qui petitionem reliquit et suum mobilem operatorem in tertia parte QUIETUS servitium decrevit.

Tergum suggesti in Java scriptum est et in applicatione fontis Booz impletur. Initio nos Postgres uti ad congregem admin data, sed, ut pars hackathonis, nos decrevimus finire nos simplici H2 ad tempus conservandum. In tergum, integratio cum Bitbucket perficienda est versioni interrogationi locupletandi munera et scripta regula. Ad integrationem cum remotis Git repositoriis, usi sumus JGit bibliotheca, quod est quoddam mandatum involucrum super CLI, permittens te exsequi quodvis instructiones git interface utendo convenienti. Duas ergo repositoria habuimus ad locupletanda munera et regulas, et omnia scripta in directoria divisa sunt. Per UI possibile fuit deligere novissimam scriptionem alicuius arbitrarii repositorii. Cum in codice per tabulas admin mutationes faciendas, committit mutatae codicis in repositoriis remotis creatae sunt.

Ad opinionem nostram deducendam, infrastructuram opportunam indigemus. Nos Kubernetes botrum in nube explicandi decrevimus. Electio nostra erat Google Cloud Platform. Fissio servilis compagis in botro Kubernetes instituebatur, quam in Gcloud explicavimus. Initio, fons notitiae locupletationis servitii effectum est ut separatim Javae applicationes in Vasculo intra botrum k8s involveretur. Sed post demonstrationem praeviam propositi nostri in media hackathonis, hortati sumus ut flexibiliora opera efficeremus ut opportunitatem eligeremus quam rudis notitias applicationum advenientium locupletaret. Et nihil optio habuimus nisi ut ad locupletandum ministerium etiam Serverless.

Ad opus Fissionis adhibita est Fission CLI, quae instituenda est super Kubernetes CLI. Munera in botrum k8s disponis satis simplex est, solum internam viam et functionem ingressuri assignare debes ut negotiatio advenientis si accessus extra botrum opus sit. Explicas unum munus typice non plus quam X seconds accipit.

Ultima propositio incepti et summatim

Ad demonstrandum quomodo opera systematis nostri, formam simplicem in remoto servo posuimus ubi applicationem unius productorum argentariis submittere potes. Ad petitionem tuam inire debebas initiis, natalibus ac numero telephonico.

Data ex forma clientis ad moderatorem perrexit, quae simul petitiones omnium in promptu miserat, antea datas secundum certas conditiones ditavit, easque in tabulario communi servavit. In summa tria munera explicavimus quae decisiones applicationes venientium et 4 notitiarum locupletandi operas faciunt. Postquam applicatione subiicitur, cliens consilium nostrum accepit;

Quomodo nubes Faas in medio Kubernetes fecerimus et vicerunt Tinkoff hackathon?
Praeter recusationem vel approbationem, hic etiam album accepit aliorum productorum, petitionum quas in parallela misimus. Ita demonstravimus facultatem crucis venditionis in suggestu nostro.

Summa III inventa fuerunt in ripa ficticia products;

  • Fidem.
  • toy
  • Hypotheca.

In demonstratione, munera et locupletationem scriptorum ad unumquemque ministerium praeparata explicavimus.

Unaquaeque regula suum locum datae initus requirebat. Ita, ut hypothecam probaret, signum zodiaci huius computavimus et hoc cum ratione calendarii lunaris contexuimus. Ludibrium approbare, sedatus est clientem maiorem aetatem attigisse et mutuum emittere, rogationem ad munus apertum externum ad constituendum cellularium operatorem misimus, et in eo decernendum est.

Nostram demonstrationem iucundam et interactivam facere conati sumus, omnes praesentes ad formam nostram accedere potuerunt et ad ea officia poetica nostra disponibilitate compescere. Et in ipso fine praesentationis demonstravimus applicationes analyticas receptarum, quae ostendit quot homines ad usum nostrum, numerum probationum ac negationum utantur.

Ad online analytica colligenda, etiam fontem apertum BI instrumentum direximus Metabase et advenientibus ad unitatem nostram repono. Metabase permittit te tegumenta construere cum analyticis in notitiis quae nobis commodas, tantum opus est ut nexum ad tabulas datorum, selectarum (in nostro casu, collectiones datas, cum MongoDB utebamur) egeremus, et agros foenore nobis exprimeres. .

Quam ob rem bonum exemplar cepimus in deliberationis suggestu, et in demonstratione quisque auditor suum per se ipsum impedire potuit. Solutio interesting, prototypum perfecti et demonstratio felicis nobis permisit ut vincere, licet valida certatio ab aliis iugis. Pro certo habeo articulum interesting etiam in singulis quadrigis inscribi posse.

Source: www.habr.com

Add a comment