Saturday, June 25, 2022

Explore Alibaba Cloud part 1: Intro to Alibaba Cloud

This image has an empty alt attribute; its file name is alibaba2.png

Intro

I always believed in the horizontal approach to learn the cloud rather than the vertical method. I’m just convinced there is more to learn when you open your perspectives, even if you lose the ability to narrow your expertise on one platform. That’s a little price to pay if you want to broaden your lenses. This is why after exploring AWS, Azure, OCI, & GCP, I decided to sneak into Alibaba Cloud.

In this blog post, I will introduce you to Alibaba Cloud through a little tour of the provider’s interface, available offering along with billing options. I’m hoping to find helpful insights on the user experience while navigating this platform based on my multi-cloud background. All while staying fair and unbiased so we can solely focus on the technical aspect (geopolitical considerations aside) .


Table of contents


Is Alibaba Cloud a thing :)?This image has an empty alt attribute; its file name is image.png


If you ever doubted on the role of Alibaba in the Cloud World, here’s a memo to catch up on. Alibaba Cloud market share overtook GCP to become No.3 Worldwide in 2021 (9.5% or $8.7 Billion). It has also moved from "Niche Players" quadrant to the "Visionaries" quadrant in the
Gartner 2021 report for Cloud Infrastructure & Platform services, reaching the 4th place. 
Did you know that Aliyun (translated “Ali Cloud”) was the original name of the company until 2017? You can still see it hardcoded in their Console sub-pages URL.


Regions

Alibaba Cloud operates in 27 regions totaling 84 availability zones around the world with more regions set to follow. Huge presence in the Asia-Pacific area with 13 regions for China only, and new ones in S-Korea/Thailand.

This image has an empty alt attribute; its file name is image-1.png

Alibaba Cloud CDN service leverages a network of 2800 nodes in 70 countries across the globe (2300 in China)


Alibaba Cloud free tier


The Alibaba Cloud Free Tier provides FREE Cloud services Including 50+ Free Offers Worth $1700-$8500 USD.

The offers are time based (1-12 Months) and sometimes based in cash credit for both Individuals and enterprises.

Here are some Cloud services/products you’ll get for free and their period of availability.



Compute

  • Simple Application Server-Linux (1CPU, 1G, 20GB Disk, 4Mbps ) 3 months   (+ preinstalled app)

  • ECS- Burstable t5 (1CPU, 1GB , 40GB Disk, 1Mbps) 12 months

  • ECS- Shared Compact Type xn4 (1CPU, 1GB , 40GB System Disk, 3Mbps) 3 months
    Note: Activating the free trial on ECS will disqualify you from using free trial on Simple Application Server.

Other

  • Server Load Balancer: $15 Credit

  • Alibaba Cloud CDN   6 months

  • Object Storage Service 500 GB 1 month

  • File storage NAS 100 GB 1month

  • Tablestore 500 GB storage 750 hrs instance $19 Credit

  • Hybrid Backup Recovery 100 GB storage 3 months

  • ApsaraDB RDS for MySQL/PostgresSQL Dual hot-standby nodes or single node (20GB storage) 1 month

  • ApsaraDB for Redis 4 GB instance 1 month

  • ApsaraDB for MongoDB  3 nodes +20 Gb storage 1 month

  • Elasticsearch 3 nodes (2CPU, 4GB) 1 month

  • Developer After-sales support plan 1 month

  • API Gateway 1 MM calls/month 1 year

  • AI (image Search, speech interaction) 1-6 month

If you want to check the full package you can dig through here: Alibaba-Fee-trial


Alibaba Cloud free usage tier expiration

These free tier offers are only available in the first for 12 months following your the sign-up date. After a year

or when your service use exceeds the tiers, you simply switch to pay-as-you-go service rates.

Note: Fee usage does not accumulate. 


Alibaba Always Free Services

