Microservices

Microservices or Micro Service Architecture (MSA) is being advertised heavily these days mostly by Thoughtworks.

At first it looks like a great idea, in fact it is a great idea if you look at this this way:

  • There are boundaries between services.
  • Each service is small enough to understand, to be re-written, etc.
  • Each service is supposed to do only one thing.
  • Each service can be so fine grained that it can even correspond to a single database table (extreme?)
  • etc.

I would like to call it a “pattern” as it has its own pro’s and con’s. But none of these are new concepts or best practices on their own. To me MSA at its core seems like a style (or part) of SOA since services are the “things” you work with.

On the other hand there are few areas where the current articles and enthusiasts are not very clear about:

  • How do we orchestrate a ton of services? In all videos and articles they diminish ESBs. I am not a fan of ESBs but they do a fine job of orchestration but MSA is not clear about it. I have seen suggestions on using a thin layer of orchestration, using messaging or RESTful styles, etc but if you have a million of microservice then it would be a nightmare.
  • If we create too restricted boundaries around our services and they become so isolated then how do they communicate from a database perspective? How sales database can be so separate from ordering database?
  • Lots of small services makes transaction management a big job.
  •  etc

Given these concerns you have to be very careful when you use MSA. I feel this is an old concept with a new name which is not yet mature to become a full fledged style of architecture. Probably it is good in smaller applications with mostly read-only services or services which are inherently separable….Time will tell…

Nexus 7 Screen Replacement

If you have little ones around you know they love to play with tablets. Our 14 months boy Kian is used to watching Baby Einstein series on my Nexus 7 while having a meal on his high chair. After the meal he sometimes takes the tablet and keeps watching on the floor. The other day he put the tablet on a chair but it dropped face down on the stone surface. Although the distance was less than 50 cm and it has a chunky cover on but I was shocked that the screen just trashed.

On ebay some there are separate screens and digitizer but I suggest buying both together. It is around AUD 60. This video tells how to open it up.  To remove the cracked screen from the bezel I just put it under the sun for about an hour. The video is not very clear on how to attach the new screen to the bezel. For that I used Loctite Super Glue for Glass. It all went very smooth and I have a brand new Nexus again. I suggest affixing a screen protector as well…

Image
After disassembly
Image
The new screen is on top

Bitbucket Behind Proxy

I was having difficulty playing with Bitbucket behind the corporate proxy. Our local proxy servers alone didn’t work for me on http/https and I had to switch to the ssh solution.

This is how it worked:

  1. Created a set of keys from within the SourceTree.
  2. Launch SSH Agent. Import the private key.
  3. Upload your public key to Bitbucket site.
  4. Change the remote/origin in the SourceTree to use ssh instead of https (something like git@bitbucket.org:<username>/<project>.git. Find this from your project on the Bitbucket.
  5. Enter the proxy details in SourceTree Options.
  6. Now “push to remote” works fine in SourceTree

Hello WordPress

I am saying goodbye to JRoller (http://jroller.com/rezaghp/) after a couple of years and moving to WordPress. I found WordPress an easier platform to work with. It has more support for code insertion, cleaner editor UI, more modern templates, etc.

JRoller on the other had is really lagging behind technology, at least at the moment. The editor needs huge improvements and does not support many new features, it does not support Ajax, there is no documentation etc.

Anyways!