Si DevOps novus es, inspice hunc quinque gradum ducem ad primum pipelineum creandum.
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:
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.
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.
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!
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
Singula reperies quomodo petitam professionem a VULNUS vel exaequatione consequantur secundum artes et salarium sumendo curriculas online a SkillFactory: