10 прогнози за разработка на софтуер за 2018 г.

Сидхарта Агарвал е вицепрезидент по управление на продукти и стратегия за Oracle Cloud Platform. 

Разработчиците трябва да изгарят от вълнение за предстоящите възможности през 2018 г., като продуктите и инструментите около технологии като блокчейн, чат ботове, безсървърни функции и машинно обучение стават достатъчно зрели за реални проекти. В същото време много разработчици ще се притесняват да не издържат на натиска за по-бърза доставка на код и функционалност, без да се застрашават сигурността или производителността. Но има добри новини и от този фронт.

За разработчиците 2018 г. ще бъде определена от това напрежение между възползването от нови трансформативни възможности, докато се справяме с натиска да направим повече, с по-високо качество. По-долу има 10 прогнози, свързани с начина, по който тези сили ще играят през следващата година.

1. B2B транзакциите, използващи блокчейн, влизат в производство

Бизнесът е започнал да разбира сигурността, надеждността и ефективността, които могат да бъдат спечелени от транзакциите с активирана блокчейн. Разработчиците ще приложат много случаи на използване на блокчейн във финансовите услуги и производствените вериги за доставки през следващата година. Blockchain е технология, която позволява ефективни, сигурни, неизменяеми, надеждни транзакции между организации, които може да не си имат пълно доверие, премахвайки посредниците.

Помислете за компания, която поръчва продукти от офшорни производители. Тези продукти се изпращат чрез спедиторска компания, преминават през митницата, чрез друга спедиторска компания и накрая до купувача. Днес проверката и съгласуването на всяка стъпка се случват най-вече чрез имейли и електронни таблици, като участват много хора и процеси. Blockchain елиминира ръчните процеси и помирението, като необратимо записва актуализации на blockchain книга, когато минимален брой страни казват, "Да, тази част от транзакцията се случи."

Облачните услуги на Blockchain ще донесат мащабируемост, устойчивост, сигурност и предварително изградени интеграции с корпоративни системи, което улеснява много разработчиците да се съсредоточат върху случая на бизнес употреба, за разлика от основното внедряване на плат за хиперледжър.

2. Chatbots рутинно водят реални разговори с клиенти и служители

Хората се уморяват да се нуждаят от множество мобилни приложения, за да вършат една и съща работа - като три различни авиокомпании с различни начини да се регистрират и да получат бордна карта. По-добрият начин е да предоставите същата функционалност, но чрез най-популярното приложение на телефона си - съобщения. Съобщенията имат три атрактивни елемента, последователни в средата: незабавен, изразителен и разговорен - не е необходимо обучение. Благодарение на напредъка в изкуствения интелект и обработката на естествен език, хората ще използват Facebook Messenger, Slack, WeChat, WhatsApp или гласов асистент като Amazon Alexa или Google Home, за да задават въпроси и да получават отговори от интелигентни ботове.

Разработчиците, използвайки нови интелигентни облачни услуги за изграждане на ботове, могат бързо да изработят ботове, които разбират намерението на клиента, поддържат състояние на разговор и реагират интелигентно, като същевременно правят интеграцията с back-end системи лесна. Представете си да снимате рокля, която сте виждали във филм, и да изпратите съобщението до бота на вашия любим магазин за дрехи, който използва разпознаване на изображения и AI, за да препоръча подобни рокли. Служителите също могат да получат огромни бенефициенти на ботове за задачи, като например да попитат колко дни от почивката им остават, да подадат билет в бюрото за помощ или да поръчат резервен лаптоп, където системата дори знае за кои лаптопи служителят отговаря на условията и може да предоставя актуализации на състоянието по тяхна поръчка. Като се има предвид, че е много по-прощаващо да експериментирате със собствената си база служители,разработчиците може първо да използват своите котлети за изграждане на ботове, за да изградят и тестват ботове, изправени пред служители.

3. Бутонът изчезва: AI се превръща в интерфейс на приложението

