Vasa, microservices et retibus opera

In Internet tumulus vasa ΠΎ servitium reticulum (servitium reticulum), et hic alius. euge! Sed quid? Deinde sententiam meam exprimere volo melius fuisse si nexus servitus abhinc centum annos apparuit, ante adventum suggestorum continens sicut Docker et Kubernetes. Non dico meam sententiam meliorem vel deteriorem esse quam aliis, sed cum operae nexus sint admodum complexi animalia, multae considerationes adiuvabunt ut melius eas intelligant.

De suggestu dotCloud loquar, quod supra centum microserviis aedificatum est, et mille applicationibus continentis sustentata est. Provocationes quas in enucleando et deducendo aggressus sum exponam, et quomodo opera nexuum iuvare possint (vel non potuit).

Historiae dotCloud

Scripseram de historia dotCloud et electionum architecturae in hoc suggestu, sed non multa de strato retis locutus sum. Si non vis intendere Lectio ultimum articulum de dotCloud, hic summa in nuce: Paas suggestum est ut-a-servitium quod clientes ad currendum amplis applicationibus (Java, PHP, Python...), cum auxilio amplis notitiarum officia (MongoDB, MySQL, Redis...) et cursus quasi Heroku: Tu codicem tuum ad suggestum imposuisti, continens imagines aedificat et eas explicas.

Dicam tibi quomodo negotiatio ad suggestum dotCloud directa sit. Non quod peculiariter frigus (etsi ratio bene suo tempore laboravit!), sed praesertim quia cum instrumentis hodiernis tale consilium facile per modicas turmas brevi tempore perfici potest, si via ad iter mercaturae inter fasciculum indigent. microservices vel fasciculum applicationum. Hoc modo optiones comparare potes: quid fit si omnia ipse evolveris vel exsistente reticulo uteris. Vexillum electionis est ipsum facere vel emere.

Negotiationis excitavit applications ad hosted

Applicationes in dotCloud HTTP et TCP terminos exponere possunt.

HTTP terminos dynamically addidit ad onus librator botrum portassent configuratione Hipache. Hoc simile est illis quae facultates faciunt hodie Ingress in Kubernetes et onus librari sicut Traefik.

Clientes ad HTTP terminos per opportunas ditiones coniungunt, dummodo nomen domain monstrat librariorum oneris dotCloud. Nil specialis.

TCP terminos coniungitur cum numero portuum, qui deinde ad omnia vasa in ACERVUS illo per variabiles ambitus transmittitur.

Clientes ad TCP terminos coniungere possunt utentes opportuno hostname (sicut porta-X.dotcloud.com) et numerus portus.

