Automated Machine Learning has hit GA – and why it matters

Microsoft’s Ignite conference brought with it a ton of news as usual, and among those all was a long-awaited announcement of Azure’s Automated Machine Learning (ML) finally hitting general availability and leaving behind its over a year long preview state. Not only did the service reach GA, but Microsoft also announced that they will be merging the previously “Enterprise-grade” features of Azure Machine Learning with the cheaper Basic-tier, including Automated ML. This means that not only are these features now officially suitable for production use, but they are also very affordable to the customer: With Automated ML you will only pay for the resources you use, meaning that training new machine learning models can cost less than a cup of coffee does.

So, what is machine learning and why does this matter to me?

Of course, having a service reach GA and it becoming cheap to use is great and all, but with the myriad of different Azure services around we must ask ourselves why this one is something to be excited about? Machine learning itself is a data science discipline interested in finding out best possible answers to problems based on historical data. For example, you may have a list of patient records including details such as age, body-mass-index, blood pressure and whether the person is diabetic or not. Using this data, you could then train a machine learning model that can make predictions on whether someone else has diabetes based on their age, body-mass-index and blood pressure.

Similarly, you could train machine learning models to estimate daily sales, or the likelihood of a mechanical failure in a production machine, and many other things as long as you have the historical training data available. The movies that Netflix recommends you are a result of machine learning, too. While the results of machine learning are only predictions, these predictions can be made at rapid pace, faster than what any human is capable of. As such machine learning can produce valuable insights to large amounts of data that would be near impossible for humans to analyze, be it in real-time IoT systems or quarterly BI reporting. And even in daily decision-making machine learning can provide human decisionmakers with valuable second opinions that are less likely to hold any human biases.

But despite all the benefits that machine learning can bring us it has been rarely utilized, mostly due to the high barrier of entry: Producing accurate machine learning models has required a lot of manual work from highly skilled and sought-after data scientist specialists. Training the models has been an iterative process with lots of trial and error, and as such, the required investments needed for a machine learning project have been very high. Until now, that is.

Enter Automated Machine Learning

This is where Automated Machine Learning, Microsoft’s answer to making machine learning more affordable and available to all, comes in. It simplifies the process of training machine learning models by performing most of the iterative data science work for you, and turning projects that previously were 95 % data science and 5 % data engineering to more like 75 % data engineering and 25 % data science. Models can be trained and deployed to testing in a matter of hours, given good quality training data of course, and implementing proof-of-concept machine learning solutions with high quality models can be done quite handily. So, if you’ve thought that machine learning could be of use to you but were skeptical of the time and monetary investments required, worry no more.

Excited yet? Do get in touch and let us see how machine learning can help you!

Building a real-time, cloud-based monitoring solution using Power BI and Microsoft’s data offerings

You may have heard the saying ”Data is the new oil”, which has been spreading around the last few years. This word “data” in this statement has usually referenced to the data that you and I leave behind when using technology, to be then made use of by advertisers, influencers, and other parties.

But just as well the data that your business generates is the new oil, which, if refined properly, will allow you to gain new and powerful insights into your business practices. This allows you to enhance, streamline and improve your business processes from research, development and manufacturing to sales, logistics and customer support. In this blog series I will go through a number of topics on how we can leverage Microsoft’s cloud-based business intelligence and data offerings to bring you new insights to your data.

Topics of this series:
1. Building a real-time, cloud-based monitoring solution using Power BI and Microsoft’s data offerings (this post)
2. Consolidating our enterprise data in the Azure Data Lake to enrich our data-driven solutions

Power BI is a powerful tool for building reports that allows you to gain new insights from your data. Often these reports are refreshed daily or even weekly, which can be enough for performing historical analysis on concerns such as sales performance, customer satisfaction or expenses.

However, Power BI can also be used to build reports that give you a clear look into what is going on in your organization right now, so that you can act on the information immediately. Such reports can display information from live manufacturing processes, logistics chains or even sales negotiations, all in real time.