AI се превръща в потребителски интерфейс, което означава, че синхронният модел за реакция на заявка при използване на приложения и услуги постепенно изчезва. Смартфоните все още са с „нисък коефициент на интелигентност“, защото трябва да ги вземете, да стартирате приложение, да поискате нещо да се направи и в крайна сметка да получите отговор. В ново поколение интелигентни приложения, приложението ще инициира взаимодействия чрез push известия. Нека направим тази стъпка по-нататък, където приложение, бот или виртуален личен асистент, използващ изкуствен интелект, ще знаят какво да правят кога, защо, къде и как. И просто го направете. Два примера:

  • Приложението за одобрение на разходи следи модела ви на одобряване на отчетите за разходите, започва автоматично да одобрява 99 процента от отчетите за разходите и насочва вниманието ви само към редкия отчет, който изисква вашето внимание.
  • Приложението Analytics разбира основните данни, въпросите, зададени досега от бизнес потребителя, въпроси, зададени от същия потребителски набор от други потребители в компанията, и всеки ден предоставя нова информация, за която анализаторът може и да не се е сетил. Тъй като организациите събират повече данни, AI може да ни помогне да научим какви въпроси да задаваме на данните.

Разработчиците трябва да разберат кои данни са наистина важни за тяхното бизнес приложение, как да гледат и да се учат от транзакции, какви бизнес решения ще имат най-голяма полза от този вид проактивен ИИ и да започнат да експериментират. Вграденият AI може да предсказва от какво се нуждаете, да предоставя информация и функционалност чрез правилния носител в точното време, включително преди да имате нужда от него, и да автоматизира много задачи, които правите ръчно днес.

4. Машинното обучение придобива практически, специфични за дадена употреба приложения

Машинното обучение преминава от сферата на неясната наука за данни в основното разработване на приложения, както поради наличната наличност на предварително изградени модули в популярни платформи, така и защото е толкова полезно, когато се занимавате с анализ на големи исторически набори от данни. При машинното обучение най-ценното прозрение идва с контекста - какво сте правили преди, какви въпроси сте задавали, какво правят другите хора, кое е нормалното спрямо аномалната дейност.

Но за да бъде ефективно, машинното обучение трябва да бъде настроено и обучено в специфична за дадена среда среда, която включва както наборите данни, които ще анализира, така и въпросите, на които ще отговори. Например приложенията за машинно обучение, предназначени да идентифицират аномално поведение на потребителя за анализатор на сигурността, ще бъдат много различни от приложенията за машинно обучение, предназначени да оптимизират операциите на фабричните роботи, които могат да бъдат много различни от тези, предназначени да направят картографиране на зависимост на приложение, базирано на микроуслуги.

Разработчиците ще трябва да станат по-добре запознати с конкретни домейни случаи на употреба, за да разберат какви данни да събират, какви видове алгоритми за машинно обучение да прилагат и какви въпроси да задават. Разработчиците също ще трябва да преценят дали специфичните за домейн SaaS или пакетираните приложения са подходящи за даден проект, предвид факта, че се изискват големи количества данни за обучение.   

Използвайки машинно обучение, разработчиците могат да създават интелигентни приложения за генериране на препоръки, прогнозиране на резултатите или вземане на автоматизирани решения. 

5. DevOps се придвижва към NoOps

Всички сме съгласни, че devops е критично важен за подпомагането на разработчиците да създават бързо нови приложения и функции, като същевременно поддържа високи нива на качество и производителност. Проблемът с devops е, че разработчиците трябва да прекарат 60% от времето си в операционната страна на уравнението, като по този начин намаляват времето, отделено за развитие. Разработчиците трябва да интегрират различни инструменти за непрекъсната интеграция и непрекъсната доставка (CICD), да поддържат тези интеграции и непрекъснато да актуализират веригата от инструменти CI / CD с пускането на нови технологии. Всички правят CI, но не много хора правят CD. Разработчиците ще настояват за облачни услуги, за да помогнат на махалото да се върне към страната на разработчиците през 2018 г. Това ще изисква повече автоматизация за истински CICD.

Docker ви предоставя опаковка, преносимост и възможност за гъвкаво внедряване. Трябва ви CD, за да бъдете част от този жизнен цикъл на Docker. Например, ако използвате контейнери, веднага щом извършите промяна на код в Git, изграденият артефакт по подразбиране трябва да бъде изображение на Docker с новата версия на кода. Освен това изображението трябва автоматично да бъде избутано в регистъра на Docker и контейнер, разположен от изображението в среда за тестване на разработчици. След QA тестване и внедряване в производството, за вас трябва да се погрижите за оркестрацията, сигурността и мащабирането на контейнерите. Бизнес лидерите оказват натиск върху разработчиците да доставят по-бързо нови иновации; моделът devops трябва да освободи повече време за разработчиците, за да направи това възможно.

6. Отвореният код като услуга ускорява потреблението на иновации с отворен код 

