User blog: Mats Johannesson

Page: 1 2 3 4 ()
Anyone in the world



As you maybe have noticed, Google Cloud Next are on air, and so is Cloud Hero Game. First week was about Industry Insights.

The first week assignments was to get through six exercises, from fundamentals-level to expert-level. Each of assigments was timed, and if you completed all the assignments in time, you was honored with a badges:



Assignment 1: Healthcare Lab

In this assignment you created a prediction pipeline using Cloud Healthcare API and AI Platform and trained Tensorfow model. Some Cloud functions was also involved.



Assignment 2: Public Sector Lab

In this assignment you learn to use Dialogflow to create a conversational interfaces to answer questions about COVID-19 symptoms and provide the latest guidance from public health authorities like  the Centers for Disease Control and Prevention and World Health Organization (WHO). 


Assignment 3: Retail Lab

In this advanced-level assignment you will use a newly available ecommerce dataset to run some typical queries that businesses would want to know about their customers’ purchasing habits.


Assignment 4: Gaming Lab

In this fundamentals-level assignment, you will install Agones on a Kubernetes cluster, then create a simple UDP game server with Agones.


Assignment 5: Finance Lab

In this expert-level assignment, you will use GCP services to help graph trades, volume, and time delta from trade execution to see any patterns in the high volatility of the cryptocurrency market. It was a good assignment, involving Cloud Dataflow and Cloud BigTable.


Assignment 6: Telecommunication Lab

In this expert-level assignment, you will use Cloud Function, BigQuery, Cloud Pub/Subs, Cloud Dataflow and Cloud Data Loss Prevention (DLP). Some hints where in the documentation, but mostly just instruction what you should do. 

To run a DLP job, a new table with the results have to be created.


When you have a table, you could configure the DLP job.

Some information about Python was also missing, you have to do:

python -m virtualenv env -p python3

source env/bin/activate

pip install apache-beam[gcp]

pip install dateparser   (this one is critical!)


Looking forward to this week Game!
[ Modified: Monday, 20 July 2020, 4:14 PM ]

