For partners that build or integrate commercially available applications and service solutions with the Oracle Cloud Platform
For partners that provide implementation or managed services around Oracle Cloud Applications
Apologies for the basic question but I just signed up for a trial cloud account and want to deploy a simple hello world node app to the cloud. Even Oracle's documentation seems dated as everything I find online references Application Container Cloud which I don't see in my list of trial account applications. Nor do I see anything related to Container Cloud. Does anyone have a tutorial or how-to doc that I could follow to learn how to deploy a simple node app. Thanks in advance for pointing me in the right direction.
To get started with creating a K8s cluster on Oracle Cloud, you might this tutorial useful: https://www.oracle.com/webfolder/technetwork/tutorials/obe/oci/oke-full/index.html
Also see the reference links included at the end of the tutorial.
Hi John. You are correct that there are still some outdated tutorials out there related to Oracle Cloud services which has changed substantially in the past few years. You should find the information on https://cloud.oracle.com and https://docs.cloud.oracle.com/iaas/ to be up-to-date regardless what you might find through open Internet searching.
https://cloud.oracle.com
Here you'll find links to almost everything related to Oracle Cloud services. You'll find the Major divisions "Applications," "Platform," "Infrastructure," and "Resources" at the top. You'll probably be most interested in what you find in Infrastructure (related to OCI) and Platform (services that leverage OCI such as the Developer Cloud Service).
https://docs.cloud.oracle.com/iaas/
This is the main documentation set for OCI.
What likely matches your interests (as I read from your post) will be one of the following:
Jon-Eric,
Thank you much for the info. I think the reason this is so frustrating is that every option has a seemingly endless array of prereqs.
For example, to use Oracle functions I see the following prerequisites:
Each of these steps has its own list of instructions with additional prereqs. I imagine just doing these steps will take me all weekend and even then I'm not confident I'll be able to do this. I'm a developer, not a DevOps person and I just didn't anticipate that deployment would be so difficult. Just venting my frustration but I am obviously lacking in the skills needed to deploy.
I understand your frustration. The Compartment/VCN/Subnet steps are necessary simply because you are working within the Infrastructure service which, by definition, gives you control of the core elements in the environment. I could see a place for some "quickstart" configuration that gives you a basic setup in favor of deploying and testing your code quickly. Short of that, see the below Terraform code that should give you the basic infrastructure you need for testing Functions like I describe above. You can use this via Resource Manager in OCI (in the main menu like your original screenshot above) by following these steps below. Note that I assume you are using an administrator account in OCI (which is the case if you are using the first/only account created for you when you started the trial):
If all goes as planned, you should find a new VCN under Networking in the OCI main menu. You will need to choose the new compartment (using the Compartment selector in the lower left on the VCNs page) you created with the script in order to see the new VCN listed.
Hopefully this is useful should you choose to press ahead testing Oracle Functions. Best wishes!
Jon-Eric
Mythics, Inc.
--- code below to copy to a new file ---
variable "tenancy_ocid" {} variable "compartment_name" { default = "FnDemo" } variable "policy_name" { default = "FnService" } variable "vcn_cidr" { default = "10.200.0.0/16" } variable "fn_app_name" { default = "hello-world" } resource "oci_identity_compartment" "demo_compartment" { compartment_id = "${var.tenancy_ocid}" name = "${var.compartment_name}" description = "For demonstration of Oracle Functions" } resource "oci_identity_policy" "root_demo_policy" { compartment_id = "${oci_identity_compartment.demo_compartment.compartment_id}" description = "For Fn Service access to tenancy resources" name = "${var.policy_name}" statements = [ "Allow service FaaS to read repos in tenancy" ] } resource "oci_identity_policy" "compartment_demo_policy" { compartment_id = "${oci_identity_compartment.demo_compartment.id}" description = "For Fn Service access to compartment resources" name = "${var.policy_name}" statements = [ "Allow service FaaS to use virtual-network-family in compartment ${oci_identity_compartment.demo_compartment.name}" ] } resource "oci_core_vcn" "demo_vcn" { cidr_block = "${var.vcn_cidr}" compartment_id = "${oci_identity_compartment.demo_compartment.id}" display_name = "Demo VCN" dns_label = "demo" } resource "oci_core_internet_gateway" "demo_ig" { compartment_id = "${oci_identity_compartment.demo_compartment.id}" display_name = "Internet Gateway" vcn_id = "${oci_core_vcn.demo_vcn.id}" } resource "oci_core_default_route_table" "demo_route_table" { manage_default_resource_id = "${oci_core_vcn.demo_vcn.default_route_table_id}" route_rules { network_entity_id = "${oci_core_internet_gateway.demo_ig.id}" cidr_block = "0.0.0.0/0" } } resource "oci_core_subnet" "demo_subnet" { cidr_block = "${cidrsubnet(oci_core_vcn.demo_vcn.cidr_block, 8, 1)}" compartment_id = "${oci_identity_compartment.demo_compartment.id}" display_name = "Public Subnet" vcn_id = "${oci_core_vcn.demo_vcn.id}" prohibit_public_ip_on_vnic = "false" } resource "oci_functions_application" "demo_app" { compartment_id = "${oci_identity_compartment.demo_compartment.id}" display_name = "${var.fn_app_name}" subnet_ids = [ "${oci_core_subnet.demo_subnet.id}" ] } output "comp_id" { value = "Compartment id is ${oci_identity_compartment.demo_compartment.id}" }
-- code above to be copied to a new file --
I'm seeing now that the end of my post was somehow lost. Here is a link for a Functions tutorial that you might find interesting:
Oracle Functions: Set up, creation, and deployment
Jon-Eric
Mythics, Inc.
Hi John. You are correct that there are still some outdated tutorials out there related to Oracle Cloud services which has changed substantially in the past few years. You should find the information on https://cloud.oracle.com and https://docs.cloud.oracle.com/iaas/ to be up-to-date regardless what you might find through open Internet searching.
https://cloud.oracle.com
Here you'll find links to almost everything related to Oracle Cloud services. You'll find the Major divisions "Applications," "Platform," "Infrastructure," and "Resources" at the top. You'll probably be most interested in what you find in Infrastructure (related to OCI) and Platform (services that leverage OCI such as the Developer Cloud Service).
https://docs.cloud.oracle.com/iaas/
This is the main documentation set for OCI.
What likely matches your interests (as I read from your post) will be one of the following:
Use this to launch and manage Docker instances controlled via Kubernetes. OCI does much of the setup for you leaving you to create, deploy, and run your Docker images. Notably, this service will probably involve OCI Registry "(OCIR") as well to store your Docker images. Kumar's tutorial link above uses OKE
This is a PaaS service that uses OCI resources (i.e. the servers you use for development and deployment are built in OCI). You access this from the My Services page and not directly from OCI as shown in your screenshot. I don't recall if trial accounts include Developer Cloud Services but, if so, you can reach that by selecting My Services from the OCI menu then finding Developer Cloud under the My Services page menu (top left hamburger button).
This one is most intriguing to me. Functions, based on the open-source Fn project, provides you the means to deploy one or more functions independently. If this is new to you, consider that the goal here is to provide "Functions as a Service" allowing granular control over scaling, costs, and maintenance all the way down to the function level. This is probably the quickest to deploy of the three options. I did a node "hello world" deployment in about 5 min after reading your message above. There is a bit of overhead for setup if you've never used Functions before (I had for Python work previously) but in all shouldn't take you more than 15-30 minutes the first time and 5 minutes thereafter.