Programovanie

10 predpovedí vývoja softvéru na rok 2018

Siddhártha Agarwal je viceprezident pre produktovú správu a stratégiu pre Oracle Cloud Platform.

Vývojári by mali horieť nadšením z budúcich príležitostí v roku 2018, keď budú produkty a nástroje okolo technológií, ako sú blockchain, chatboty, funkcie bez serverov a strojové učenie, dostatočne zrelé na projekty v reálnom svete. Mnoho vývojárov sa bude zároveň obávať, že bude držať krok s tlakom na rýchlejšie dodanie kódu a funkčnosti bez toho, aby to ohrozilo zabezpečenie alebo výkon. Ale aj na tomto poli sú dobré správy.

Pre vývojárov bude rok 2018 definovaný týmto napätím medzi využívaním nových transformačných príležitostí a vyrovnávaním sa s tlakom robiť viac a kvalitnejšie. Ďalej uvádzame 10 predpovedí týkajúcich sa vývoja týchto síl v nasledujúcom roku.

1. Do výroby idú transakcie B2B využívajúce blockchain

Firmy začali chápať bezpečnosť, spoľahlivosť a efektívnosť, ktoré je možné získať z transakcií umožňujúcich blockchain. Vývojári budú v budúcom roku implementovať veľa prípadov použitia blockchainu naprieč finančnými službami a výrobnými dodávateľskými reťazcami. Blockchain je technológia, ktorá umožňuje efektívne, bezpečné, nemenné a dôveryhodné transakcie medzi organizáciami, ktoré si navzájom úplne nedôverujú, a eliminuje tak sprostredkovateľov.

Zvážte spoločnosť, ktorá si objednáva výrobky od zahraničného výrobcu. Tieto produkty sa dodávajú prostredníctvom prepravnej spoločnosti, colnými úradmi, inou prepravnou spoločnosťou a nakoniec k kupujúcemu. Dnes sa overenie a vyrovnanie každého kroku väčšinou deje prostredníctvom e-mailov a tabuliek, do ktorých je zapojených veľa ľudí a procesov. Blockchain eliminuje manuálne procesy a zmierenie neodvolateľným zaznamenávaním aktualizácií do knihy blockchainu, keď minimálny počet strán povie: „Áno, táto časť transakcie sa stala.“

Cloudové služby blockchainu prinesú škálovateľnosť, odolnosť, zabezpečenie a vopred pripravené integrácie s podnikovými systémami, čo vývojárom výrazne uľahčí zameranie sa na prípad firemného použitia na rozdiel od implementácie základnej štruktúry hyperledger.

2. Chatboti bežne vedú skutočné rozhovory so zákazníkmi a zamestnancami

Ľudí už unavuje potreba viacerých mobilných aplikácií na vykonávanie rovnakej práce - napríklad tri rôzne letecké spoločnosti s rôznymi spôsobmi registrácie a získania palubného lístka. Lepším spôsobom je poskytnúť rovnakú funkcionalitu, ale prostredníctvom najpopulárnejšej aplikácie v telefóne - správ. Správy majú tri atraktívne prvky konzistentné na danom médiu: okamžité, expresívne a konverzačné - nie je potrebné žiadne školenie. Vďaka pokroku v oblasti umelej inteligencie a spracovania prirodzeného jazyka budú ľudia na kladenie otázok a získavanie odpovedí od inteligentných robotov používať Facebook Messenger, Slack, WeChat, WhatsApp alebo hlasového asistenta ako Amazon Alexa alebo Google Home.