Comments

     
    Picture of Mats Johannesson
    by Mats Johannesson - Wednesday, 24 June 2020, 10:10 AM
    Anyone in the world


    GCP buildning CCoE

    Come across this pdf today, a must read document, not just for GCP.  Link to the pdf: https://services.google.com/fh/files/misc/cloud_center_of_excellence.pdf


    Tags:

    Comments

       
      Anyone in the world

      nyfiken



      Prerequisite: Account for GCP and login to the console.


      Task 1: Create project and connect to it


      Start Cloud Shell

      1. In the consol, click on Activate Cloud Shell.

      Click on Open in new window


      2. When Cloud Shell has opened, click on Open in new window to make it easier for you to work in.

      gcloud projects create


      3. In Cloud Shell, write the following command and press Enter, to create a project with the name deployment-manager-easec-xx:

                   gcloud projects create deployment-manager-easec-xx --name="deployment" --labels=type=deployment

      Replace xx with your initials. If the name already exist, put in a extra character to make it unique.

      https://stordevsumj.blob.core.windows.net/easec/dm%2Fgcloud config set project deployment-manager-easec-xx.png


      4. In Cloud Shell, write the following command and press Enter to move to the newly created project

                   gcloud config set project deployment-manager-easec-xx


      Task 2: Linking billing account to your project


      1. Go back to GCP console, click first on your project and then choose Billing in the Navigation menu.

      Billing account

      2. Click on LINK A BILLING ACCOUNT.

      SET ACCOUNT


      3. Click on dropdownbox and choose My Billing Account, click on SET ACCOUNT.


      Task 3: Show and edit .yaml-file for deployment


      1. Go back to Cloud Shell, write following command and press Enter to clone .easec:s repository:


                       git clone https://github.com/easec/gcp/


      2. Write following command and press Enter to move to folder gcp/deployment_manger:


                       cd gcp/deployment_manager/


      3. Write following command and press Enter to open simple_template.yaml in nano:


                       nano simple-template.yaml

      Note: there is two resources defined; the-first-vm and the-second-vm.


      simple-template

      4. Change xx to your initials, it should be the same as the name for your project.

      5. Click on ctrl + x to finish nano, write y + Enter to save your changes. Press Enter to confirm the name.


      Task 4: Deploy the deployment


      gcloud_service_enable_compute


      1. In the Cloud Shell, write following command and press Enter to activate the API:


                       gcloud services enable compute.googleapis.com

      gcloud_deployment-manager deployments create config-imple-template


      2. In the Cloud Shell, write following command and press Enter to create deployment:


                       gcloud deployment-manager deployments create two-vms-1 --config=simple-template.yaml


      Answer the question "API [deploymentmanager.googleapis.com] not enabled on project y/n" with a y and press Enter.


      Task 5: Verify the deployment


      Verify instances in GCP console


      1. Return to GCP Console. In Navigation menu, click on Compute Engine - VM Instances. Verify that there is two virtual machines, the-first-vm and the-second-vm.


      2. Click on SSH to connect with SSH to the-first-vm. Verify that you could connect. You could connect becuse the machines use the Default network, this network has Firewall rules that allows SSH.


      Task 6: Show manifest for the deployment


      gcloud deployment-manager deployments describe

      1. Return to Cloud Shell, write following command and click on Enter, to show information about deployment:


                      gcloud deployment-manager deployments describe two-vms-1

       

      Task 7: Remove deployment


      1. In Cloud Shell, write following command and click on Enter, to show information about deployment:

                      gcloud deployment-manager deployments delete two-vms-1

      Write y + Enter to confirm that you will remove the deployment.


      Task 8: Create deployment with network


      1. In Cloud Shell, write following command and click on Enter, to open and edit simple-template-with-network.yaml:

                      nano simple-template-with-network.yaml

      simple-template-with-network


      2. Change xx to your initials, it should be the same as the name for your project (1). The network is defined as seperate resource (2) and the I use reference (3) to the defined network for both the-first-vm and the-second-vm. You could read more on references here: https://cloud.google.com/deployment-manager/docs/configuration/use-references (new window).


      3. Click on ctrl + x to finish nano, write y + Enter to save your changes. Press Enter to confirm the name.


      gcloud deployment-manager deployments create

      4. In Cloud Shell, write following command and click on Enter, to create deployment:


                       gcloud deployment-manager deployments create two-vms-1 --config=simple-template-with-network.yaml


      5. Return to GCP Console. In Navigation Pane, click on Compute Engine - VM Instances. Verify that there is two virtual machines, the-first-vm and the-second-vm.

      ssh error

      6. Click on SSH to connect with SSH to the-first-vm. Verify that you could not connect, becuse the network you created does´t have Firewall rules that allows SSH.


      VPC network


      7. In Navigation menu, click on VPC network and verify that network "a-new-network" has been created.


      Task 9: Update deployment with firewall rules that allows SSH and ICMP traffic

      simple-template-with-network-and-firewall

      1.  Note the reference for the two firewall rules. Change xx to your initials, it should be the same as the name for your project.


      2. Click on ctrl + x to finish nano, write y + Enter to save your changes. Press Enter to confirm the name.


      gcloud deployment-manager deployments update --preview

      3. In Cloud Shell, write following command and click on Enter, to preview the changes:


                       gcloud deployment-manager deployments update two-vms-1 --config simple-template-with-network-and-firewall.yaml --preview


      gcloud deplyment-manager deployments update

      4. In Cloud Shell, write following command and click on Enter, to preview the changes:


                       gcloud deployment-manager deployments update two-vms-1

      Note that you dont´t have to use the configuration file, becuse the system already have knowledgement about this.


      5. Return to GCP Console. In Navigation menu, click on Compute Engine - VM Instances. 


      Working SSH


      6. Click on SSH to connect with SSH to the-first-vm. Verify that you could connect,


      ping -c 4 the-second-vm

      7. In the windows with SSH connection, write following command and click on Enter:

                      ping -c 4 the-second-vm


      Task 10: See the deployment in GCP console


      1. Return to GCP Console. In Navigation menu, click on Deployment Manager. 

      gcp console show deployments


      2. Note your deployment, information indicates when deployment first run and when it was updatated.


      gcp console deplyments layout


      3. Click on your deployment, click on View to the right of Layout, to see the different resources that was implemented in the deployment.


      gcp console expand configuration


      4. click on View to the right of Expand Config, to see more detailed configuration for your deployment.


      Task 11: Clean up

      gcloud projects delete deployment-manager-easec-xx


      1. In Cloud Shell, write following command and click on Enter, to delete your project:

                       gcloud projects delete deployment-manager-easec-xx


      Confirm deletion of project with a y + Enter.


      Shutdown notification


      2. You will recive notification about the deletion.


      In the next post, will we use Python to work with several templates for our deployments.

      [ Modified: Wednesday, 24 June 2020, 9:02 PM ]

      Comments

         
        Picture of Mats Johannesson
        by Mats Johannesson - Sunday, 7 June 2020, 9:30 AM
        Anyone in the world

        Kluster för Kubernetes


        Denna inspelade demonstration visar hur du skapar ett kluster för Kubernetes i AKS. I demonstrationen visar jag hur du skapar klustret via portal, men du kan även göra detta via exempelvis Cloud Shell:

        az aks create \

            --resource-group <namn_för_resursgrupp> \

            --name <namn_för_kluster> \

            --vm-set-type VirtualMachineScaleSets \

            --node-count <antal_noder> \

            --generate-ssh-keys \

            --kubernetes-version <versionsnummer> \

            --load-balancer-sku standard

         

         

        Demonstrationen finns med i .easec:s kurser: Orkestrering i Docker och Azure för administratören.

        [ Modified: Sunday, 7 June 2020, 9:55 AM ]

        Comments

           
          Anyone in the world

          Förutsättning: PowerShell 7.x och Azure Az module installerat.

           

          Arbetsuppgift 1: Logga på Azure AD

          1. Klicka på Start och skriv in PowerShell, högerklicka på ikon för PowerShell 7.x och välj Run as administrator.

          2. I fönstret User Account Control, klicka på Yes.

          Connect-AzAccount

          3. Skriv in följande kommando och klicka på Enter:

                        Connect-AzAccount

          Ange kod

          3. Kommandot kommer att generera en kod, öppna webbsidan med följande URL: https://microsoft.com/devicelogin och skriv in koden, klicka på Nästa.

          4. Logga på som administratör för Azure AD.

          5. Efter inloggningen, kan du stänga webbläsaren.

          Efter inloggning

          6. Återgå till fönstret med PowerShell 7.


          Arbetsuppgift 2: Lista användare

          1. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att lista användarekonto i Azure Active Directory:

                        Get-AzADUser

          Notera referens till domän i referens för User Principal Name. Du kommer att använda denna referens i de olika kommandona som följer!

           I mitt exempel är det: easec0529outlook.onmicrosoft.com, jag har inte lagt till skräddarsydd domän.

           

          Arbetsuppgift 3: Skapa användare

          ConvertTo-SecureString

          1. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att sätta ett lösenord:

                        $SecureStringPassword = ConvertTo-SecureString    -String "Pa55w.rd!" -AsPlainText -Force

          New-AzADUser

          2. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att skapa ny användare:

                        New-AzADUser -DisplayName "Kalle Nilsson" -UserPrincipalName "kallen@<ditt_domännamn_i_Azure_AD>"                                       -Password $SecureStringPassword -MailNickname "kalle"

           

          Arbetsuppgift 4: Skapa grupp

          New-AzADGroup

          1. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att sätta ett lösenord:

                       New-AzADGroup -DisplayName Utvecklare -MailNickname Utvecklare


          Arbetsuppgift 5: Lägga till användare i grupp

          Lägga till användare i gruppen, innehåller tre moment: skapa variabel som innehåller information om grupp, skapa variabel som innehåller information om specifik användare, uppdatera medlemskapet.

          $ObjectGroup

          1. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att lägga information om grupp i en variabel:

                        $ObjectGroup = Get-AzADGroup -SearchString  “Utvecklare”

          $ObjectUser

          2. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att lägga information om användare i variabel:

                        $ObjectUser = Get-AzADUser -ObjectId kallen@<ditt_domännamn_i_Azure_AD>  

          Add-AzADGroupMember

          3. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att lägga till användare till specifik grupp:

                        Add-AzADGroupMember -MemberObjectId $ObjectUser.Id -TargetGroupObjectId $ObjectGroup.Id

          Get-AzADGroupMember

          4. I fönstret för PowerShell 7, skriv in följande kommando och klicka på Enter, för att verifiera att användare har lagts till:

                        Get-AzADGroupMember -GroupObjectId $ObjectGroup.Id








          [ Modified: Sunday, 31 May 2020, 10:22 PM ]

          Comments

             
            Picture of Mats Johannesson
            by Mats Johannesson - Sunday, 31 May 2020, 7:50 PM
            Anyone in the world

            Förutsättning: PowerShell 7.x installerat.

             

            Arbetsuppgift 1: Installera Az module

            1. Klicka på Start och skriv in PowerShell, högerklicka på ikon för PowerShell 7.x och välj Run as administrator.

            2. I fönstret User Account Control, klicka på Yes.

            Instalelra Azure Az module


            3. I dialogfönstret Administrator: PowerShell 7 (x64) skriv in följande kommando och klicka på Enter:

                                  if ($PSVersionTable.PSEdition -eq 'Desktop' -and (Get-Module -Name AzureRM -ListAvailable)) {

                                           Write-Warning -Message ('Az module not installed. Having both the AzureRM and ' +

                                           'Az modules installed at the same time is not supported.')

                                   } else {

                                            Install-Module -Name Az -AllowClobber -Scope CurrentUser

                                   }

            Skriv in ett Y för att bekräfta att du vill installera från ett icke betrott förråd.


            Comments

               
              Picture of Mats Johannesson
              by Mats Johannesson - Friday, 29 May 2020, 9:34 AM
              Anyone in the world


              DockerCon 2020 är igång

              DockerCon går in på sin andra dag! Lite annorlunda i år då allt är streamat, men som alltid mycket bra!

              I onsdags hade vi ett roundtable-möte med alla Community Leaders över hela världen!



              Nya tider men med bra kontakter med Docker Inc kan .easec säkerställa att kursmaterial blir bra!

              Comments

                 
                Picture of Mats Johannesson
                by Mats Johannesson - Tuesday, 26 May 2020, 6:24 PM
                Anyone in the world

                Sommar

                Ja mina vänner, allt har sin början och sitt slut som jag brukar säga! .easec började av en slump för tio år sedan, när jag var utlokaliserad till Söndraby. Hade ett arbete och arbetsgivare som jag trivdes väldigt bra med, men av privata skäl var jag tvungen att avsluta detta. Och nu avslutas denna epok av en slump! Hade ett bra möte i våras och detta ledde till att jag fick ett förslag som jag tyckte var riktigt intressant och på måndag (1 juni) kommer jag att börja på KnowIT Cloud AB (https://www.knowit.se/om-knowit/).

                Men det har varit en fantastisk resa och vad många roliga och intressanta människor jag har träffat! Jag har fått resa en hel del inom Sverige, det finns 290 kommuner och jag har varit i 282 av dessa kommuner. De flesta i tjänsten så att säga, men några privat. Även om Skåne naturligtvis är vackrast, så har det slagit mig många gånger, under mina tågresor, att Sverige är fantastiskt oavsett var du kommer!

                En del av de jag har träffat, har jag kunnat följa och se hur de har utvecklas och fått bra och intressanta arbetsuppgifter, detta har gett en skön känsla för mig. I de längre utbildningarna har jag försökt att förmedla mina egna tankar och idéer, som kommer från idrottsvärlden. Grundtanken i min filosofi är att det finns inget problem som är för stort och som man inte kan ta sig igenom. Delar man upp problemet i mindre bitar, så är det mycket lättare att lösa och till slut har man även löst det stora problemet. En annan viktig del i min filosofi, är att vara nyfiken! 

                .easec kommer inte att försvinna, utan kommer att finnas kvar och fortsätta att vara, troligtvis, Sverige:s största oberoende leverantör av IT-utbildningar. Drygt ett femtiotal kurser och ett stort antal användare på portalen!


                Tags:
                [ Modified: Tuesday, 26 May 2020, 6:28 PM ]

                Comments

                   
                  Anyone in the world

                  Omslag


                  Förutsättning: Konto för GCP.

                   

                  Arbetsuppgift 1: Anslut till konsol för GCP och logga på

                  1. Öppna webbläsare och skriv in URL: https://console.cloud.google.com och klicka på Enter.

                  2.  Logga på med dina inloggningsuppgifter.

                   

                  Arbetsuppgift 2: Skapa projekt och verifiera att API är påslaget

                  1. I konsol, expandera Navigation menu på vänstra sidan och klicka på IAM & Admin – Settings.

                  Ändra projektnamn


                  2. I fältet under Project name, skriv in nytt namn för ditt projekt, klicka sedan på SAVE.

                  3. Återinläs sidan och namnet kommer att förändras.

                  4. I konsol, expandera Navigation menu på vänstra sidan och klicka på APIs & Services - Dashboard.

                  Söka efter Kubernetes Engine API


                  5. Skriv in Kubernetes Engine API i sökrutan och klicka på Enter. Klicka på Kubernetes Engine API i sökresultatet.

                  Klicka på ENABLE.


                  6. Klicka på ENABLE (Om API redan är påslaget, kommer det att stå DISABLE). Detta kommer att ta några minuter.


                  Översikt Kubernetes Engine API


                  7. När API är påslaget kommer översiktsbild att visas.


                  Söka efter Google Container Registry


                  8. Skriv in Google Container Registry API i sökrutan och klicka på Enter. Klicka på Google Container Registry API i sökresultatet.

                  Verifiera att Google Container Registry är påslaget

                  9. Verifiera att det står Enabled under Activation status.


                  Arbetsuppgift 3: Skapa kluster

                  Aktiver Cloud Shell

                  1. I den högra övre delen av konsol, klicka på ikon >_ (Activate Cloud Shell).

                  Cloud Shell Continue

                  2. I nedre delen av konsol, klicka på Continue. Virtuell maskin med Cloud Shell kommer att skapas och startas.

                  Öppna Cloud Shell i nytt fönster

                  3. Istället för att arbeta i den nedre delen av konsolen, klicka på ikon för Open in new window, för att öppna ett nytt fönster med Cloud Shell.

                  Skapa variabel med information om zon

                  4. Skriv in följande kommando och klicka på Enter, för att skapa variabel som innehåller namnet för den zon där du kommer att skapa klustret:

                   export MIN_ZON=europe-north1-a

                  För att se vilka zoner som finns tillgängliga, använd följande kommando: 

                  gcloud compute zones list


                  Skapa kluster

                  5. Skriv in följande kommando och klicka på Enter, för att skapa kluster för webbfrontend med två (2) noder:

                   gcloud container clusters create webbfronten --zone $MIN_ZON --num-nodes 2


                  Status när klustret har skapats

                  6. Efter en stund kommer klustret vara klart, verifiera att STATUS visar RUNNING.

                  kubectl get version

                  7. Skriv in följande kommando och klicka på Enter, för att kontrollera version:

                  kubectl version

                  Noder är VM

                  8. Återgå till konsol, expandera Navigation menu på vänstra sidan och klicka på Compute Engine, verifiera att noder som du skapade är virtuella maskiner och att dessa finns i den zon som du specificerade.

                  Kubernetes cluster

                  9. Du kan även se klustret genom att expandera Navigation menu på vänstra sidan och klicka på Kubernetes clusters, verifiera att klustret som du skapade tidigare visas.

                   

                  Arbetsuppgift 4: Skapa deplyment för nginx

                  1. Återgå till fönstret för Cloud Shell.

                  kubectl create deployment nginx --image:nginx:latest

                  2. Skriv in följande kommando och klicka på Enter, för att skapa deployment för nginx:

                  kubectl create deployment nginx --image=nginx:latest

                  kubectl get pods

                  2. Deployment består av en pod, för att verifiera detta skriv in följande kommando och klicka på Enter:

                  kubectl get pods

                   

                  Arbetsuppgift 5: Exponera pod för åtkomst från Internet (LoadBalancer)

                  kubectl expose deployment nginx

                  1. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter:

                  kubectl expose deployment nginx --port 80 --type LoadBalancer

                  LoadBalancer exponeras som en tjänst (services). I .easec:s modul Kubernetes beskrivs de olika kopplingarna som kan göras, bland annat med NodePort.

                  kubectl get services

                  2. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se information om extern IP-adress (Kan ta en liten stund!):

                  kubectl get services

                  Notera extern IP-adress.

                  Webbläsare

                  3. Öppna ny flik i din webbläsare, skriv in extern IP-adress och klicka på Enter. Standardsida för nginx visas.

                  kubectl scale deployment

                  4. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att skala din deployment:

                   kubectl scale deployment nginx --replicas 4

                  kubectl get pods

                  5. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se pods:

                  kubectl get pods


                  kubectl get pods

                  6. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se på vilka noder som pods körs på:

                   kubectl get pods -o wide

                  Två pods körs på respektive nod. Lägg märke till att respektive pod har en unik IP-adress.

                  I verklig miljö så kan du styra hur dessa pods kommer att fördelas. I .easec:s modul Kubernetes tittar vi på detta. Det kommer att komma ett blogginlägg om detta. I Kubernetes är det Scheduler som hanterar detta.

                  Scheduler

                  Bilden ovan visar två typer av undersökningar som kan göras (det finns fler), tillgång av resurser och etikett (label).

                  Kubernetes Engine - Service & Ingress

                  7. Återgå till konsol, expandera Navigation menu på vänstra sidan och klicka på Kubernetes Engine – Services & Ingress, notera att tjänsten visas i konsol.

                  Service overview

                  8. Dubbelklicka på din tjänst, i fliken Overview får du en översiktsbild för din tjänst.

                  YAML

                  9. Klicka på fliken YAML för att se konfigurationsfil för din funktion.

                   

                  Arbetsuppgift 6: Städa upp
                  kubectl delete deployment nginx

                  1. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter:

                  kubectl delete deployment nginx

                  kubectl get pods

                  2. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att verifiera att pods är borttagna:

                   kubectl get pods

                  Kommandot resulterar i att inga pods finns.

                  kubectl delete service nginx

                  3.cI fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att ta bort tjänst (nginx):

                   kubectl delete service nginx

                  kubectl get services

                  4. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att kontrollera att tjänst är borta:

                   kubectl get services

                  gcloud container clusters delete

                  5. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att ta bort klustret:

                   gcloud container clusters delete webbfronten --zone $MIN_ZON

                  Skriv in ett Y och klicka på Enter för att bekräfta att du vill ta bort.


                  Verifiera att VM är borta

                  6. Återgå till konsol, expandera Navigation menu på vänstra sidan och klicka på Compute Engine, verifiera att noder som skapades tidigare är borta.

                   

                  Du är klar!













                  [ Modified: Saturday, 16 May 2020, 12:23 AM ]

                  Comments

                     
                    Picture of Mats Johannesson
                    by Mats Johannesson - Tuesday, 5 May 2020, 1:53 PM
                    Anyone in the world

                    Lomma hamn


                    Den 18-19 maj kör Edument AB .easec:s kurs Orkestrering i Docker online!


                    Läs mer här: https://www.edument.se/product/orkestrering-i-docker

                    Comments

                       
                      Page: 1 2 3 4 ()

                        
                      RSS