Teknologian jakaminen

Alkuperäinen pilvi

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Alkuperäinen pilvi

määritelmä

Tällä hetkellä arvovaltaisimmat määritelmät tulevat pääasiassa Pivotalilta ja Cloud Native Computing Foundationilta (CNCF).

1.1 Keskeinen

  • 4 avainkohtaa:
    DevOps持续交付微服务容器化
  • Kuusi ominaisuutta:
    模块化(Modularity)可观测性(Observability)可部署性(Deployability)
    可测试性(Testability)可处理性(Disposability)可替换性(Replaceability)
  • Cloud native on kokoelma ideoita, jotka sisältävät sekä teknologiaa (mikropalvelut, ketterä infrastruktuuri) että hallintaa (DevOps, jatkuva toimitus, Conwayn laki, uudelleenjärjestely jne.).

1.2 CNCF

  • Pilvipohjainen teknologia auttaa organisaatioita rakentamaan ja suorittamaan joustavasti skaalautuvia sovelluksia uusissa dynaamisissa ympäristöissä, kuten julkisessa pilvessä, yksityisessä pilvessä ja hybridipilvessä.
  • Pilvipohjaisia ​​edustavia teknologioita ovat säiliöt, palveluverkko, mikropalvelut, muuttumaton infrastruktuuri ja deklaratiivinen API. Nämä tekniikat mahdollistavat löyhästi kytkettyjen järjestelmien rakentamisen, jotka ovat vikasietoisia, helppoja hallita ja tarkkailla.
  • Yhdessä luotettavan automaation kanssa pilvipohjaiset teknologiat tekevät insinöörien helpoksi tehdä toistuvia ja ennakoitavia suuria muutoksia järjestelmiin.

2. Tekniset ominaisuudet

2.1 Mikropalveluarkkitehtuuri:

Cloud native kannattaa mikropalveluarkkitehtuurin käyttöä sovellusten rakentamiseen, jakamalla sovellukset useisiin pieniin, itsenäisiin ja itsenäisesti käyttöönotettavissa oleviin palveluihin, joista jokainen keskittyy tiettyjen liiketoimintatoimintojen ratkaisemiseen. Tämä parantaa sovelluksen skaalautuvuutta, joustavuutta ja ylläpidettävyyttä.

2.2 Konttikäyttö:

Pilvipohjaiset sovellukset otetaan tyypillisesti käyttöön käyttämällä säilöteknologiaa, kuten Dockeria, joka mahdollistaa eri alustojen, kannettavan ja johdonmukaisen käyttöönoton pakkaamalla sovelluksen ja sen riippuvuudet konttikuviin. Säiliöinti tarjoaa myös eristäytymisen ja resurssien käytön edut, mikä mahdollistaa sovellusten tehokkaamman käytön.

2.3 Dynaaminen orkestrointi ja automaattinen hallinta:

Pilven nativointi korostaa automatisoitujen työkalujen ja alustojen (kuten Kubernetes) käyttöä sovellusten dynaamiseen organisointiin ja hallintaan, toimintojen, kuten kontin käyttöönoton, skaalauksen, päivityksen ja valvonnan, automaattiseen hallintaan, sovellusten joustavuuden ja luotettavuuden parantamiseen sekä toiminnan monimutkaisuuden vähentämiseen .

2.4 Elastinen skaalaus:

Cloud natiivi mahdollistaa sovellusten joustavan skaalauksen kuormitusolosuhteiden mukaan. Automatisoidun säilön organisoinnin ja palvelunhaun avulla säilön esiintymiä voidaan lisätä tai poistaa dynaamisesti, jotta ne mukautuvat erilaisiin kuormitusmuutoksiin ja parantavat sovelluksen suorituskykyä ja resurssien käyttöä.

2.5 Jatkuva toimitus ja käyttöönotto:

