Какво е родно в облака? Съвременният начин за разработване на софтуер

Терминът „роден в облака“ се разпространява много, особено от доставчиците на облак. Не само това, но дори има своя собствена фондация: Cloud Native Computing Foundation (CNCF), стартирана през 2015 г. от Linux Foundation.

Дефинирано „Cloud-native“

Най-общо „облачно“ е подход за изграждане и изпълнение на приложения, който използва предимствата на модела за доставка на облачни изчисления. “Cloud-native” е за това как се създават и разгръщат приложения, а не къде. Това предполага, че приложенията живеят в публичния облак, за разлика от локалния център за данни.

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

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

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

Разработването на приложения в родния облак обикновено включва devops, гъвкава методология, микроуслуги, облачни платформи, контейнери като Kubernetes и Docker и непрекъсната доставка - накратко, всеки нов и модерен метод за внедряване на приложения.

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

Свързано видео: Какъв е подходът, който се използва в облака?

В това 60-секундно видео научете как подходът, който се използва в облака, променя начина, по който предприятията структурират своите технологии, от Крейг Маклуки, основател и главен изпълнителен директор на Heptio и един от изобретателите на Kubernetes с отворен код.

Разлики между локални и локални приложения

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

Езици

Локалните приложения, написани за изпълнение на фирмени сървъри, обикновено се пишат на традиционни езици, като C / C ++, C # или друг език на Visual Studio, ако са разположени на платформа на Windows Server и корпоративна Java. И ако е на мейнфрейм, вероятно е в Кобол.

Облачните приложения са по-склонни да бъдат написани на уеб-ориентиран език, което означава HTML, CSS, Java, JavaScript, .Net, Go, Node.js, PHP, Python и Ruby.

Възможност за актуализация

Облачните приложения винаги са актуални и актуални. Облачните приложения винаги са на разположение.

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

Еластичност

Облачните приложения в облака се възползват от еластичността на облака, като използват увеличени ресурси по време на скок на използването. Ако базираното в облак приложение за електронна търговия изпитва скок в употреба, можете да го настроите да използва допълнителни изчислителни ресурси, докато скокът отшуми и след това да ги изключите. Приложението в родния облак може да се приспособи към увеличените ресурси и мащаб, ако е необходимо.

Локалното приложение не може да се мащабира динамично.

Многостранност

Природното приложение в облак няма проблем да работи във виртуализирано пространство и да споделя ресурси с други приложения.

Много локални приложения или не работят добре във виртуална среда, или изобщо не работят и изискват невиртуализирано пространство.

Свързани ресурси

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

„Мрежата и съхранението са напълно различни в облака. Когато чуете термина „преплатформиране“, това обикновено е работата за приспособяване на промените в мрежите, съхранението и дори технологиите за бази данни, за да може приложението да работи в облака “, казва Kavis на Deloitte.

Време за престой

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

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

Автоматизация

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

Локалните приложения трябва да се управляват ръчно.

Модулен дизайн

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

Без гражданство

Слабо свързаната природа на облака означава, че приложенията не са обвързани с инфраструктура, което означава, че са без гражданство. Родното приложение в облака съхранява състоянието си в база данни или някакъв друг външен обект, за да могат екземплярите да идват и си отиват и приложението все още да проследява къде в работната единица е приложението. „Това е същността на свободно свързани. Несвързаността с инфраструктурата позволява и приложението да работи по силно разпределен начин и все пак да поддържа състоянието си независимо от еластичния характер на основната инфраструктура “, казва Кавис.

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

Предизвикателствата на родните изчисления в облака

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

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

Също така трябва да се откажете от старите си методи за разработчици. Моделът на водопада със сигурност няма да се справи и дори пъргавото развитие може да не е достатъчно. Така че, трябва да възприемете нови подходи, използвани в облака, като разработване на минимален жизнеспособен продукт (MVP), многовариантно тестване, бърза итерация и тясно сътрудничество в рамките на организационните граници в модел на devops.

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

Научете повече за свързаните с облака технологии

  • Обяснено за платформата като услуга (PaaS)
  • Мултиклауд обясни
  • Обяснена е гъвкава методология
  • Най-добрите практики за гъвкаво развитие
  • Девопс обясни
  • Предоставя най-добрите практики
  • Обяснено на Microservices
  • Урок за микроуслуги
  • Обяснени са Docker и Linux контейнери
  • Урок по Kubernetes
  • Обяснен CI / CD (непрекъсната интеграция и непрекъсната доставка)
  • Най-добри практики за CI / CD