DevOps Mentorship Program
AWS Community BosniaJoin Slack
  • Introduction
  • DevOps Mentorship Program
    • Week-1: Git - Sistem za verzionisanje koda
    • Week-2: Linux / UNIX Operativni sistemi
    • Week-3: Bash / Shell Scripting
    • Week-4: Racunarske mreze i Web aplikacije
    • Week-5: Server, tipovi servera
    • Week 6: Uvod u Cloud, Amazon Web Servisi (AWS)
    • Week 7: Uvod u AWS, Amzon EC2, IAM
    • Week 8: Amazon Elastic Load Balancer, Amazon EC2 Auto Scaling
    • Week 9: Amazon S3, Amazon RDS
    • Week 10: Amazon RDS, Deploying Java App on AWS
    • Week 11: Amazon Virtual Private Cloud (VPC)
    • Weel 12: AWS Lambda, EventBridge, SQS, SNS
    • Week 13: Sta je DevOps, kako biti uspjesan kao DevOps praktikant
    • Week 14: Server management alati
    • Week 15: Infrastruktura kao Kod (IaC)
    • Week 16: AWS CDK, AI on AWS
    • Week 17: CI/CD - Continuous Integration and Continuous Delivery/Deployment
    • Week 18: Jenkins, Disaster Recovery on AWS
    • Week 19: Docker
    • Week 20: Building DevOps Blue/Green pipeline with Amazon ECS
    • DevOps Mentorship Program - Office Hours Sesije
  • DevOps Learning Path
    • YAML
    • SSL - Secure Sockets Layer
  • Amazon Web Services (AWS)
    • AWS Service Notes
      • Identity Access Management (IAM)
      • AWS Elastic Beanstalk
    • AWS Certification
      • AWS Cloud Practitioner
      • AWS Solutions Architect Associate
        • Exam Notes - AWS SAA
      • AWS SysOps Administrator Associate
        • Exam Notes - AWS SysOps
      • AWS Developer Associate
        • Exam Notes - AWS Developer
      • AWS Solutions Architect Proffesional
      • AWS DevOps Engineer Proffesional
      • AWS Advanced Networking Specialty
      • AWS Security Specialty
      • AWS Database Specialty
      • AWS Data Analytics Specialty
      • AWS Machine Learning Specialty
      • SAP on AWS Specialty
    • AWS Learning Resources
  • Books
  • Testimonials
  • Contributors
  • Code of Conduct
  • License
Powered by GitBook
On this page
  • Uvod
  • YAML
  • Dodatna Literatura

Was this helpful?

  1. DevOps Learning Path

YAML

Uvod

Kao DevOps praktikanti cesto koristimo razlicite konfiguracijske fajlove da bi alatima koje koristimo proslijedili odredjene informacije i konfiguracijska podesenja. Konfiguracijski fajlovi se najcesce pisu koristeci DSL (Data Serialization Languages). U racunarstvu (eng. computing), seralizacija oznacava proces prevodjenja strukture podataka ili stanja objekata u format koji moze da pohranjuje ili prenosi i kasnije rekonstruise na nacin da je razumljiv u razlicitim racunarskim okruzenjima. Neki od najpoznatijih DSL jezika su YAML, JSON i XML. Pored potrebe da se podaci predstave na nacin koji je lako citljiv i koji moze biti ponovo rekonstruisan bilo je potrebno omoguciti razlicitim programskim jezicima i racunarskim sistemima da razmjenjuju podatke na interoperabilan nacin (interoperabilnost predstavlja sposobnost dvije ili vise komponenti ili sistema da razmjenjuju informacije i koriste informacije koje su razmijenjene).

YAML

