Azure hosting for the price of a coffee

If you are looking to get started with Azure, and your needs are simple, you can get by for the price of a single (fancy) coffee each month. In this post, you will learn how to host a simple Web application with a SQL Server back end.

Hosting a Web App

For hosting the Web application, create an Azure App Service.  App Service supports .NET, Java, Node.js, PHP and even Python.  The great thing about Azure App Service is the pricing starts at free. The free plan is limited to 60 CPU minutes a day, 1GB RAM, and 1GB disk space. This is perfect for development or a very low traffic web site. The free site has the additional limit of not being able to use a custom domain. If you are looking to take your web site to the next level you can move to the shared plan which will cost you approximately $9.67/mo.

SQL Server

When on a budget, you can’t go wrong with the Azure SQL Database. Prices start at just $4.98/mo for the Basic tier. This will give you 2GB of storage and 5 DTUs. Enough for development and testing your next big thing.

Summary

Wether you are looking to learn a bit about Azure, support developing a new app, or host a simple app you get started for around $5-15/mo depending on your needs.  (And yes, I’m pretty sure my Wife has paid $15 for a fancy coffee.)

More free stuff… For those completely new to azure, don’t forget Microsoft offers $200 in free credit to get you started.

Screen Shot 2017-07-09 at 10.33.50 PM

Connecting to HDInsight HBase from an Azure VNet

I’ve been working with HBase on HDInsight for some time.  This is a series of tech notes I’ve accumulated over that time.  This tech note will talk about connecting to an HDInsight cluster with the native client.

If you are working with HBase on HDInsight you have a couple of different options when connecting to the database from a client application.  In this tech note I will discuss connecting to HBase directly using the native HBase API.  To do this, the application must be hosted in the same VNet as the HDInsight cluster.

The native method for accessing data is through HBase Client.  At the time of this writing, I’m currently targeting HDInsight 3.5 which requires Java 8.

HDInsight 3.5 Maven Dependencies

The following dependencies are required to connect to the HDInsight cluster.    In addition, I’m referencing a resource file abase-site.xml in the build section. I’ll discuss the file in the following section.

Include the HBase-Site.xml file

The hbase-site.xml file contains zookeeper hostnames required by the client to make a connection.  To grab the hbase-site.xml file from the cluster follow these steps:

  1. Open a terminal and navigate to the project’s resource directory
  2. Run the following: scp username@hdinsighthost-ssh.azurehdinsight.net/etc/hbase/conf/hbase-site.xml hbase-site.xml

Summary

The configuration discussed in this tech note will allow a client application to connect to a HDInsight HBase cluster provided it is deployed and executed from the same Azure VNet.

HBase on HDInsight

I’ve been working with HBase on HDInsight for some time.  This is a series of tech notes I’ve accumulated over that time.  This introductory post will talk about what HBase is and how it is implemented on HDInsight.

HBase is an open-source NoSQL database based on Google BigTable.  It provides random access while still providing strong consistency for large amounts of unstructured and semistructured data.  The database is a column oriented database and it’s essentially schemaless requiring no more than table name and column family definitions.

When working with HBase on HDInsight, Azure provides a managed cluster configured to store data on Azure Storage in place of HDFS.  The cluster still provides direct support for MapReduce, Hive, and other Hadoop native tools even though the underlying storage is not HDFS.

HBase is a great tool for large data needs and can support many different use cases, including:

  • key value store
  • time series data – telemetry based streams
  • real time queries (including SQL support via Phoenix).

 

Reverse engineering Android apk files

I’m diving into some competitive analysis at work for which I had the need to reverse engineer an Android apk.  There are some interesting things you can glean from decoding and disassembling application resources.

The best tool I found for the job is ApkTool (https://ibotpeaches.github.io/Apktool/) an open source reverse engineering application for apk files.

The tool allows for both decompiling and recompiling of the apk file if needed.

To disassemble from terminal:

apktool d apkfile.apk

The output produces source in dex format.  Android’s version of byte code used by both Dalvik and ART.  If like me you are new to all this stuff you will need to review the Delvik bytecode format.  Here are some links to help you out