Programování

10 předpovědí vývoje softwaru pro rok 2018

Siddhártha Agarwal je viceprezident pro produktovou správu a strategii pro Oracle Cloud Platform.

Vývojáři by měli být nadšení z příležitostí, které čekají v roce 2018, s produkty a nástroji kolem technologií, jako jsou blockchain, chatboty, funkce bez serveru a strojové učení, které budou dostatečně vyzrálé pro projekty v reálném světě. Zároveň se mnoho vývojářů bude obávat, že bude držet krok s tlakem na rychlejší doručování kódu a funkcí bez ohrožení zabezpečení nebo výkonu. Ale i na této frontě jsou dobré zprávy.

Pro vývojáře bude rok 2018 definován tímto napětím mezi využíváním nových transformačních příležitostí a vyrovnáváním se s tlakem dělat více a vyšší kvalitou. Níže je 10 předpovědí souvisejících s tím, jak budou tyto síly hrát v příštím roce.

1. Transakce B2B využívající blockchain jdou do výroby

Firmy začaly chápat zabezpečení, spolehlivost a efektivitu, které lze získat z transakcí s blockchainem. Vývojáři v nadcházejícím roce implementují mnoho případů použití blockchainu napříč finančními službami a výrobními dodavatelskými řetězci. Blockchain je technologie, která umožňuje efektivní, zabezpečené, neměnné a důvěryhodné transakce mezi organizacemi, které si navzájem nemusí plně důvěřovat, čímž eliminuje prostředníky.

Zvažte společnost objednávající produkty od zahraničního výrobce. Tyto produkty se dodávají prostřednictvím přepravní společnosti, přicházejí přes celní orgány, prostřednictvím jiné přepravní společnosti a nakonec k kupujícímu. Dnes se ověřování a sladění každého kroku většinou děje prostřednictvím e-mailů a tabulek, do nichž je zapojeno mnoho lidí a procesů. Blockchain eliminuje manuální procesy a usmíření neodvolatelným zaznamenáním aktualizací do knihy blockchainu, když minimální počet stran řekne: „Ano, k této části transakce došlo.“

Cloudové služby blockchainu přinesou škálovatelnost, odolnost, zabezpečení a předpřipravené integrace s podnikovými systémy, což vývojářům výrazně usnadní soustředění na obchodní případ použití na rozdíl od implementace základní struktury hyperledger.

2. Chatboti běžně vedou skutečné rozhovory se zákazníky a zaměstnanci

Lidé se unavují potřebou více mobilních aplikací pro stejnou práci - jako tři různé letecké společnosti s různými způsoby odbavení a získání palubního lístku. Lepším způsobem je poskytnout stejnou funkci, ale prostřednictvím nejpopulárnější aplikace v telefonu - zasílání zpráv. Zprávy mají tři atraktivní prvky konzistentní napříč médiem: okamžité, expresivní a konverzační - není třeba žádné školení. Díky pokroku v oblasti umělé inteligence a zpracování přirozeného jazyka budou lidé k pokládání otázek a získávání odpovědí od inteligentních robotů používat Facebook Messenger, Slack, WeChat, WhatsApp nebo hlasového asistenta, jako je Amazon Alexa nebo Google Home.

Vývojáři využívající nové inteligentní cloudové služby pro budování robotů mohou rychle vytvářet roboty, kteří rozumějí záměru zákazníka, udržují stav konverzace a inteligentně reagují a zároveň usnadňují integraci se systémy typu back-end. Představte si, že vyfotíte šaty, které jste viděli ve filmu, a obrázek pošlete do robota vašeho oblíbeného obchodu s oděvy, který pomocí podobných obrázků doporučuje rozpoznávání obrazu a umělou inteligenci. Zaměstnanci mohou být také obrovskými příjemci robotů pro úkoly, jako je dotaz, kolik dní dovolené jim zbývá, vyplnění lístku na helpdesk nebo objednání náhradního notebooku, kde systém dokonce ví, na které notebooky má zaměstnanec nárok, a může poskytovat aktualizace stavu na jejich objednávku. Vzhledem k tomu, že je mnohem shovívavější experimentovat s vlastní základnou zaměstnanců, mohou vývojáři nejprve využít své kotlety na vytváření bot k vytváření a testování robotů zaměřených na zaměstnance.

3. Tlačítko zmizí: AI se stane rozhraním aplikace

