Showing posts from September, 2015

Failure is Hard

Couple of days ago there was another massive outage on Amazon Web Services. This time was around AWS DynamoDB and that create lots of noise on the the web.

Was not the first time a outage happened and wont be the last time for sure. There are some summary report from aws you can check.

So is this the end of cloud computing? Should we stop using cloud as single provider? All this questions start emerge from the web. I dont think thats the case - for sure there are some lessons learned from this last incident. The reality is distributed computing is hard and will always be.

Installing and Running Monitorix on Amazon Linux OS

Let`s say you need monitor a box and see what happens in sense of CPU, IO, Network, Memory and you want see some nice charts? There is a great tool todo that is monitorix you can real good data and is very easy to get it running.

Monitorix is very simple to use and have a very nice web interface . Today i will show how to install and run monitorix on Amazon Linux OS.

Installing and Running ntop 2 on Amazon Linux OS

NTOP 2 is a great tool for linux monitoring. It`s focused on network and have all sorts of charts, visualization and network information you might need.

Today i will show how to install and run ntop2 on Amazon Linux OS(CentOS based) this is not a straight forward task because there are lots of dependencies.

This is very useful if you are doing Stress Tests or Network or Network Failure tests because you can see whats going on with plenty of details the whole thing is very colorful.

Github Cheat Sheet

Git is a awesome SCM solution.  Today GitHub is where everything happens.  Pretty much everything in sense of open source is there. It`s a great model todo contribution based on the idea of Pull Requests or just PR.

 However git and github could be complicated sometimes and there are situations you need do some commands get things done properly. IMHO command line tool is best them UI tools - maybe because when i start using git was not good tools around.

So today i just want to share a very simple Cheat Sheet for GitHub/Git that i use pretty much everyday - I would really love to create less branches and spent less part of my day doing this but unfortunately everybody is doing git full witch is not nice.

NetflixOSS: Installing and Running ICE

NetflixOSS ICE is AWS COST monitoring solution. Similar to cloud watch but IMHO is better. There are some issues with ICE first of all is kinda of buggy at least right now - something you got some NPE and is hard to figure out what you did wrong.

Second - its kinda of slow to run first time it take some time because it does lots of processing to figure out the costs.  You need have your billing configure right on AWS and also you need a S3 bucket to store the billing data so ICE and read and show the charts for you. We will install ICE on Amazon Linux OS(CentOS based).

NetflixOSS: Installing and Running Vector

Netflix Vector is a great monitoring tool for linux boxes.  Today i will show how to install, configure and run Netflix vector. We will do that on the AWS cloud.

I will do the installations on the Amazon Linux OS (CentOS Based) but IMHO you can use other OS if you want like Ubuntu.

Python Sci-Kit ML env in Vagrant

In this post i will show how we can have a machine learning environment with python and scikit-learn in Vagrant.

Python is a great language however use it in windows is hard because most of libraries might now work property so something is easier just provision a environment with Vagrant and them do it in Linux - thats what we goona do. This is pretty straight forward you just need to have vagrant installed and configured before we start.

Microservices with NetflixOSS: Ribbon part 4

This is the next post on the services of bulding a microservice with the netflix stack . If you did not read the previous posts i recomed you do:

* NetflixOSS The DevOps Stack for MicroServices -
* Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1 -
* Microservices with NetflixOSS: Building and Running Eureka part 2 -
* Microservices with NetflixOSS: Karyon and Services part 3 -

Microservices with NetflixOSS: Karyon and Services part 3

This is the next post on the services of bulding a microservice with the netflix stack . If you did not read the previous posts i recommend you do:

* NetflixOSS The DevOps Stack for Microservices -
* Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1 -
* Microservices with NetflixOSS: Building and Running Eureka part 2 -

Microservices with NetflixOSS: Building and Running Eureka part 2

On the previous posts i was talking about the NetflixOSS stack if you did not read it you can check it here:

*NetflixOSS the DevOps Stack for Microservices
*Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1

We will download build and run eureka in a local environment this could be done in any OS like windows or Linux.

So you need to have java instaled. Them you will need to get a java web server - could be a simple tomcat 8. Once you have tomcat 8 you just need to download latest eureka and install it into tomcat. So you will need to have git installed as well.

Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1

On the previous post i was talking about the NetflixOSS Stack( on this post i will cover with more details some of the middleware core components - the focus of this post will be Karyon, Ribbon and Eureka.

There are 3 main key principles behind this components. First of all is Reference Transparency, with Eureka you an register a service and you also can do queries on eureka before you do request calls through Ribbon - So eureka is key Discoverability Solution for Netflix. When you have microservices you will have lots of services and you will need to have redundancy and is impossible to handle all that with manual IP - specialty if you do Immutable Infrastructure and cloud native so you will create a destroy lots of instances - machines will fail all the time and ips change all the time.

NetflixOSS the DevOps Stack for Microservices

There are lots of people talking about microservices. IMHO I don`t most of people get it - Microservices are about Isolation, Idependence and Anti-Fragility and this are principles most of frameworks did not have. So the botton line is in the end of the day if you dont have this you are just doing OLD SOA ou even worst you might just be doing WebServices.

Netflix get it. All the components are build guided by core architecture principles and anti-fragility is on the heart of this components.

DevOps is about Anti-fragility not only about OPS

The IT-industry always got 1 thing of of 10 and just because they have 1 thing they think they got the point. I saw this with SOA, REST, Agile and now DevOps is happening too.

Yes i will say one more time that the DevOps team is wrong. Is so wrong, is not just a name and is not just a matter of practices.

More and more a see what the it industry got from DevOps is CLOUD and Automation - witch is great because this a very important aspects of devops but however devops is way more than that.

The confusion a SEE is calling OPS -> DevOps, OPS is OPS, OPS is not DevOps. You have Dev in your company a most likely have a ITIL shared OPS in your company so lets say you have 100 developers mostly you have 20 DBAs.

Microservices Contracts: REST vs Native

This is not a new discussion is very old. I remember back into the SOA days - always was something like REST VS SOAP. SOAP is dead and REST own but now is something different.

To be clear - I think REST is the only thing you should use when we talk about External consumers. Like and external API thats would be accessed by a mobile or website.

There are other scenarios like INTERNAL consumers. For this case you can consider using a NATIVE driver instead of REST. So whats is a NATIVE driver? Is just code into a language you are using - so could be Java, Scala, Clojure, Ruby, Go, whatever it does not matter. This idea is similar to the JDBC java driver you have java code to access the database.  So thats the real question when i have internal consumers for my microservices, should they talk to each other tought REST or native driver?

It really depends because both approach have PROS and CONS like everything in life - there are trade offs - but i consider REST in general a more same appr…

Agile is not only about management!

A long time ago a remember when agile on the early days was something driven by developers - pretty much by XP practitioners. Don`t get me wrong agile is about the customer, and its about making better software and of course mgmt is part of software but agile is not only about mgmt.

I`m really not sure when - maybe after PMI embracing Scrum and Jira rises as the ultimate agile tool(not for me :-) ) But today more and more a see less and less engineers going away from agile.  Maybe because they thing agile is about process, tools(jira) and practices(scrum) and thats a manager thing. To be clear agile is way more than scrum. I`m way more into Lean and Kanban than Scrum but i can`t deny i`m seeing this more and more on the market.