Programiranje

10 napovedi razvoja programske opreme za leto 2018

Siddhartha Agarwal je podpredsednik za upravljanje izdelkov in strategijo za Oracle Cloud Platform.

Razvijalci bi morali goreti od navdušenja nad priložnostmi, ki nas čakajo v letu 2018, saj bodo izdelki in orodja okoli tehnologij, kot so verige blokov, klepetalnice, funkcije brez strežnika in strojno učenje, dovolj zreli za resnične projekte. Hkrati bodo mnogi razvijalci zaskrbljeni, da se bodo vzdržali pritiska za hitrejšo dostavo kode in funkcionalnosti brez ogrožanja varnosti ali učinkovitosti. A tudi na tem področju so dobre novice.

Za razvijalce bo leto 2018 opredeljeno s to napetostjo med izkoriščanjem novih transformativnih priložnosti in obvladovanjem pritiska, da naredimo več, z večjo kakovostjo. Spodaj je 10 napovedi, povezanih s tem, kako se bodo te sile igrale v prihodnjem letu.

1. B2B transakcije, ki uporabljajo blockchain, gredo v proizvodnjo

Podjetja so začela razumeti varnost, zanesljivost in učinkovitost, ki jo lahko pridobijo s transakcijami, ki omogočajo veriženje blokov. Razvijalci bodo v prihodnjem letu izvedli številne primere uporabe verig blokov v finančnih storitvah in proizvodnih verigah. Blockchain je tehnologija, ki omogoča učinkovite, varne, nespremenljive, zaupanja vredne transakcije med organizacijami, ki si morda ne zaupajo popolnoma, in odpravi posrednike.

Razmislite o podjetju, ki naroča izdelke pri zunanjem proizvajalcu. Ti izdelki se pošiljajo prek ladijskega podjetja, pridejo prek carine, prek drugega ladijskega podjetja in na koncu do kupca. Danes preverjanje in uskladitev vsakega koraka večinoma poteka po elektronski pošti in preglednicah, pri čemer sodeluje veliko ljudi in procesov. Blockchain odpravlja ročne procese in usklajevanje tako, da nepreklicno beleži posodobitve v knjigo blockchain, ko najmanjše število strank reče: "Da, ta del transakcije se je zgodil."

Blockchain storitve v oblaku bodo prinesle razširljivost, odpornost, varnost in vnaprej vgrajene integracije s podjetniškimi sistemi, tako da se bodo razvijalci veliko lažje osredotočili na primer poslovne uporabe, namesto na osnovno implementacijo tkanine hyperledger.

2. Klepetalnice se redno pogovarjajo s strankami in zaposlenimi

Ljudje se naveličajo, da za isto delo potrebujejo več mobilnih aplikacij - na primer tri različne aplikacije letalskih prevoznikov z različnimi načini prijave in vkrcanja. Boljši način je zagotoviti enako funkcijo, vendar prek najbolj priljubljene aplikacije v telefonu - sporočanja. Sporočila imajo tri privlačne elemente, ki so skladni v celotnem mediju: takojšen, izrazit in pogovorni - usposabljanje ni potrebno. Zahvaljujoč napredku na področju umetne inteligence in obdelave naravnih jezikov bodo ljudje uporabljali Facebook Messenger, Slack, WeChat, WhatsApp ali glasovnega asistenta, kot sta Amazon Alexa ali Google Home, za postavljanje vprašanj in pridobivanje odgovorov od inteligentnih botov.

Razvijalci lahko z novimi inteligentnimi storitvami za izdelavo botov v oblaku hitro izdelujejo bote, ki razumejo namen stranke, vzdržujejo pogovore in se inteligentno odzivajo, hkrati pa olajšajo integracijo z zalednimi sistemi. Predstavljajte si, kako fotografirate obleko, ki ste jo videli v filmu, in sliko pošljete botu svoje najljubše trgovine z oblačili, ki s prepoznavanjem slik in umetno inteligenco priporoča podobne obleke. Zaposleni bi lahko bili tudi zelo upravičeni do botov pri nalogah, kot so vprašanje, koliko dni počitnic jim je še ostalo, vložitev vozovnice v službo za pomoč uporabnikom ali naročanje nadomestnega prenosnika, kjer sistem sploh ve, do katerih prenosnikov je zaposleni upravičen in lahko zagotavlja posodobitve stanja po njihovem naročilu. Glede na to, da je veliko bolj prizanesljivo eksperimentirati z lastno bazo zaposlenih, lahko razvijalci najprej izkoristijo svoje robote za izdelavo botov za izdelavo in preizkušanje botov, s katerimi se soočajo zaposleni.

3. Gumb izgine: AI postane vmesnik aplikacije

