Programmering

Anmeldelse: IBM Bluemix samler Cloud Foundry op

Da jeg gennemgik Cloud Foundry PaaS (platform som en tjeneste) sidste sommer, koncentrerede jeg mig om open source-, Pivotal- og ActiveState-implementeringer. I denne gennemgang vil jeg se på IBM Bluemix, et multitænkt PaaS hostet på SoftLayer, som kombinerer Cloud Foundry med et forbedret online brugergrænseflade og tjenester fra IBM og tredjeparter.

De mest karakteristiske tjenester på Bluemix er baseret på Watson, et kognitivt system, der giver naturlig sprogbehandling, hypotesegenerering og -evaluering og dynamisk læring. Flere af de andre tjenester og integrationer i Bluemix udfylder huller i open source-versionen af ​​Cloud Foundry - for eksempel autoskalering, mobil, big data og enterprise integrationstjenester.

Bemærk, at hullerne er udfyldt uden at forkaste Cloud Foundry-koden. Faktisk har Bala Rajaraman, CTO for Bluemix, fortalt mig fladt: "Vi vil ikke forkaste." Kommandolinjeprogrammet cf-applikationskonfiguration, som jeg installerede til open source Cloud Foundry og Pivotal CF, er det samme som Bluemix. Bosh PaaS-konfigurations kommandolinjeprogrammet, jeg installerede til open source Cloud Foundry, er det samme som hvad Bluemix-ingeniørerne bruger internt - men brugere af Bluemix behøver aldrig at lære bosh, da IBMs hensigt med Bluemix er at beskytte brugere mod PaaS-administration, fokus på service, og lad brugerne simpelthen oprette apps.

Jeg godkender denne holdning. Som udvikler fandt jeg, at lære bosh var en kamp, ​​og jeg følte, at det tunge løft ved konfiguration af en PaaS burde overlades til operationer. For mig er løftet fra PaaS og devops konfiguration og styring af infrastruktur med lav friktion til hjælp for at få software bygget og implementeret. At få en udvikler til at bruge en betydelig del af sin tid på den operationelle cruft, der er nødvendig for at oprette en PaaS, besejrer det grundlæggende formål med at have en PaaS. På samme tid kan jeg godt lide muligheden for at køre en single-VM “microcloud” PaaS privat på en bærbar computer til eksperimenter, hvorfor jeg også ser værdien af ​​ActiveState Stackato og PaaS VM-billeder, der kan downloades.

Fordi Bluemix er bygget på umodificeret Cloud Foundry, deler den hele Cloud Foundry-arkitekturen: Dråber, DEA'er (Droplet Execution Agents), buildpacks osv., Der kører på en virtuel maskine. Cloud Foundry-delen vises i den lyseblå VM-boks nederst til venstre i arkitekturdiagrammet nedenfor (figur 1).

Bluemix deler mere end Cloud Foundry-arkitekturen: den deler Cloud Foundry buildpacks og tjenester, der er tilgængelige på de andre Cloud Foundry-implementeringer, mens de tilføjer nogle af sine egne. Vi nedbryder alt dette i kedelplader, kendt andetsteds som hurtigstart eller en app-butik; driftstider, kendt andetsteds som buildpacks; og tjenester. Bluemix inkluderer tjenester til Watson, mobil, devops, web og applikationer, integration, datahåndtering, big data, sikkerhed, forretningsanalyse og IoT (tingenes internet). Jeg undersøger dem alle nedenfor.

Forskellige parter kan støtte Bluemix-tjenester: IBM, et samfund eller et tredjepartsfirma. Eksperimentelle tjenester er gratis, ustabile og kan ændres, som muligvis ikke er bagudkompatible. Således anbefales de ikke til produktion. Betatjenester er gratis, men er ikke testet grundigt i naturen. Alle Watson-tjenester er i øjeblikket klassificeret som beta.

Bluemix kedelplader

Som du kan se i figur 2, tilbyder Bluemix i øjeblikket 13 forskellige "kedelplader" eller hurtigstartpakker. Mens de fleste af disse har en IBM-smag, er det ikke nødvendigvis dårligt.

Nogle af de kedelplader, der tilbydes, kan kræve nogen forklaring. For eksempel giver Internet of Things Foundation Starter et Cloudant (CouchDB-kompatibelt) NoSQL JSON-datalag og en Node-RED-applikation hostet på en SDK til Node.js-runtime. Node-RED er et værktøj til tilslutning af hardwareenheder, API'er og onlinetjenester. Node-RED Starter er ens, men community-understøttet.

Java Cache Web Starter kombinerer Liberty til Java, en let WebSphere-profil, en DataCache-tjeneste og en overvågnings- og analysetjeneste. På det gratis niveau er DataCache kun 50 MB, og overvågnings- og analysetjenesten mangler den dybere ydelsesovervågning og diagnostik.