These services are,obviously, always free because they are merely services to manage cloud native resources like Container Registry, VPC, Basic monitoring tools, etc.. It is implicitly free for all other Cloud providers, so I’ll pass.


Interface

Here we see a `feel and look` that’s pretty close to AWS. Even the ECS(Elastic Compute Service) is likely derived from AWS EC2.

This image has an empty alt attribute; its file name is image-2.png

The annoying things are:

  • Some links will open a new page which can led to a chrome tab chaos after few clicks.

  • Beware, if you have Cloud shell open, any click on your main page will refresh the whole thing and you’ll loose all what you were working on in the terminal.

This image has an empty alt attribute; its file name is image-3.png

I don’t know about you, having the category of resources listed on the right side of the screen is not super intuitive.


Billing

Did you know Alibaba is the only Cloud that also takes PayPal as payment method?That’s actually quite cool, no more credit card needed as PayPal can be linked to your Debit cards.

Unfortunately, Free tier credit can’t be used if PayPal is the unique payment configured in your account (PAYG)This image has an empty alt attribute; its file name is image-6.png.  
Billing options:
What struck me is everything you deploy ends up with a Buy or Add to Cart button, as if you were shopping on amazon. It doesn’t matter what Billing Method you choose.

  • Subscription: Allows you to use a resources only after you pay for them (at discounted rates).

    • You can choose 1 month to 1 year  ( i.e USD 155/month  = USD 0.215/hour)

    • Renewal: This is a very weird feature and even dangerous sometimes.

      • By default, AliCloud resources will just run for a duration chosen at creation but after say 1month you’d have to renew manually. Meaning you can end up with a total mess if you have a dozen of instances with different expiration dates. Hence Auto-Renewal safety.   

This image has an empty alt attribute; its file name is image-8.png
 

  • Pay-as-You-Go: Bills you for the exact amount of resources you use on an hourly basis.

    • example : polar.mysql.mmx4.large4  => USD 0.323/hour

    • Can be paired with PayPal but not enough to use Free tier resources 

  • Reserved instance and saving plans:  these are similar to what AWS offers


Network


Same here, the naming convention doesn’t go far from AWS. VPC is also present in Alibaba but funny enough this is the only vendor I know who has a unique name for subnets. In Alibaba Cloud it is rather called vSwitch.
There can be a maximum of two VPCs per account for starters.

  • The VPC CIDR bock size can be from /8 to /24

  • The VSwitch CIDR block size can be from /16 to /29.

  • You can expand a VPC by adding a secondary CIDR block to the VPC. (kinda like GCP)

VPC is their 2nd gen and more isolated network which is slowly replacing their 1st gen Classic Network.
See comparison below

This image has an empty alt attribute; its file name is image-9.png


Traffic vs bandwidth pricing


When assigning a Public IP Address to your compute instance, you have 2 billing choices for the egress traffic
 This image has an empty alt attribute; its file name is image-12.png

  • Pay-By-Bandwidth
    Based on a specified outbound bandwidth (i.e 3Mb/s). Fees are added to Total ECS instance fees.

  • Pay-By-Traffic
    Based on the actual amount of the outbound traffic usage in GB per hour.It is a postpaid billing method.


Compute


The Compute is the cornerstone of any Cloud provider , naming convention are –as expected- pretty similar with AWS. ECS (Elastic compute service) for EC2. With different instance families and architectures.
 See full list >> here or here

  • Architecture: X86, ARM, Bare Metal , heterogenous (With GPU/NPU)  

    • Category: General Purpose, Compute/Memory optimized, big data, high clock speed,local SSD

    • Type: Regular, Burstable (i.e baseline of 20% CPU), Preemptible Instance (aws spot instance)

    • OS: The usual windows and Linux distributions including Alibaba Cloud Linux 

    • Storage: EBS disks are SSD minimum, no HDD available. 

  • Pricing: PAYG or subscription based and usual discounts through Reserved Instances and Saving Plans.
         Please have a look at the full detailed pricing >>here 

  • Deploying in China regions

    • Beijing region, allows you span deployments through a whooping 12 Availability zones.
      That’s what I call a “Mega” High availability plan ;)

    • Beware, local regulation still requires your identity registration including your passport number   