AI postane uporabniški vmesnik, kar pomeni, da sinhroni model odzivanja na zahteve in odzive postopoma izgine. Pametni telefoni so še vedno z „nizkim inteligenčnim kvocientom“, ker jih morate pobrati, zagnati aplikacijo, prositi za nekaj in sčasoma dobiti odgovor. V novi generaciji inteligentnih aplikacij bo aplikacija sprožila interakcije s potisnimi obvestili. Naredimo še korak naprej, kjer bo aplikacija, bot ali navidezni osebni asistent, ki uporablja umetno inteligenco, vedel, kaj storiti kdaj, zakaj, kje in kako. In samo naredi. Dva primera:

  • Aplikacija za odobritev stroškov spremlja vaš vzorec odobritve poročil o stroških, začne samodejno odobriti 99 odstotkov poročil o stroških in na vas opozori le redko poročilo, ki zahteva vašo pozornost.
  • Aplikacija Analytics razume osnovne podatke, vprašanja, ki jih je do zdaj postavil poslovni uporabnik, vprašanja istega nabora podatkov, ki so jih postavili drugi uporabniki v podjetju, in vsak dan ponuja nov vpogled, na katerega analitik morda ni pomislil. Ko organizacije zbirajo več podatkov, nam lahko umetna inteligenca pomaga, da se naučimo, katera vprašanja moramo postaviti.

Razvijalci morajo ugotoviti, kateri podatki so resnično pomembni za njihovo poslovno aplikacijo, kako gledati in se učiti iz transakcij, kakšne poslovne odločitve bi imeli največ koristi od te vrste proaktivne umetne inteligence, in začeti eksperimentirati. Vdelani umetni inteligenc lahko predvideva, kar potrebujete, ob pravem času posreduje informacije in funkcionalnosti prek pravega medija, tudi preden jih potrebujete, in avtomatizira številna opravila, ki jih danes opravite ročno.

4. Strojno učenje ima praktično uporabo za posamezno področje

Strojno učenje se iz področja nejasne podatkovne znanosti preusmeri v običajni razvoj aplikacij, tako zaradi razpoložljivosti vnaprej vgrajenih modulov v priljubljenih platformah, kot tudi zato, ker je tako koristno pri analiziranju velikih zgodovinskih naborov podatkov. Pri strojnem učenju je najbolj dragocen vpogled v kontekst - kaj ste že počeli, kakšna vprašanja ste postavljali, kaj počnejo drugi ljudje, kaj je običajno v primerjavi z nepravilnimi aktivnostmi.

Da pa je strojno učenje učinkovito, mora biti uglašeno in usposobljeno v okolju, specifičnem za področje, ki vključuje tako nabore podatkov, ki jih bo analiziral, kot tudi vprašanja, na katera bo odgovoril. Na primer, aplikacije za strojno učenje, namenjene prepoznavanju nepravilnega vedenja uporabnika za varnostnega analitika, se bodo zelo razlikovale od aplikacij za strojno učenje, namenjene optimizaciji tovarniških robot, ki se lahko zelo razlikujejo od tistih, ki so namenjene kartiranju odvisnosti aplikacije, ki temelji na mikro storitvah.

Razvijalci bodo morali postati bolj seznanjeni s primeri uporabe za posamezno domeno, da bodo razumeli, katere podatke zbirati, katere vrste algoritmov strojnega učenja uporabiti in kakšna vprašanja. Razvijalci bodo morali tudi presoditi, ali so SaaS ali pakirane aplikacije za posamezno področje primerne za določen projekt, saj so potrebne velike količine podatkov o usposabljanju.

Z uporabo strojnega učenja lahko razvijalci gradijo inteligentne aplikacije za ustvarjanje priporočil, napovedovanje rezultatov ali samodejno odločanje.

5. DevOps se premakne proti NoOpsu

Vsi se strinjamo, da je devops bistvenega pomena za pomoč razvijalcem pri hitri izdelavi novih aplikacij in funkcij, hkrati pa ohranja visoko raven kakovosti in učinkovitosti. Problem devopa je v tem, da morajo razvijalci preživeti 60 odstotkov svojega časa na operacijski strani enačbe in tako skrajšati čas, namenjen razvoju. Razvijalci morajo integrirati različna orodja za neprekinjeno integracijo in neprekinjeno dostavo (CICD), vzdrževati te integracije in nenehno posodabljati verigo orodij CI / CD, ko izhajajo nove tehnologije. Vsakdo dela CI, vendar preveč ljudi ne dela CD-jev. Razvijalci bodo vztrajali pri oblačnih storitvah, ki bodo nihalu pomagale, da se bo nihalo vrnilo na stran razvijalca v letu 2018. Za to bo potrebna večja avtomatizacija prave CICD.

Docker vam nudi embalažo, prenosljivost in sposobnost hitrega uvajanja. Za del tega življenjskega cikla Dockerja potrebujete CD. Če na primer uporabljate vsebnike, mora biti takoj, ko spremenite kodo v Git, privzeti vgrajeni artefakt slika Dockerja z novo različico kode. Poleg tega mora biti slika samodejno potisnjena v register Dockerja, vsebnik pa iz slike nameščen v testno okolje. Po preskušanju kakovosti in uvajanju v proizvodnjo je treba poskrbeti za orkestracijo, varnost in skaliranje posod. Poslovni voditelji pritiskajo na razvijalce, da hitreje prinesejo nove inovacije; model devops mora sprostiti več časa razvijalcem, da to omogočijo.

