Programmering

Gjennomgang: IBM Bluemix samler opp Cloud Foundry

Da jeg gjennomgikk Cloud Foundry PaaS (plattform som en tjeneste) i fjor sommer, konsentrerte jeg meg om åpen kildekode-, Pivotal- og ActiveState-implementeringer. I denne gjennomgangen vil jeg se på IBM Bluemix, en multitenant PaaS som er vert på SoftLayer, som kombinerer Cloud Foundry med et forbedret online brukergrensesnitt og tjenester fra IBM og tredjeparter.

De mest særegne tjenestene på Bluemix er basert på Watson, et kognitivt system som gir naturlig språkbehandling, hypotesegenerering og evaluering og dynamisk læring. Flere av de andre tjenestene og integrasjonene i Bluemix fyller hull i åpen kildekodeversjon av Cloud Foundry - for eksempel tjenester for automatisk skalering, mobil, big data og enterprise integration.

Merk at hullene er fylt uten å forfalde Cloud Foundry-koden. Faktisk har Bala Rajaraman, CTO for Bluemix, fortalt meg: "Vi vil ikke forkaste." Kommandolinjeprogrammet cf-applikasjonskonfigurasjon jeg installerte for åpen kildekode Cloud Foundry og Pivotal CF er det samme som for Bluemix. Bosh PaaS-konfigurasjons kommandolinjeprogrammet jeg installerte for Cloud Source Foundry med åpen kildekode er det samme som Bluemix-ingeniørene bruker internt - men brukere av Bluemix trenger aldri å lære bosh, ettersom IBMs intensjon med Bluemix er å beskytte brukere mot PaaS-administrasjon, fokus på service, og la brukerne bare lage apper.

Jeg godkjenner denne holdningen. Som utvikler syntes jeg at det å lære bosh var en kamp, ​​og jeg følte at det tunge løftet med å konfigurere en PaaS burde overlates til operasjoner. For meg er løftet fra PaaS og devops konfigurasjon og administrasjon av infrastruktur med lav friksjon for å få programvare bygget og distribuert. Å få en utvikler til å tilbringe en betydelig del av sin tid på den operative cruften som er nødvendig for å sette opp en PaaS, beseirer det grunnleggende formålet med å ha en PaaS. Samtidig liker jeg muligheten til å kjøre en single-VM "microcloud" PaaS privat på en bærbar PC for eksperimenter, og det er derfor jeg også ser verdien av ActiveState Stackato og nedlastbare PaaS VM-bilder.

Fordi Bluemix er bygget på umodifisert Cloud Foundry, deler den all Cloud Foundry-arkitekturen: Droplets, DEAs (Droplet Execution Agents), buildpacks og så videre, kjører på en virtuell maskin. Cloud Foundry-delen vises i den lyseblå VM-boksen nede til venstre i arkitekturdiagrammet nedenfor (figur 1).

Bluemix deler mer enn Cloud Foundry-arkitekturen: den deler Cloud Foundry buildpacks og tjenester som er tilgjengelige på de andre Cloud Foundry-implementeringene, mens de legger til noen av sine egne. Vi deler alt dette opp i kjeleplater, kjent andre steder som hurtigstart eller en appbutikk; kjøretider, kjent andre steder som buildpacks; og tjenester. Bluemix inkluderer tjenester for Watson, mobil, devops, Internett og applikasjoner, integrering, datahåndtering, big data, sikkerhet, forretningsanalyse og IoT (Internet of Things). Jeg undersøker dem alle nedenfor.

Ulike parter kan støtte Bluemix-tjenester: IBM, et fellesskap eller et tredjepartsfirma. Eksperimentelle tjenester er gratis, ustabile og kan endres som kanskje ikke er bakoverkompatible. Dermed anbefales de ikke for produksjon. Betatjenester er gratis, men har ikke blitt testet grundig i naturen. Alle Watson-tjenester er for tiden klassifisert som beta.

Bluemix kokeplater

Som du kan se i figur 2, tilbyr Bluemix for tiden 13 forskjellige "kjeleplater" eller hurtigstartpakker. Mens de fleste av disse har en IBM-smak, er det ikke nødvendigvis dårlig.

Noen av kokeplatene som tilbys kan kreve noen forklaring. For eksempel gir Internet of Things Foundation Starter et Cloudant (CouchDB-kompatibelt) NoSQL JSON-datalag og et Node-RED-program vert på en SDK for Node.js-kjøretiden. Node-RED er et verktøy for å koble sammen maskinvareenheter, API-er og online-tjenester. Node-RED Starter er lik, men fellesskapsstøttet.