By default, Power BI offers support for streaming and pushing real-time data. Both of these mechanisms allow us to easily build reports with live data, but they also come with some limitations: Streamed data is fast and powerful to use, but it can be stored at most for an hour, which limits its use only to monitoring live data. No historical analysis will be possible with streamed data.

Pushed data, on the other hand, will be stored by Power BI and it will support historical analysis. This makes it ideal for reporting scenarios where we can identify a set of real-time data that we need to make easily available for a single Power BI application. However, the downside to pushed data is that we cannot reuse the same dataset anywhere else. If we would like to create multiple reports using the same data, we would need to build separate pushed datasets for each of them – or come up with an alternate solution.

Case: Live industrial monitoring whiteboards with Power BI

Being aware of the technical options and limitations our tools give us is definitely important, but with data everything begins with identifying the data we have, where it comes from and what we want to do with it. In this case example we will be building industrial monitoring whiteboards, which are used to display lots of different kinds of data detailing the goings in our factory:

  • Production speeds and targets
  • State of the machinery: Temperatures, cleanliness, jams or any other issues
  • Free storage space, inventory of parts and materials
  • Environmental data: Outside temperatures, wind speed and direction
  • Safety information: Number of accidents, latest notifications

Our production data is also timestamped, which allows us to attach it to the shifts working in the factory. This way we can not only see what is currently going on, but also see which teams have been performing beyond expectations. Next, we will classify our data based on how we need to use it on our reports:

As you recall from before, with live data in Power BI our choices are to go with streaming or pushing data. We want to avoid pushing, because we have identified that there can multiple future use cases for data, and as such we want to store it in a more reusable place than a Power BI dataset. Streaming data is stored for an hour in Power BI, so we can use it to display immediate sensor information such as production speeds and temperatures, but we also need to capture them separately for historical analysis. This leads us to adopt a hybrid model with our data and reports.

In our hybrid model we will stream live data directly from our data sources to Power BI, where our BI developers create meters and real-time visuals for the data. The same data will also be captured into a SQL database, from where we will supply the reports with near real-time historic data.

To achieve this, we will use Power BI’s Direct Query method to fetch recent data (the last few factory shifts, perhaps) frequently. Power BI’s Import data method will then be used to fetch any data needed for longer historical analysis, such as analyzing factory teams’ performance over the year. A Power BI data gateway will be installed between the cloud-based Power BI service and our on-premises factory servers to facilitate data transfer.

Finally, once our data is in place and the reports have been developed, we still need to figure out how to display the reports to our end-users: Both the analysts viewing our historic data and the factory workers themselves.
Our analysts are likely to be happy to use the Power BI dashboard, and for their purposes it will work perfectly. For the factory workers, who are more reliant on the live data, out-of-the-box Power BI interface can be found lacking: It contains lots of visual clutter and controls that are on the way when the report is viewed from a factory hall monitor.

In addition, while the live streaming data is automatically refreshed in Power BI reports, our near real-time Direct Query data is only refreshed when the report updates – and by default Power BI reports update only every fifteen minutes. To circumvent this issue, we create a custom Power BI Embedded app, which allows us to minimize visual clutter and enforce report refresh times. In our factory we settle to have the report refresh the near real-time data once every minute.

With these high-level steps we have identified the data in our possession, developed use-case driven ways to capture and deliver it to Power BI and then created reports and ways to display them catered to our different users’ needs.

Do you feel like there might be ways in which your existing business data could be harnessed more effectively? Do get in touch and let’s see what we could do help you!


Build 2019 – Parhaat palat

Microsoftin ohjelmistokehittäjäkonferenssi Build pidettiin toukokuun 6. – 8. perinteeksi muodostuneessa Washington State Conference Centerissä Seattlessa. Sulavalta menossa mukana oli kehittäjäkaksikko Joonas Äijälä ja Jukka Kotamäki. Seuraavassa kerromme tärkeimmät asiat, jotka tämänvuotisen Buildin annista kannattaa pistää korvan taakse.