6. Odprtokodna storitev kot storitev pospešuje porabo odprtokodnih inovacij

Odprtokodni model ostaja eden najboljših motorjev inovacij, vendar je izvajanje in vzdrževanje te inovacije pogosto preveč zapleteno. Na primer:

  • Če želite platformo za pretakanje podatkov / dogodkov, se obrnite na Kafko. Ko začnete izkoriščati Kafko v velikem obsegu, morate nastaviti dodatna Kafkina vozlišča in uravnotežiti obremenitve velikih grozdov Kafka, posodobiti te grozde, ko izidejo nove izdaje Kafke, in nato to storitev integrirati s preostalim okoljem.
  • Za orkestracijo posod želite Kubernetes. Namesto da bi skrbel za nadgradnje, varnostne kopije, obnovitve in popravke za vašo gručo Kubernetes, bi morala platforma vse to narediti namesto vas. Kubernetes pošilja vsakih šest tednov, zato bi se morala platforma premikati in se samozdraviti.
  • Želite Cassandro za zbirke podatkov NoSQL. Želeli bi, da varnostno kopiranje (postopno ali polno po urniku), popravljanje, združevanje v skupine, spreminjanje velikosti in visoka razpoložljivost grozda Cassandra upravlja platforma.

Razvijalci bodo vedno bolj iskali storitve v oblaku, da bodo vse te hitrostne inovacije ponujali iz odprtokodne kode, hkrati pa bodo skrbeli za operativne in upravljavske vidike teh tehnologij.

7. Arhitekture brez strežnikov so velike v proizvodnji

Privlačnost brezstrežniških arhitektur je jasna: ko se zahteva, da se moja koda izvede na podlagi določenega dogodka, se vzpostavi instanca, moja koda se uvede in izvede in plačam samo čas, ko moja koda teče. Recimo, da želite zgraditi funkcijo rezervacije potovanj za rezervacijo / odpoved letov, hotelov in najetih avtomobilov. Vsako od teh dejanj je mogoče zgraditi kot funkcijo brez strežnika, napisano v različnih jezikih, kot so Java, Ruby, JavaScript in Python. Na moji kodi ni zagnan noben strežnik aplikacij; funkcije se namesto instancirajo in izvajajo na infrastrukturi le, kadar je to potrebno.

Za razvijalce nizanje brezstrežniških funkcij skupaj za izvajanje zapletenih transakcij ustvarja nove izzive: opis, kako naj bodo te funkcije povezane v verige, razhroščevanje porazdeljenih transakcij in določitev, kako ob okvari ene funkcije v verigi ustvariti kompenzacijske transakcije za preklic neprimernih sprememb. Poiščite storitve v oblaku in odprtokodna orodja, kot je projekt FN, da bodo uspevali tako, da bodo razvijalcem pomagali enostavno upravljati s programiranjem, sestavo, odpravljanjem napak in upravljanjem življenjskega cikla brezstrežniških funkcij ter jih razporediti in preizkusiti v prenosniku ali na prem-strežniku ali kateri koli oblak. Ključno bo izbrati platformo brez strežnika, ki zagotavlja največjo prenosljivost.

8. Edino vprašanje o zabojnikih postane "Zakaj ne?"

Zabojniki bodo postali privzeti za razvojno / preizkusno delo in običajni za proizvodne aplikacije. Pričakujte nadaljnje izboljšave na področju varnosti, vodljivosti, orkestracije, spremljanja in odpravljanja napak, ki jih poganjajo odprtokodne inovacije in industrijski standardi. Zabojniki so gradniki mnogih trendov, ki poganjajo sodobni razvoj, vključno z arhitekturami mikroservisov, aplikacijami v oblaku, funkcijami brez strežnika in devopi.

Zabojniki ne bodo imeli smisla povsod - na primer, ko potrebujete bolj predpisujočo platformo v oblaku, kot je integracijski PaaS ali mobilni PaaS -, vendar se bodo te storitve v oblaku na višji ravni same izvajale na zabojnikih in bodo izjeme, ki dokazujejo pravilo.

Poleg tega bodo morali modeli licenciranja programske opreme za visoko vrednostno komercialno lokalno programsko opremo zajemati širjenje uporabe posod. Cenovni modeli za programsko opremo bodo morali podpirati licenciranje »vklopi« in »izklopi«, ko se posode instantirajo, povečajo in zmanjšajo.

9. Programska oprema in sistemi postanejo samozdravljivi, samonastavljeni in samoupravni

Razvijalci in proizvodne operativne ekipe se utapljajo v podatkih iz dnevnikov, spremljanju delovanja spleta / aplikacij / baz podatkov in spremljanju uporabniške izkušnje ter konfiguraciji. Poleg tega so te različne vrste podatkov zaprte, zato morate v sobo pripeljati veliko ljudi za odpravljanje napak. Potem je tu še vprašanje prenosa znanja: razvijalci porabijo veliko časa za pripovedovanje proizvodnje o podrobnostih svojih aplikacij, katere pragove naj določijo, katere topologije strežnikov spremljajo za transakcijo itd.

$config[zx-auto] not found$config[zx-overlay] not found