Vuotuinen Integrate-konferenssi pidettiin Lontoossa jo kuukausi sitten. Mukana oltiin tänäkin vuonna kuuntelemassa tuoreimpia uutisia Azuren integraatiopalveluiden ympäriltä, vaikka tiivistelmän kirjoitus piti jättää asiakasprojektien priorisoinnin takia vähän myöhemmäksi.

Avauspäivän työvaatetus oli lauantaisen Champions League -finaalin tuloksen mukaisesti punainen – en tosin syksyllä muistanut, että se ensimmäinen työpäivä pokaalin jälkeen saattoi olla Lontoossa, mutta riittävän tärähtäneenä (kuten kuvakin osoittaa) ja ääni käheänä toteutin sijainnista huolimatta lupaukseni – YNWA 🙂

Mitä itse tapahtumasta jäi käteen – etenkin hieman pidemmällä sulattelulla? Jos vertaa viime vuoden koosteeseeni, niin voisi sanoa, ettei kovin paljon mitään “mullistavaa” – mikä on itse asiassa erinomainen asia, ja kertoo siitä, että teknologiat ovat vakiintuneet ja elävät stabiilissa, vaikkakin nopeassa kehitysrytmissä – mutta ilman jättimäisiä (rikkovia) muutoksia. Kukin palvelu julkaisee uutisiaan ja ominaisuuksiaan vuoden mittaan jatkuvasti eikä enää kertarysäyksellä.

Ehkä tähän kehitysvauhtiin on jo turtunut, sillä jos käy vuoden ajan muutokset läpi blogeista ja videoista, niitä on hirvittävä määrä. Oletusarvo on nykyisin mieluumminkin se, että Microsoft julkaisee Azureen uusia ominaisuuksia kuin liukuhihnalta – ja niiden puuttuminen olisi se iso juttu. Ja suurin osa uusista jutuista on tietysti avointa lähdekoodia…maailma todellakin muuttuu…

Pääviesti on edelleen: uusia integraatioita kannattaa suunnitella “pilvi edellä”, vaikka se BizTalk hyrisisi nurkassa (tai pilvessä) – etenkin, jos uuden liittymän integraatio sisältää valmiin connectorin Logic Appsien puolella tai paljon logiikkaa. Tähän puoleen törmää usein, jos integraatiorajapintana on samat APIt, joita esim. webbisivusto käyttää sisäisestikin. Joskus (ja aika useinkin) tietojen nouto SaaS-järjestelmistä vaatii sellaista logiikkaa, jota en lähtisi missään nimessä muutenkaan implementoimaan BizTalkin sisälle, vaan helpommin ylläpidettävään erilliseen komponenttiin, jota on ketterämpi päivittää tarpeen vaatiessa.

Monitorointi

Tänä vuonna useissa puheenvuoroissa nousi esiin monitoroinnin järjestäminen hajautetussa pilvimaailmassa. Asia on varmasti noussut enemmän esiin käytännön toteutusten lisääntyessä, koska eri komponenttien kautta kulkevia sanomaketjuja voi olla hyvin haasteellista seurata päästä päähän. Sinänsä tuo seuranta on enemmän liiketoimintaongelma, joka pitää ottaa suunnittelussa huomioon: kuka tarvitsee mitäkin tietoa ja millä hetkellä & viiveellä se on hyväksyttävää saada. Jos “vain” operoidaan sanomaliikennettä, tilanne on aivan eri kuin jos liiketoiminnan edustajien tai asiakkaiden pitää päästä näkemään, missä tilassa heidän oma transaktionsa systeemeissä kulkee. Puhumattakaan reaaliaikaisen analytiikan ja koneoppimisen liittämistä integraatioiden välittämään dataan ja/tai niiden valvontaan…

Onneksi Azuren omien palveluiden päälle voi toteuttaa mitä vain. Toki räätälöinnin määrä nousee vaatimusten kasvaessa – mutta kannattaa pitää silmällä myös SaaS-pohjaisia tuotteita, joilla tätä valvontaa voi helpottaa. Konferenssin isäntä (kovai.co) , esitteli luonnollisesti omia tuotteitaan keskittyen etenkin Serverless360:iin, josta saatiin myös pitkän linjan MS-integraatiopuolen tekijöiden esimerkkitoteutuksia. Itseäni viehätti etenkin Serverless360:iin sisäänrakennettu BAM (Business Activity Monitoring) toiminto, johon on mahdollista kerätä tällaista päästä päähän tietoa käytännössä mistä vain ja avata pääsy dataan roolipohjaisesti. Muitakin ratkaisuja markkinoilta löytyy.

Logic Apps

Kehitys jatkuu tasaisen tappavalla vauhdilla monella sektorilla. Niin Logic Appsien connectorien määrä (38 uutta viimeisen puolen vuoden aikana), kuin tulossa olevat uudet ominaisuudet kehitysputkeen (mm. editorit, paremmat ARM-template exportit) sekä operointiin ja turvallisuuteen (salaisten tietojen peittäminen, managed identities, OAuth-pohjainen autentikointi Logic Appsien kutsuihin). SAP connectoriinkin on vihdoin tulossa tuki Commit/Rollback -operaatioille – mitä pikemmin, sen parempi.

Operointia helpottamaan tulee myös loistava uusi ominaisuus, eli virheellisen ajon voi piakkoin käynnistää uusiksi haluamastaan kohdasta (resubmit from action) – nykyisinhän uusiminen on tarkoittanut koko työnkulun uusintaa alusta asti, mikä on voinut tuottaa harmaita hiuksia, jos jokin epätodennäköisen virhetilanteen mahdollisuus on jäänyt aikanaan huomioimatta toteutuksessa.

