Monday, December 14, 2015

2015-12-14 Monday - Database Version Control & DevOps Deployment Processes

I'm starting some research to understand the current landscape of Best Practices around Database Version Control - as it relates to DevOps Deployment Processes.

A few years ago, on a previous client engagement, LiquidBase was heavily used - but it was not without pain & shortcomings. I haven't looked at LiquidBase recently - but plan to write a deep-dive evaluation article in January 2016.

This posting is a placeholder for information that I find - that may be of interest to others.

This recent article series came to my attention in a DZone email newsletter...

Sunday, December 13, 2015

2015-12-13 Sunday - Apache Cassandra

After reading the latest Apache Software Foundation weekly news round-up (*) - I happened to browse through the list of incubating projects - and was intrigued by Apache TinkerPop (note: Ketrina Yim created the excellent graphic characters to illustrate TinkerPop)

...which led me to the Titan Distributed Graph Database...(which was acquired by DataStax this year)
(note: Dr. Marko A. Rodriquez, Director of Engineering at DataStax, was the co-founder of TinkerPop, and founder of Aurelius LLC and the Titan Distributed Graph Database)

...which eventually led me to the excellent course material prepared by Kiyu Gabriel for the DataStax DS201: Cassandra Core Concepts

This DataStax blog post is illustrative of the concepts and power of TinkerPop

* I also noted the following, of interest to my expanding exploration of Big Data tooling, to add to the stack of things to research later: Apache Kylin™ –Open Source petabyte-scale Big Data distributed analytics engine. - The Apache Software Foundation Announces Apache Kylin as a Top-Level Project

Sunday, November 29, 2015

Friday, November 27, 2015

2015-11-27 Friday - Book: Universal Methods of Design

 Picked-up an excellent book this afternoon at the local Bellevue library: Universal Methods of Design, 100 Ways to Research Complex Problems, Develop Innovative Ideas, and Design Effective Solutions - by Bella Martin and Bruce Hanington

2015-11-27 Friday - Jason Baldridge, PhD, Scala tutorials

Today I'm spending some time exploring this...

Jason Baldridge, Associate Professor in the Department of Linguistics at the University of Texas at Austin.,
F11 Introduction to Computational Linguistics (with Scala)

2015-11-27 Friday - Go Conferences

This is a placeholder posting for Go Language Conferences...

Next year, The European Go Conference will be Oct 16th in Paris, at the Théâtre de Paris, 15, Rue Blanche

(was held in July in 2015 - in Denver, Colorado)

Sunday, November 22, 2015

2015-11-22 Sunday - Elasticsearch 2.0.0 GAA released on Oct 28th

There are some notable new features...

2015-11-22 Sunday - CentOS 7 Setup

I'm experimenting with setting-up a minimal CentOS 7 environment (within Oracle VirtualBox) on a Windows 7 laptop...this posting is a placeholder of information that others may find useful.

  • 'Sharpen the saw' with regards to my hands-on skills to configure and maintain a Linux virtual machine.
  • Create a pre-configured, reusable image, that I can use for future client engagements - and in preparation for some new product development I have planned for 2016.
  • As a foundation master/controller for experimenting with Ansible and Docker.

1) Install VirtualBox (I'm using the current 5.0.10 release)

2) Download CentOS (I'm using version 7)

3) Create Your CentOS virtual machine
  • For this experiment, I chose: CentOS-7-x86_64-Minimal-1503-01.iso

4) Update your packages
  • >yum update

5) Modify Network Interface Config Files
  • Locate the appropriate files in the /etc/sysconfig/network-scripts/ directory
    • For my particular installation environment, this happened to be ifcfg-enp0s03
    • Modify the following entries in the file to have these values:
      • ONBOOT=yes
      • BOOTPROTO=dhcp
    • Restart network service
      • >sudo systemctl restart network
    • Verify that you have network access
      • >ping -c 5

6) Configure NTP Synchronization
  • Check your current system time configuration
    • >sudo timedatectl
  • Set your desired timezone, for example:
    • >sudo timedatectl set-timezone America/Los_Angeles
  • Install ntp
    • >sudo yum install ntp
  • Start and Enable the ntp service
    • >sudo systemctl start ntpd
    • >sudo systemctl enable ntpd