Sulavaakin sulavampaa tietotyötä

Build, kuten Microsoftin suuret konferenssit yleensäkin, alkoi Satya Nadellan keynote-esityksellä, joka itsessään sisälsi visionäärisen puheen lisäksi pari uutta merkittäjää julkistusta. Näistä ensimmäisenä tuloillaan oleva Fluid Framework, joka tulee niin vauhdittamaan kuin sulavoittamaan tietotyön tekemistä ja dokumenttien parissa kollaborointia.

Raportin jakaminen Teamsissa

Fluidin ominaisuuksista esitettiin muun muassa saman Word-dokumentin reaaliaikaista kääntämistä kahdeksalle eri kielelle eri käyttäjille, Wordissa olevan taulukkosisällön muokkaamista Teams-keskustelusta käsin sekä tähän samaan taulukkoon liitetyn graafin reaaliaikaista päivittymistä, kun taulukon arvoja muutettiin.

Fluid Framework ei rajoitu pelkästään Microsoft 365 -tuotteisiin, vaan sen on tarkoitus olla avoin ratkaisu, jota myös kolmannet osapuolet voivat hyödyntää omissa toteutuksissaan. Mielenkiintoista onkin nähdä millaisia tietotyön kiemuroita ja koukeroita Fluidin avulla päästään ratkomaan, kunhan se saapuu käytettäväksi. Miltä kuulostaisi esimerkiksi SharePoint-listoihin perustuva hyväksyntäprosessi, jossa hyväksyntätietoja voitaisiin asettaa suoraan johtoryhmän Teams-kokouksen chatista? Ensimmäisiä maistiaisia Fluid Frameworkista sekä sen ohjelmointikirjastoista on luvassa vielä tämän vuoden aikana.

Graphin verkko laajenee

Microsoft Graph, eli Microsoftin lähestulkoon kaikkien pilvituotteiden yhteinen rajapinta, on parin viime vuoden aikana vakiinnuttanut paikkansa juuri sinä yhtenä oikeana tapana hyödyntää Microsoftin pilvituotteita ohjelmallisesti. Jos teillä on käytössä jotain Microsoftin pilven kanssa toimivaa räätälöityä ohjelmakoodia, hyvin todennäköisesti sekin käyttää Graphia. Graphin osalta Buildissa tuli kaksi merkittävää julkistusta: Uusi Graph Connector -ominaisuus sekä Graph Data Connectin saapuminen tuotantovalmiuteen.

Koska Graph kattaa suuren määrän eri tuotteita, sen kautta on pääsy myös valtavaan määrään dataa ja sisältöä: AD-tileihin ja -ryhmiin, SharePointiin tallennettuihin dokumentteihin ja listakohteisiin, sähköposteihin, kalenterivarauksiin ja niin edelleen. Graph Connector tulee laajentamaan tätä palettia vielä enemmän mahdollistamalla ulkoisten järjestelmien liittämisen osaksi Graphia ja Microsoftin hakutoimintoja. Buildissa demottiin esimerkiksi tapausta, jossa SharePointin hakukeskuksen haku ei näyttänyt pelkästään sisältöä SharePointista ja OneDrivesta, vaan myös tiedostoja sisäverkossa sijaitsevalta levyjaolta ja palvelutikettejä ServiceNow-sovelluksesta.

Graph Connectorin tekniset ominaisuudet ja toimintatapa on vielä hetken aikaa mysteeri; ensimmäiset private preview -versiot julkaistaan kesän lopulla. Mutta sitä odotellessa voidaan jo alkaa miettiä mitä kaikkea hienoa siitä syntyisikään, jos vaikka Salesforce sekä ServiceNow sisältöineen yhdistetään samaan pilveen Microsoft 365:n ja vuosikausia sisäverkkoon kerätyn massiivisen dokumenttiarkiston kanssa!