Sanomajonokäyttöä ajatellen sisäänrakennettu tuki isojen aineistojen käsittelylle (siirretään jonoon tieto siitä, mistä vastaanottaja saa blob storageen tallennetun datan noudettua) on myös aivan loistava asia ja helpottaa jälleen Azuren Service Busin sisäänrakennettujen ominaisuuksien hyödyntämistä näissäkin tapauksissa, joissa mennään tuon suhteellisen pienen 256 kilotavun aineistokoon yli.

Pienen koodin käyttö mahdollistuu myös suoraan Logic Appsien sisällä ilman erillistä funktiota, esiversio tosin tukee vasta JavaScriptiä ja vaatii kk-maksullisen Integration Accountin käyttöä, mutta kielivalikoima on laajentumassa ja jälkimmäisestä riippuvuudesta yritetään päästä eroon ennen varsinaista julkaisua.

Myös oma eristetty ympäristö (ISE = integration service environment) kehittyy koko ajan – varteenotettava vaihtoehto, jos halutaan ennakoida kustannuksia paremmin (etenkin suurten volyymien kohdalla), ajaa integraatioita omien verkkojen sisällä ja vakioidulla suorituskyvyllä & varmasti eristetyllä datalla – muitakin pieniä lisäominaisuuksia on tätä kautta saatavilla. Skaalautuvuutta riittää, mutta listahinta toki lähtee noin 6 euron tuntitasolta (~4400 € / kk) eli ihan pikkutarpeisiin tämä ei toimi kustannustehokkaana ratkaisuna verrattuna “jaetun” puolen transaktiopohjaiseen hinnoitteluun. Kehityspuolen saa kuitenkin pystyyn huomattavasti edullisemmin (runsaat 700 € / kk).

API Management

Tälläkin puolella kehitys on ollut tasaista, mutta yksi ominaisuus oli yli muiden – APIM on ollut tähän asti puhtaasti pilvipohjainen palvelu, mutta nyt siihen on tulossa mahdollisuus ajaa API gatewaytä omassa infrassa. Sitä hallitaan edelleen pilvestä, mutta ajoympäristö voidaan nostaa docker-kontin päälle ilman, että liikennettä tarvitsee reitittää pilven kautta, jolloin esim. matkasta aiheutuvat viiveet saadaan minimoitua. Tämä on kieltämättä ollut suurin puute, jonka vuoksi se ei ole soveltunut kaikkiin asiakastarpeisiin.

Myös kehittäjäportaali uusiutuu modernimmaksi ja samalla varsin ketterän näköiseksi – ja jälleen avoimeen lähdekoodiin perustuvaksi. Portaalia voi kustomoida ja laajentaa todella helposti toisin kuin aiemmin – ja vaikka ohjata kehittäjäportaalin kutsut pienellä muokkauksella ei-tuotannollisiin rajapintoihin.

BizTalk 2020

Ehkä yhtenä isoimmista (mutta hyvin odotettuna) uutisista oli BizTalkin uusimman version tulo loppuvuodesta. Tärkeintä tässä on se, että BizTalk 2016 Enterprise -version Feature Pack -laajennusten pitäisi nyt tulla Standard versioon mukaan. Viime vuonnahan juuri tässä kohtaa tuli kylmä suihku standardin omistajille niskaan ja aikataulu oli täysin pimennossa. Nyt BizTalkin käyttömahdollisuudet helpottuvat näiltäkin osin hybridimallin kannalta. Toki samalla mahdollistuu tuoreimpien SQL & Windows alustojen käyttö.

Tiivistettynä nämä Enterprise-tason aiemmin julkaistut ominaisuudet alla:

  • CI/CD Azure DevOpsin kautta
  • SOAP-rajapintojen suora julkaisu Azuren API Managementtiin (suora tai SOAP-to-REST)
  • Uusia adaptereja: Azure Event Hubs, Office365 -adapterit (Email, Calendar, Contact)
  • BizTalkin hallinta APIen kautta
  • Application Insights / Event Hubs käyttö BizTalkin lokidatalle & Power BI -template lokidatan käsittelylle
  • Kehittyneemmät ajastusmahdollisuudet
  • Varmuuskopiointi Azuren Blob Storageen
  • TLS 1.2 -tuki
  • GDPR (ja FIPS) -muutoksia

Uutena adapterina mukaan olisi tulossa vielä Azuren Blob Storage, mikä on erinomainen lisä palettiin sen helpossa linkittämisessä muihin palveluihin esim. Event Gridin tai funktioiden kautta.

Ja muuta…

Toki kaikki muutkin integraatiopalvelut käytiin läpi – eli messaging-palvelut Service Bus, Event Hubs ja Event Grid. Ja käsiteltiin luonnollisesti myös Azure Functionsin hyödyntämistä näiden palvelujen yhteydessä, mikä on omien kokemusten perusteella erittäin kustannustehokas vaihtoehto.

Microsoft Flow:n roolia nostettiin myös esiin – se ei ole mikään “Logic Appsien pikkuveli” vaan sille löytyy erinomaisia käyttötapauksia, joita ei Logic Appsilla voi suoraan toteuttaa – ja päinvastoin. Oleellista on osata poimia omaan palettiin tarpeen mukaan parhaat palat molemmista työkaluista.

Kun kolmessa päivässä on liki 30 esitystä tuotekatsauksista ja case-esimerkeistä teknisiin detaljeihin, niin antia kyllä riittää. Isäntien omat tiivistelmät kaikista esityksistä (englanniksi) voi käydä lukemassa täältä:

PS. Keskustelen Azuren integraatiopalveluista mielelläni lisää naamatusten tai sähköisesti, jos kiinnostusta tai kysyttävää on. Ainakin loman jälkeen elokuussa – hyvää kesää kaikille!