YAML (YAML Ain’t Markup Language) pripada grupi DSL jezika koji je kreiran da bi ljudima bio jednostavan za citanje i pisanje. Pored svoje jednostavnosti za citanje i pisanje, YAML radi odlicno sa modernim programskim jezicima. YAML za struktuisanje podataka koristi indentaciju (eng. indentation), nizove, mape (parove kljuc: vrijednost / key: value pairs). Prije nego se detaljnije upoznamo sa YAML jezikom neophodno je da razumijemo sta svaki od ovih ranije pobrojanih pojmova za strukturiranja podataka predstavlja:

  • indentacija (eng. indentation) - odnosi se na nacin uredjivanja ili pomjeranja linija koda u odnosu na lijevu marginu radi vizuelne organizacije i strukturiranja blokova koda. Obicno se koristi tabulator (tab) ili niz razmaka (space) da bi se linije koda pomjerile udesno. YAML koristi indentaciju (obicno sa razmacima) za oznacavanje hijerarhijske strukture podataka. Indentacija je vazna za odredjivanje koje elemente podatka cini dio drugih elementa (blokova).

  • mape - se u YAML formatu definisu kao parovi kljuc: vrijednost (key: value). Ova struktura podataka se u nekim jezicima naziva i kao hash ili dictionary:

sarajevo: 500000
zagreb: 800000
beograd: 1700000
podgorica: 200000

Primjer mape sa setom osobina grupisanih zajedno bi bio:

sarajevo:
  drzava: "Bosna i Hercegovina"
  stanovnika: 500000
zagreb:
  drzava: "Hrvatska"
  stanovnika: 800000
beograd: 
  drzava: "Srbija"
  stanovnika: 1700000
podgorica: 
  drzava: "Crna Gora"
  stanovnika: 200000
  • sekvence (nizovi / liste) - (eng. Sequences arrays/lists) odnosno nizovi ili liste elemenata se u YAML-u predstavljaju kao lista elementa gdje svaki elemenat pocinje sa crticom i razmakom:

- sarajevo
- zagreb
- beograd
- podgorica
  • skalari (brojevi / stringovi) - predstavljaju osnovne elemente podataka kao sto su brojevi, stringovi, boolean (true/false) i null vrijednosti. U YAML-u, skalarne vrijednosti pisemo direktno. Brojevi se pisu kao brojevi, dok se stringovi pisu izmedju navodnih znakova:

broj: 123
string: "ovo je string"

Bitno je napomenuti da YAML podrzava ugnijezdjenja mapa i sekvenci sto znaci da se mape mogu koristiti kao vrijednosti unutar sekvenci i obrnuto, omogucavajuci slozenije strukture podataka. Ispod je jedan primjer slozene strukture podataka u YAML-u.

BiH:
  - grad: Sarajevo
  - stanovnika: 500000
Hrvatska:
  - grad: Zagreb
  - stanovnika: 800000
Srbija:
  - grad: Beograd
  - stanovnika: 1700000
CrnaGora:
  - grad: Podgorica
  - stanovnika: 200000

NOTE: Mape (Dictionary/Hash) su jednake bez obzira na poredak njihovih elemenata (eng. properties). U primjerima ispod mapa 1 je jednaka mapi 2.

#PRIMJER MAPE 1
sarajevo:
  drzava: "Bosna i Hercegovina"
  stanovnika: 500000
  
#PRIMJER MAPE 2
sarajevo:
  stanovnika: 500000
  drzava: "Bosna i Hercegovina"

To nije slucaj sa listama, liste su poredane (eng. ordered) kolekcije podataka sto znaci da je poredak elemenata unutar liste bitan. Na primjeru ispod dvije liste nisu jednake iz razloga sto se poredak elemenata u listama razlikuje.

# Lista 1
BiH:
  - sarajevo
  - mostar
  - tuzla
  - banjaluka
  - neum
  
# Lista 2
BiH:
  - banjaluka
  - neum
  - mostar
  - tuzla
  - sarajevo

Takodjer bitno je napomenuti da je YAML superset JSON-a sto znaci da svaki validan JSON dokument takodjer predstavlja i validan YAML dokument.

Dodatna Literatura

Ukoliko zelite prosiriti svoje znanje o YAML-u preporuka je da pogledate sljedecu dodatnu literaturu:

PreviousDevOps Learning PathNextSSL - Secure Sockets Layer

Last updated 1 year ago

Was this helpful?

YAML Ain’t Markup Language (YAML™) version 1.2
YAML - Tutorials Point