Mobile Cloud-kedelpladen kombinerer Node.js, Mobile Application Security, IBM Push messaging og Mobile Data (med en multitenant Cloudant-backend). Det inkluderer SDK'er til Android, iOS og JavaScript. På det gratis niveau er det begrænset til 2 GB lagerplads, 1 million push-underretninger om måneden og 375 GB-timer pr. Måned. Starter for MobileFirst Services ligner hinanden, men inkluderer push-underretninger og sikkerhed specifikt til iOS 8.

De tre Starter for brugermodellering kombinerer Watson User Modelling-tjenesten med en runtime og en prøvekode. Watson User Modelling bruger sproglig analyse til at udtrække et sæt personlighed og sociale træk fra den måde en person kommunikerer med et mål om at personalisere kommunikation.

Vaadin er en open source-webapplikationsramme til rige internetapplikationer. Vaadin-starter kører rammen i Liberty for Java og bruger en DB2-database.

Bluemix-driftstider, også kaldet buildpacks

Valget af driftstider, der tilbydes på Bluemix, inkluderer de syv navngivne buildpacks vist i figur 3 plus enhver anden buildpack, der er godkendt til Cloud Foundry. Seks af de viste driftstider skal være bekendt med dig; den syvende, Sinatra, er et DSL (domænespecifikt sprog) til oprettelse af webapplikationer i Ruby hurtigt og med minimal indsats.

PHP buildpack understøtter PHP 5.4, 5.5 og 5.6; Nginx 1,5, 1,6 og 1,7; og Apache HTTPD 2.4. Python-versionen understøttet i PHP buildpack er 2.6.6, hvilket ikke rigtig er aktuelt. Python-buildpack understøtter på den anden side et dusin versioner af Pypy samt et par dusin versioner hver af Python 2 og Python 3.

Samfundets buildpacks til Cloud Foundry inkluderer Clojure, Haskell, Mono og Erlang runtimes. Næsten det eneste populære Linux-kompatible applikationsserversprog, som jeg ikke fandt understøttet på Cloud Foundry, er Perl.

Watson-tjenester

De syv Watson-tjenester, der i øjeblikket tilbydes i Bluemix (figur 4), er konceptudvidelse, sprogidentifikation, maskinoversættelse, meddelelsesresonans, spørgsmål og svar, forholdsudtrækning og brugermodellering. Alle er stadig i beta. Jeg beskrev tidligere brugermodellering. Jeg dækker resten her.

Concept Expansion analyserer tekst og fortolker dens betydning baseret på brug i andre lignende sammenhænge. For eksempel kunne det fortolke "The Big Apple" som betydning "New York City." Det kan bruges til at oprette en ordbog med relaterede ord og begreber, så eufemismer, dagligdags eller på anden måde uklare sætninger kan forstås bedre og analyseres. Denne gratis Bluemix beta-tjeneste har et foruddefineret datasæt og domæne, så det er ubrugeligt til produktion.

Sprogidentifikationstjenesten registrerer det sprog, som teksten skrives på. Dette hjælper med at informere de næste trin som oversættelse, tale til tekst eller direkte analyse. Tjenesten kan bruges sammen med tjenesten Maskinoversættelse. I dag kan tjenesten identificere 25 sprog.

Tjenesten Maskinoversættelse konverterer tekstinput på et sprog til et destinationssprog for brugeren. Oversættelse er tilgængelig på engelsk, brasiliansk portugisisk, spansk, fransk og arabisk.

Message Resonance-tjenesten analyserer udkast til indhold og scorer, hvor godt det sandsynligvis modtages af en bestemt målgruppe. Denne analyse er baseret på indhold, der er skrevet af målgruppen selv, såsom fans af et bestemt sportshold eller nye forældre. Selvom fremtidige versioner giver brugerne mulighed for at levere deres egne community-data, kan analyser i dag kun udføres mod mennesker, der er aktive i cloud computing eller cloud computing-diskussioner; dette gør beta-tjenesten ubrugelig til produktion i andre domæner end cloud computing.

Spørgsmål og svar-tjenesten fortolker og besvarer brugerspørgsmål direkte baseret på primære datakilder (brochurer, websider, manualer, optegnelser), der er valgt og samlet i en datakropp eller "corpus". Tjenesten returnerer kandidatsvar med tilhørende tillidsniveauer og links til bevismateriale. De nuværende data om Bluemix fokuserer på rejse- og sundhedsindustrien, hvilket gør det ubrugeligt for andre domæner.

