Inceptor's Guide: DevOps Creando Pipeline

Si DevOps novus es, inspice hunc quinque gradum ducem ad primum pipelineum creandum.

Inceptor's Guide: DevOps Creando Pipeline

DevOps vexillum solutionis facta est ad processuum programmatum figendi tardum, dissolutum vel fractum processuum programmatum. Difficultas est, si novas es DevOps et ubi incipias nescis, his artibus intellectu careas. Hic articulus definitionem pipelini DevOps tractabit et instructiones quinque gradus ad unum creandum praebebit. Dum haec consequat non exhausta non est, fundamentum debet tibi ad iter tuum inchoandum et ad tuam cognitionem in futuro dilatandam. Sed ab historia incipiamus.

My DevOps Iter

Antea in Citi Group nubem quadrigis elaboravi ut infrastructuram-as-a-Service (IaaS) interretialem applicationem ad infrastructuram nubis Citi administrandam, semper studui quomodo processum evolutionis efficaciorem reddere et ad mutationem culturae positivam adducere eget ipsum dolor. Responsum inveni in libro commendato a Greg Lavender, CTO Cloud Architecturae et infrastructurae apud Citi. Liber appellatus est Phoenix Project.Phoenix Project) et principia DevOps explicat, sed legit ut nova.

Mensa in tergo libri ostendit quam saepe diversae societates suas systemata explicant in ambitu emissione;

Amazon: 23 per diem
Google: 5 per diem
Netflix: 500 per diem
Facebook: Semel a die
Twitter: III temporibus a septimana
Typical company: Cum omnis IX mensibus

Quomodo frequentiae Amazonum, Google et Netflix etiam fieri possunt? Causa est, quia hae societates figuraverunt quomodo DevOps pipeline crearet paene perfectum.

Ab hoc longe fuimus donec DevOps in Citi deducamus. Revertere ergo, mea turma varias ambitus habuit, sed instruere in servo evolutionis omnino manuali erat. Omnes tincidunt accessum habebant ad unum tantum evolutionis servo secundum IBM WebSphere Applicationem Servo Communitatis Editionis. Problema erat ut servo clauderetur quotiens plures utentes simul explicandi conati sunt, tincidunt ad invicem communicare intentiones, quod satis erat dolorem. Accesserunt quaestiones cum humili gradu testium codici coverage, gravia opera manualia processuum, et non posse instruere instruere codicem cum specifico officio vel usoris fabulae coniungi.

Quid opus facto esse intellexi, et collegam unanimem inveni. DevOps pipelines initiales ad aedificandas collaborandas constituimus - tomcat virtualem machinam et applicationem servo dum laboravi in ​​Jenkins, Atlassian Jira et BitBucket integravit, et in testi codicis coverage laboravi. Hoc consilium latus valde prosperum fuit: plures processus paene perfecte automated, propemodum 100% uptime consecuti sumus in evolutione servitore nostro, modo probatio investigationis et melioris codicis coverage, et facultatem addidit Git ramis ad Jira quaestiones vel operas ligandi. Pleraque instrumenta nostra DevOps pipelines aedificare solebant fons aperta.

Nunc intellego quam simplex DevOps nostrum pipelinum esset: extensiones non utebantur ut lima Jenkins vel Ansible. Sed haec pipeline simplex bene operata est, fortasse ex principe Pareto (etiam nota regula 80/20).

Brevis Introductio ad DevOps et CI/CD Pipeline

Si plures interroges, "Quid est DevOps?", plura diversa responsa verisimiliter habebis. DevOps, sicut Agile, evolvit ad multas disciplinas varias, sed plerique consentiunt in paucis: DevOps est programmatio praxis seu programmatio programmatis vitae cycli (SDLC) cuius praecipuum dogma mutatur culturam in qua tincidunt et non- tincidunt in ambitu in qua:

Operationes, quae antea manualiter factae erant, automatae sunt;
Quisque facit quod optimum est;
Numerus exsecutionum per aliquod tempus augetur; Prorsus crescit;
Augebat flexibilitatem progressus.

Dum ius instrumentorum programmatum habens non solum est debes creare ambitum DevOps, instrumenta quaedam necessaria sunt. Instrumentum key est continua integratio et continua instruere (CI/CD). In hoc pipelino ambitus diversos gradus habent (v.g. DEV, INT, TST, QA, UAT, STG, PROD), multae operationes automantur, et tincidunt scribere possunt codicem optimum, agilitatem evolutionis consequi, rates instruere.

Hic articulus describit quinque gradus accessus ad creandum DevOps pipelines sicut demonstratur in sequenti schemate instrumentorum aperto fonte utens.

Gradus I: CI/CD Methodi

