Lingaliro lalikulu la polojekitiyi linali loti: m'malo mokhala ndi galimoto yapakati kapena yobwereketsa njinga zamoto (tikulankhula za njinga zamoto zamagetsi, osati kickscooters / scooters) timafuna kupanga nsanja yobwereketsa. Za zovuta zomwe tidakumana nazo adalemba kale.
Poyamba, polojekitiyi imayang'ana pa magalimoto, koma chifukwa cha nthawi yomalizira, kulankhulana kwautali kwambiri ndi opanga ndi chiwerengero chachikulu cha zoletsa chitetezo, ma scooters amagetsi anasankhidwa kuti ayendetse.
Wogwiritsa adayika pulogalamu ya iOS kapena Android pa foni, adayandikira scooter yomwe amakonda, pambuyo pake foni ndi scooter zidakhazikitsa kulumikizana kwa anzawo, ETH idasinthidwa ndipo wogwiritsa ntchito amatha kuyambitsa kukwera poyatsa njinga yamoto yovundikira. foni. Pamapeto pa ulendowu, zinali zothekanso kulipira ulendowu pogwiritsa ntchito Ethereum kuchokera ku chikwama cha wogwiritsa ntchito pa foni.
Kuphatikiza pa ma scooters, wogwiritsa ntchito adawona "ma charger anzeru" mu pulogalamuyo, poyendera zomwe wogwiritsa ntchito amatha kusintha batire yomwe ilipo ngati idali yotsika.
Izi ndizomwe woyendetsa wathu amawonekera, zomwe zidakhazikitsidwa mu Seputembala chaka chatha m'mizinda iwiri yaku Germany: Bonn ndi Berlin.
Ndiyeno, tsiku lina, ku Bonn, m'bandakucha, gulu lathu lothandizira (lomwe lili pamalopo kuti lisungitse ma scooters kuti agwire ntchito) linachenjezedwa: imodzi mwa ma scooters inali itasowa popanda kufufuza.
Kodi mungapeze bwanji ndikubweza?
M'nkhaniyi ndilankhula za izi, koma choyamba - za momwe tidapangira pulatifomu yathu ya IoT ndi momwe tidawonera.
Zomwe muyenera kuyang'anira ndi chiyani: ma scooters, zomangamanga, malo opangira ndalama?
Ndiye tinkafuna kuyang'anira chiyani mu polojekiti yathu?
Choyamba, awa ndi ma scooters okha - ma scooters amagetsi okha ndi okwera mtengo kwambiri, simungathe kuyambitsa pulojekiti yotere popanda kukonzekera mokwanira; ngati n'kotheka, mukufuna kusonkhanitsa zambiri momwe mungathere za scooters: za malo awo, mlingo wa malipiro. , ndi zina.
Kuphatikiza apo, ndikufuna kuyang'anira momwe zida zathu za IT zilili - nkhokwe, ntchito ndi chilichonse chomwe angafune kuti agwire. Zinalinso zofunikira kuyang'anira momwe ma "smart charger" alili, ngati atasweka kapena kutha mabatire onse.
Ma scooters
Kodi ma scooters athu anali chiyani ndipo timafuna kudziwa chiyani za iwo?
Chinthu choyamba komanso chofunikira kwambiri ndi ma GPS ogwirizanitsa, chifukwa chifukwa cha iwo timatha kumvetsetsa kumene ali komanso kumene akuyenda.
Chotsatira ndi mtengo wa batri, zomwe tingathe kudziwa kuti kulipiritsa kwa ma scooters kutha ndikutumiza juicer kapena kuchenjeza wogwiritsa ntchito.
Zachidziwikire, ndikofunikira kuyang'ana zomwe zikuchitika ndi zida zathu za Hardware:
bluetooth imagwira ntchito?
Kodi module ya GPS imagwira ntchito?
Tidakhalanso ndi vuto chifukwa GPS imatha kutumiza zolumikizira zolakwika ndikukakamira, ndipo izi zitha kutsimikiziridwa ndi macheke owonjezera pa scooter,
ndipo dziwitsani chithandizo mwamsanga kuti muthetse vutoli
Ndipo pomaliza: cheke pulogalamuyo, kuyambira ndi OS ndi purosesa, network ndi disk katundu, kutha ndi cheke ma module athu omwe ali achindunji kwa ife (Jolocom, chikhomo).
hardware
Kodi mbali yathu ya βchitsuloβ inali yotani?
Poganizira nthawi yayifupi kwambiri komanso kufunikira kwa prototyping mwachangu, tidasankha njira yosavuta kwambiri yopangira ndikusankha zigawo - Raspberry Pi.
Kuphatikiza pa Rpi palokha, tinali ndi bolodi lachizoloΕ΅ezi (lomwe ife tokha tinapanga ndi kulamula kuchokera ku China kuti tifulumizitse msonkhano wa yankho lomaliza) ndi gulu la zigawo - relay (kuyatsa / kuzimitsa scooter), chowerengera cha betri, modemu, tinyanga. Zonsezi zidayikidwa mu bokosi lapadera la "xRide".
Tiyeneranso kukumbukira kuti bokosi lonselo linkayendetsedwa ndi banki yamagetsi yowonjezera, yomwe imayendetsedwa ndi batire yaikulu ya scooter.
Chofunikira chawo chinali chakuti tidangolumikizana ndi wolandila (CI seva) kudzera pa ssh kupita ku rasberries athu ndikugawana zosintha kwa iwo.
Pachiyambi, zonse zinali zophweka - mumayenera kukhala pa intaneti yomweyo ndi zipangizo, kutsanulira kunachitika kudzera pa Wi-Fi.
Muofesiyo munali ma raspberries oyesa khumi ndi awiri olumikizidwa ndi netiweki yomweyo, chipangizo chilichonse chinali ndi adilesi ya IP yomwe idatchulidwanso mu Ansible Inventory.
Zinali za Ansible zomwe zidapereka wothandizira athu ku zida zomaliza
3G / LTE
Tsoka ilo, njira yogwiritsira ntchito iyi ya Ansible imatha kugwira ntchito pachitukuko tisanakhale ndi ma scooters enieni.
Chifukwa ma scooters, monga mukumvetsetsa, sakhala olumikizidwa ndi rauta imodzi ya Wi-Fi, kudikirira nthawi zonse zosintha pamaneti.
Zowona, ma scooters sangakhale ndi kulumikizana kulikonse kupatula mafoni a 3G/LTE (ndipo ngakhale nthawi zonse).
Koma chofunika kwambiri ndi chakuti mu 3G/LTE network sitingangodalira IP static yoperekedwa ku netiweki.
Izi zimathetsedwa pang'ono ndi ena opereka SIM khadi; palinso ma SIM makhadi apadera opangidwira zida za IoT zokhala ndi ma adilesi a IP osasunthika. Koma tinalibe mwayi wopeza SIM makadi oterowo ndipo sitinathe kugwiritsa ntchito ma adilesi a IP.
Zoonadi, panali malingaliro ochita mtundu wina wa kulembetsa ma adilesi a IP akapeza ntchito kwinakwake ngati Consul, koma tidayenera kusiya malingaliro otere, popeza mu mayeso athu adilesi ya IP imatha kusintha nthawi zambiri, zomwe zidapangitsa kusakhazikika kwakukulu.
Pazifukwa izi, kugwiritsa ntchito bwino kwambiri popereka ma metric sikungakhale kugwiritsa ntchito kukoka, komwe tingapite ku zida zama metric ofunikira, koma kukankha, kupereka ma metric kuchokera pa chipangizochi kupita ku seva.
Makasitomala (ma scooters) kumayambiriro kwa dongosolo lolumikizidwa ndi seva ya VPN ndipo adatha kulumikizana nawo. Njirayi idagwiritsidwa ntchito popereka zosintha.
Timafunikira kuwunika kogwirizana kwa zida zokha, komanso mtambo
Chithunzi chomaliza chinkawoneka chonchi
Kusankha kwa stack
Kotero, tinayang'anizana ndi funso losankha stack yowunikira.
Choyamba, tinali kuyang'ana njira yothetsera zonse-mu-imodzi yomwe ingakwaniritse zofunikira zathu zonse, koma panthawi imodzimodziyo kukhala yosinthika mokwanira kuti igwirizane ndi zosowa zathu. Komabe, tinali ndi zoletsa zambiri zomwe zidatiyikira ndi hardware, zomangamanga ndi nthawi zomalizira.
Pali njira zosiyanasiyana zowunikira, kuyambira ndi machitidwe athunthu ngati Nagios, icinga kapena zabbix ndikumaliza ndi mayankho okonzeka okonzekera Fleet management.
Poyambirira, zotsirizirazi zinkawoneka ngati yankho labwino kwa ife, koma ena analibe kuyang'anitsitsa kwathunthu, ena anali ndi mphamvu zochepa za matembenuzidwe aulere, ndipo ena sankaphimba "zofuna" zathu kapena sanali osinthika mokwanira kuti agwirizane ndi zochitika zathu. Zina ndi zachikale basi.
Kukhazikitsa ma dashboard okhala ndi ma metrics ku Kiban ndikovuta kwambiri kuposa ku Grafan
Nthawi zambiri, ma metrics mu ELK ndi olemetsa ndipo sali osavuta monga momwe amayankhira, omwe tsopano ali ochulukirapo kuposa Prometheus: TSDB, Victoria Metrics, Cortex, ndi zina. Zachidziwikire, ndikufuna kukhala ndi yankho lathunthu nthawi yomweyo, koma pankhani ya metricbeat panali zosagwirizana zambiri.
Ndipo ELK stack palokha imakhala ndi nthawi zovuta zingapo:
Telegraf nthawi zambiri imakhala wothandizira kwambiri pakutolera ma metric, ngakhale simugwiritsa ntchito zotsala za ICK.
Anthu ambiri amawoloka ndi ELK ndi nkhokwe zina zingapo zanthawi kuti zitheke, chifukwa zimatha kulemba ma metric pafupifupi kulikonse.
InfluxDB
InfluxDB ndiye pachimake pa stack ya TICK, yomwe ndi nkhokwe yanthawi yayitali yama metric.
Kuphatikiza pa ma metrics, Influx imathanso kusunga zipika, ngakhale, kwenikweni, zipika zake zimangokhala zofananira, m'malo mwazowonetsa manambala wamba, ntchito yayikulu imachitika ndi mzere wa zolemba.
InfluxDB idalembedwanso mu Go ndipo ikuwoneka kuti ikuyenda mwachangu kwambiri poyerekeza ndi ELK pagulu lathu (osati lamphamvu kwambiri).
Ubwino umodzi wosangalatsa wa Influx ungaphatikizeponso API yabwino komanso yolemera pamafunso a data, yomwe tidagwiritsa ntchito mwachangu.
Zoyipa - $$$ kapena makulitsidwe?
Zolemba za TICK zili ndi cholembera chimodzi chokha chomwe tidapeza - icho wokondedwa. Zochulukirapo.
Kodi mtundu wolipira uli ndi chiyani chomwe mtundu waulere ulibe?
Momwe tidatha kumvetsetsa, kusiyana kokha pakati pa mtundu wolipiridwa wa TICK stack ndi waulere ndi kuthekera kokweza.
Ngati mukufuna HA zonse, muyenera kulipira kapena kugwiritsa ntchito ndodo. Pali mayankho angapo ammudzi - mwachitsanzo influxdb-ha zikuwoneka ngati yankho loyenera, koma zalembedwa kuti sizoyenera kupanga, komanso kutuluka-kutuluka - yankho losavuta ndi kupopera deta kudzera mu NATS (iyeneranso kuchepetsedwa, koma izi zikhoza kuthetsedwa).
Ndizomvetsa chisoni, koma onse awiri akuwoneka kuti asiyidwa - palibe zomwe zachitika posachedwa, ndikuganiza kuti nkhaniyi ndi yomwe ikuyembekezeka kutulutsidwa kwa mtundu watsopano wa Influx 2.0, momwe zinthu zambiri zikhala zosiyana (palibe chidziwitso kuwonjezera pamenepo).
Mwalamulo pali mtundu waulere Sungani - M'malo mwake, iyi ndi HA yakale, koma kudzera mu kusanja,
popeza zonse zidzalembedwa ku zochitika zonse za InfluxDB kuseri kwa zolemetsa zolemetsa.
Ali ndi zina zovuta monga mavuto omwe angakhalepo ndi mfundo zolembera komanso kufunika kopangira ma metrics pasadakhale
(zomwe zimachitika zokha mukamagwira ntchito wamba ndi InfluxDB).
Komanso kugawa sikuthandizidwa, izi zikutanthawuza kuwonjezereka kwa ma metrics obwereza (onse okonza ndi kusunga) omwe simungawafune, koma palibe njira yowalekanitsira.
Victoria Metrics?
Chotsatira chake, ngakhale kuti tinali okhutira kwathunthu ndi stack ya TICK mu chirichonse kupatulapo malipiro olipidwa, tinaganiza zowona ngati pali njira zaulere zomwe zingalowe m'malo mwa InfluxDB database, ndikusiya zigawo zotsalira za T_CK.
Pali nkhokwe zambiri zotsatizana ndi nthawi, koma yodalirika kwambiri ndi Victoria Metrics, ili ndi zabwino zingapo:
Fast ndi zosavuta, osachepera malinga ndi zotsatira zizindikiro
Tinalibe ma scooter ambiri pa gawo loyamba la woyendetsa, ndipo kuyesa panthawi ya chitukuko sikunawonetse zovuta zilizonse zomwe zimachitika.
Chifukwa chake, tidaganiza kuti pulojekitiyi imodzi ya Influx node ikhala yokwanira kwa ife popanda kufunikira kokulitsa (onani zomaliza kumapeto).
Tasankha pa stack ndi maziko - tsopano za zigawo zotsalira za TICK stack.
Kapacitor
Kapacitor ndi gawo la TICK stack, ntchito yomwe imatha kuyang'anira ma metric omwe akulowa mu database mu nthawi yeniyeni ndikuchita zinthu zosiyanasiyana potengera malamulo.
Umu ndi momwe tinagwiritsira ntchito zidziwitso. Tidakhazikitsa zidziwitso za Slack pomwe scooter ina ikakhala pa intaneti, zomwezo zidachitikanso ndi ma charger anzeru ndi zida zofunika zanyumba.
Mwina chothandizira chachikulu chogwira ntchito ndi Chronograf ndikuti mutha kuwona zamkati mwa InfluxDB yanu kudzera mu Explore.
Zikuwoneka kuti Grafana ali ndi magwiridwe antchito ofanana, koma kwenikweni, kukhazikitsa dashboard ku Chronograf kumatha kuchitika ndikudina pang'ono mbewa (nthawi yomweyo mukuyang'ana zowonera pamenepo), pomwe ku Grafana mudzakhala posachedwa kapena mtsogolo. kuti musinthe kasinthidwe ka JSON (ndithu Chronograf imalola kukweza ma dashas opangidwa ndi manja ndi kuwasintha ngati JSON ngati kuli kofunikira - koma sindinawagwire nditawapanga pa UI).
Kibana ali ndi luso lolemera kwambiri lopangira ma dashboards ndi zowongolera, koma UX pazochitika zoterezi ndizovuta kwambiri.
Mwanjira iyi, zolakwika zatsopano kapena zofunika zokha zikanatumizidwa ku Slack. Panalibe nthawi yokwanira yokonzekera kotereku chifukwa cha nthawi yayitali.
Kutsimikizika
Ndizoyeneranso kutchula kuti Chronograf imathandizira OAuth ndi OIDC ngati kutsimikizika.
Izi ndizothandiza kwambiri, chifukwa zimakulolani kuti muphatikize mosavuta ku seva yanu ndikupanga SSO yathunthu.
Kwa ife, seva inali chikhomo - idagwiritsidwa ntchito kulumikiza kuwunikira, koma seva yomweyo idagwiritsidwanso ntchito kutsimikizira ma scooters ndi zopempha kumapeto kwa kumbuyo.
"Admin"
Chigawo chomaliza chomwe ndifotokoze ndi "gulu lathu la admin" lodzilemba tokha ku Vue.
Kwenikweni ndi ntchito yoyima yokha yomwe imawonetsa zambiri za scooter kuchokera ku database yathu, ma microservices, ndi data ya metrics kuchokera ku InfluxDB nthawi imodzi.
Kuphatikiza apo, ntchito zambiri zoyang'anira zidasunthidwa pamenepo, monga kuyambiranso mwadzidzidzi kapena kutsegula loko patali kwa gulu lothandizira.
Panalinso mapu. Ndanena kale kuti tidayamba ndi Grafana m'malo mwa Chronograf - chifukwa mamapu a Grafana amapezeka ngati mapulagini, pomwe titha kuwona ma scooters. Tsoka ilo, kuthekera kwa ma widget a mapu a Grafana ndi ochepa kwambiri, ndipo chifukwa chake, zinali zosavuta kulemba pulogalamu yanu yapaintaneti ndi mamapu m'masiku ochepa, kuti musamangowona zolumikizira panthawiyo, komanso kuwonetsa. njira yotengedwa ndi njinga yamoto yovundikira, kutha kusefa zomwe zili pamapu, ndi zina zotero (zonse zomwe sitingathe kuzikonza mu dashboard yosavuta).
Chimodzi mwazabwino zomwe zatchulidwa kale za Influx ndikutha kupanga ma metric anu mosavuta.
Izi zimapangitsa kuti zigwiritsidwe ntchito pazochitika zosiyanasiyana.
Tidayesa kujambula zidziwitso zonse zofunika pamenepo: kuchuluka kwa batri, malo otsekera, magwiridwe antchito a sensor, bluetooth, GPS, ndi macheke ena ambiri azaumoyo.
Tidawonetsa zonsezi pagulu la admin.
Zachidziwikire, chofunikira kwambiri kwa ife chinali momwe scooter imagwirira ntchito - kwenikweni, Influx imayang'ana izi ndikuziwonetsa ndi "magetsi obiriwira" mu gawo la Nodes.
Izi zimachitidwa ndi ntchito wakufa - tidagwiritsa ntchito kuti timvetsetse momwe bokosi lathu limagwirira ntchito ndikutumiza zidziwitso zomwezo ku Slack.
Mwa njira, tidatchula ma scooters pambuyo pa mayina a zilembo za The Simpsons - zinali zosavuta kusiyanitsa wina ndi mzake.
Ndipo zambiri, ma metric a zingwe amapereka mwayi wochulukirapo wogwiritsa ntchito; mutha kujambula chilichonse mwa iwo. Ngakhale, ndithudi, muyeneranso kugwiritsa ntchito chida ichi mosamala.
Kuphatikiza pa ma metric wanthawi zonse, tidajambulanso zambiri za GPS ku InfluxDB. Izi zinali zothandiza kwambiri pakuwunika komwe kuli ma scooters mu gulu lathu la admin.
M'malo mwake, nthawi zonse timadziwa komwe ndi scooter inali panthawi yomwe timafunikira.
Popeza ntchito zathu zonse zamtambo zili ku Kubernetes, zingakhale bwino kusonkhanitsa zambiri za dziko lake.
Mwamwayi, Telegraf kuchokera m'bokosiyo imatha kusonkhanitsa ma metric ambiri okhudza dera la Kubernetes, ndipo Chronograf nthawi yomweyo imapereka ma dashboard okongola pa izi.
Timayang'anira kwambiri momwe ma pod ndi magwiritsidwe ntchito amakumbukiro. Kugwa, zidziwitso ku Slack.
Pali njira ziwiri zotsata ma pod ku Kubernetes: DaemonSet ndi Sidecar.
Njira zonsezi zikufotokozedwa mwatsatanetsatane mu positi iyi ya blog.
Tidagwiritsa ntchito Telegraf Sidecar ndipo, kuwonjezera pa ma metrics, tidasonkhanitsa zipika za pod.
Mβmalo mwathu, tinkafunika kutchera khutu ndi zipika. Ngakhale Telegraf imatha kukoka zipika kuchokera ku Docker API, tinkafuna kukhala ndi zolemba zofananira ndi zida zathu zomaliza ndikukonza syslog ya zotengera izi. Mwinamwake yankho ili silinali lokongola, koma panalibe zodandaula za ntchito yake ndipo zipika zinawonetsedwa bwino ku Chronograf.
Kuyang'anira kuyang'anira ???
Pamapeto pake, funso lachikale la machitidwe oyang'anira polojekiti lidawuka, koma mwamwayi, kapena mwatsoka, tinalibe nthawi yokwanira ya izi.
Ngakhale Telegraf imatha kutumiza ma metric ake mosavuta kapena kutolera ma metric kuchokera ku database ya InfluxDB kuti itumize ku Influx yomweyi kapena kwina.
anapezazo
Kodi tapeza mfundo zotani kuchokera ku zotsatira za woyendetsa ndegeyo?
Vuto lalikulu ndi TICK stack mu mtundu waulere ndikusowa kwa makulitsidwe. Ili silinali vuto kwa ife.
Sitinasonkhanitse kuchuluka kwa katundu/ziwerengero, koma tidasonkhanitsa deta kuchokera ku ma scooter pafupifupi 30 nthawi imodzi.
Aliyense wa iwo adasonkhanitsa ma metrics opitilira khumi ndi atatu. Panthawi imodzimodziyo, zipika zochokera ku zipangizozo zinasonkhanitsidwa. Kusonkhanitsa deta ndi kutumiza kunachitika pamasekondi khumi aliwonse.
Ndikofunika kuzindikira kuti patatha sabata limodzi ndi theka la woyendetsa ndegeyo, pamene zambiri za "vuto laubwana" zinakonzedwa ndipo mavuto ofunika kwambiri anali atathetsedwa kale, tinayenera kuchepetsa nthawi yotumiza deta ku seva kuti tipewe mavuto. 30 masekondi. Izi zidakhala zofunikira chifukwa kuchuluka kwa magalimoto pama SIM makadi athu a LTE kudayamba kutha msanga.
Kuchuluka kwa magalimoto kudadyedwa ndi zipika; ma metric omwewo, ngakhale ndi mphindi 10, sanawononge.
Nthawi yomweyo tinathamanga kukayang'ana mapu mu "admin panel" yathu, yokhala ndi data ya GPS yochokera ku InfluxDB.
Chifukwa cha kuyang'anira deta, tinatsimikiza mosavuta kuti scooter inachoka pamalo oimika magalimoto cha m'ma 21:00 tsiku latha, idayendetsa pafupifupi theka la ola kupita kumalo ena ndipo inayimitsidwa mpaka 5 koloko pafupi ndi nyumba ina ya ku Germany.
Tinadzibera tokha njingayo. Mwa njira, sindikudziwa kuti ndi ndani komanso ndani adathetsa nkhaniyi ndi mlandu wa apolisi, koma kuyang'anira kunagwira ntchito bwino ...