Relationship Extraction analyserer sætninger i deres forskellige komponenter og registrerer forhold mellem komponenterne. Det kan behandle nye udtryk (såsom folks navne i et nyhedsfeed), som det aldrig har analyseret før gennem kontekstuel analyse. Setningskomponenter inkluderer taledele (substantiv, verb, adjektiv, konjunktion) og funktioner (emner, objekter, prædikater). Tjenesten kortlægger forholdet mellem komponenterne, så brugere eller analysemotorer lettere kan forstå betydningen af ​​individuelle sætninger og dokumenter.

Betatjenesten er optimeret til nyhedsartikler eller anden nyhedsrelateret tekst på engelsk eller spansk via separate API'er; du kan ikke bruge det til et vilkårligt domæne og forvente at få gode svar. Som du kan se i figur 5, returnerer det ikke altid gode svar, selv for nyhedsartikler; formodentlig, når du først har leveret dit eget træningssæt, vil du være i stand til at indstille tjenesten til dit interessedomæne.

Generelt ser beta-Watson-tjenesterne på Bluemix pirrende ud, men de er endnu ikke klar til prime time. Dette stemmer overens med den måde, de er præsenteret på.

Mobil- og applikationstjenester

Vi har allerede diskuteret seks af de otte mobile tjenester, der er tilgængelige på Bluemix. En anden er Mobile Quality Assurance, som muliggør test af mobilapp, brugervalidering og strømlinet kvalitetsfeedback med sentimentanalyse; distribution over luften; automatisk rapportering om nedbrud og fejlrapportering i appen og feedback fra brugerne. Og der er Twilio, en tredjeparts stemme-, messaging- og VoIP-service.

Der er 19 web- og applikationstjenester i Bluemix. Det er for mange til at diskutere her, men et par af dem nævner. RapidApps er en beta-tjeneste med begrænset funktionalitet, der hævder at lade dig "hurtigt udvikle datacentrerede web- og mobilapps ved hjælp af visuelle værktøjer - uden kodning." RapidApps formodes at være rettet mod forretningsanalytikere; det ser ud til at være langt fra kogt på dette tidspunkt, men kan være interessant i fremtiden.

Tjenesten forretningsregler tager naturlige sprogregler, som du opretter i en regeldesigner, og udfører dem, når de påberåbes af din app. Dette synes også at være rettet mod forretningsanalytikere, men det er i bedre form end RapidApps på dette tidspunkt.

Afvikler tjenester

De otte devops-tjenester på BlueMix inkluderer fem fra IBM og tre fra tredjeparter. Tjenesten Spor og plan giver dig mulighed for at oprette historier, opgaver og mangler til at beskrive og spore projektarbejde samt bruge agile planlægningsværktøjer til produktets efterslæb, frigivelser og sprints. Denne service giver dig i det væsentlige en rationel teamkoncert til dit Git- eller Jazz-lager.

Tjenesten Delivery Pipeline giver dig mulighed for at automatisere builds og implementeringer, testudførelse, konfigurere build-scripts og automatisere eksekvering af enhedstests. Jeg kan godt lide den måde, hvorpå disse to tjenester integrerer Jazz-grænsefladen med Bluemix.

Vi diskuterede overvågning og Analytics-tjenesten i sammenhæng med Java Cache Web-starter. Automatisk skalering til Bluemix-tilføjelse giver dig mulighed for automatisk at øge eller mindske beregningskapaciteten for din applikation. Appbrugerregistret giver dig mulighed for at beskytte din ressourceapplikation eller udvikle din klientapplikation baseret på OAuth 2.0. De tre tredjeparts devops-tjenester er BlazeMeter, Load Impact og New Relic.

Andre tjenester

Der er kun to integrationstjenester i Bluemix, men de er begge interessante. Cloud Integration gør det muligt for brugere at integrere skytjenester med forretningssystemer; det udsætter back-end-systemer som REST API'er, der skal bruges af applikationer. Den eksperimentelle Containers Service giver dig mulighed for at køre Docker-containere på Bluemix, som potentielt åbner Bluemix op til næsten alt.

Af de 10 datastyringstjenester på Bluemix er to til MySQL (en open source, en fejltolerant), to til Postgres (dito), tre til NoSQL-databaser og en til DB2. De resterende to datastyringstjenester er Object Storage (beta, baseret på OpenStack Swift) og DataWorks; sidstnævnte inkluderer API'er, der indlæser data, renser amerikanske postadresser og klassificerer data.

ScorecardBrugervenlighed (20%) Støttebredde (20%) Ledelse (20%) Dokumentation (15%) Installation og opsætning (15%) Værdi (10%) Samlet score
IBM Bluemix999899 8.9
$config[zx-auto] not found$config[zx-overlay] not found