Introduzione.

L' obiettivo di questo articolo è di fornire le istruzioni dettagliate ed il più possibile chiare per il setup di un ambiente Data Science in Oracle Cloud Infrastructure (OCI).

Nel corso dell'articolo farò riferimento alla documentazione ufficiale, ma aggiungerò via via una serie di mie note per chiarire quelli che potrebbero essere punti un po' più difficili.

Prerequisiti.

Un account valido su Oracle Cloud. Si può utilizzare un account free, i costi gornalieri di un ambiente Data Science, di dimensioni ragionevoli, sono bassi el'account free li copre.

Un minimo di manualità nell'effettuare, tramite browser, le operazioni di base su Oracle Cloud, quali:

  • navigare nella Cloud UI
  • creare un utente
  • creare un gruppo

Creare utenti e gruppi.

Queste operazioni devono essere effettuate utilizzando un account di amministrazione di OCI (Cloud administrator).

Per gestire la sicurezza, ovvero autenticazione e sopratutto autorizzazione all'utilizzo del servizio Data Science, conviene creare un gruppo di utenti dedicato, che nel seguito indicherò con data-scientist, e collocare tutti gli utenti che si vogliono abilitare all'utilizzo all'interno di questo gruppo.

Le istruzioni sono contenute nel documento collegato alla URL: 

https://docs.cloud.oracle.com/en-us/iaas/data-science/using/configure-tenancy.htm#configure-tenancy

le riporto per comodità:

  1. Log into the Console as your tenancy administrator.
  2. Open the navigation menu.
  3. Under Governance and Administration, go to Identity and click Groups. A list of the groups in your tenancy is displayed.
  4. Click Create Group and create a new group, see To create a group.
  5. Enter a meaningful name. For example data-scientist
  6. (Optional) Enter a description. 
  7. Click Create Group.
  8. Go back to Governance and Administration, select Identity and click Users. A list of the users in your tenancy is displayed.
  9. Click Create User and create one or more new users, see To create a user.
  10. If the users haven't already been added to your group to use Data Science, add them:
    1. Go back to Governance and Administration, select Identity, and then click Users. A list of the users in your tenancy is displayed.
    2. Select one or more users and add them to the group authorized to use Data Science, see To add a user to a group.

Ovviamente, possiamo utilizzare per tutto il resto delle nostre prove lo stesso utente amministratore di OCI. Dobbiamo solo inserirlo nel gruppo data-scientist.

Creare un compartimento.

Per chiarire il concetto velocemente: un compartimento è un contenitore logico. In esso possiamo collocare qualunque risorsa di OCI e, se necessario, inseguito possiamo anche spostarla ad un altro compartimento. Ma è necessario definire in quale compartimento una risorsa, sia di rete od altro, è creata.

Per pulizia, secondo me conviene creare un compartimento separato per i Progetti ed i Notebook di Data Science e non riusare compartimenti creati per altri scopi. Chiamerò questo compartimento ds-compartment.

Poichè ci stiamo occupando di un primo approccio al servizio Oracle Data Science utilizzeremo lo stesso compartimento per contenere: le risorse di rete, i progetti, i Notebook. Ma potremmo usare compartimenti separati. Per ora, semplifichiamoci la vita.

Le istruzioni sono sempre nel documento della URL

https://docs.cloud.oracle.com/en-us/iaas/data-science/using/configure-tenancy.htm#configure-tenancy

Sempre per comodità del lettore, le riporto:

  1. Log into the Console as your tenancy administrator.
  2. Open the navigation menu.
  3. Under Governance and Administration, go to Identity, and then click Compartments.
    A list of the compartments in your tenancy is displayed.
  4. Click Create Compartment then create a new compartment, see To create a compartment.
  5. Enter a meaningful name. For example ds-compartment
  6. (Optional) Enter a description. 
  7. Click Create Compartment.

 

Creare una VCN.