Siinä missä Graph Connector tulee mahdollistamaan sisällön tuomisen Graphiin, nyt tuotantovalmiuden saavuttanut Graph Data Connect auttaa viemään dataa sieltä pois. Data Connect on erityisesti tarkoitettu tarjoamaan analytiikkaratkaisuille, kuten Power BI -raporteille, käytännöllinen rajapinta suurien datamäärien saamiselle Microsoft Graphista.

Data Connect ei kuitenkaan rajoitu pelkästään datan hakemisen helpottamiseen. Se mahdollistaa myös organisaation tietohallinnolle hyvin tarkat mahdollisuudet rajata mitä sisältöä Graphin kautta voidaan hakea. Joten mikäli esimerkiksi Outlook-sähköpostin tai -kalenterien käytön raportointi on aiemmin kaatunut siihen, että raportointiratkaisulle on pitänyt antaa liian suuret valtuudet lukea työntekijöiden sähköposteja tai kalenterimerkintöjä, niin Graph Data Connectin kanssa tätä ongelmaa ei enää ole. Oikeudet voidaan rajata täysin raportoinnin tarpeiden mukaan.

Taitavat botit

Kolmen vuoden olemassaolonsa aikana Microsoftin Bot Framework on ehtinyt saavuttaa jo neljännen täyden versionsa. Buildissa bottien maailma täydentyi kahdella tavalla. Microsoft julkaisi avoimen lähdekoodin Virtual assistant -ratkaisun, joka on tarkoitettu pohjaksi räätälöityjen avustajabottien toteuttamiselle. Tämän lisäksi julkaistiin Skills-toiminnot, jotka ovat uudelleenkäytettäviä toimintoja, joita botit voivat hyödyntää.

taitavat botit

Skillsejä on mahdollista toteuttaa itse omia, mutta Buildin yhteydessä Microsoft julkaisi myös omat preview-versiot ensimmäisistä Skillseistä, joita bottitoteutuksissa voidaan hyödyntää. Tietotyön tekijöille oleellisimpia näistä on Outlookiin liittyvät sähköposteja, kalentereita ja tehtävälistoja käsittelevät Skillsit. Virtuaalisten avustajien ja uudelleenkäytettävien taitojen myötä kynnys erilaisten toiminnallisten bottien toteuttamiselle madaltuu entisestään.

PowerApps siellä, PowerApps täällä

Myöskin PowerApps jatkaa kehittymistään. Buildissa julkaistiin preview-versio PowerApps Embed -ominaisuudesta, joka mahdollistaa PowerApps-sovellusten upottamisen sisälle muita sovelluksia. Lisäksi PowerAppsiin on tulossa oma Component Framework -malli kokonaan uusien ja räätälöityjen komponenttien toteuttamiselle.

Näiden kahden uudistuksen avulla sovelluksia voidaan tuoda osaksi laajempia ratkaisuja, ja niitä voidaan laajentaa toiminnallisuuksilla, joita PowerApps itsessään ei entuudestaan tue. Nämä uudistukset tuskin muuttavat PowerAppsin painopistettä nykyisestä, ensisijaisesti kevyiden sovellusten toteutusratkaisusta mihinkään, mutta ne mahdollistavat PowerAppsin käytön laajemmassakin mittakaavassa.

Edellä mainittujen lisäksi Build tarjosi ison kasan tuoteuudistuksia ja -päivityksiä sekä julkistuksia kautta Microsoftin koko pilvitarjoaman. Kaikki ne eivät yhteen artikkeliin mahdu, mutta jos esimerkiksi Outlook Mobilen Actionable Messaget, Ideas in Word tai Azure Blockchain Service kiinnostavat, tai jokin edellä mainituista jäi askarruttamaan, niin ota yhteyttä!

SharePoint 2013:n uusi sovellusmalli