Моделът с отворен код остава един от най-добрите двигатели на иновациите, но внедряването и поддържането на тази иновация често е твърде сложно. Например:

  • Искате платформа за управление на поточно предаване на данни / събития, затова се обърнете към Kafka. Когато започнете да използвате Kafka в мащаб, трябва да настроите допълнителни възли на Kafka и да балансирате натоварването на големи клъстери на Kafka, да актуализирате тези клъстери, когато излязат нови версии на Kafka, и след това да интегрирате тази услуга с останалата част от вашата среда.
  • Искате Kubernetes за оркестрация на контейнери. Вместо да се грижи за надстройки, архиви, възстановявания и корекции за вашия клъстер Kubernetes, платформата трябва да направи всичко това вместо вас. Kubernetes се доставя на всеки шест седмици, така че платформата трябва да има разгръщащи се приложения и самолечение.
  • Искате Cassandra за NoSQL бази данни. Трябва да искате резервното копие (нарастващо или пълно по график), корекцията, клъстерирането, мащабирането и високата наличност на клъстера Cassandra да се управляват от платформата.

Разработчиците все повече ще търсят облачни услуги, за да доставят всички тези високоскоростни иновации от отворен код, като същевременно се грижат за оперативните и управленските аспекти на тези технологии.

7. Безсървърните архитектури са големи в производството

Привлекателността на безсървърните архитектури е ясна: Когато има изискване кодът ми да бъде изпълнен въз основа на определено събитие, се създава екземпляр на инфраструктура, кодът ми се разгръща и изпълнява и се таксувам само за времето, в което кодът ми работи. Да предположим, че искате да изградите функция за резервиране на пътувания, за да резервирате / анулирате полети, хотели и коли под наем. Всяко от тези действия може да бъде изградено като безсървърна функция, написана на различни езици като Java, Ruby, JavaScript и Python. Няма работещ сървър на приложения с моя код; по-скоро функциите се инстанцират и изпълняват в инфраструктурата само когато е необходимо.

За разработчиците нанизването на безсървърни функции заедно за изпълнение на сложни транзакции създава нови предизвикателства: описване на това как тези функции трябва да бъдат свързани заедно, отстраняване на грешки в разпределени транзакции и определяне как при отказ на една функция във верига да се създават компенсиращи транзакции за отмяна на неподходящи промени. Потърсете облачни услуги и инструменти с отворен код, като проекта FN, за да процъфтяват, като помагат на разработчиците да управляват лесно програмирането, съставянето, отстраняването на грешки и управлението на жизнения цикъл на безсървърни функции, както и да ги разполагат и тестват на лаптоп или на предварително сървър или който и да е облак. Ключът ще бъде избирането на безсървърна платформа, която осигурява максимална преносимост.

8. Единственият въпрос за контейнерите става „Защо не?“

Контейнерите ще станат по подразбиране за разработката / тестовата работа и обичайни за производствените приложения. Очаквайте непрекъснати подобрения в сигурността, управляемостта, оркестрацията, мониторинга и отстраняването на грешки, водени от иновации с отворен код и индустриални стандарти. Контейнерите осигуряват градивни елементи за много от тенденциите, движещи съвременното развитие, включително архитектури на микросервизи, приложения, използвани в облак, безсървърни функции и devops.

Контейнерите няма да имат смисъл навсякъде - например, когато се нуждаете от по-предписваща облачна платформа, като интеграционен PaaS или мобилен PaaS - но тези облачни услуги от по-високо ниво сами ще работят на контейнери и ще бъдат изключенията, които доказват правило.

В допълнение, моделите за лицензиране на софтуер за търговски, локален софтуер с висока стойност ще трябва да обхванат разпространението на приемането на контейнери. Моделите за ценообразуване на софтуера ще трябва да поддържат лицензиране „включване“ и „изключване“, тъй като контейнерите се създават, мащабират и намаляват.

9. Софтуерът и системите стават самолечителни, самонастройващи се и самоуправляващи се

Разработчиците и екипите за производствени операции се давят в данни от регистрационни файлове, мониторинг на производителността на уеб / приложения / бази данни и мониторинг на потребителския опит и конфигурация. Освен това тези различни видове данни са затворени, така че трябва да доведете много хора в стая за отстраняване на грешки. След това възниква въпросът за трансфера на знания: Разработчиците прекарват много време в разказване на производствените функции на своите приложения, какви прагове да се зададат, какви сървърни топологии да се следят за транзакция и т.н.