AI se stává uživatelským rozhraním, což znamená, že synchronní model používání aplikací a služeb vyžadující reakci postupně zmizí. Smartphony mají stále „nízké IQ“, protože je musíte vyzvednout, spustit aplikaci, požádat o něco, co je třeba udělat, a nakonec dostat odpověď. V nové generaci inteligentních aplikací bude aplikace iniciovat interakce prostřednictvím oznámení push. Udělejme to o krok dále, kde aplikace, robot nebo virtuální osobní asistent využívající umělou inteligenci budou vědět, co dělat kdy, proč, kde a jak. A prostě to udělej. Dva příklady:

  • Aplikace Schválení výdajů sleduje váš způsob schvalování výkazů výdajů, začíná automaticky schvalovat 99 procent výkazů výdajů a upozorňuje vás pouze na vzácnou zprávu, která vyžaduje vaši pozornost.
  • Aplikace Analytics rozumí základním údajům, dosud kladeným otázkám obchodního uživatele, otázkám kladeným na stejnou datovou sadu jinými uživateli ve společnosti a každý den poskytuje nový pohled, na který analytik možná nepomyslel. Jak organizace shromažďují více dat, umělá inteligence nám může pomoci zjistit, jaké otázky k datům máme položit.

Vývojáři musí zjistit, která data jsou pro jejich obchodní aplikace opravdu důležitá, jak sledovat transakce a učit se z nich, jaká obchodní rozhodnutí by z tohoto druhu proaktivní AI nejvíce prospěla, a začít experimentovat. Integrovaná AI dokáže předvídat, co potřebujete, poskytovat informace a funkce prostřednictvím správného média ve správný čas, a to i dříve, než to budete potřebovat, a automatizovat mnoho úkolů, které dnes děláte ručně.

4. Strojové učení má praktické využití specifické pro danou doménu

Strojové učení se přesouvá z říše temné vědy o datech do hlavního proudu vývoje aplikací, a to jak kvůli snadné dostupnosti předem připravených modulů v populárních platformách, tak proto, že je tak užitečné při řešení analýz napříč velkými historickými datovými soubory. Se strojovým učením přichází nejcennější vhled do kontextu - co jste dělali dříve, jaké otázky jste kladli, co dělají ostatní lidé, co je normální versus anomální aktivita.

Aby však bylo efektivní, musí být strojové učení vyladěno a vyškoleno v prostředí specifickém pro doménu, které zahrnuje jak datové sady, které bude analyzovat, tak otázky, na které bude odpovídat. Například aplikace strojového učení určené k identifikaci neobvyklého chování uživatelů pro analytika zabezpečení se budou velmi lišit od aplikací strojového učení určených k optimalizaci provozu továrních robotů, které se mohou velmi lišit od aplikací určených k mapování závislostí aplikace založené na mikroslužbách.

Vývojáři se budou muset lépe seznámit s případy použití konkrétních domén, aby pochopili, která data mají být shromážděna, jaké druhy algoritmů strojového učení se mají použít a jaké otázky se mají zeptat. Vývojáři budou také muset vyhodnotit, zda jsou SaaS specifické pro danou doménu nebo zabalené aplikace pro daný projekt vhodné, vzhledem k tomu, že je vyžadováno velké množství tréninkových dat.

Pomocí strojového učení mohou vývojáři vytvářet inteligentní aplikace pro generování doporučení, předvídání výsledků nebo automatizovaná rozhodnutí.

5. DevOps se pohybuje směrem k NoOps

Všichni souhlasíme, že devops je kriticky důležitý pro to, aby pomohl vývojářům rychle vytvářet nové aplikace a funkce při zachování vysoké úrovně kvality a výkonu. Problém s devops je v tom, že vývojáři potřebují strávit 60 procent svého času na ops straně rovnice, čímž se zkracují na čas věnovaný vývoji. Vývojáři musí integrovat různé nástroje pro nepřetržitou integraci a nepřetržité doručování (CICD), udržovat tyto integrace a neustále aktualizovat řetězec nástrojů CI / CD, jakmile budou vydány nové technologie. CI dělá každý, ale ne příliš mnoho lidí dělá CD. Vývojáři budou trvat na cloudových službách, které pomohou kyvadlu přejít zpět na stranu vývojářů v roce 2018. To bude vyžadovat více automatizace pro skutečné CICD.

Docker vám poskytuje balení, přenositelnost a schopnost provádět agilní nasazení. Abyste se mohli stát součástí tohoto životního cyklu Dockeru, potřebujete CD. Například pokud používáte kontejnery, jakmile provedete změnu kódu na Git, výchozí vytvořený artefakt by měl být image Dockeru s novou verzí kódu. Dále by se obrázek měl automaticky dostat do registru Dockeru a kontejner nasazený z obrázku do prostředí pro testování dev. Po testování QA a nasazení do produkce by za vás měla být postarána orchestrace, zabezpečení a škálování kontejnerů. Obchodní vedoucí vyvíjejí tlak na vývojáře, aby rychleji dodávali nové inovace; Aby to bylo možné, musí devops model uvolnit více času vývojářům.