Primum opus est instrumentum CI/CD. Jenkins instrumentum fontis aperti fundatum in Java et sub licentia MIT licentiati est instrumentum quod DevOps divulgatur et vexillum de facto factum est.

Quid est ergo Jenkins? Cogita illam quasi quaedam magicam universalem potestatem remotam, quae varia officia et instrumenta loqui et instituere potest. Per se, instrumentum CI/CD sicut Jenkins inutile est, sed potentior fit cum diversis instrumentis et officiis coniungit.

Jenkins unus ex multis apertis fons CI/CD instrumentorum uti potes ad tui fistulas DevOps aedificandas.

Jenkins: Creative Commons and MIT
Travis CI: MIT
CruiseControl: BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabie: GNU

Ecce quod processus DevOps spectant sicut cum instrumento CI/CD:

Inceptor's Guide: DevOps Creando Pipeline

Instrumentum CI/CD currens habes in locali hoste tuo, sed non multum potes ex tempore. Ad gradum proximum iter DevOporum transeamus.

Gradus II: Curo Source Control Systems

Optima (et fortasse facillima) modus ad comprobandum tuum CI/CD instrumentum facere potest suam magicam facere est cum fonte codici continente (SCM) instrumentum. Cur fons temperantiae opus est? Dicamus te applicationem evolvere. Quoties applicationem creas, programmatio es, nec refert an uteris Java, Python, C++, Vade, Ruby, JavaScript, aut aliqua ziillionum programmandi linguarum. Codex, quem scribis, fons codicis appellatur. In principio, praesertim cum solus laboras, verisimile est ok omnia in directorio locali ponere. Sed quia maius consilium fit et alios homines ad collaborandum invitas, ita opus est ut ne pugnes dum modificationes efficaciter communicares. Etiam opus est ut priora versiones restituas, quia tergum creans et in eas describendo obsolescit. Tu (et tua teammates) meliore opus est.

Inde est, ubi fons codicis imperium paene necessitas evadit. Hoc instrumentum codicem tuum in repositoriis reponit, vestigia versionum servat, et opus participantium project coordinat.

Dum multa sunt instrumenta ex fonte control ibi, Git est vexillum, et merito. Magnopere suadeo utendo Git, quamvis aliae optiones apertae fonte aperiantur si mavis.

Git: GPLv2 et LGPL v2.1
Subversion: Apache 2.0
Concurrentes Systema (CVS): GNU
Vestae: LGPL
Mercurialis: GNU GPL v2+

Hoc est quod a DevOps pipelino simile est cum addito fonte codice moderante.

Inceptor's Guide: DevOps Creando Pipeline

Instrumentum CI/CD potest automate processus recognitionis, principii adquisitionis, et collaboratio inter membra. Non malus? Sed quomodo convertis eam in applicatione laborantem ut billions hominum uti et aestimare possint?

Gradus III, crea in Automation Mors aedificate

Magna! Codicem recensere potes et mutationes in fonte temperare et amicos tuos ad operandum in evolutione invitare. Sed nondum applicationem creatam. Ad applicationem telae faciendae, componi debet et in batch explicabili forma vel currendo ut documentum exsecutabile. (Nota quod lingua programmandi interpretata ut JavaScript vel PHP compilari non debet).

Instrumentum automation aedificare uti. Quocumque instrumento automationis uti statueris, omnes eundem finem habent: fontem codicem in forma aliqua desiderata construe et munus purgandi, componendi, experiendi, ad certas ambitus disponendi. Instrumenta fabricandi variabunt secundum linguam programmandi tuam, sed hic sunt optiones communes fons aperta.

nomine
licentiam
Lingua programmandi

maven
Apache 2.0
Java

formica
Apache 2.0
Java

Gradle
Apache 2.0
Java

Bazel
Apache 2.0
Java

fac
Wikimedia Foundation
N / A

Manipularis
MIT
JavaScript

HAUSTUS
MIT
JavaScript

conditor
Apache
Ruby

pectis rastris,
MIT
Ruby

AAP
Wikimedia Foundation
Python

scons
MIT
Python

BitBake
GPLv2
Python

crustulam
MIT
C#

asdf
Expat (MIT)
LISP

integrum
BSD
Haskell

Magna! Potes instrumenti configurationis instrumenti automationis aedificare in systemate tuo fonte dicionis et instrumentum tuum CI/CD omnia simul compone.

Inceptor's Guide: DevOps Creando Pipeline

Omnia denique annon? Sed ubi explicabis applicationem tuam?

Gradus IV: Web Application Servo

