Condivisione della tecnologia

Nativo del cloud

2024-07-12

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

Nativo del cloud

una definizione

Le definizioni più autorevoli attualmente provengono principalmente da Pivotal e dalla Cloud Native Computing Foundation (CNCF).

1.1 Fondamentale

  • 4 punti chiave:
    DevOps持续交付微服务容器化
  • Sei caratteristiche:
    模块化(Modularity)可观测性(Observability)可部署性(Deployability)
    可测试性(Testability)可处理性(Disposability)可替换性(Replaceability)
  • Il cloud nativo è una raccolta di idee, che include sia la tecnologia (microservizi, infrastruttura agile) che la gestione (DevOps, distribuzione continua, legge di Conway, riorganizzazione, ecc.). Il cloud nativo è una raccolta di tecnologie cloud e metodi di gestione aziendale.

1.2 Controllo di qualità

  • La tecnologia nativa del cloud aiuta le organizzazioni a creare ed eseguire applicazioni scalabili in modo elastico in nuovi ambienti dinamici come il cloud pubblico, il cloud privato e il cloud ibrido.
  • Le tecnologie rappresentative del cloud nativo includono contenitori, mesh di servizi, microservizi, infrastruttura immutabile e API dichiarativa. Queste tecniche consentono di costruire sistemi ad accoppiamento libero che siano tolleranti ai guasti, facili da gestire e facili da osservare.
  • Combinate con un'automazione affidabile, le tecnologie native del cloud consentono agli ingegneri di apportare facilmente modifiche importanti e frequenti e prevedibili ai sistemi.

2. Caratteristiche tecniche

2.1 Architettura dei microservizi:

Il cloud nativo sostiene l'uso dell'architettura dei microservizi per creare applicazioni, suddividendo le applicazioni in più servizi piccoli, indipendenti e distribuibili in modo indipendente, ciascuno focalizzato sulla risoluzione di funzioni aziendali specifiche. Ciò migliora la scalabilità, la flessibilità e la manutenibilità delle applicazioni.

2.2 Distribuzione in contenitori:

Le applicazioni native del cloud vengono generalmente distribuite utilizzando la tecnologia container come Docker, che consente la distribuzione multipiattaforma, portabile e coerente impacchettando l'applicazione e le sue dipendenze in immagini container. La containerizzazione offre inoltre i vantaggi dell'isolamento e dell'utilizzo delle risorse, consentendo alle applicazioni di essere eseguite in modo più efficiente.

2.3 Orchestrazione dinamica e gestione automatizzata:

La nativizzazione del cloud enfatizza l'uso di strumenti e piattaforme automatizzati (come Kubernetes) per orchestrare e gestire dinamicamente le applicazioni, gestire automaticamente operazioni come la distribuzione, il ridimensionamento, gli aggiornamenti e il monitoraggio dei contenitori, migliorare la flessibilità e l'affidabilità delle applicazioni e ridurre la complessità operativa .

2.4 Scalatura elastica:

Il cloud nativo consente alle applicazioni di scalare in modo elastico in base alle condizioni di carico. Attraverso l'orchestrazione automatizzata dei contenitori e il rilevamento dei servizi, le istanze del contenitore possono essere aggiunte o rimosse dinamicamente per adattarsi ai diversi cambiamenti di carico e migliorare le prestazioni delle applicazioni e l'utilizzo delle risorse.

2.5 Consegna e implementazione continue:

La nativizzazione del cloud prevede l'uso di metodi di integrazione continua e distribuzione continua (CI/CD) per ottenere una distribuzione e una distribuzione rapida delle applicazioni. Attraverso processi automatizzati di creazione, test e distribuzione, gli aggiornamenti delle applicazioni possono essere inviati in modo rapido e affidabile all'ambiente di produzione rischio e costo temporale della pubblicazione.


Tre stack tecnologici

3.1 Containerizzazione

  • Motore del contenitore: Docker, ad esempio, è un motore del contenitore di applicazioni open source che confeziona le applicazioni e le relative dipendenze in immagini del contenitore standardizzate. Le immagini del contenitore possono essere eseguite in qualsiasi ambiente che supporti Docker, garantendo la coerenza delle applicazioni negli ambienti di sviluppo, test e produzione.
  • Runtime del contenitore: come containerd o runc, è responsabile della gestione del ciclo di vita del contenitore, inclusa la creazione, l'avvio, l'arresto, l'eliminazione del contenitore e altre operazioni, nonché l'interazione con le risorse dell'host.
  • Orchestrazione dei container: Kubernetes (K8s), ad esempio, è attualmente la piattaforma di orchestrazione dei container più popolare. Fornisce un potente set di API e set di strumenti per la distribuzione automatizzata dei container, la pianificazione, l'espansione e la contrazione, il bilanciamento del carico, gli aggiornamenti in sequenza e l'autoriparazione. ., rilevamento dei servizi, gestione della configurazione e altre operazioni.

3.2 Architettura dei microservizi

  • Microservizi: scomporre una grande applicazione monolitica in un insieme di piccoli servizi indipendenti. Ogni servizio si concentra su una singola funzione aziendale e interagisce tramite API. I microservizi collaborano tra loro attraverso meccanismi di comunicazione leggeri (come API RESTful, gRPC, ecc.), che aiutano ad aumentare la velocità di sviluppo, ridurre l'accoppiamento e migliorare la scalabilità e la tolleranza agli errori del sistema.