Una VCN (Virtual Cloud Network)  è l'equivalente, nel Cloud, di una rete fisica, che può avere più subnet (private o pubbliche), su cui attestare le interfacce di rete delle VM o dei servizi che vogliamo utilizzare (in realtà, ho semplificato alcuni aspetti, che per il seguito sono non molto rilevanti).

Qui, è importante una prima precisazione. I Notebook che utilizzeremo per costruire e testare i nostri modelli di Machine Learning devono quasi certamente accedere ad altre risorse Cloud Oracle quali, ad esempio, Object Storage o Database. Inoltre i Notebook devono poter accedere ad Internet (ad esempi se voglianmo installare od aggiornare, tramite pip, dei moduli Python). Per come è stato pensato e realizzato Oracle Data Science non è sufficiente una rete con un Internet Gateway, ma il passaggio deve avvenire tramite un NAT Gateway.

Quindi: il modo più semplice, sopratutto per chi ha non troppa dimestichezza pregressa con Oracle OCI, è di utilizzare il workflow semplificato per creare una VCN ed utilizzare una subnet privata che si collegherà ad Internet tramite un NAT Gateway. E' importante non sbagliare e non utilizzare la subnet pubblica (si, qui l'intuizione rischia di portarci fuori strada, ma l'accesso da Internet è garantito dal NAT gateway).

Le istruzioni sono sempre alla URL:

https://docs.cloud.oracle.com/en-us/iaas/data-science/using/configure-tenancy.htm#configure-tenancy