Cloud nativeization kannattaa jatkuvan integroinnin ja jatkuvan toimituksen (CI/CD) käyttöä sovellusten nopean toimituksen ja käyttöönoton avulla julkaisun riski ja aikakustannukset.


Kolme teknologiapinoa

3.1 Säiliöinti

  • Säiliömoottori: Esimerkiksi Docker on avoimen lähdekoodin sovelluskonttimoottori, joka pakkaa sovellukset ja niiden riippuvuudet standardoituihin säilökuviin. Säilökuvat voivat toimia missä tahansa Dockeria tukevassa ympäristössä, mikä varmistaa sovellusten johdonmukaisuuden kehitys-, testaus- ja tuotantoympäristöissä.
  • Säilön suoritusaika: kuten containerd tai runc, vastaa säilön elinkaaren hallinnasta, mukaan lukien säilön luomisesta, käynnistämisestä, pysäyttämisestä, poistamisesta ja muista toiminnoista sekä vuorovaikutuksesta isännän resurssien kanssa.
  • Säilön orkestrointi: Esimerkiksi Kubernetes (K8s) on tällä hetkellä suosituin kontin orkestrointialusta, joka tarjoaa tehokkaan joukon sovellusliittymiä ja työkalusarjoja automatisoituun kontin käyttöönottoon, ajoitukseen, laajentamiseen ja supistukseen, kuormituksen tasapainottamiseen, rullaaviin päivityksiin ja itsensä korjaamiseen. , palvelun etsiminen, kokoonpanon hallinta ja muut toiminnot.

3.2 Mikropalveluarkkitehtuuri

  • Mikropalvelut: Jaa suuri monoliittinen sovellus joukoksi pieniä, itsenäisiä palveluita. Jokainen palvelu keskittyy yhteen liiketoimintatoimintoon ja toimii vuorovaikutuksessa API:iden kautta. Mikropalvelut tekevät yhteistyötä keskenään kevyillä viestintämekanismeilla (kuten RESTful API, gRPC jne.), mikä auttaa lisäämään kehitysnopeutta, vähentämään kytkentöjä ja parantamaan järjestelmän skaalautuvuutta ja vikasietoisuutta.

3.3 Palvelujen välinen viestintä

  • RESTful API:
    HTTP-protokollan ja sen eri menetelmien (GET, POST, PUT, DELETE jne.) perusteella käyttöliittymä on suunniteltu resurssilähtöiseen arkkitehtuurityyliin ja sitä käytetään laajasti mikropalvelujen välisessä vuorovaikutuksessa.
  • gRPC:
    Googlen kehittämä korkean suorituskyvyn yleiskäyttöinen RPC (Remote Procedure Call) -kehys, joka perustuu HTTP/2-protokollaan ja Protocol Buffers -serialisointiprotokollaan, ja sopii skenaarioihin, joissa on korkeat suorituskyky- ja tehokkuusvaatimukset.
  • viestijono:
    Kuten RabbitMQ, Apache Kafka, Amazon SQS jne., asynkronisena viestinnän väliohjelmistona, jota käytetään palveluiden erottamiseen, huippukuormien käsittelemiseen ja tapahtumalähtöisen arkkitehtuurin toteuttamiseen.

3.4 Huoltoverkko

  • Palveluverkkotekniikka:
    Kuten Istio, Linkerd, Envoy jne., sijaitsevat palveluiden välissä Läpinäkyvänä infrastruktuurikerroksena ne vastaavat verkkoviestinnästä, reitityksestä, turvallisuudesta, havainnoitavuudesta ja muista palveluiden välisistä toiminnoista. Palveluverkko tiivistää palveluiden välisen viestinnän monimutkaisuuden, jolloin kehittäjien ei tarvitse toteuttaa näitä toimintoja sovelluskoodissa.