Java Cache Web Starter kombinerer Liberty for Java, en lett WebSphere-profil, en DataCache-tjeneste og en Monitoring and Analytics-tjeneste. På gratis nivå er DataCache bare 50 MB, og tjenesten Overvåking og Analytics mangler dypere ytelsesovervåking og diagnostikk.

Mobile Cloud-kjeleplaten kombinerer Node.js, Mobile Application Security, IBM Push messaging og Mobile Data (med en multitenant Cloudant-backend). Den inkluderer SDK-er for Android, iOS og JavaScript. På det gratis nivået er det begrenset til 2 GB lagringsplass, 1 million push-varsler i måneden og 375 GB-timer per måned. Starter for MobileFirst Services er lik, men inkluderer pushvarsler og sikkerhet spesielt for iOS 8.

De tre startmodellene for brukermodellering kombinerer Watson-brukermodelleringstjenesten med en kjøretid og en prøvekode. Watson User Modelling bruker språklig analyse for å trekke ut et sett med personlighet og sosiale egenskaper fra måten en person kommuniserer på, med et mål om å tilpasse kommunikasjonen.

Vaadin er et open source-rammeverk for rike internettapplikasjoner. Vaadin-starteren kjører rammeverket i Liberty for Java og bruker en DB2-database.

Bluemix driftstider, aka buildpacks

Utvalget av driftstimer som tilbys på Bluemix inkluderer de syv navngitte buildpacks vist i figur 3, pluss alle andre buildpack som er godkjent for Cloud Foundry. Seks av kjøretidene som vises skal være kjent for deg; den syvende, Sinatra, er et DSL (domenespesifikt språk) for å lage webapplikasjoner i Ruby raskt og med minimal innsats.

PHP-buildpack støtter PHP 5.4, 5.5 og 5.6; Nginx 1,5, 1,6 og 1,7; og Apache HTTPD 2.4. Python-versjonen som støttes i PHP buildpack er 2.6.6, som egentlig ikke er aktuell. Python-byggpakken støtter derimot et dusin versjoner av Pypy, samt et par dusin versjoner hver av Python 2 og Python 3.

Samfunnspakkene for Cloud Foundry inkluderer Clojure, Haskell, Mono og Erlang runtimes. Praktisk talt det eneste populære Linux-kompatible applikasjonsserverspråket jeg ikke fant støttet på Cloud Foundry, er Perl.

Watson-tjenester

De syv Watson-tjenestene som for øyeblikket tilbys i Bluemix (figur 4) er konseptutvidelse, språkidentifikasjon, maskinoversettelse, meldingsresonans, spørsmål og svar, relasjonsutvinning og brukermodellering. Alle er fortsatt i beta. Jeg beskrev brukermodellering tidligere. Jeg vil dekke resten her.

Concept Expansion analyserer tekst og tolker dens betydning basert på bruk i andre lignende sammenhenger. For eksempel kan den tolke "The Big Apple" som betydningen "New York City." Den kan brukes til å lage en ordbok med beslektede ord og begreper, slik at eufemismer, kollokvialisme eller på annen måte uklare setninger kan forstås og analyseres bedre. Denne gratis Bluemix beta-tjenesten har et forhåndsdefinert datasett og domene, så den er ubrukelig for produksjon.

Språkidentifikasjonstjenesten oppdager språket teksten skrives på. Dette hjelper deg med å informere neste trinn som oversettelse, tale til tekst eller direkte analyse. Tjenesten kan brukes sammen med tjenesten Machine Translation. I dag kan tjenesten identifisere 25 språk.

Maskinoversettelsestjenesten konverterer tekstinngang på ett språk til et destinasjonsspråk for brukeren. Oversettelse er tilgjengelig på engelsk, brasiliansk portugisisk, spansk, fransk og arabisk.

Message Resonance-tjenesten analyserer utkast til innhold og scorer hvor godt det sannsynligvis blir mottatt av en bestemt målgruppe. Denne analysen er basert på innhold som er skrevet av målgruppen selv, for eksempel fans av et bestemt idrettslag eller nye foreldre. Selv om fremtidige versjoner vil la brukerne levere sine egne samfunnsdata, kan analyser i dag bare gjøres mot personer som er aktive i cloud computing eller cloud computing-diskusjoner; dette gjør betatjenesten ubrukelig for produksjon i andre domener enn cloud computing.

Spørsmål og svar-tjenesten tolker og svarer på brukerspørsmål direkte basert på primære datakilder (brosjyrer, websider, manualer, poster) som er valgt og samlet i en datamasse eller "corpus". Tjenesten returnerer kandidatsvar med tilhørende tillitsnivå og lenker til underbyggende bevis. De nåværende dataene på Bluemix fokuserer på reise- og helsevesenet, og gjør det ubrukelig for andre domener.