This image has an empty alt attribute; its file name is image-14.png


Simple Application Server(SAS)


SAS is a lightweight compute product that provides ready-to-use applications to help build websites or other developments stacks with Custom Application Images. Worth a try.

  • Features

    • 14x Application Images (WordPress, LAMP, Docker, Plesk,Drupal, cPanel..) Autoconfigured

    • 6x OS images

    • Integrated with many AliCloud Services in few clicks (DNS,WAF,CDN, Firewall, ApsaraDB RDS)

    • As low as US $3.5/month with enhanced SSDs (ESSDs)

This image has an empty alt attribute; its file name is image-18.png

 

Automation (IaC)

This image has an empty alt attribute; its file name is image-10.png

API based Management tools are also to a good cloud automation and governance. Here are the tools I found.

  • Alibaba Cloud CLI: same as any cloud CLI tools.

  • OpenAPI Explorer: allows you to retrieve/call API operations, & dynamically generate SDK sample code.

  • Alibaba Cloud SDK: For several languages(Java, Python,PHP) to build and manage AliCloud services.

  • Operation Orchestration Service (OOS): Automatically manages and executes O&M(operations & maintenance) tasks. You can define items such as execution tasks, sequence, & inputs and outputs in execution templates and use the templates to automate O&M tasks (i.e check CPU% and scale).


Resource Orchestration Service (ROS):
This is a user-defined templates similar to AWS Cloudformation. I said similar but it’s an understatement :).
Just look at this Cloudformation–to-ROS converter
 below 

Command : $ rostran transform ./cloudformation/vpc_sg.json --target-format json

This image has an empty alt attribute; its file name is image-16.png


CONCLUSION

  • That’s it I said I’ll give some time to explore my 5th Cloud provider and it has finally happened.

  • It was supposed to be a little one pager on the Alibaba Cloud Free-tier but I dug deeper than I should :)

  • I hope that the above (deep dive) introduction gave you a glimpse of what to expect on Alibaba platform

  • Part 2 and 3 will cover Alibaba Cloud CLI installation and a terraform deployment of a website

Stay tuned    

Saturday, May 14, 2022

Windows commands line cheat sheet for DBAs

This image has an empty alt attribute; its file name is image.png
Intro

We all know Windows is the preferred platform for Oracle DBAs !! I hear that every day :D. All right, maybe not so much ;). But Jokes aside, when your client has the majority of his DB workload running on windows, it’s hard to dodge the job. It becomes even more challenging to switch to GUI clicks when coming from Linux world. That’s why I had to google a lot along my years working on non Unix shops. After a while, I wound up curating a bunch of useful tips through the years and kept them in a text file, however I think a web page is a way better place to navigate than a raw text in a notepad anytime a quick help is needed.

This list won’t have a specific structure but I’ll try to keep it coherent.


Basic windows Checks

Check OS versions

C:\>winver 
-- A Window will appear

C:\>systeminfo | findstr OS
OS Name:                   Microsoft Windows Server 2012 Standard
OS Version:                6.2.9200 N/A Build 9200
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Server

OS Build Type:             Multiprocessor Free
BIOS Version:              Phoenix Technologies LTD 6.00, 9/21/2015


Check uptime and last boot

Choose from following options 


C:\> systeminfo | find "System Boot Time"
System Boot Time:          2022-05-04, 8:59:32 PM

C:\> NET STATS srv
Statistics since 2022-05-04 8:59:55 PM

C:\> wmic OS GET CSName,LastBootUpTime
CSName   LastBootUpTime
BROKDBA  20220504205932.600144-240


Check Service Uptime

Extract the service PID from the service name