ed eccole qui riportate:

  1. Log into the Console as your tenancy administrator.
  2. Open the navigation menu.
  3. From Core Infrastructure, select Networking, and then click Virtual Cloud Networks.
  4. If your compartment is not in the list, then refresh the browser page until it's displayed.
  5. Click Networking Quickstart.

    The Networking Quickstart option automatically creates the necessary private subnet with a NAT gateway.

  6. Use the VCN with Internet Connectivity default and click Start Workflow.
  7. Choose the compartment to own the network resources in the left-navigation section.
  8. Enter the following:
     Important

    None of your CIDR blocks can overlap.
    • VCN Name: A meaningful name for the cloud network. For example datascience-vcn. The name doesn't have to be unique within your tenancy and it cannot be changed later through the Console. Do not enter confidential information.
    • VCN CIDR Block: The IP address to your VCN. For example, 10.0.0.0/16.
    • Public Subnet CIDR Block: The IP address to your public subnet. For example, 10.0.0.0/24.
    • Private Subnet CIDR Block: The IP address to your private subnet. For example, 10.0.1.0/24.
  9. Make sure that Use DNS Hostnames in this VCN is selected.
  10. Click Next
  11. Click Create to create the VCN and the related resources (three public subnets and an internet gateway).

    Use this VCN and its private subnet to use when you launch a notebook session.

 Per chi non lavora spesso con le reti, potrebbe essere naturale una certa difficoltà a decidere i valori dei CIDR (una fonte rapida di informazioni:https://it.wikipedia.org/wiki/Subnet_mask) . In sintesi si tratta di definire i range di IP privati riservati per la subnet pubblica e quella privata. Per quanto riguarda l'utilizzo di Data Science, a meno che non vogliate creare un ambiente definitivo ed abbiate requisiti ben definiti, la scelta è ininfluente. Potete quindi fare il cut&paste dei CIDR di esempio.

Ricordiamoci che nel seguito utilizzeremo la Private Subnet. Il range di indirizzi ci interessa poco, perchè l'accesso ai Notebook avverrà tramite IP pubblici esposti dal NAT Gateway, che ci saranno mostrati dalla UI Cloud, come vedremo tra poco.

Per chi vuole qualche informazione in più, ovviamente le Notebook Session utilizzano delle VM (e docker). Ma il servizio Data Science è Oracle Managed e le VM non sono direttamente visibili.

Creare le policy.

Il servizio Data Science deve poter utilizzare risorse quali, ad esempio, la rete. Gli utenti devono essere autorizzati. Tutto ciò si consente tramite la creazione di opportune policy. 

Le prime due policy devono essere create nel compartimento ds-compartment, la terza nel root compartment.

Policy 1: policy per dare agli utenti Data Scientist accesso alle risorse Data Science (progetti, notebook session, modelli).

  1. Log into the Console as your tenancy administrator.
  2. Open the navigation menu.
  3. Under Governance and Administration, go to Identity and click Policies.
  4. Use the To create a policy instructions and give the policy a meaningful name. For example, datascientists-manage-access.
  5. Add a policy statement to allow the group access to all Data Science related resources in a specified compartment. For example, for the data-scientist group and ds-compartment compartment.
    allow group data-scientist to manage data-science-family in compartment ds-compartment
  6. Click Create.

Il gruppo da specificare nel punto 5 è il gruppo creato per gli utenti di Data Science (nel nostro caso: data-scientist).

 Policy 2: per dare ai Data Scientist accesso alle risorse di rete necessarie.

Step 1,2,3 come sopra:

  1. Follow the To create a policy instructions and give the policy a name. For example, datascientists-manage-network-access.
  2. Add a policy statement to allow the group access to the network resources in the specified compartment. For example, the data-scientist group and ds-compartment compartment.
    allow group data-scientist to use virtual-network-family in compartment ds-compartment
  3. Click Create.

Policy 3: per dare al Servizio data Science accesso alle risorse di rete.

Step 1,2,3 come sopra:

  1. Select the root compartment:
  2. Use the To create a policy instructions and give the policy a name. For example, datascience-service-network-access.
  3. Add a policy statement to allow Data Science access to the network resources in a specified compartment. For example, ds-compartment.
    allow service datascience to use virtual-network-family in compartment ds-compartment
  4. Click Create.

Si deve fare attenzione che questa policy deve essere creata nel compartimento root e non in ds-compartment.

Creazione di Progetti e di Sessioni Notebook.

La parte diciamo infrastrutturale è terminata, le policy di sicurezza sono state create, a questo punto siamo pronti per creare un progetto e creare, all'interno, una Notebook Session.

Colleghiamoci con un utente parte del gruppo data-scientist.

Dal menu sulla sinistra scegliamo:

Data Science - > Projects

Assicuriamoci di aver selezionato il compartimento creato allo scopo (ds-compartment).

Premiamo il pulsante Create Project.

Diamo un nome al progetto, inseriamo, eventualmente, una descrizione e premiamo il pulsante Create.

La creazione del progetto è, pressochè, istantanea. Si tratta, anche qui, di un contenitore logico dedicato.

Per chiarire un eventuale ruolo dei progetti: per semplicità con la Policy 1 abbiamo dato un accesso generale a tutti gli utenti del gruppo data-scientist. In realtà potremmo dare ad un gruppo un accesso selettivo ad alcuni progetti.

Per la creazione di una Notebook Session, si deve selezionare dalla lista il progetto ed entrare nella schermata di gestione (facendo click sul nome).

Nella schermata di creazione della Notebook Session (che crea un ambiente basato su VM, configurato con tutti gli strumenti offerti da Oracle DS) si devono specificare:

  • Il nome
  • Le caratteristiche (shape) dell'istanza di VM che sarà dedicata (quindi il numero di core e la memoria, come da documentazione Oracle Cloud)
  • Lo spazio dedicato su Block Storage
  • La VCN da usare, creata nel passo dedicato in precednza
  • La subnet (ricordiamo, quella privata)

Premendo il pulsante Create si viene portati in una pagina che fornisce alcuni dettagli sull'ambiente che viene creato e sul progresso della creazione. 

Selezionando la Notebook session, una volta pronta, dal pulsante Open (evidenziato in blu) è possibile accedere all'ambiente basato su Jupyter LAB.

Notebook Session.

Una Notebook Session è un ambiente di esecuzione dedicato, con capacità dedicata, che consente l'esecuzione di uno o più Notebook. La tecnologia sottostante è quella di Jupyter Lab.

 Ecco quanto un Data Scientist visualizza:

 

Se siete giunti a questo punto, siete pronti per iniziare a lavorare con Oracle Data Science. Pronti per le prossime lezioni. Ciaoo.