Vývojári, ktorí využívajú nové inteligentné cloudové služby na vytváranie robotov, môžu rýchlo vytvárať robotov, ktorí rozumejú zámerom zákazníka, udržiavajú konverzačný stav a inteligentne reagujú a zároveň uľahčujú integráciu so systémami typu back-end. Predstavte si, že odfotíte šaty, ktoré ste videli vo filme, a obrázok odošlite do robota vášho obľúbeného obchodu s odevmi, ktorý na rozpoznanie obrazu a AI odporúča podobné šaty. Zamestnanci môžu byť tiež obrovskými príjemcami robotov pri úlohách, ako je pýtanie sa, koľko dní dovolenky im zostáva, vyplnenie lístka technickej podpory alebo objednávka náhradného notebooku, kde systém dokonca vie, na ktoré notebooky má zamestnanec nárok, a môže poskytovať aktualizácie stavu. na ich rozkaz. Vzhľadom na to, že je oveľa zhovievavejšie experimentovať s vlastnou zamestnaneckou základňou, môžu vývojári najskôr využiť svoje kotlety na vytváranie robotov na vytváranie a testovanie robotov orientovaných na zamestnancov.

3. Tlačidlo zmizne: AI sa stane rozhraním aplikácie

AI sa stáva používateľským rozhraním, čo znamená, že synchrónny model používania aplikácií a služieb typu odpoveď na žiadosť postupne mizne. Smartfóny majú stále „nízke IQ“, pretože si ich musíte vyzdvihnúť, spustiť aplikáciu, požiadať o niečo urobiť a nakoniec dostať odpoveď. V novej generácii inteligentných aplikácií bude aplikácia iniciovať interakcie prostredníctvom upozornení push. Urobme to o krok ďalej, keď aplikácia, robot alebo virtuálny osobný asistent využívajúci umelú inteligenciu budú vedieť, čo robiť, kedy, prečo, kde a ako. A jednoducho to urob. Dva príklady:

  • Aplikácia Schválenie výdavkov sleduje váš vzorec schvaľovania výkazov výdavkov, začína automaticky schvaľovať správy o 99 percentách výdavkov a upozorňuje vás iba na zriedkavý prehľad, ktorý si vyžaduje vašu pozornosť.
  • Aplikácia Analytics rozumie podkladovým údajom, doteraz kladeným otázkam podnikovým používateľom, otázkam kladeným na rovnaký súbor údajov ďalšími používateľmi v spoločnosti a každý deň poskytuje nový pohľad, na ktorý by analytik nemusel myslieť. Keď organizácie zhromaždia viac údajov, umelá inteligencia nám môže pomôcť zistiť, aké otázky od údajov požadovať.

Vývojári musia zistiť, aké údaje sú pre ich obchodné aplikácie skutočne dôležité, ako sledovať a učiť sa z transakcií, aké obchodné rozhodnutia by z tohto druhu proaktívnej umelej inteligencie mali najväčší úžitok a začať experimentovať. Zabudovaná AI dokáže predvídať, čo potrebujete, poskytovať informácie a funkčnosť prostredníctvom správneho média v správnom čase, a to aj skôr, ako to budete potrebovať, a automatizuje mnoho úloh, ktoré dnes robíte ručne.

4. Strojové učenie má praktické využitie špecifické pre konkrétnu doménu

Strojové učenie sa posúva z oblasti nejasnej dátovej vedy do vývoja bežných aplikácií, jednak kvôli ľahkej dostupnosti vopred pripravených modulov na populárnych platformách, jednak preto, že je také užitočné pri analýze veľkých historických súborov údajov. So strojovým učením prichádza to najcennejšie pochopenie s kontextom - čo ste robili predtým, aké otázky ste sa pýtali, čo robia iní ľudia, čo je bežné verzus anomálne aktivity.

Aby bolo strojové učenie efektívne, musí byť vyladené a trénované v prostredí špecifickom pre danú doménu, ktoré obsahuje súbory údajov, ktoré bude analyzovať, aj otázky, na ktoré odpovie. Napríklad aplikácie strojového učenia určené na identifikáciu anomálneho správania používateľov pre bezpečnostného analytika sa budú veľmi líšiť od aplikácií strojového učenia určených na optimalizáciu operácií továrenských robotov, ktoré sa môžu veľmi líšiť od aplikácií určených na mapovanie závislostí aplikácií založených na mikroslužbách.

