Programvareutviklere blir ofte sett på som ensomme, mavericks og tilbaketrukne typer, glad i å jobbe i enslige miljøer – hvis det fantes en parallell for livet ute på kanten, ville programmerere allerede legemliggjort det, og gitt programvareingeniører en naturlig tilhørighet til koding i kanten. datamiljøer.
Alle utviklere er de samme. Det er et omstridt utsagn, men det gjelder i det minste hvis vi er enige om at alle programvareutviklere er vaneskapninger: De har alle en uttømmende tilnærming til detaljer, de deler en naturlig analytisk hjernetype som er flink til å løse problemer, og de fleste har en litt nervepirrende forkjærlighet for brus og pizza.
Men selvfølgelig er ikke alle utviklere like. Noen er fokusert på øvre “presentasjonslag”-grensesnitt, noen er nettverksspesialister, noen er kjerneplattformguruer fokusert på funksjonalitet og ytelse, mens atter andre er systemarkitekter, penetrasjonstestere, datavitenskapsmestere og så videre.
SE: Ansettelsessett: Python-utvikler (TechRepublic Premium)
Men utviklere klassifiseres ikke bare etter arten av deres tekniske spesialitet, de skiller seg også ut i kraft av implementeringsoverflaten som arbeidet deres brukes på. Noen vil fokusere på smarttelefoner, noen på stasjonære datamaskiner, noen på innebygde systemer og noen på skybaserte applikasjoner som potensielt kan dekke alle domene.
Innebygging av den utviklende kanten
Innenfor den siste kadreen av kodere finner vi de ofte uelskede, innebygde databehandlerne. Innebygde utviklere er ikke helt like i tankesettet til avanserte utviklere, ettersom de har hatt sin rolle ganske historisk definert for å fokusere på alt fra hjemmevarmesystemer til treningssporere og kanskje til og med fjernkontrollen til fjernsynet.
Men som vi vet, ligger de innebygde enhetene selv nå på grensen over tingenes internett. Flyplasskioskdatamaskiner behandles i sanntid, systemer i bilen er nå koblet til en nettforbindelse, transitt- og billettinnkrevingsmaskiner har en intermitterende kobling til skyen, og fabrikkroboter og medisinske systemer fungerer nå i en alltid-på, alltid tilkoblet dataplan.
Noe innebygd databehandling vil fortsatt bli kjent som innebygd databehandling, men mange av disse enhetene – og spesifikt sensorene og målerne i dem – vil nå danne strukturen til det vi refererer til som databehandlingskanten. Dette er hvordan edge er forskjellig fra innebygd og forskjellig fra distribuert databehandling. Dette er ikke bare maskiner som flytter ut av datasenteret, dette er maskiner som gjør en bestemt jobb.
Som TechRepublic har allerede lært oss: «Edge computing er annerledes [to distributed computing] på grunn av måten edge computing er knyttet til IoT-data som samles inn fra eksterne sensorer, smarttelefoner, nettbrett og maskiner. Disse dataene må analyseres og rapporteres i sanntid, slik at resultatene umiddelbart kan handles for personell på stedet.»
All den forklarende utstillingen er ute av veien, hvis dette er et nytt operativt substrat for programvarekode å eksistere i, hva gjør da en kantutvikler?
Hva gjør en kantutvikler?
“Når vi snakker om avanserte enheter, snakker vi selvfølgelig om å bringe databehandling og analyser nærmere enheten,” sa Alessandro Chimera, direktør for digitaliseringsstrategi for bedriftsdataplattformselskapet Tibco. “Dette gir oss naturligvis en sjanse til å redusere ventetiden og øke responstiden til kantprogramvare.”
Chimera minner oss om at så mange edge-enheter er installert i tilkoblede biler, og påpeker at det ville være for mye ventetid for å koble til noen form for skytjeneste i disse miljøene – og uansett ville denne handlingen blitt umulig hvis bilen er i en tunnel. Så på mange måter snakker vi om å reversere vår moderne forestilling om kontinuerlig tilkoblet databehandling.
«Alt det betyr er at edge-utviklere må tenke på hvor mye data de sender tilbake til et skydatasenter på et gitt tidspunkt; de må tenke mer nøye over hvilke data som kan behandles lokalt, la Chimera til. “Hvor edge-enheter er begrenset i kraft, må edge-utviklere tenke på batteribruk når de utvikler og bygger sine edge-applikasjoner. Overføring til skyen taper energi, så hvis en applikasjon kan utsette en tilkobling fra én gang hvert 15. minutt til én gang i timen – spesielt når det ikke er tidskritisk eller oppdragskritisk med tanke på applikasjonens funksjonalitet – så gir det god teknisk mening .”
Joe Drumgoole, seniordirektør for utviklerrelasjoner i MongoDB, er i stor grad enig i Chimeras følelser, men mener at vi har vært her før.
“Edge-utviklere: For en sjarmerende, quixotic tanke,” sa Drumgoole. «Jeg vokste opp med programmeringsspråket Ada, som var spesialbygd for denne ideen om kantutviklere. På den tiden kalte vi dem sanntidsingeniører eller utviklere av innebygde systemer. Ada-språket er i stor grad henført til historien, men kantutvikling har fortsatt mange av de samme begrensningene. Men nå er verktøyene bedre, språkene er mer mangfoldige og verden bygger verktøysett for avanserte utviklere.»
Men Drumgoole er filosofisk om tilstanden til programvareutvikling og fremgang generelt og mener at noen ting ikke endres. Som vi vet, er kantsensorer ofte enkle enheter av maskinvare som kjører et relativt enkelt enkelt program. Minnebegrensningene er reelle – hvem som kjører et Python-program i dag bekymrer seg for minneforbruk? — men vanskelighetene med å jobbe med maskinvare uten skjerm, tastatur eller mus gjenstår.
“Dette er kilden til torturen og gleden ved kantprogrammering,” sa Drumgoole. “Det er noe veldig ærlig med å brenne programmerbare skrivebeskyttede minneenheter. Enten fungerer det eller ikke, og kostnadene ved at det ikke fungerer kan være dramatiske. De beste programmererne forstår maskinvare og programvare, er ikke uvillige til litt lodding, kan lese et oscilloskop og husker fortsatt Ohms lov.»
Hvordan administrere massive mikroklynger
Mye er i endring i dette rommet. I dag må en edge-utvikler forstå beste praksis for cloud-native utvikling. Kanskje enda mer fundamentalt, må de ha en bevissthet om tilpasningene de må gjøre for å levere til det unike med edge.
Daglig leder for edge i SUSE, Keith Basil, tror det kan være ganske utfordrende. Han sier at dette er fordi det kombinerer ferdighetssett fra typisk forskjellige bransjer, alt som trengs i et enkelt team. Med sitt dedikerte kantteam har SUSE spesifikk erfaring på dette området; det er til og med et forslag her om at vi kanskje bør tenke på godt befolkede kantsoner med et nytt begrep.
“I en DevOps-forstand, ideen [of edge as] et sett med “mikro-klynger” i stor skala er ganske virkningsfulle, sa Basil. “Her ser vi utviklere som trenger å jobbe med nye begrensninger når de bygger programvare i containere, som alle må ta hensyn til forskjellige CPU-arkitekturer, begrenset minne og mindre diskstørrelser som finnes på maskinvare i kanten.”
Med edge kjøres Kubernetes-klynger på et eksternt sted, og industrielle IOT-enheter er jevnaldrende på samme nettverk.
“Som en kantutvikler er et av de første spørsmålene som kommer til tankene spørsmålet om tilkobling til disse IIOT-enhetene,” sa Basil. “Bygger man IIOT-protokollstøtte i applikasjonen, eller utvider man et eksisterende åpen kildekodeprosjekt til å håndtere administrasjonen av enhetstilgang i stedet?”
Det er den tøffe delen av edge computing: Noe av denne diskusjonen er fortsatt åpen for debatt, slik er den fortsatt begynnende naturen til så mange distribusjoner.
Edge: Hastighet, ressurser og forståelighet
Fordi kantsensorer er designet og faktisk kreves for å levere data ekstremt raskt i sanntid eller nesten sanntid innenfor svært begrensede dataområder, er det ganske klart at hvert mikrogram kraft teller. I følge Alan Jacobson, sjef for data- og analyse hos Alteryx, er hovedfokusområdene til en kantutvikler tredelt: hastighet, begrenset dataressurs og forståelighet.
Når det gjelder Alteryx sin teknologipartner McLaren Racing, har hver Formel 1 racerbil rundt 300 telemetrisensorer som leverer over 100 000 sporparametere i løpet av en løpshelg. Enorme datasett sendes verden rundt i løpet av sekunder for visse typer analyser, mens i andre tilfeller brukes dataene enten ved sporet eller analysert på kjøretøyet.
Med så store volumer generert kantsensordata, er det ikke alltid mulig å bringe data til analyse. Å ha analytiske plattformer som lar brukeren flytte datakraft dit dit den trengs, er avgjørende i en verden definert av store data, rask databehandling og behovet for spenstige systemer. Å analysere disse store datasettene er det Alteryx gjør.
“Dette kravet til hastighet krever teknologi som er forståelig for både utviklere og domeneeksperter,” forklarte Jacobson. «Enhver innsikt som genereres er ubrukelig hvis ingeniøren på banen ikke lett kan forstå dem. For edge computing der hastighet-til-innsikt er nøkkelen, er det lite tid til QA på resultatene – innsikten er enten umiddelbart nyttig eller den blir forkastet. Fleksible utviklere som vet når de skal skyve data ut eller hente inn data.”
Kantutvikling er fortsatt utvikling
Hvis vi har malt et bilde av en ny dystopisk datasone der kantutviklere gjør det de gjør på en langt mer klinisk granulær måte, og bare sporadisk kryper oppover ut av den opprinnelige sumpen for å spise pizza og brus, så ville det vært feil.
SE: Ansettelsessett: Backend-utvikler (TechRepublic Premium)
Edge-utvikling er fortsatt faktisk utvikling av programvareapplikasjoner, sier VP for EMEA-løsningene og det skybaserte API-selskapet Kong, Chris Darvill.
“Kravene til kantutviklere er på noen måter ikke ulik din mer tradisjonelle utvikler, og i fremtiden vil det ikke være et enten-eller, men faktisk vil begge være nødvendig for å levere løsninger ut til markedet,” Darvill sa. “Edge-utviklere vil bli pålagt å bruke moderne utviklingspraksis preget av veldefinerte APIer for å akselerere byggingen av nye applikasjoner og tjenester gjennom gjenbruk av eksisterende edge og sentraliserte APIer – og de vil også måtte omfavne konsistent verktøy som kan brukes for å sikre de riktige standardene brukes på applikasjoner som utvikles som omfatter et sterkt fokus på sikkerhet, styring og observerbarhet.”
Ja, det vil sannsynligvis bli økt bruk av mikrotjenester, containere og Kubernetes i edge-programvareprogrammering. Og, unektelig, bør praktisk talt hver programvareingeniørjobb i dette området presses mot en skybasert status, selv der lokal databehandling skjer.
Men kantutvikling er fortsatt kode, og kanskje om 10 år vil vi akseptere det som en del av spekteret av kodekompetanse som hver utviklere forventes å kunne vise frem og utføre, omtrent som mobilutvikling nå er en del av etableringen. i dag.
Koden på kanten skjerpes, det samme er verktøyene og verktøysettene, så sørg for å pakke noen allværshansker.