Skip navigation

Goal

  • Architecting for DevOps by replacing large Monolithic Applications with Microservices.

 

Key-enabling technology

Docker containers

 

Services Orchestration

Swarm

 

Microservices Application Lab (using Swarm)

https://training.play-with-docker.com/swarm-stack-intro/

 

Reference

https://www.docker.com/solutions/microservices

Continuous Improvement is on of the core principles of DevOps

Screen Shot 2018-12-31 at 7.14.53 AM.png

 

What is DMAIC?

     Continuous improvement is to solve problems in order to:

  • deliver better value faster and cheaper to the customers,
  • bring more meaning to your work,
  • and/or leave a healthier environmental footprint.

     A well-known method to for structured problem solving to facilitate continuous improvement, is DMAIC.

 

DMAIC is an acronym that stands for Define, Measure, Analyze, Improve, and Control. It represents the five phases that make up the process:

Screen Shot 2018-12-31 at 7.10.23 AM.png

Reference

DASA DevOps Fundamentals

Prerequisites

Microsoft Windows [Version 10.0.17134.472]

 

Steps

(1) Download Office 365 Offline/Standalone installer O365HomePremRetail.img

(2) Mount the img

(3) Install from the file Office\Setup64

(4) Download and Install BIPublisherDesktop64

(5) Go to folder C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\DotNetInstallFiles

(6) Install TBAddInSetup64 into this location C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\TBAddInSetup64

(7) Word --> Options --> Manage COM Add-ins

(8) Activate Oracle BI Publisher Desktop

Goal

Developer (Dev) and DBA (Ops) together must build a new web application for the recently-acquired coffee shops chain

 

Preconditions

- Oracle DB 12c as JSON document store.

 

Why JSON?

JSON supported by all Oracle features

- Analytics

- Encryption

- In-Memory

- RAC

- Parallel SQL

 

How is JSON stored?

- No special data type for JSON. It can be VARCHAR2, BLOB or CLOB.

- Add CONSTRAINT checks could validate the input document.

SQL> CREATE TABLE orders(order_details BLOB  
                            CONSTRAINT is_json 
                                 CHECK (order_details IS JSON)      );

 

Native SQL support for JSON

Screen Shot 2018-12-28 at 1.21.53 PM.png

 

Reference

https://www.nloug.nl/downloads/ogh20170615_m._colgan.pdf

Prerequisites

- Remote Oracle Database + ORDS 17.3 or later

- ORDS instance having a connection pool configured for target database

 

The Basics

Execute any SQL through a REST Endpoint - e.g. "curl" utility

curl   -H    "Content-Type:application/json"
       -u    "SOCTT:TIGER"
       -d    '{"statementText":"select systimestamp as dt from dual"}'
       http://{ords-hostname}:{ords-port}/ords/{db-schema}/_/sql

 

And the response would be the following self-describing JSON

Screen Shot 2018-12-26 at 10.04.26 PM.png

 

Using Remote Database Connections

(1) Shared Components --> Data Sources --> REST Enabled SQL

( Name, End Point, Authentication)

(2) Use a REST Enabled SQL Service and therefore a remote Oracle database as the Data Source for Oracle APEX components like:

• Classic Reports, Interactive Reports

• Reflow Report, Toggle Columns Report

• Tree Region, JET Charts, CSS Calendar

• PL/SQL Process

Screen Shot 2018-12-27 at 8.55.02 AM.png

 

 

Using Custom PL/SQL Code

  • Access REST enabled SQL sources within custom PL/SQL Code:
    • Execute query and provide a "cursor" object APEX_EXEC.OPEN_REMOTESQL_QUERY
    • Execute a PL/SQL block anonymously APEX_EXEC.EXECUTE_REMOTE_SQL
  • Use REST Enabled SQL as a Plug-In developer:
    • "Region Source supports different Data Sources" Plugin Attribute
    • Use APEX_EXEC PL/SQL package in Plug-In code

 

Reference

https://www.oracle.com/technetwork/developer-tools/apex/overview/apex-181-new-features-otn-4491380.pdf

Goal

MLE will be added to Oracle APEX upcoming releases. It contains the support of brilliant language Python. I will be ready to integrate my code once its ready!

 

Given:

- macOS High Sierra 10.13.6

- python3 Version

$ python3 --version
Python 3.7.1

 

- brew version

$ brew --version
Homebrew 1.8.6

 

Prerequisites

brew

brew install mpg321
brew install portaudio

 

pip3

pip3 install amp
pip3 install pyaudio
pip3 install pyspeech
pip3 install speechrecognition
pip3 install googletrans

 

ArToEnVoiceTranslator.py

#!/usr/bin/env python3

# Requires PyAudio and PySpeech.

import speech_recognition as sr

from time import ctime

import googletrans as gt

import time

import os

from gtts import gTTS

def speak(audioString,mylang):

print(audioString)

  tts = gTTS(text=audioString, lang=mylang)

  tts.save("audio.mp3")

  os.system("mpg321 audio.mp3")

def recordAudio():

# Record Audio

  r = sr.Recognizer()

with sr.Microphone() as source:

print()

  audio = r.listen(source)

# Speech recognition using Google Speech Recognition

  data = ""

try:

# Uses the default API key

# To use another API key: `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`

  data = r.recognize_google(audio ,language="ar-SA")

print("You said: " + data)

except sr.UnknownValueError:

print("***")

except sr.RequestError as e:

print("Could not request results from Google Speech Recognition service; {0}".format(e))

return data


def translateToEnglish(text):

if text != "":

  mygt = gt.Translator()

  translation = mygt.translate(text,dest='en')

  speak(translation.text,'en')

# initialization

time.sleep(1)

speak('السلام عليكم هذا مترجم للكلام من اللغة العربية إلى اللغة الانجليزية، رجاء تكلم بالكلمة العربية واصبر ليتم ترجمتها لك بالانجليزية','ar')

while 1:

  data = recordAudio()

  translateToEnglish(data)

 

 

Regards

Mahmoud

Goal:

OpenStack is the future of modern data centers. RDO is all-in-one implementation for beginners.

 

(1) /etc/environment

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

 

(2) /etc/hosts

192.168.68.111    openstack01

 

(3) Disable WiFi adapter by renaming its ifcfg-.... file

 

(4) /etc/sysconfig/network-scripts/ifcfg-enp38s0

HWADDR=E4:11:5B:59:3D:61
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NM_CONTROLLED=no
USERCTL=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp38s0
UUID=56b4291b-1032-48b3-b5e6-3b832cef7507
DEVICE=enp38s0
ONBOOT=yes
    IPADDR=192.168.68.111
        NETMASK=255.255.255.0
        GATEWAY=192.168.68.1
        DNS1=192.168.100.1
        DNS2=8.8.8.8

 

(5) Prerequisites

systemctl disable firewalld
systemctl stop firewalld
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network
yum install -y centos-release-openstack-rocky
yum-config-manager --enable openstack-rocky
yum update -y

 

(6) Install Packstack Installer

yum install -y openstack-packstack

 

(7) Run Packstack to install OpenStack

packstack --allinone

 

Reference

https://www.rdoproject.org/install/packstack/

 

Next Step

https://www.oracle.com/technetwork/systems/hands-on-labs/hol-openstack-linux-ovm-2399741.html