Relationship Extraction analyserer setninger i deres forskjellige komponenter og oppdager forhold mellom komponentene. Den kan behandle nye termer (for eksempel folks navn i en nyhetsfeed) som den aldri har analysert før gjennom kontekstuell analyse. Setningskomponenter inkluderer deler av tale (substantiv, verb, adjektiv, konjunktjon) og funksjoner (subjekter, objekter, predikater). Tjenesten kartlegger forholdet mellom komponentene slik at brukere eller analysemotorer lettere kan forstå betydningen av individuelle setninger og dokumenter.

Betatjenesten er optimalisert for nyhetsartikler eller annen nyhetsrelatert tekst på engelsk eller spansk, via separate APIer; du kan ikke bruke den til et vilkårlig domene og forvente å få gode svar. Som du kan se i figur 5, gir det ikke alltid gode svar selv for nyhetsartikler; antagelig, når du har levert ditt eget opplæringssett, vil du kunne stille tjenesten til ditt interessedomen.

Samlet sett ser beta-Watson-tjenestene på Bluemix spennende ut, men de er ennå ikke klare for beste sendetid. Dette stemmer overens med måten de har blitt presentert på.

Mobil- og applikasjonstjenester

Vi har allerede diskutert seks av de åtte mobile tjenestene som er tilgjengelige på Bluemix. En annen er mobil kvalitetssikring, som muliggjør testing av mobilapper, brukervalidering og strømlinjeformet kvalitetsfeedback med sentimentanalyse; over-the-air distribusjon; automatisert krasjrapportering; og feilrapportering i appen og tilbakemeldinger fra brukerne. Og det er Twilio, en tredjeparts tale-, meldings- og VoIP-tjeneste.

Det er 19 web- og applikasjonstjenester i Bluemix. Det er for mange å diskutere her, men et par av dem nevner. RapidApps er en beta-tjeneste med begrenset funksjonalitet som hevder å la deg "raskt utvikle datasentriske nett- og mobilapper ved hjelp av visuelle verktøy - uten koding." RapidApps skal være rettet mot forretningsanalytikere; det ser ut til å være langt fra tilberedt på dette tidspunktet, men kan være interessant i fremtiden.

Forretningsregler-tjenesten tar naturlige språkregler som du oppretter i en regeldesigner og utfører dem når de blir påkalt av appen din. Dette ser også ut til å være rettet mot forretningsanalytikere, men det er i bedre form enn RapidApps på dette tidspunktet.

Avvikler tjenester

De åtte devops-tjenestene på BlueMix inkluderer fem fra IBM og tre fra tredjeparter. Spor og plan-tjenesten lar deg lage historier, oppgaver og mangler for å beskrive og spore prosjektarbeid, samt bruke smidige planleggingsverktøy for produktets etterslipp, utgivelser og sprints. Denne tjenesten gir deg i hovedsak en rasjonell teamkonsert for ditt Git- eller Jazz-lager.

Delivery Pipeline-tjenesten lar deg automatisere bygg og distribusjoner, teste utførelse, konfigurere byggeskripter og automatisere utførelse av enhetstester. Jeg liker måten disse to tjenestene integrerer Jazz-grensesnittet med Bluemix på.

Vi diskuterte Overvåking og Analytics-tjenesten i sammenheng med Java Cache Web starter. Auto-Scaling for Bluemix Add-on lar deg automatisk øke eller redusere beregningskapasiteten til applikasjonen. Appbrukerregisteret lar deg beskytte ressursapplikasjonen eller utvikle klientapplikasjonen din basert på OAuth 2.0. De tre tredjeparts devops-tjenestene er BlazeMeter, Load Impact og New Relic.

Andre tjenester

Det er bare to integrasjonstjenester i Bluemix, men de er begge interessante. Cloud Integration gjør det mulig for brukere å integrere skytjenester med firmasystemer; den avslører back-end-systemene som REST APIer som skal brukes av applikasjoner. Den eksperimentelle Containers Service lar deg kjøre Docker-containere på Bluemix, som potensielt åpner Bluemix opp til nesten hva som helst.

Av de 10 datatjenestetjenestene på Bluemix er to for MySQL (en åpen kildekode, en feiltolerant), to for Postgres (ditto), tre for NoSQL-databaser og en for DB2. De resterende to datahåndteringstjenestene er Object Storage (beta, basert på OpenStack Swift) og DataWorks; sistnevnte inkluderer API-er som laster inn data, renser amerikanske postadresser og klassifiserer data.

PoengkortBrukervennlighet (20%) Støttebredde (20%) Ledelse (20%) Dokumentasjon (15%) Installasjon og oppsett (15%) Verdi (10%) Total poengsum
IBM Bluemix999899 8.9
$config[zx-auto] not found$config[zx-overlay] not found