3.3 Comunicazione tra servizi

  • API RESTful:
    Basata sul protocollo HTTP e sui suoi diversi metodi (GET, POST, PUT, DELETE, ecc.), l'interfaccia è progettata in uno stile architettonico orientato alle risorse ed è ampiamente utilizzata nelle interazioni tra microservizi.
  • gRPC:
    Un framework RPC (Remote Procedure Call) ad alte prestazioni e di uso generale sviluppato da Google, basato sul protocollo HTTP/2 e sul protocollo di serializzazione Protocol Buffers, ed è adatto a scenari con elevati requisiti di prestazioni ed efficienza.
  • coda di messaggi:
    Come RabbitMQ, Apache Kafka, Amazon SQS, ecc., come middleware di comunicazione asincrona, utilizzato per disaccoppiare i servizi, gestire i picchi di carico e implementare un'architettura basata sugli eventi.

3.4 Rete di servizi

  • Tecnologia mesh di servizi:
    Come Istio, Linkerd, Envoy, ecc., si trovano tra i servizi. In quanto livello di infrastruttura trasparente, sono responsabili della comunicazione di rete, dell'instradamento, della sicurezza, dell'osservabilità e di altre funzioni tra i servizi. Una rete di servizi astrae la complessità della comunicazione tra servizi, eliminando la necessità per gli sviluppatori di implementare queste funzioni nel codice dell'applicazione.

3.5 Integrazione continua e distribuzione continua (CI/CD)

  • Strumenti CI/CD:
    Come Jenkins, GitLab CI/CD, GitHub Actions, Azure DevOps, ecc., utilizzati per automatizzare il processo di creazione, test, confezionamento, rilascio e distribuzione dello sviluppo del software. Le pratiche CI/CD aiutano ad abbreviare i cicli di iterazione, a migliorare la qualità del software e a ridurre gli errori causati dall'intervento manuale.

3.6 Infrastruttura dichiarativa

  • Configurazione dichiarativa:
    Utilizza file di configurazione in formato YAML o JSON per descrivere lo stato di destinazione della distribuzione dell'applicazione, come i manifesti YAML di Kubernetes. Gli sviluppatori devono solo definire lo stato desiderato e il sistema gestirà automaticamente come raggiungere questo stato.
  • Strumenti di gestione dell'infrastruttura come codice (IaC):
    Come Terraform, CloudFormation, ecc., utilizzati per la gestione dell'infrastruttura su piattaforme cloud per ottenere il controllo della versione, la distribuzione automatizzata e la gestione della coerenza dell'infrastruttura.

3.7 Catena di strumenti DevOps

  • Aggregazione dei registri:
    Come ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Datadog, ecc., utilizzati per raccogliere, analizzare, archiviare, cercare, analizzare e visualizzare i dati di registro.
  • tenere sotto controllo:
    Come Prometheus, Grafana, New Relic, Dynatrace, ecc., forniscono il monitoraggio delle prestazioni del sistema e delle applicazioni.
  • Traccia errore:
    Come Sentry, Bugsnag, Rollbar, ecc., utilizzati per acquisire, analizzare e gestire eccezioni ed errori durante il runtime dell'applicazione.
  • Ingegneria del caos:
    Come Chaos Monkey, Chaos Toolkit, ecc., introducendo in modo proattivo guasti nell'ambiente di produzione per testare le prestazioni del sistema e le capacità di ripristino in condizioni anomale.

3.8 Elaborazione serverless (Serverless)

  • Servizio senza server:
    Come AWS Lambda, Google Cloud Functions, Funzioni di Azure, ecc., che consentono agli sviluppatori di scrivere ed eseguire frammenti di codice (funzioni) senza preoccuparsi del funzionamento e della manutenzione del server sottostante. Vengono eseguiti e fatturati solo su richiesta quando la funzione E 'attivato.

Quattro scenari applicativi

La tecnologia nativa del cloud ha ampie prospettive di applicazione in molti campi, inclusi ma non limitati a:

  • Applicazioni Internet su larga scala: crea applicazioni Internet ad alta disponibilità, ad alte prestazioni e altamente scalabili.
  • Attività finanziarie: fornire metodi di sviluppo e distribuzione delle applicazioni sicuri, affidabili ed efficienti per migliorare l'affidabilità e la sicurezza delle applicazioni aziendali finanziarie.
  • Intelligenza artificiale e Big Data: fornire metodi di sviluppo e distribuzione di applicazioni efficienti, scalabili ed elastici per applicazioni AI e Big Data.
  • Internet delle cose: elabora enormi quantità di dati provenienti da sensori, ottieni un'implementazione rapida e una scalabilità elastica e migliora l'affidabilità e la manutenibilità delle applicazioni Internet delle cose.
  • Blockchain: fornire metodi di sviluppo e distribuzione di applicazioni efficienti, scalabili ed elastici per le applicazioni blockchain.

Questo è tutto basato sul cloud nativo, grazie per aver letto!