13.02.2019

Microsoft Azure: Creating a Linux machine and a first login via ssh

After having logged in to azure.microsoft.com i navigated to "Virtual machines":
There i hit the "create virtual machine" button and a wizard was opened, where the following steps have to be completed:


So here are the basic settings:


Inside the basic settings you have to choose the name and a resource group (in my case i had to create a resource group, because its my first vm).


Then i had to select an image:
Below this drop down is a link "browse all images and disks". If you choose that, you get many more options:

At "Administrator account" i chose "SSH public key" i added one (this field has a built-in check function, so if there is an copy/paste error, you get an immediate response):
Then i added the following for the disks:
And i left "networking" to the defaults up to the "select inbound ports":



For "Management" i had to create a storage account. This account has to unique  (mystorage  was already taken by some other azure users).


I left "Guest config" unchanged:
"Tags":
And then i had to wait some seconds at "Review + create" until the "validation passed" messaged appeared.
After that i had to wait for three minutes until my vm was ready to use:

And then i got the following dashboard for my vm:
 
A login to this machine was successful:
 ssh 40.112.94.136
The authenticity of host '40.112.94.136 (40.112.94.136)' can't be established.
ECDSA key fingerprint is SHA256:PxIwA6+b0lfcrV//yXpFUPjY3jiD2GgxME57EYQlx9Y.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '40.112.94.136' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1036-azure x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Jan 26 19:06:21 UTC 2019

  System load:  0.0               Processes:           113
  Usage of /:   4.1% of 28.90GB   Users logged in:     0
  Memory usage: 3%                IP address for eth0: 10.0.0.4
  Swap usage:   0%

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.



11.02.2019

Microsoft Azure: Pricing Calculator

If you are thinking about to move your server/services/apps into Micosoft Azure, the pricing calculator would be very helpful to estimate the cost:
https://azure.microsoft.com/de-de/pricing/calculator/


The usage is very simple. Just use the kind of service you want to use from Microsoft Azure:
 And modify the defaults to you needs:

The problem is, that it is not so easy to calculate the number of i/o transactions for your application, but for a first start these number should be sufficient.



05.02.2019

HP Color LaserJet MFP on Ubuntu: Scan Error during device I/O (code=9)

I decided to use a multi function printer including scanner and fax with my ubuntu systems.
First step was to download the hplip package from HP:
https://developers.hp.com/hp-linux-imaging-and-printing/gethplip

The installation process worked like a charme
bash ./hplip-3.19.1.run
But running the scan utility ends up with the following error:


$ hp-scan

HP Linux Imaging and Printing System (ver. 3.19.1)
Scan Utility ver. 2.2

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: No destinations specified. Adding 'file' destination by default.
Using device hpaio:/net/HP_ColorLaserJet_MFP_M278-M281?ip=192.168.178.200
Opening connection to device...
error: SANE: Error during device I/O (code=9)
After searching around the solution was the following:
"Install the plugin"?
!

$ hp-plugin





HP Linux Imaging and Printing System (ver. 3.19.1)
Plugin Download and Install Utility ver. 2.1

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.


HP Linux Imaging and Printing System (ver. 3.19.1)
Plugin Download and Install Utility ver. 2.1

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

