
Økosystemet for containerteknologier udvikler sig hurtigt, og der mangler gode arbejdsmetoder på dette område. Alligevel anvendes Kubernetes og containere i stigende grad — både til at modernisere gamle applikationer og til at udvikle moderne cloud-applikationer.
Kommandoen har samlet prognoser, råd og bedste praksis for markedsledere fra Gartner, 451 Research, StacxRoх og andre. Dette vil fremme og accelerere implementeringen af containere i produktionsmiljøer.
Hvordan kan du vurdere, om din virksomhed er klar til at implementere containere i produktionsmiljøet?
, i 2022 vil over 75 % af organisationer anvende containeriserede applikationer i produktion. Dette er væsentligt mere end i øjeblikket, hvor sådanne applikationer anvendes af mindre end 30 % af virksomhederne.
Ifølge , den forventede markedsværdi for anvendelse af containerteknologier i 2022 vil være $4,3 milliarder. Dette er mere end det dobbelte af de beløb, der blev prognoseret i 2019, og vækstraten for markedet er 30 %.
I 87 % af de adspurgte angav, at de i øjeblikket bruger containerteknologier. Til sammenligning var andelen 55 % i 2017.
På trods af den stigende interesse og væksten i implementeringen af containere kræver deres lancering i produktion træning på grund af teknologisk umodenhed og mangel på know-how. Organisationer skal realistisk vurdere de forretningsprocesser, der kræver containerisering af applikationer. IT-ledere bør vurdere, om de har den nødvendige færdighedssammensætning til at gå videre, med tanke på behovet for hurtig læring.
mener, at spørgsmålene i billedet nedenfor kan hjælpe med at vurdere, om du er klar til at implementere containere i produktionen:

De mest almindelige fejltagelser ved brug af containere i produktion
Organisationer undervurderer ofte den indsats, der kræves for at operationalisere containere i produktionen. flere almindelige fejltagelser i kundernes scenarier ved anvendelse af containere i produktionsmiljøer:

Hvordan sikrer man containersikkerhed?
Sikkerhed bør ikke tages op "senere". Det bør integreres i DevOps-processen, hvilket har ført til skabelsen af en særlig term — DevSecOps. Organisationer skal planlægge gennem hele livscyklussen for udviklingen, der omfatter bygge- og udviklingsprocessen, distribution og lancering af applikationen.
:
- Integrer scanningsprocessen for applikationsbilleder for at opdage sårbarheder i CI/CD-continuous integration/continuous delivery-pipelinen. Applikationer scannes i byggestadierne og softwareudrulningen. Understreg vigtigheden af at scanne og identificere komponenter med open source, biblioteker og rammer. Brug af gamle sårbare versioner af udviklerne er en af de primære årsager til container-sårbarheder.
- Forbedr konfigurationen ved hjælp af Center for Internet Security-tests (), der er tilgængelige for både Docker og Kubernetes.
- Sørg for at implementere adgangskontrol, sikre opdeling af pligter og indføre en politik for hemmelighedshåndtering. Fortrolige oplysninger, såsom Secure Sockets Layer (SSL)-nøgler eller databaselegitimationsoplysninger, krypteres af orkestratoren eller tredjeparts administrationsservices og leveres under kørsel.
- Undgå containere med forhøjede privilegier ved hjælp af sikkerhedspolitikker, da dette reducerer potentielle hackingrisici.
- Brug sikkerhedsværktøjer, der tilbyder whitelist, adfærdsmonitorering og anomalidetektion for at forhindre ondsindede handlinger.
:
- Udnyt Kubernetess indbyggede funktioner. Konfigurer adgang for brugere ved at bruge roller. Sørg for, at du ikke giver unødvendige tilladelser til enkeltindivider, selvom det kan tage tid at overveje de minimalt nødvendige tilladelser. Det kan virke tillokkende at give clusteradministratoren brede privilegier, da det sparer tid i den indledende fase. Men enhver kompromittering eller fejl i kontoen kan føre til ødelæggende konsekvenser senere.
- Undgå at duplikere adgangstilladelser. Det kan nogle gange være nyttigt at gøre, så forskellige roller overlapper, men det kan føre til driftsproblemer og skabe 'døde zoner' ved fjernelse af tilladelser. Derudover er det vigtigt at fjerne ubrugte og inaktive roller.
- Sæt netværkspolitikker: isoler moduler for at begrænse adgangen til dem; giv eksplicit internetadgang til de moduler, der har brug for det, ved hjælp af etiketter; giv eksplicit forbindelse mellem de moduler, der har brug for at kommunikere med hinanden.
Hvordan man organiserer overvågning af containere og tjenester i dem
Sikkerhed og overvågning — ved implementering af Kubernetes-klynger. Udviklere er altid mere fokuseret på funktionerne i de applikationer, de udvikler, end på aspekterne ved .
:
- Forsøg at overvåge tilstanden af containere eller tjenester i dem sammen med overvågning af værtssystemerne.
- Prioriter producenter og værktøjer med dyb integration i containereorchestration, især Kubernetes.
- Vælg værktøjer, der leverer detaljeret logføring, automatisk opdagelse af tjenester og realtidsanbefalinger ved hjælp af analytics og/eller maskinlæring.
:
- At bruge værktøjer til automatisk opdagelse og overvågning af container-metrics, samt korrelation af ydeevnemetrikker som CPU, hukommelse og oppetid.
- Sikre optimal kapacitetsplanlægning ved at forudsige kapacitetsudnyttelse baseret på overvågningsdata fra containere.
- Organisere overvågning af applikationer, der kører i containere, efter tilgængelighed og ydeevne, hvilket er nyttigt både for kapacitetsplanlægning og løsning af ydeevneproblemer.
- Automatisere arbejdsprocesser ved at tilbyde styring og skaleringsunderstøttelse for containere og deres driftsmiljøer.
- Automatisere adgangskontrol for at overvåge brugerdatabasen, deaktivere forældede og gæstekonti, fjerne unødvendige rettigheder.
- Sikre, at dit værktøjssæt kan overvåge disse containere og applikationer i forskellige miljøer (cloud, lokale eller hybride) for visualisering og sammenligning af ydeevne i infrastruktur, netværk, systemer og applikationer.
Hvordan man opbevarer data og sikrer dem
Når antallet af arbejdscontainere stiger under bevarelse af tilstand, skal kunderne tage højde for opbevaringen af data uden for værten samt behovet for at beskytte disse data.
Ifølge data fra , er databeskyttelse den største bekymring blandt de fleste respondenter (61%).
Dataforskydning er den primære sikkerhedsstrategi (64%), men respondenterne benytter også overvågning af runtime
(49%), sårbarhedsscanning i registrene (49%), sårbarhedsscanning i CI/CD-pipelines (49%) og blokering af anomalier gennem runtime-beskyttelse (48%).
:
- Vælg datalagringsløsninger, der er baseret på principperne for Det er bedst at vælge dem, der opfylder kravene til datalagring for container-tjenester, er hardware-uafhængige, styres via API, har en distribueret arkitektur og understøtter lokal implementering samt implementering i offentlige skyer.
- Undgå proprietære plugins og grænseflader. Vælg producenter, der sikrer integration med Kubernetes og understøtter standardgrænseflader såsom CSI (Container Storage Interfaces).
Hvordan man arbejder med netværk
Den traditionelle model for virksomhedens netværk, hvor IT-specialister skaber netværksmiljøer til udvikling, test, kvalitetssikring og produktion for hvert projekt, stemmer ikke altid godt overens med arbejdsprocessen for kontinuerlig udvikling. Desuden spænder container-netværk over flere niveauer.
I overordnede regler, som implementeringen af en klynge-netværksløsning skal overholde:
- Containere planlagt på samme knude skal kunne udveksle data med andre moduler uden at bruge NAT (Network Address Translation).
- Alle systemdemoner (baggrundsprocesser, som kubelet), der kører på en bestemt knude, skal kunne interagere med containere, der kører på samme knude.
- Containere, der bruger skal kunne kommunikere med alle andre containere på alle andre knuder uden brug af NAT. Bemærk, at værtens netværk kun understøttes på Linux-værter.
Netværksløsninger skal være tæt integreret med primitive og politikker i Kubernetes. IT-ledere skal stræbe efter en høj grad af netværksautomatisering, give udviklere de rigtige værktøjer og tilstrækkelig fleksibilitet.
:
- Find ud af, om din CaaS (Container as a Service) eller dit SDN (Software Defined Network) understøtter Kubernetes-netværk. Hvis ikke, eller hvis understøttelsen er utilstrækkelig, skal du bruge et netværksinterface CNI (Container Network Interface), der understøtter den nødvendige funktionalitet og politikker.
- Sikre dig, at din CaaS eller PaaS (Platform as a Service) understøtter oprettelse af indgående controllere og/eller load balancere, som distribuerer indgående trafik mellem klyngens noder. Hvis der ikke er en sådan mulighed, skal du overveje at bruge tredjeparts proxyer eller mekanismer til service mesh.
- Uddan dine netværksingeniører i at arbejde med Linux-netværk og automatiseringsværktøjer, for at mindske færdighedsgabet og øge fleksibiliteten.
Hvordan man styrer livscyklussen for applikationer
For automatiseret og problemfri levering af applikationer er det nødvendigt at supplere containerorkestrering med andre automatiseringsværktøjer som Infrastruktur som kode (IaC) produkter. Disse omfatter Chef, Puppet, Ansible og Terraform.
Der kræves også automatiseringsværktøjer til bygning og distribution af applikationer (se ""). Containere giver også muligheder for skalering, svarende til de muligheder, der eksisterede ved udrulning af virtuelle maskiner (VM). Derfor skal IT-ledere have .
:
- Etabler standarder for basis-containerbilleder med hensyn til størrelse, licensering og fleksibilitet for udviklernes tilføjelse af komponenter.
- Brug konfigurationsstyringssystemer til at styre livscyklussen for containere, der hoster konfigurationen i lag baseret på basisbilleder, der findes i offentlige eller private repositories.
- Integrer CaaS-platformen med automatiseringsværktøjer for at automatisere hele applikationsarbejdsgangen.
Hvordan man styrer containere med orkestratorer
De grundlæggende funktionaliteter til implementering af containere tilbydes på niveauerne for orkestrering og planlægning. Ved planlægning placeres containere på de mest optimale værter i klyngen, som bestemt af kravene til orkestreringsniveauet.
Kubernetes er de facto blevet standarden for orkestrering af containere med et aktivt fællesskab, og det understøttes af de fleste førende kommercielle udbydere.
:
- Definér de grundlæggende krav til sikkerhedsstyring, overvågning, politikstyring, datalagring, netværkshåndtering og livscyklushåndtering af containere.
- Baseret på disse krav skal du vælge det værktøj, der bedst opfylder dine behov og brugsscenarier.
- Brug Gartner-undersøgelser (se ""), for at forstå fordele og ulemper ved de forskellige implementeringsmodeller for Kubernetes og vælge den mest passende til din opgave.
- Vælg en udbyder, der kan sikre hybrid orkestrering af arbejdscontainere i flere miljøer med tæt integration til backends, fælles administrationsplaner og sammenhængende prismodeller.
Sådan udnytter du mulighederne hos cloud-udbydere
, at interessen for implementering af containere i offentlige cloud IaaS stiger på grund af tilgængeligheden af færdige CaaS-tilbud samt tæt integration af disse tilbud med andre produkter, der tilbydes af cloud-udbydere.
IaaS-clouds tilbyder ressourceforbrug på demand, hurtig skalerbarhed og , hvilket hjælper med at undgå behovet for dybdegående viden om infrastrukturen og dens vedligeholdelse. De fleste cloud-udbydere tilbyder containerstyring, og nogle tilbyder flere orkestreringsmuligheder.
Nøgle-cloud-udbydere af administrerede tjenester vises i tabellen:
Cloud-udbyder
Servicetype
Produkt/service
Alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes
Amazon Web Services (AWS)
Native Cloud Service
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate
Giant Swarm
MSP
Giant Swarm Managed Kubernetes Infrastructure
Google
Native Cloud Service
Google Container Engine (GKE)
IBM
Native Cloud Service
IBM Cloud Kubernetes Service
Microsoft
Native Cloud Service
Azure Kubernetes Service, Azure Service Fabric
Oracle
Native Cloud Service
OCI Container Engine for Kubernetes
Platform9
MSP
Managed Kubernetes
Red Hat
Hosted Service
OpenShift Dedicated & Online
VMware
Hosted Service
Cloud PKS (Beta)
Mail.ru Cloud Solutions*
Native Cloud Service
Mail.ru Cloud Containers
* Vi skjuler ikke, at vi selv har tilføjet os under oversættelsen 🙂
Leverandører af offentlige skyer tilføjer også nye funktioner og lancerer lokale produkter. I den nærmeste fremtid vil cloud-leverandører udvikle støtten til hybride skyer og multi-cloud-miljøer.
:
- Vurder objektivt din organisations evne til at implementere og administrere passende værktøjer, samt overvej alternative tjenester til administration af cloud-containere.
- Vælg software omhyggeligt, brug open source hvor det er muligt.
- Vælg leverandører med ensartede driftsmodeller i hybride miljøer, der tilbyder administration af sammenkoblede klynger fra en enkelt platform, ligesom leverandører, der forenkler selvbetjening af IaaS.
:
- Det er værd at kigge efter distributioner, der understøtter høj tilgængelighed lige ud af boksen. Dette inkluderer support til flere centrale arkitekturer, højtilgængelige komponenter i etcd, samt backup og gendannelsesmuligheder.
- For at sikre mobilitet i Kubernetes-miljøer er det bedst at vælge cloud-leverandører, der understøtter et bredt udvalg af implementeringsmodeller: fra lokale til hybrid- og multi-cloud.
- Tilbud fra leverandører bør også vurderes med hensyn til enkelheden ved opsætning, installation og oprettelse af klynger samt opdateringer, overvågning og fejlfinding. Et grundlæggende krav er støtte til fuldt automatiserede klyngeopdateringer med nul nedetid. Den valgte løsning skal også give mulighed for manuel klyngeopdatering.
- Identitets- og adgangsstyring er vigtig både med hensyn til sikkerhed og administration. Sørg for, at den valgte Kubernetes-distribution understøtter integration med autentificerings- og autorisationsværktøjer, der anvendes internt i virksomheden. RBAC og detaljeret adgangskontrol er også vigtige funktionssæt.
- Den valgte distribution skal enten have en egen netværksløsning defineret af softwaren, der dækker et bredt spektrum af krav stillet af forskellige applikationer eller infrastruktur, eller støtte en af de populære implementeringer af netværk baseret på CNI, herunder Flannel, Calico, kube-router eller OVN.
Implementeringen af containere i produktion bliver en hovedretning, hvilket bevises af resultaterne fra en undersøgelse udført på om infrastruktur, drift og cloud-strategier (IOCS) i december 2018:

Som vi kan se, anvender 27% af de adspurgte allerede containere i deres arbejde, mens 63% planlægger at gøre det.
I 24% af respondenterne rapporterede, at de investerer mere end en halv million dollars om året i containerteknologier, mens 17% bruger mere end en million dollars om året på dem.
Artiklen er skrevet af teamet fra cloudplatformen .
Andre artikler om emnet:
- .
- .
- .
Kilde: habr.com