7) Install some networking tools...
  • >sudo yum install net-tools
  • >sudo yum install nmap

8) Enable Outside Access (e.g. from the Windows 7 machine that is running VirtualBox)

9) Ansible install
  • {TODO}

10) Java install

11) Go install
  • >sudo yum install golang
    • currently appears to install v1.4

12) Python install
  • {TODO}

13) Git install
  • >sudo yum install git.x86_64

14) Connecting to a CentOS virtual machine with Eclipse

15) Install Apache Web Server (http)
  • >sudo yum install htttpd
  • >sudo service start httpd 
  • >sudo chkconfig httpd on

16) Enable Outside Access to Apache Web Server
  • Configure firewall
    • >sudo firewall-cmd --permanent --zone=public --add-service=http
    • >sudo firewall-cmd --permanent --zone=public --add-service=https
    • >sudo firewall-cmd --reload
  • Configure iptables 
    • >sudo iptables -I INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
    • To persist the changes, go to /etc/sysconfig/ - and add the following line to iptables
      • "-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT"
    • >sudo service iptables restart
  •  >sudo service httpd restart
The following resource links were helpful to me, and may also be of interest to others:
You may also want to consider ordering a digital copy of this book:

Wednesday, November 18, 2015

2015-11-18 Wednesday - QConSF 2015 Trip Report

My Takeaway, as cited on the QConSF 2015 site:
"The confluence of diverse backgrounds, technologies, and business segments represented by a global breadth of attendees - merges into a synthesis of pure enthusiasm that provides one-and- all an opportunity to pause in our day-to-day professional challenges, and lift our heads up for a moment and embrace the realization that there are people doing extraordinary things in our industry - and as their knowledge is willingly shared - new plateaus of achievement are now within our own grasp."
Tonight I returned from my 4th - and have much to share.

The venue at the Hyatt Regency was excellent

I met some very interesting people on this trip - from many different countries - including: Italy, Australia, Belarus, Romania, India, England, Russia, Lebanon, and China.

I arrived on Sunday - and was able to meet up with three fellow attendees for drinks and dinner at The Chaya - an excellent Asian/Japanese Fusion style restaurant.

I will touch on just some of the more noteworthy sessions I attended this give you a flavor of the content that might appeal to someone likewise interested in the distributed architecture problem space.

Bill Buxton (Principal Researcher at Microsoft) gave an interesting talk on Monday morning's keynote: Avoiding The Big Crash.

I intended to attend as many of the sessions in the Architectures You've Always Wondered About track on Monday - but found myself often stepping out so as not to miss some very interesting sessions I note below.

My favorite session of the entire conference was given by Zhuoran Zhuang and Zhao Xu, who gave a phenomenally detailed presentation entitled Alibaba Mobile Infrastructure at "China Scale"

I also  enjoyed the talk given by Erran Berger (Senior Director of Engineering at LinkedIn) LinkedIn's Active/Active Evolution

My keen interest in the Go Language sessions led me to frequently drop in on in the Modern Languages in Practice track

For example:
  • Rick Hudson (Engineer at Google) did a session on Go GC: Prioritizing Low Latency and Simplicity. Surprisingly there is only one 'knob'  to turn with regards to Go GC. Rick hinted at some changes that are coming in Go 1.6 - which I need to research more.

On Tuesday, I spent time in the Containers in Practice track, and found these three sessions to be very notable:

I also managed to include a talk given by  Fangjin Yang's (co-founder of @Imply) Architecting Distributed Databases for Failure - in the Architecting for Failure track

On Wednesday, I particularly enjoyed the talk given by Jason Brown (an Apache Cassandra Core Committer) Hell is...other nodes - in the Taming Distributed Architectures track.

Making the time to step away from day-to-day responsibilities is never easy. But the investment I have made in making the commitment to  attend QConSF has paid off in so many ways: Ideas, insights, specific case studies that can be cited, bread crumbs of knowledge that give me the beginning of the trail to discovery, industry connections...and yes, not to be forgotten or marginalized...a renewed sense of enthusiasm for my profession.

Some additional links I picked-up from some twitter activity that may be of interest to others:

Brendan Gregg's Linux Performance page

So We Hear You Like Papers talk by Ines Sombra - Distributed Systems Engineer at @Fastly, and Caitie McCaffrey - Tech Lead of Observability at Twitter