Checking for network connection...
Downloading plug-in from:
Plugin is not accessible. Trying to download it from fallback location: [https://developers.hp.com/sites/default/files/hplip-3.19.1-plugin.run]
Receiving digital keys: /usr/bin/gpg --homedir /home/esther/.hplip/.gnupg --no-permission-warning --keyserver pgp.mit.edu --recv-keys 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9
Creating directory plugin_tmp
Verifying archive integrity... All good.
Uncompressing HPLIP 3.19.1 Plugin Self Extracting Archive..............................................................

HP Linux Imaging and Printing System (ver. 3.19.1)
Plugin Installer ver. 3.0

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

Plug-in version: 3.19.1
Installed HPLIP version: 3.19.1
Number of files to install: 64


Done.
 Plug-in installation successful

Done.
After that running hp-scan immediately creates a PNG file with the scan:
 hp-scan

HP Linux Imaging and Printing System (ver. 3.19.1)
Scan Utility ver. 2.2

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: No destinations specified. Adding 'file' destination by default.
Using device hpaio:/net/HP_ColorLaserJet_MFP_M278-M281?ip=192.168.178.200
Opening connection to device...

Resolution: 300dpi
Mode: gray
Compression: JPEG
Scan area (mm):
  Top left (x,y): (0.000000mm, 0.000000mm)
  Bottom right (x,y): (215.899994mm, 296.925995mm)
  Width: 215.899994mm
  Height: 296.925995mm
Destination(s): file
Output file:
warning: File destination enabled with no output file specified.
Setting output format to PNG for greyscale mode.
warning: Defaulting to '/home/esther/Downloads/hpscan001.png'.

Warming up...


Scanning...
Reading data: [*************************************************************************************************************************] 100%  8.5 MB    
Read 8.5 MB from scanner.
Closing device.

Outputting to destination 'file':

Done.
This is really fast. But if you want a GUI just use xsane...

04.02.2019

Microsoft Azure: Regions and Availability Zones

Before running a VM or any other service inside Microsoft Azure, just a look where the servers can be placed:
This looks fairly the same as the regions at AWS.
Here a better view to europe:

 Each region has several availibility zones (same wording like AWS):
The definition give at Microsoft Azure:

Regions

A region is a set of datacenters deployed within a latency-defined perimeter and connected through a dedicated regional low-latency network.
With more global regions than any other cloud provider, Azure gives customers the flexibility to deploy applications where they need to. Azure is generally available in 42 regions around the world, with plans announced for 12 additional regions.

Availability Zones

Availability Zones are physically separate locations within an Azure region. Each Availability Zone is made up of one or more datacenters equipped with independent power, cooling, and networking.
Availability Zones allow customers to run mission-critical applications with high availability and low-latency replication.

02.02.2019

Java 11: JEP 333 ZGC A Scalable Low-Latency Garbage Collector

After i found this strange "No-Op Garbage Collector", i was keen, if there are some other new GC features with Java 11.


There is another JEP with the number 333:
 If you look here, the goals are:

  • GC pause times should not exceed 10ms
  • Handle heaps ranging from relatively small (a few hundreds of megabytes) to very large (many terabytes) in size
  • No more than 15% application throughput reduction compared to using G1
  • Lay a foundation for future GC features and optimizations leveraging colored pointers and load barriers
  • Initially supported platform: Linux/x64
 Inside JEP 333 there are some numbers for the performance provided:
Below are typical GC pause times from the same benchmark. ZGC manages to stay well below the 10ms goal. Note that exact numbers can vary (both up and down, but not significantly) depending on the exact machine and setup used.
(Lower is better)
ZGC
                avg: 1.091ms (+/-0.215ms)
    95th percentile: 1.380ms
    99th percentile: 1.512ms
  99.9th percentile: 1.663ms
 99.99th percentile: 1.681ms
                max: 1.681ms

G1
                avg: 156.806ms (+/-71.126ms)
    95th percentile: 316.672ms
    99th percentile: 428.095ms
  99.9th percentile: 543.846ms
 99.99th percentile: 543.846ms
                max: 543.846ms
This looks very promising. But within the limitations you can read, that it will take some more time, until this can be used:
The initial experimental version of ZGC will not have support for class unloading. The ClassUnloading and ClassUnloadingWithConcurrentMark options will be disabled by default. Enabling them will have no effect.
Also, ZGC will initially not have support for JVMCI (i.e. Graal). An error message will be printed if the EnableJVMCI option is enabled.
These limitations will be addressed at a later stage in this project.
Nevertheless: You can use this GC with the command line argument
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC
For more information take a look here: https://wiki.openjdk.java.net/display/zgc/Main


30.01.2019

Review: eBook: Saas for Dummies

As i wrote some days ago, Oracle provided this book as free download:


Here my review:

The book starts with the chapter "recognizing modern business challenges and opportunities". The author comes up with things like "business transformation starts with digital transformation" or "businesses will need to rethink every element of their business". It contains a typical opening for this topic.

The next chapter has the title "Empowering Business Managers with SaaS Solutions". The focus here lies on how to use the cloud for your sales process. One short citation: "Robust  sales  cloud  solutions  are  so  much more  than  contact  lists,  schedules,  and sources of prospects." Another focus are the advantages for HR professionals to finding and retaining top talents with the help of SaaS. For further information the following link is provided:  www.oracle.com/goto/mit-tech-review

At page 35 of 68 chapter 3 starts. "Transforming you Business with SaaS". There are given some helpful links like "www.oracle.com/cloud/saas-scalability.html" or "www.oracle.com/cloudtco" and some others.

Chapter 4 ("Choosing Your Path to the Cloud") talks about building hybrid
environments and extending apps with social, mobile and process capabilites. I think without some additional links, this is much to short.

By far the best chapter is chapter 5: "Ten (or so) Important Questions to Ask you SaaS Provider". I will not reveal these questions (and answers) on this blog - but this is really helpful. Nevertheless the answers are sometime too short.

From page 57 up to 61 a glossary is provided.

My conclusion on this book: This is a really good quickstart into SaaS but not a deep dive into this topic. Thanks to Oracle to provide it as free download.

27.01.2019

Microsoft Azure: First steps (create an account and logging in)

After doing a lot of things with amazon webserivces (AWS) i decided to take a look an Microsoft Azure.

Starting point is azure.microsoft.com


I just clicked on "Start free" and was asked to login with any already existing microsoft account (live.com, etc). In the registration process you have to provide a phone number for verification (by call or by message) and             then your credit card information. 
No worries, microsoft offers a start with 170$ credit:


After the registration you can attend to an online course,
 but i decided to move onto the portal:
And here we go:
 Looks like the settings manager from XFCE (a linux desktop manager) ;-)

I clicked on virtual machines and of course there are listed no machines but a big blue button for adding VMs.
 But this will be topic of another posting...

23.01.2019

eBook: Saas for Dummies: free download from oracle.com

If you visited oracle.com today you hit the following landing page:
And if you are interested in that book, just hit the "get saas for dummies" button and after a few clicks, you have downloaded this ebook:


68 pages is not so much - i will try to read it and give a review in a later posting.

19.01.2019

Java 11: JEP 318 Eplison / A No-Op Garbage Collector

This week i read about the new JDK Enhancement Proposal (JEP) of Java 11.
One of my favourites is JEP 318:

The summary of this JEP says:
Develop a GC that handles memory allocation but does not implement any actual memory reclamation mechanism. Once the available Java heap is exhausted, the JVM will shut down.
For which scenario could this garbage collector be useful?

If you skip to the "motivations" at the JEP, i found the following very interesting:

Performance testing. Having a GC that does almost nothing is a useful tool to do differential performance analysis for other, real GCs. [...]
There are other points mentioned there which are also interesting, but this performance calibration is in my opinion one of the most important ones.

One other is important too:
Extremely short lived jobs. A short-lived job might rely on exiting quickly to free the resources (e.g. heap memory). In this case, accepting the GC cycle to futilely clean up the heap is a waste of time, because the heap would be freed on exit anyway. Note that the GC cycle might take a while, because it would depend on the amount of live data in the heap, which can be a lot.
This can be quite helpful for Oracle fn or for some special docker images, where a java funtion is called and after the execution the process is terminated.
Let's if this feature will get used in the future....