3.5 Jatkuva integrointi ja jatkuva käyttöönotto (CI/CD)

  • CI/CD-työkalut:
    Kuten Jenkins, GitLab CI/CD, GitHub Actions, Azure DevOps jne., joita käytetään automatisoimaan ohjelmistokehityksen rakennus-, testaus-, pakkaus-, julkaisu- ja käyttöönottoprosessit. CI/CD-käytännöt auttavat lyhentämään iterointisyklejä, parantamaan ohjelmiston laatua ja vähentämään manuaalisten toimenpiteiden aiheuttamia virheitä.

3.6 Ilmoitusinfrastruktuuri

  • Ilmoittava kokoonpano:
    Käytä YAML- tai JSON-muotoisia määritystiedostoja kuvaamaan sovelluksen käyttöönoton kohdetilaa, kuten Kubernetesin YAML-luetteloita. Kehittäjien tarvitsee vain määrittää haluttu tila ja järjestelmä käsittelee automaattisesti, kuinka tämä tila saavutetaan.
  • Infrastruktuuri koodina (IaC) -hallintatyökalut:
    Kuten Terraform, CloudFormation jne., joita käytetään infrastruktuurin hallintaan pilvialustojen välillä versionhallinnan, automatisoidun käyttöönoton ja infrastruktuurin johdonmukaisuuden hallinnan saavuttamiseksi.

3.7 DevOps-työkaluketju

  • Lokin yhdistäminen:
    Kuten ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Datadog jne., joita käytetään lokitietojen keräämiseen, jäsentämiseen, tallentamiseen, etsimiseen, analysointiin ja visualisointiin.
  • monitori:
    Kuten Prometheus, Grafana, New Relic, Dynatrace jne., tarjoavat järjestelmän ja sovellusten suorituskyvyn seurantaa.
  • Virhejäljitys:
    Kuten Sentry, Bugsnag, Rollbar jne., joita käytetään poikkeuksien ja virheiden sieppaamiseen, analysointiin ja hallintaan sovelluksen ajon aikana.
  • Chaos Engineering:
    Kuten Chaos Monkey, Chaos Toolkit jne., ottamalla ennakoivasti käyttöön vikoja tuotantoympäristöön testatakseen järjestelmän suorituskykyä ja palautumiskykyä epänormaaleissa olosuhteissa.

3.8 Palvelimeton tietojenkäsittely (palvelinton)

  • Palvelimeton palvelu:
    Kuten AWS Lambda, Google Cloud Functions, Azure Functions jne., joiden avulla kehittäjät voivat kirjoittaa ja suorittaa koodinpätkiä (toimintoja) välittämättä taustalla olevan palvelimen toiminnasta ja ylläpidosta. Ne suoritetaan ja laskutetaan vain pyynnöstä laukeaa.

Neljä sovellusskenaariota

Pilvipohjaisella teknologialla on laajat sovellusmahdollisuudet monilla aloilla, mukaan lukien, mutta ei rajoittuen:

  • Laajamittainen Internet-sovellukset: Luo korkean käytettävyyden, korkean suorituskyvyn ja erittäin skaalautuvia Internet-sovelluksia.
  • Rahoitusliiketoiminta: Tarjoa turvallisia, luotettavia ja tehokkaita sovelluskehitys- ja käyttöönottomenetelmiä rahoitusliiketoiminnan sovellusten luotettavuuden ja turvallisuuden parantamiseksi.
  • Tekoäly ja Big Data: Tarjoa tehokkaita, skaalautuvia ja joustavia sovelluskehitys- ja käyttöönottomenetelmiä tekoäly- ja big data -sovelluksiin.
  • Esineiden internet: Käsittele valtavia anturitietoja, saavuta nopea käyttöönotto ja joustava skaalaus sekä paranna esineiden internet-sovellusten luotettavuutta ja ylläpidettävyyttä.
  • Blockchain: Tarjoa tehokkaita, skaalautuvia ja joustavia sovelluskehitys- ja käyttöönottomenetelmiä lohkoketjusovelluksille.

Siinä kaikki pilven alkuperäisestä, kiitos, että luit!