Hoc hostname solvit "nats" server botrum portassent (non related to " Nats), qui ineuntes TCP nexus ad rectam continens (vel, in casu oneris librato officiorum, ad continentiam rectam).

Si cum Kubernetibus nota es, hoc te verisimiliter de Officiis admonebo NodePort.

Nulla officia equivalent in dotCloud platform ClusterIP: simplicitatis officia eodem modo accesserunt tam ab intra quam extra suggestum.

Omnia simpliciter ordinata sunt: ​​initiales retiacula HTTP et TCP fusa retiaculorum paucae lineae Pythonis singulae probabiliter erant. Simplex (dicom simplicem) algorithmarum politum erat ut suggestum cresceret et requisita adiectis apparuerunt.

Refactoring extensum codicem existentium non requiritur. Praesertim, XII factor apps directe uti inscriptione per variabiles ambitus obtinet.

Quomodo hoc differt a reticulo hodierno servitutis?

Limited uisibiliter. Non habuimus aliquam metricam pro reticulum TCP excitando. Cum ad HTTP excitandas venit, versiones recentiores metrice HTTP descriptores cum errorum codicibus et temporibus responsionis intulerunt, sed hodierni muneris nexus etiam longius progrediuntur, integrationem cum metri collectionis systematibus sicut Promethei, exempli gratia.

Visibilitas magni momenti est non solum ex prospectu operationali (ad quaestiones troubleshoot adiuvandas), sed etiam cum novas lineamenta solvens. Suus 'tutum caeruleo-viridis instruere ΠΈ Canary deployment.

profectus efficientiam est etiam finitum. In dotCloud reticulum fuso, omnia negotiatio per botrum dedicatarum nodis fugandis ire oportuit. Hoc significatum est in potentia transire plures AZ terminos ( Availability Zone ) et significanter augere latentiam. Memini codicem sollicitudinem qui centum SQL queries per paginam faciebat et novam connexionem aperiens servo SQL pro unaquaque interrogatione. Cum localiter currit, pagina statim onerat, sed in dotCloud paucas secundas ad onus accipit, quia inter TCP nexum (et interrogationem SQL subsequentem) decem millium secundorum accipit. Hoc in casu particulari, nexus pertinacis problema solvitur.

Hodiernae servitutis nexus melius in talibus quaestionibus tractandis sunt. Imprimis fusi hospites refutant in fonte. Idem est fluxus logicae; ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ мСш β†’ сСрвисnunc reticulum localiter operatur, non nodis remotis, ita nexus ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ мСш est locus et velocissimus (microseconds pro milliseconds).

Hodiernae servitutis reticulas etiam smarter oneris algorithms conparans efficiunt. Per vigilantiam sanitatis backends, negotiatio plura mittere possunt ad ocius backends, inde in meliore altiore effectus.

salutem melior quoque. DotCloud reticulum excitans totum in EC2 Classicum cucurrit et mercaturam encrypt non fecit (subnixa suppositione quod si quis sniffer in EC2 retis negotiationis collocaret, iam in magno negotio fuisti). Moderni muneris nexus luculenter omnia negotia nostra defendunt, exempli gratia, mutua TLS authenticas et encryptiones subsequentes.

Fugato negotiationis diam officia

Bene, commercium inter applicationes tractavimus, sed quid de ipso suggestu dotCloud?

Ipsum suggestum centum circiter microservices variis functionibus responsabiles constabat. Quidam postulationes ab aliis acceperant, quidam operae background, quae aliis officiis adnexae erant, nexus ipsas non recipiebant. Utcumque, unumquodque officium debet cognoscere fines inscriptionum quae ad coniungere oportet.

Multa officia summus gradus uti reticulum fuso uti supra descriptus est. Re vera, multae plus quam centum parvarum instrumentorum dotCloud sicut applicationes regulares in ipso suggestu dotCloud explicaverunt. Parvus autem numerus servitiis humilium graduum (praesertim illae quae reticulum hunc excitandum efficiunt) simpliciori aliquid indigebant, cum pauciores clientelas (quia ex se ad laborem pendere non poterant - bonum pulli veteris et ovi problema).

Haec humili gradu officia missionalia critica explicabant per continentes directe currendo in paucis nodis clavisque. Hoc in casu, vexillum tribunalis officia non adhibita sunt: ​​nexus, schedula et cursor. Si vis comparare ad tabulata moderna continens, est sicut planum moderamen cum currens docker run directe in nodis, loco delegandi negotium ad Kubernetes. Suus 'pulchellus similis in conceptu static modules (siliquae), quod utitur kubeadm aut bootkube Cum tabernus a standalone botrum portassent.

Haec officia simplici et rudi modo exposita sunt: ​​fasciculus YAML nomina et inscriptiones eorum recenset; et client uterque exemplar huius fasciculi YAML instruere debebat.

Ex altera parte, certissimum est quod subsidium externae clavis/valoris non requirit ut Zookeeper (memini, etc. vel Consul eo tempore non extiterit). Contra, officia movere difficile est. Quoties motus factus est, omnes clientes tabulam YAML renovatam reciperent (et potentia reboot). Non valde commodus!

Postmodum novum propositum aggredi incepimus, ubi quisque clienti annexus est procuratori locali. Loco inscriptionis et portus, solum portum numerum ministerii cognoscere oportet, et via coniungere localhost. Procurator localis hanc connexionem tractat et ad actualem cultorem promovet. Nunc, cum ad aliam machinam vel scalam retrahendam, omnes clientes adaequationis loco movendo, solum opus est ut omnes hos loci procuratores renovare; et reboot non requiritur.

(Instituit praeterea negotiationem in TLS adfines encapsulare et alium procuratorem in latere recipiendi ponere, ac testimonium cognoscere TLS sine participatione muneris recipientis, quod configuratur ad accipiendas nexus tantum in localhost. Plura de hoc postea).

Hoc est simillimum SmartStack ab Airbnb, sed notabile discrimen est quod SmartStack ad productionem perficiatur et explicatur, cum ratio fusa interna fusa dotCloud dotCloud factus est.

SmartStack personaliter considero unum esse e praedecessoribus ad systemata Istio, Linkerd et Consul Connect quia omnes eandem formam sequuntur:

  • Procuratorem in se nodi currere.
  • Clientes procuratorem coniungere.
  • Imperium planum procuratorem configurationem renovat cum in posteriorem mutationem revertitur.
  • ... Lucrum!

Moderni exsecutionem servitii reticulum

Si opus erat hodie ad similem necessitatem efficiendum, principiis similibus uti potuimus. Exempli gratia, DNS zonam internam configurare per nomina destinata ad inscriptiones in spatio 127.0.0.0/8. Tunc HAProxy currunt in singulis nodi in botro, hospites accipientes ad singula opera inscriptionis (in hoc subnet 127.0.0.0/8) et redirecting/adaequans onus ad convenientia backends. HAProxy configuratione potest regi confdpermittens te ad informationes in etcd vel Consul reponendas et automatice renovationem configurationem ad HAProxy impellere cum opus fuerit.

Haec fere sunt quam Istio opera! sed cum aliquibus differentiis;

  • usus Legatus Proxy pro HAProxy.
  • Stores remittunt configurationem per Kubernetes API loco etc vel Consul.
  • Inscriptiones in subnet interna partita officia (inscriptiones Kubernetes ClusterIP) loco 127.0.0.0/8.
  • Additamentum componentis (arcis) addere mutuam authenticationem TLS inter clientes et servitores.
  • Sustinet novas lineas sicut ambitus fractionis, vestigationis distributae, instructionis canariae, etc.

Velox inspice differentias aliquas.

Legatus Proxy

Internuntius proxy scripsit Lyft [competitor Uber in foro taxi - approx. lane]. Simile est in multis aliis procuratoribus (v.g. HAProxy, Nginx, Traefik...), sed Lyft eorum scripsit, quia opus erat notis aliis procuratoribus carere, et stimulus videbatur novam efficere quam unam existentem extendere.

Adhiberi potest legatus de se ipso. Si certum habeo servitium quod ad alia officia coniungi debet, illud configurare possum cum Envoye coniungere, et postea dynamice configurare et reconfigurare Legatum cum aliis servitiis situm, dum multam magnae functionis additicii questus, sicut visibilitas. Loco consuetudinis clientis bibliothecae vel vestigia in codicem immisso nominat, negotiatio ad Internuntium mittimus et res metricas pro nobis colligit.

Sed Legatus etiam operari potest notitia planum (Indicium planum) pro reticulo servitio. Hoc significat Legatum nunc pro reticulo isto servitii configuratum imperium planum (imperium planum).

Imperium planum

Nam planum imperium, Istio Kubernetibus API innititur. Hoc non multum differt ab usura confd, quae nititur etc vel Consul videre paroem clavium in notitia copia. Istio Kubernetes API utitur ad copiam copiarum Kubernetensium considerandam.

Inter haec et: Ego personaliter hoc utile inveni Kubernetes API descriptionquae legit;

Kubernetes API Servo est "servulus mutus" qui repono, versionem, sanationem, adaequationem, et semantica pro API facultatibus offert.

Istio ad Kubernetes pertinet opus; et si ea extra Kubernetes uti voles, necesse est ut exemplum Kubernetarum API servientium (et etc. servitii adiutorii praebeat).

Service address

Istio nititur inscriptionibus ClusterIP quae Kubernetes collocant, sic Istio officia internam electronicam recipiunt (non in ambitu 127.0.0.0/8).

Negotiatio ad electronicam ClusterIP ob certum servitium in botro Kubernetes sine Istio a kube-procuratore intercipitur et ad illius procuratoris tergum mittitur. Si in singulis technicis rebus curas, kube-procurator iptables regulas (vel IPVS onus librarios erigit, secundum quomodo figuratur) rescribere destinatum IP inscriptiones nexuum ad ClusterIP inscriptiones iens.

Postquam Istio in botrum Kubernetes instituitur, nihil mutatur donec explicite possit pro certo consumere, vel etiam totius spatii nominali, inducendo vas. sidecar in morem leguminis. Hoc continens exemplum Envoy evolvet et statuta regulae iptalium ad intercipiendum mercaturam eundi ad alia officia et negotiationem ad Legatum redigendam.

Cum in Kubernetes DNS coniungitur, hoc significat codicem nostrum coniungi posse nomine opera et omnia "iusta opera". Aliis verbis in codice nostro quaestiones queries sicut http://api/v1/users/4242tum api propono petitionem for 10.97.105.48, regulae iptables nexus ab 10.97.105.48 intercipient et ad Procuratorem localem transmittunt, et procurator localis ille postulationem ad ipsum API retrahet. Phew!

Additional frills

Istio etiam finem-ad-finem encryption praebet et authenticas per mTLS (mutua TLS). Pars dicitur arx.

Est etiam elementum blenderquam legatus petere potest quisque rogamus ut specialem decisionem de illa petitione secundum varias causas pendentes sicut capitis, onere retroire, etc. denique ut procuratorem).

