|
1 | | -Copyright (c) 2021 Oracle and/or its affiliates. |
2 | | -Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. |
| 1 | +# Simplify microservices architecture with Oracle Converged Database |
| 2 | + |
| 3 | +GrabDish is a sample application for mobile-food ordering. This code illustrates |
| 4 | +the simplicity in designing a data-driven microservices platform using the |
| 5 | +Oracle converged database and OCI services. |
3 | 6 |
|
4 | | -Simplifying Microservices Architecture With Oracle Converged Database and Helidon |
| 7 | +Often there are tough architecture choices for setting up the infrastructure, |
| 8 | +operating it, tuning it, upgrading it and scaling it. In this workshop you will |
| 9 | +simplify the process by setting up Transactional Event Queues in the |
| 10 | +Oracle Autonomous Database which brings the best of JMS messaging and Kafka |
| 11 | +produce/consume together with transactions. |
| 12 | +This combination of data and and events delivered with notifications is ideal to |
| 13 | +build scalable microservices using a multi-model, multi-tenant architecture. |
5 | 14 |
|
6 | | -GrabDish is a sample application for mobile-food ordering. This code illustrates the simplicity of architecting a data-driven microservices platform using the Oracle converged database and OCI services. |
7 | | - |
8 | | -This repository contains the source code for the Oracle LiveLabs for GrabDish accessible at https://oracle.github.io/learning-library/developer-library/microservices-with-converged-db |
9 | | - |
10 | | -Often there are tough architecture choices for setting up the infrastructure, operating it, tuning it, upgrading it and scaling it. In this workshop you will simplify the process by setting up Transactional Event Queues in the Oracle Autonomous Database which brings the best of JMS messaging and Kafka produce/consume together with transactions. This combination of data and and events delivered with notifications is ideal to build scalable microservices using a multi-model, multi-tenant architecture. |
11 | | - |
12 | | -This workshop will help you understand the technical capabilities inside and outside the Oracle database to support scalable data and event-driven microservices architecture. |
13 | | - |
14 | | -You will create a highly scalable application that relies on Oracle Container Engine for Kubernetes to build, deploy and manage the Helidon and WebLogic front-end microservices that interact through Oracle Cloud Infrastructure Service Broker, JMS and Kafka streaming platform with the back-end datastores deployed as Oracle pluggable databases inside Oracle Autonomous Transaction Processing. You will see the scaling of both application layer and data platform layer, as well as experience the polyglot support – programming in Java with Helidon MP and SE, Python, and node.js. |
15 | | - |
16 | | -The workshop in this repository is divided into the 7 following labs. First you have to start with creating a free trial account on OCI if you don’t have one. These steps can be done in the lab at https://oracle.github.io/learning-library/developer-library/microservices-with-converged-db/ . The code here is deployed in Lab 1, Step 2. We’re open sourcing the code here for developers to access the underlying boilerplates for simplifying microservices with Oracle’s converged database as a persistent store. |
| 15 | +This workshop will help you understand the technical capabilities inside and |
| 16 | +outside the Oracle database to support scalable data and event-driven |
| 17 | +microservices architecture. |
17 | 18 |
|
| 19 | +You will create a highly scalable application that runs on |
| 20 | +Oracle Container Engine for Kubernetes and will build, |
| 21 | +deploy and manage the Helidon microservices that interact through |
| 22 | +REST and messaging as well as back-end datastores deployed as Oracle |
| 23 | +pluggable databases inside Oracle Autonomous Transaction Processing. |
| 24 | +You will see the scaling of both application layer and data platform layer, |
| 25 | +as well as polyglot support – |
| 26 | +programming in Java with Helidon MP and SE, Python, and node.js. |
18 | 27 |
|
19 | | -<img src="images/readmedocsidebar.png" width="300"> |
20 | | - |
21 | 28 | The steps followed in the labs above follow the order of scripts being executed below |
22 | 29 |
|
23 | | -| Step | Description |
24 | | -| ------ | ------ | |
25 | | -| 1 | #download src | |
26 | | -| 2 | #create compartment (if necessary) and k8s cluster in console, note compartment ocid and region id |
27 | | -| 3 | ./setCompartmentId.sh <COMPARMENT_OCID> <REGION_ID> #writes msdataworkshopcompartmentid.txt and msdataworkshopregion.txt | |
28 | | -| 4 | #create vault secrets for db admin pw and frontend microservice auth in console, note ocids | |
29 | | -| 5 | ./createATPPDBs.sh <MSDATAWORKSHOP_ADMIN_PW_SECRET_OCID> <FRONTEND_AUTH_PW_SECRET_OCID> #writes msdataworkshoporderdbid.txt and msdataworkshopinventorydbid.txt | |
30 | | -| 6 | #create OCIR registry in console, note namespace and repos name | |
31 | | -| 7 | ./addOCIRInfo.sh <OCIR_NAMESPACE> <OCIR_REPOS_NAME> #writes msdataworkshopocirnamespace.txt and msdataworkshopreposname.txt | |
32 | | -| 8 | #create auth token in console, note it | |
33 | | -| 9 | ./dockerLogin.sh <USERNAME> "<AUTH_TOKEN>" #writes msdataworkshopdockerregistry.txt | |
34 | | -| 10 | ./verifyOKEAndCreateKubeConfig.sh #generates ~/.kube/config | |
35 | | -| 11 | ./installGraalVMJaegerAndFrontendLB.sh #writes msdataworkshopgraalvmhome.txt | |
36 | | -| 12 | ./setJaegerAddress.sh #writes msdataworkshopjaegeraddress.txt | |
37 | | -| 13 | ./build.sh #builds and pushes images | |
38 | | -| 14 | ./frontend-helidon/deploy.sh #deploy and verify frontend ms | |
39 | | -| 15 | #download wallet from console, add to objectstore and create link, note link | |
40 | | -| 16 | ./atp-secrets-setup/createAll.sh <MSDATAWORKSHOP_DB_WALLET_OBJECTSTORAGE_LINK> #creates wallet secret | |
41 | | -| 17 | ./atpaqadmin/deploy.sh #deploy admin service and use it to create DB and AQ queue propagation setup | |
42 | | -| 18 | #deploy.sh other microservices (order, inventory, and supplier) from here and test app| |
43 | | - |
44 | | -Please send any questions or comments to this workshop's Livelabs page of the Groundbreakers Developer Community at https://community.oracle.com/tech/developers/categories/building-microservices-with-oracle-converged-database |
45 | | - |
46 | | -For Helidon questions use the Helidon Slack at https://helidon.slack.com/archives/CCS216A5A |
47 | | - |
| 30 | +| Step | Description | |
| 31 | +| ------ | ------ | |
| 32 | +| 1 | #download src | |
| 33 | +| 2 | #create compartment and k8s cluster, note compartment and region | |
| 34 | +| 3 | setCompartmentId.sh COMPARMENT_OCID REGION_ID | |
| 35 | +| 4 | create vault secrets, note ocids | |
| 36 | +| 5 | createATPPDBs.sh ADMIN_PW_OCID FRONTEND_AUTH_PW_OCID | |
| 37 | +| 6 | #create OCIR registry in console, note namespace and repos name | |
| 38 | +| 7 | addOCIRInfo.sh OCIR_NAMESPACE OCIR_REPOS_NAME | |
| 39 | +| 8 | #create auth token in console, note it | |
| 40 | +| 9 | dockerLogin.sh USERNAME "AUTH_TOKEN" | |
| 41 | +| 10 | installGraalVMJaegerAndFrontendLB.sh | |
| 42 | +| 11 | setJaegerAddress.sh | |
| 43 | +| 12 | build.sh #builds and pushes images | |
| 44 | +| 13 | frontend-helidon/deploy.sh #deploy and verify frontend ms | |
| 45 | +| 14 | #download wallet from console, create and note objectstore link | |
| 46 | +| 15 | atp-secrets-setup/createAll.sh DB_WALLET_OBJECTSTORAGE_LINK | |
| 47 | +| 16 | atpaqadmin/deploy.sh #create DB and AQ queue setup with admin service| |
| 48 | +| 17 | #deploy.sh other microservices and test app | |
| 49 | + |
| 50 | +## Resources |
| 51 | + |
| 52 | +[Workshops]: https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/livelabs-workshop-cards?p100_role=12&p100_focus_area=35&me=126 |
| 53 | +[Livelabs page of the Groundbreakers Developer Community]: https://community.oracle.com/tech/developers/categories/building-microservices-with-oracle-converged-database |
| 54 | +[Helidon]: https://helidon.slack.com/archives/CCS216A5A |
| 55 | + |
| 56 | +## License |
| 57 | + |
| 58 | +Copyright (c) 2021 Oracle and/or its affiliates. |
| 59 | + |
| 60 | +Licensed under the Universal Permissive License v 1.0 as shown at <https://oss.oracle.com/licenses/upl>. |
0 commit comments