Vývojári sa budú musieť lepšie oboznámiť s prípadmi použitia konkrétnych domén, aby pochopili, aké údaje sa majú zhromaždiť, aké druhy algoritmov strojového učenia sa majú použiť a aké otázky si majú položiť. Vývojári tiež budú musieť vyhodnotiť, či sú SaaS špecifické pre danú doménu alebo zabalené aplikácie pre daný projekt vhodné, vzhľadom na skutočnosť, že je potrebné veľké množstvo údajov o školení.

Pomocou strojového učenia môžu vývojári vytvárať inteligentné aplikácie na generovanie odporúčaní, predpovedanie výsledkov alebo automatizované rozhodovanie.

5. DevOps sa posúva smerom k NoOps

Všetci súhlasíme s tým, že vývoj je kriticky dôležitý pre to, aby pomohol vývojárom rýchlo vytvárať nové aplikácie a funkcie pri zachovaní vysokej úrovne kvality a výkonu. Problém s devops je v tom, že vývojári musia stráviť 60 percent času na opačnej strane rovnice, čím sa skracujú na čas venovaný vývoju. Vývojári musia integrovať rôzne nástroje na nepretržitú integráciu a nepretržité dodávanie (CICD), udržiavať tieto integrácie a neustále aktualizovať reťazec nástrojov CI / CD, keď budú zverejňované nové technológie. Každý robí CI, ale nie príliš veľa ľudí robí CD. Vývojári budú trvať na cloudových službách, ktoré pomôžu kyvadlu prejsť späť na stranu vývojárov v roku 2018. To si bude vyžadovať viac automatizácie pre skutočné CICD.

Docker vám poskytuje balenie, prenosnosť a schopnosť agilného nasadenia. Aby ste sa stali súčasťou tohto životného cyklu Dockeru, potrebujete CD. Napríklad, ak používate kontajnery, hneď ako vykonáte zmenu kódu v Gite, predvoleným vytvoreným artefaktom by mal byť Dockerov obraz s novou verziou kódu. Ďalej by sa mal obrázok automaticky natlačiť do registra Docker a kontajner nasadený z obrázka do prostredia na testovanie vývojárov. Po testovaní QA a nasadení do výroby by sa malo o vás postarať orchestrácia, zabezpečenie a zmena mierky kontajnerov. Vedúci predstavitelia firiem vyvíjajú tlak na vývojárov, aby rýchlejšie dodávali nové inovácie; aby to bolo možné, musí vývojový model devops uvoľniť viac času vývojárom.

6. Open source ako služba urýchľuje spotrebu inovácií v oblasti open source

Model otvoreného zdroja zostáva jedným z najlepších motorov inovácie, ale implementácia a údržba tejto inovácie je často príliš zložitá. Napríklad:

  • Chcete platformu na správu údajov / udalostí na streamovanie, takže sa obrátite na Kafku. Keď začnete využívať Kafku vo veľkom rozsahu, musíte nastaviť ďalšie uzly Kafky a vyvážiť zaťaženie veľkých klastrov Kafka, aktualizovať tieto klastre tak, ako vyjdú nové vydania Kafky, a potom integrovať túto službu so zvyškom vášho prostredia.
  • Chceš Kubernetes pre orchestráciu kontajnerov. Namiesto toho, aby ste sa starali o upgrady, zálohy, obnovy a opravy pre svoj klaster Kubernetes, mala by platforma robiť všetko za vás. Kubernetes sa dodáva každých šesť týždňov, takže platforma by mala mať postupné nasadenie a samoliečbu.
  • Chceš Cassandru pre databázy NoSQL. Mali by ste chcieť, aby platforma spravovala zálohovanie (prírastkové alebo úplné podľa plánu), opravy, klastrovanie, škálovanie a vysokú dostupnosť klastra Cassandra.