Et sane visibilitatis mentionem fecimus: Legatus ingentem metri copiam colligit dum distribuit typum comparans. In architectura microservices, si una API petitio per microservices A, B, C et D transire debet, in login distributa pertractatio addet rogationi singularem identificatorem et per petitiones huiusmodi microform identifientem repone, permittens omnes ad capiendos pertinentia vocat moras, etc.

Develop or buy

Istio opinionem complexionis habet. E contra, reticulum aedificandi fuso, quem initio huius tabellae descripsimus, instrumentorum comparationem simplicium utens exsistentium. Sic facit sensus creare reticulum pro tuo servitio?

Si modicas necessitates habemus (visibilitas, ambitus ruptor et aliae argutiae non indigemus), tunc cogitationes ad nostrum instrumentum elaborandum veniunt. Sed si Kubernetes utimur, ne opus quidem esse potest quod Kubernetes iam prima instrumenta praebet ad usum inveniendi et pondera librando.

Sed si requisita profecimus, "acquisitio" servitutis reticulum multo melius esse videtur. (Hoc non est semper "emere" quia fons Istio est aperta, sed adhuc opus est ipsum tempus ad intellegendum, explicandum et administrandum.

Egone Istio, Linkerd vel Consul Connect?

Hactenus de Istio tantum locuti sumus, sed hoc non solum obsequium reticulum. Popular alternative - Linkerdet plus consul Connect.

Eligere Quid?

Vere, nescio. Nunc me non satis idoneum arbitror ad hanc quaestionem respondendum. Pauci sunt novus vasa cum comparatione horum instrumentorum et etiam benchmarks.

Promittens accessus est uti instrumento sicut SuperGloo. Iacuit abstractionem perficit ut APIs per nexus servitiorum expositos simpliciorem et uniat. Loco discendi specificum (et, mea sententia, relativum complexum) APIs diversorum officiorum nexus, uti possumus simpliciori SuperGloo construere - et facile ab uno in alterum transibit, quasi formam intermediam conformationem HTTP describentis interfaces et backends capaces haberemus. ipsam conformationem generandi pro Nginx, HAProxy, Traefik, Apache...

Cum Istio et SuperGloo aliquantulum commaculavi, et in sequenti articulo monstrare volo quomodo Istio seu Linkerd ad botrum existentem superGloo utentem adiiciam, et quomodo hic officium factum obtinet, hoc est, permittit te e flectere. unum alteri reticulum ministerium sine configurationibus overwriting.

Source: www.habr.com