C:\> sc queryex MSSQLSERVER

SERVICE_NAME: MSSQLSERVER TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 PID : 5068 ----> Copy PID FLAGS :

Check the uptime in PowerShell

PS C:\> Get-Process | select name, id, starttime | select-string 5068
  @{Name=sqlservr; Id=5068; StartTime=11/24/2020 09:46:20}


Check CPUs

-- Dos Command line
C:\> wmic CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List

NumberOfCores=6 NumberOfLogicalProcessors=12

-- Powershell

PS C:\> WmiObject -class win32_processor -Property Name, NumberOfCores, NumberOfLogicalProcessors | Format-List -Property Name, NumberOfCores, NumberOfLogicalProcessors

Name                      : Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
NumberOfCores             : 6
NumberOfLogicalProcessors : 12

Check running Services

PS C:\>  net start
...
OracleOraDB19Home1TNSListener
...
Windows Search
Windows Update
..

Manage services

--- Start stop
C:\>  net start/stop "SERVICE-NAME"

--- Delete a Service

C:\> SC DELETE "SERVICE-NAME"


User management

Show current user

PS C:\> whoami

Domain\myUser

List user group members

PS C:\> NET LOCALGROUP ORA_DBA
Alias name     ORA_DBA
Comment        Oracle DBA Group
Members
-------------------------------------
DOMAIN\dbadmin
DOMAIN\User2
NT AUTHORITY\SYSTEM

Add new user

Syntax: net user username password /ADD /DOMAIN


C:\> net user Oracle * /add /MyDomain

Type a password for the user: ***** Retype the password to confirm: ****
The command completed successfully.

-- Change password

C:\> net user Oracle *
Type a password for the user:
Retype the password to confirm:

list all processes in Windows

Choose from following options 

C:\> tasklist

--- Via WMI ( more details)
C:\> wmic process

--- PowerShell
PS C:\>  get-process


tail -f in PowerShell

PS C:\>  Get-Content -Path "C:\APP\ORACLE\diag\rdbms\PATH\trace\alert_MYDB.log" -Wait


Storage 

Check system Block size

C:\> fsutil fsinfo ntfsinfo D:
NTFS Volume Serial Number :                          
Version :                                                                            
Bytes Per Sector  :               512 Bytes Per Physical Sector :       <Not Supported> Bytes Per Cluster :               4096      -------- 4K /64K etc.. Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment: 

Check (shared) drive space usage

This is specially useful to check shared drive overall usage as you can’t see the info through the explorer

C:\> fsutil volume diskfree D:
Total # of free bytes        : 37252968448
Total # of bytes             : 858856091648
Total # of avail free bytes  : 37252968448 --> 34.69GB free

There is simple script check_freespace.bat you can use to get the result in GB units

C:\> check_freespace.bat \\RemoteServer\S01$
Total # of free bytes        : 2846.80 GB
Total # of bytes             : 3311.81 GB
Total # of avail free bytes  : 2846.80 GB

Map/unmap network drives

 Workstations/ servers might have network drives attached to them. Here are ways to add and delete the mapping

1. Map shared drive to Z:
C:\> net use Z: \\StorageServer\Drive$ /user:MyUser Mypassword /persistent:Yes

2. Delete mapping
C:\> net use Z: /delete

-- Delete all mappings
C:\> net use * /delete


Miscellaneous  

 

Grep in Windows

File content or command output filtering . with below  metacharacters : 
. any character  
*’ zero or more occurrences of previous character or class

C:\> FINDSTR /i /r /c:"^ORA-600*" alert_MyDB.log

-- Using PowerShell

PS C:\> Select-String "^ORA-1146"

--- ls | grep equivalent
C:\> DIR /B | findstr /i /r /c:"alert.*log"
alert_MyDB.log

File naming & variable Substrings

Get a substring of a string of a variable from position X in string with Y characters length.%Variable:~X,Y%:

C:\> SET VAR=FOOBARFOOBA
C:\> ECHO %VAR:~3,8%
BARFOOBA

Timestamp a logfile (tested in Windows server)

Example: db_bkp_YYYYMMDD_HHMMSS.log

ECHO db_bkp_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log
C:\> db_bkp_20220514_134656.log

Date section filter description

  • %date:~-4,4% : the last 4 characters of the current locale date which is obviously the year, YYYY

  • %date:~-10,2% : the tenth and ninth characters from right side of the current locale date, MM

  • %date:~-7,2% : the seventh and sixth characters from right side of the current locale date , the day,DD

  • %time:~0,2% : the first 2 characters of the current locale time which is the hour,HH

  • %time:~3,2% : the fourth and fifth character of the current locale time which is the minute ,Min

  • %time:~6,2% : the seventh and eighth caractere of the current local time which is the seconds,SS


kill process

You can either use the PID or the full name of the process. Both can be extracted through tasklist command

taskkill /F /PID 11764
taskkill /IM "SocketHeciServer.exe" /F

Time Zone

Check and set Time Zone in your machine

--- Get
tzutil /g
Eastern Standard Time
--- list
tzutil /l
--- Set
tzutil /s "Mountain Standard Time"

File system permissions

 List and set privileges on a file or directory

C:\> cacls D:\oracle
D:\oracle BUILTIN\Administrators:(OI)(CI)F
          NT AUTHORITY\SYSTEM:(OI)(CI)F
          Server\ORA_OraDB19Home1_SVCACCTS:(OI)(CI)F
          Domain\User1:(OxI)(CI)F

Inherited folder permissions are given as:

  • OI - Object inherit - This folder and files. (no inheritance to subfolders)

  • CI - Container inherit - This folder and subfolders.

  • IO - Inherit only - The ACE does not apply to the current file/directory

    F : Full control


    Change permission to a file to the current user .

    C:\> icacls .\private.key /inheritance:r /grant:r "%username%":"(R)"

    First attribute will remove all inheritance, the second will grant a new RO permission for the current user to private.key..

    Check/kill connected RDP sessions

     List the sessions from a windows server command line not from your workstation

    C:\> query session /server:RemoteServer

    SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
    services                                    0  Disc
    console                                     1  Conn
    rdp-tcp#1 RemoteUser 2 Active rdpwd
    rdp-tcp                                 65536  Listen

    Kill remote rdp session (ID: 2)

    C:\> reset session 2 /server:RemoteServer

    Note: You can also check remote sessions connected to the local server using qwinsta command


    Open Environment Variable window (as admin)

    You can either use the RunasAdmin or a direct command to get a your advanced system properties opened as system

    C:\> RunAs.exe /user:Administrator "rundll32 sysdm.cpl,EditEnvironmentVariables"
    Enter the password for Administrator: ***

    --- Option 2 direct access as admin:
    C:\> SystemPropertiesAdvanced

    Note: Once the window is displayed –> click environment variables

     

    Scheduler via command line

    In this example we will create a task that runs a cleanup script and addit to the task scheduler for a nightly run (10PM)

    Script : archive_cleanup.ps1
    1. Define the trigger, user, and action
    $Trigger= New-ScheduledTaskTrigger -At 10:00pm –Daily
    $User= "NT AUTHORITY\SYSTEM"
    $Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File J:\archive_cleanup.ps1"

    2. Create and specify the name of the task
    Register-ScheduledTask -TaskName "CleanupDBarchives" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force


    Conclusion

    • These entries have accompanied my day to day work on Windows servers for quite sometime

    • It might become redundant when you regularly look for the same thing in google without remembering the syntax.

    • This will finally replace my messy text file, so I won’t waste time looking for quick command line tricks on windows.

    • The goal was to get this accessible to me in the first place but I hope it will be a good reference for those non GUI fans, who are usually allergic to NT OS.

    Thanks for reading