Vývojári budú čoraz viac vyhľadávať cloudové služby, ktoré zabezpečia všetky tieto vysokorýchlostné inovácie z otvoreného zdroja a zároveň sa postarajú o prevádzkové a riadiace aspekty týchto technológií.

7. Architektúry bez serverov idú vo výrobe vysoko

Príťažlivosť architektúr bez servera je jasná: Ak existuje požiadavka na vykonanie môjho kódu na základe určitej udalosti, dôjde k vytvoreniu inštancie infraštruktúry, môj kód je nasadený a vykonaný a účtujú sa mi iba za čas spustenia môjho kódu. Povedzme, že chcete vytvoriť funkciu cestovných rezervácií na rezerváciu / zrušenie letov, hotelov a požičovní automobilov. Každú z týchto akcií je možné vytvoriť ako funkciu bez servera napísanú v rôznych jazykoch, ako sú Java, Ruby, JavaScript a Python. Na mojom kóde nie je spustený žiadny aplikačný server; funkcie sú inštancované a vykonávané na infraštruktúre iba v prípade potreby.

Pre vývojárov predstavuje spoločné spájanie funkcií bez servera s cieľom vykonávať zložité transakcie nové výzvy: opisovať, ako by mali byť tieto funkcie spojené, ladiť distribuované transakcie a určiť, ako pri zlyhaní jednej funkcie v reťazci vytvoriť kompenzačné transakcie na zrušenie nevhodných zmien. Hľadajte cloudové služby a nástroje otvoreného zdroja, ako je napríklad projekt FN, ktoré sa rozvíjajú tým, že pomáhajú vývojárom ľahko spravovať programovanie, zloženie, ladenie a správu životného cyklu funkcií bez servera a nasadzovať ich a testovať na prenosnom počítači alebo serveri prem-server. alebo akýkoľvek oblak. Kľúčom bude výber platformy bez servera, ktorá poskytuje maximálnu prenosnosť.

8. Jedinou otázkou o kontajneroch sa stáva „Prečo nie?“

Kontajnery sa stanú predvoleným nastavením pre vývojové a testovacie práce a bežnou súčasťou produkčných aplikácií. Očakávajte ďalšie zlepšenia v oblasti zabezpečenia, spravovateľnosti, orchestrácie, monitorovania a ladenia, ktoré vychádzajú z inovácií otvoreného zdroja a priemyselných štandardov. Kontajnery poskytujú stavebné prvky mnohých trendov poháňajúcich moderný vývoj vrátane architektúr mikroslužieb, natívnych cloudových aplikácií, funkcií bez servera a devops.

Kontajnery nebudú mať zmysel všade - napríklad keď potrebujete normatívnejšiu cloudovú platformu, napríklad integračný PaaS alebo mobilný PaaS -, ale tieto cloudové služby vyššej úrovne budú samy bežať na kontajneroch a budú výnimkami, ktoré dokazujú, že pravidlo.

Softvérové ​​licenčné modely pre vysoko hodnotný komerčný lokálny softvér budú musieť navyše zahŕňať šírenie prijatia kontajnera. Cenové modely softvéru budú musieť podporovať licenciu „zapnúť“ a „vypnúť“, pretože kontajnery sú inštancované, zväčšené a zmenšené.

9. Softvér a systémy sa stávajú samoliečivými, samonastavujúcimi sa a samoriadiacimi

Vývojári a tímy produkčných operácií sa topia v dátach z protokolov, monitorovania výkonu webových aplikácií a databáz, monitorovania používateľských skúseností a konfigurácie. Okrem toho sa tieto rôzne typy údajov umlčujú, takže na ladenie problémov musíte priviesť veľa ľudí do miestnosti. Potom je tu problém prenosu vedomostí: Vývojári trávia veľa času rozprávaním o produkčných operáciách ich aplikácií, o tom, aké limity je potrebné nastaviť, aké serverové topológie majú monitorovať transakciu atď.

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