SharePointin uusin, tuloillaan oleva laitos tarjoaa kokonaan uuden sovellusmallin sekä kauppapaikan SharePoint-räätälöinneille. Tästä kauppapaikasta SharePointin loppukäyttäjät voivat ostaa SharePoint-sovelluksia jotka tuovat uusia toiminnallisuuksia SharePoint-käyttäjien ulottuville. Vaihtoehtoisesti SharePoint-sovelluksia voidaan toteuttaa tilaustyönä, jolloin ne eivät tule julkiseen jakeluun kauppapaikalle. Mutta, mitä ovat nämä uudet SharePoint-sovellukset, niiden sovellusmalli, ja miksi näistä asioista pitäisi ylipäätänsäkään tietää enemmän?

Uudet SharePoint-sovellukset tulevat poikkeamaan nykyisistä SharePoint-räätälöinneistä siinä, että ne eivät pysty suorittamaan ohjelmakoodia suoraan SharePoint-palvelimella. Tämä on täysin tietoturvavaatimus: Näin viallinen sovellus ei pysty rikkomaan tai jumittamaan SharePoint-palvelinta. Sen sijaan SharePoint-sovelluksien koodit tullaan ajamaan joko loppukäyttäjän koneella tai ulkoisilla palvelimilla. Tällöin lopputuloksena on sovellusmalli, joka on turvallinen, mutta jonka toiminnallisuuksia on rajattu turvallisuuden ehdoilla.

SharePoint 2013 tulee tarjoamaan kolme vaihtoehtoa sovelluksien julkaisemiseen. Oikean julkaisutavan valinta tulee olemaan avainasemassa tehtäessä onnistuneita SharePoint-räätälöintejä niin toiminnallisuuksien, tietoturvan kuin saatavuudenkin näkökulmasta. Ensimmäinen tapa on tehdä SharePoint-palvelimelle julkaistavia räätälöintejä. Tällaiset räätälöinnit ovat turvallisia, sillä ne sijaitsevat pelkästään palvelimella, joka voi olla niin on-premises kuin pilvessäkin. Ne kuitenkin voivat sisältää vain käyttäjän koneella ajettavaa koodia, jolloin räätälöintien toiminnallisuus on rajattu. Esimerkiksi itsestään ajettavia ajastimia ei voida toteuttaa tällaisissa sovelluksissa.

Toisena vaihtoehtona on julkaista sovellukset Microsoftin Azure-pilvipalvelussa. Tällöin sovellus asennetaan Azureen käyttöönoton yhteydessä, ja se voi sisältää Azuressa ajettavaa palvelinkoodia. Azure-sovellukset voivatkin olla monipuolisempia kuin SharePointiin julkaistavat sovellukset. Toisaalta, Azure-sovellukset voivat tuoda lisäkustannuksia Azuren palvelumaksujen muodossa. Lisäksi, mikäli toteutettava sovellus tallentaa kriittistä dataa Azuren tietokantoihin tai muihin datavarastoihin, tulisi mahdolliset tietoturvakysymykset ottaa huomioon.

Viimeisenä vaihtoehtona sovellukset voidaan julkaista johonkin muuhun pilvipalveluun tai jopa omalle, räätälöinnin toteuttajan tai tilaajan palvelimelle. Tämä vaihtoehto tarjoaa niin tilaajalle kuin sovelluskehittäjille eniten vapauksia toteutuksen suhteen. Samalla kuitenkin riskit kasvavat, koska räätälöinnissä tulee painottaa entistä enemmän tietoturvan toimivuutta ja palvelimien saatavuutta. Parhaimmillaan tällaiset sovellukset ovat erittäin turvallisia ja toimivia, mutta huonoimmillaan ne ovat erittäin haavoittuvia.

SharePoint 2013:n sovellusmalli tarjoaa niin sovelluskehittäjille kuin käyttäjille ja asiakkaille mielenkiintoisia vaihtoehtoja räätälöintien toteutukseen. Sovellusten lisäksi myös vanhat ja tutut farmi- ja sandbox-ratkaisut ovat käytettävissä SharePoint 2013:sta. Lisää tietoa SharePoint 2013-sovelluksista saat Onsightin SharePoint 2013-devauskursseilta!