Nunc enim fasciculum fasciculum habes, quod vel exsecutabile vel installabile esse potest. Ad quamlibet applicationem vere utilem, aliquo genere officii vel instrumenti providere oportet, sed vase uti oportet ut exercitum tuum exerceas.

Applicatio telae server talis est continens. Servo ambitum praebet in quo ratio sarcinae explicatur definiri potest. Servus etiam interfacem praebet et officia interretialem praebet, bases extra mundum exponendo. Servo HTTP opus est, et ambitu quodam (sicut machinae virtualis) ut eam instituas. Nunc enim sumamus plura de hoc scies (quamvis vasa infra tegam).

Plures sunt ministri fons apertum interreti applicationis.

nomine
licentiam
Lingua programmandi

Tomcat
Apache 2.0
Java

lie gittieheidis
Apache 2.0
Java

WildFly
GNU Minor Publica
Java

GlassFish
CDDL & GNU Minus Publica
Java

Django
3-clause BSD
Python

turbo
Apache 2.0
Python

gunicorn
MIT
Python

Python
MIT
Python

rails
MIT
Ruby

Node.js
MIT
Javascript

Tua DevOps pipeline fere ad usum parata est. Bonus labor!

Inceptor's Guide: DevOps Creando Pipeline

Dum illic morari potes et te ipsum integrationem tractas, qualitas magni momenti res est pro app elit ut cures.

Gradus V: Code Testis Coverage

Exsecutio probationes alia gravia postulatio esse potest, sed tincidunt quamlibet cimices in applicatione mature capere debet et qualitatem codicis emendare ut finis utentium satisfaciat. Feliciter multa instrumenta aperta sunt ad codicem tuum probandum et commendationes ad eius qualitatem augendam. Quid melius est, pleraque instrumenta CI/CD ad haec instrumenta et processum automate coniungere possunt.

Codicis probatio duabus partibus constat: codici probatio compagum quae te adiuvat scribere et currunt probationes, ac instrumenta suggestionis quae adiuvant ut amplio qualitatem codicis tui.

Code systemata probatio

nomine
licentiam
Lingua programmandi

JUnit
Et obscuratus Licensionis Publicae
Java

EasyMock
Apache
Java

mockito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
Python

Hypothesi
Mozilla
Python

tox
MIT
Python

Commendatio systemata in codice emendationem

nomine
licentiam
Lingua programmandi

Cobertura
Wikimedia Foundation
Java

CodeCover
Eclipse Publicus (EPL)
Java

Coverage.py
Apache 2.0
Python

Emma
Communia Publica Licentia
Java

JaCoCo
Et obscuratus Licensionis Publicae
Java

Hypothesi
Mozilla
Python

tox
MIT
Python

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

locus
MIT
JavaScript

Nota pleraque instrumenta et compages quae supra scripta sunt pro Java, Pythone et JavaScript, cum C++ et C# programmandi linguae proprietatis (quamvis GCC fons aperta est).

Nunc ut instrumenta testarum coverage implesti, DevOps pipelines tua spectare debent similes schematis quod in principio huius consequat.

Additional Steps

Continentes

Ut dixi, servo tuo in virtualis machina vel servo, ut dixi, ministrare potes, sed vasa popularis solutionis sunt.

Quae sunt continentia? Brevis explicatio est quod virtualis apparatus ingens opus est memoriae ratio operandi, magnitudinem applicationis excedens, cum continens tantum paucis bibliothecis et configurationibus indiget ad applicationem currendam. Patet, adhuc momenti sunt usus virtualis machinae, sed continens solutionem leve est pro applicatione obnoxia, inclusa servo applicationis.

Dum aliae optiones continens sunt, populares sunt Docker et Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

Instrumenta media automation

Pipeline DevOps nostri principaliter in applicatione collaborativam creationis et instruere feruntur, sed multa alia sunt quae cum instrumentis DevOps fieri possunt. Una earum est usus instrumentorum Infrastructure sicut Codex (IaC) quae etiam instrumenta media automationis nota sunt. Haec instrumenta adiuvant automatariam institutionem, administrationem, aliaque opera ad medias cautelas. Sic, exempli gratia, instrumentum automationis extrahi potest applicationes ad applicationem interretialium server, datorum datorum, et instrumentum monitorium cum rectis conformationibus et explicandi ad applicationem servo.

Hic sunt quaedam instrumenta aperta media automataria instrumentorum;

Ansible: GNU Publicus
SaltStack: Apache 2.0
Chef: Apache 2.0
Pupula: Apache vel GPL

Inceptor's Guide: DevOps Creando Pipeline

Singula reperies quomodo petitam professionem a VULNUS vel exaequatione consequantur secundum artes et salarium sumendo curriculas online a SkillFactory:

plus courses

utilis

Source: www.habr.com