6. Open source jako služba zrychluje spotřebu inovací open source

Model open source zůstává jedním z nejlepších motorů inovací, ale provádění a udržování této inovace je často příliš složité. Například:

  • Chcete platformu pro správu streamovaných dat / událostí, takže se obrátíte na Kafku. Když začnete využívat Kafku ve velkém, musíte nastavit další uzly Kafky a vyvážit zatížení velkých kafkových klastrů, aktualizovat tyto klastry, jak vyjdou nové verze Kafky, a poté integrovat tuto službu se zbytkem vašeho prostředí.
  • Chcete Kubernetes pro orchestraci kontejnerů. Místo toho, abyste se starali o upgrady, zálohy, obnovy a opravy pro svůj klastr Kubernetes, měla by to vše za vás udělat platforma. Kubernetes se dodává každých šest týdnů, takže platforma by měla mít postupné nasazení a samoléčení.
  • Chcete Cassandru pro databáze NoSQL. Měli byste chtít, aby zálohování (přírůstkové nebo úplné podle plánu), opravy, shlukování, škálování a vysoká dostupnost klastru Cassandra byly spravovány platformou.

Vývojáři budou stále více hledat cloudové služby, aby poskytly všechny tyto vysokorychlostní inovace z otevřeného zdroje a zároveň se postaraly o provozní a řídicí aspekty těchto technologií.

7. Architektury bez serveru jsou ve výrobě velké

Přitažlivost architektur bez serveru je jasná: Když existuje požadavek na provedení mého kódu na základě určité události, je vytvořena instance infrastruktury, můj kód je nasazen a spuštěn a já jsem účtován pouze za dobu, kdy můj kód běží. Řekněme, že chcete vytvořit funkci rezervace cestování, která bude sloužit k rezervaci / zrušení letů, hotelů a půjčoven automobilů. Každá z těchto akcí může být vytvořena jako funkce bez serveru napsaná v různých jazycích, jako je Java, Ruby, JavaScript a Python. Na mém kódu není spuštěn žádný aplikační server; funkce jsou spíše instancovány a prováděny na infrastruktuře pouze v případě potřeby.

Pro vývojáře vytváří společné funkce bez serveru pro provádění složitých transakcí nové výzvy: popisuje, jak by měly být tyto funkce zřetězeny, ladí distribuované transakce a určuje, jak při selhání jedné funkce v řetězci vytvořit kompenzační transakce, aby zrušily nevhodné změny. Hledejte cloudové služby a nástroje s otevřeným zdrojovým kódem, jako je projekt FN, které se daří rozvíjet tím, že pomáhají vývojářům snadno spravovat programování, složení, ladění a správu životního cyklu funkcí bez serveru a nasazovat a testovat je na notebooku nebo na serveru prem nebo jakýkoli mrak. Klíčem bude výběr platformy bez serveru, která poskytuje maximální přenositelnost.

8. Jedinou otázkou ohledně kontejnerů se stává „Proč ne?“

Kontejnery se stanou výchozím nastavením pro vývoj / testovací práci a samozřejmostí pro výrobní aplikace. Očekávejte neustálé zlepšování zabezpečení, správy, orchestrace, monitorování a ladění díky inovacím otevřeného zdroje a průmyslovými standardy. Kontejnery poskytují stavební kameny pro mnoho trendů pohánějících moderní vývoj, včetně architektur mikroslužeb, nativních cloudových aplikací, funkcí bez serveru a devops.

Kontejnery nebudou mít smysl všude - například když potřebujete normativnější cloudovou platformu, jako je integrační PaaS nebo mobilní PaaS -, ale tyto cloudové služby vyšší úrovně budou samy běžet na kontejnerech a budou výjimkami, které dokazují pravidlo.

Kromě toho budou muset modely licencování softwaru pro vysoce kvalitní, komerční a místní software přijmout rozšíření přijetí kontejneru. Cenové modely softwaru budou muset podporovat licencování „zapnout“ a „vypnout“, protože kontejnery jsou instancovány, zmenšeny a zmenšeny.

9. Software a systémy se stávají samoléčivými, samonastavovacími a samočinnými

Vývojáři a týmy produkčních operací se topí v datech z protokolů, monitorování výkonu webu / aplikace / databáze a monitorování uživatelských zkušeností a konfigurace. Kromě toho se tyto různé typy dat umlčují, takže k ladění problémů musíte přivést mnoho lidí do místnosti. Pak je tu problém přenosu znalostí: Vývojáři tráví spoustu času vyprávěním o produktech a aplikacích jejich aplikací, jaké prahové hodnoty nastavit, jaké serverové topologie sledovat transakci atd.

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