Showing posts from 2016

My first book: Building Applications with Scala

Dear reader, you might miss my post on the last 7 months. I was not posting with the same frequency I was doing before. The reason why it happened is because I was written a book about Scala.

I'm here to announce my very first book about building Scala application. The book goes for the basic principle of functional and reactive programming to the most advance scala language ecosystem solutions such as Play Framework, Akka Framework, RxScala and much more.  I hope you enjoy the book and hope this book could help you in your career building scalable and modern scale applications.

You can buy the book here:

Diego Pacheco

Running Netflix Dynomite and Dynomite-Manager at AWS Cloud

Netflix Dynomite is Kick Ass Generic Dynamo implementation for K/V Stores. Recently Netflix released the Dynomite-Manager at he NetflixOSS Meetup Season 4 Episode 2. Dynomite and Dynomite-Manager are Rock Solid both are a beautiful piece of engineering work.

Dynomite has High Throughput and Low Latency. It gives superpowers to Redis making him Strong Consistent with Quorum like semantics and multi-datacenter.  It's possible to use Dynomite as Cache or as a Data Store.

Microservices Reactivos com a Stack do Netflix na AWS

This was the second consecutive year, I do lectures at QCon Sao Paulo. Las year(2015) I was talking about DevOps.

This year(2016) I was talking about my experiences with the Netflix Stack for building Reactive Microservices with Java 8. The talk is available here.

Having fun with Boto 3

Boto3 is a kick ass AWS client for python. If you are working as a DevOps Engineer with Cloud that's a library you must check it out. Boto3 improved a lot the design in comparison with boto2.

For this blog post, I will show how to do 2 simple things but yet very powerful things. Besides boto, I will show how to use Paramiko another cool library in Python which can manipulate SSH and connect to boxes and perform commands.

You will need to have an AWS account and you SECRETS in hand in order to make the code work. You can use python 2 or python 3 both can work with boto3.

Telemetry and Microservices part 3

On the previous posts of the series Telemetry and Microservices part 1 and part 2 I described the desired features of a modern observability / telemetry platform should target to address microservices monitoring needs. I've also blogged about Alerting and monitoring with Sensu part 1 and part 2.  For this post, I will cover some components of the open source telemetry landscape which you can take advantage of your microservice monitoring architecture.

For this blog post I will be talking a little bit more about the following solutions:

1. Sensu
2. Prometheus
3. OpenTSDB
4. Netflix Atlas
5. Riemann
6. Graphite

@NetflixOSS meetup: Season 4 Episode 2

June 1st, 2016 I will be speaking about my experiences with NetflixOSS and Dynomite at the Season 4 Episode 2Netflix meetup.

You can check out some posts I did about the NetflixOSS stack: There are POCs and code samples available in my Github which you can check it out here
Cheers, Diego Pacheco

Alerting and Monitoring with Sensu part 2

This is the second blog post about Sensu as an Alerting and Monitoring solution. If you did not read the first part I recommend you check it out here.

For this blog post, I will share a Vagrantfile so you have run sensu in your machine easily.  To play with Sensu you need to have some components like:
 * A sensu Client
 * A sensu Server
 * RabbitMQ
 * Uchiwa for Sensu Server

TLDR;  Check it out all file in my GitHub account.

How to Install Everpad in Ubuntu Linux 15.10

Everpad is an Evernote client for Ubuntu Linux. Evernote does not run in Linux. However, there is this client. Everpad is not perfect but it's a UI which kinda of works.

This blog post will teach you how to install and run Everpad on Ubuntu Linux 15.10. You will need to have an Evernote account in order to log in to your Evernote account in Everpad.

Alerting and Monitoring with Sensu part 1

Sensu is an Infrastructure and monitoring / telemetry solution. There are big sites using it such as Yahoo, Yelp, Cisco, and Tesla.
Sensu provides standard solutions for monitoring and alerting.Which I can say is okay.  However If you have been following my Telemetry and Microservices blog posts series(part1 and part2) you will see sensu is not ideal for other use cases like: 
* Dynamic Thresholds / ML * Infrastructure Tracking * Canary
Because Sensu it doesn't have a Time Series database. You can use Sensu with Graphite or InfluxDB to work around it. However IMHO the solution it would be: have collectors(collectd) to get basic HOST metrics plus app instrumentation and them make checkers that do queries over the TSDB.

Telemetry and Microservices part2

This is the second blog post of the Telemetry blog-series. If you did not read the very first one check it out here.

Telemetry is more than just HOST monitoring and Alerting. You can find lots of tools for basic telemetry but is hard to find a comprehensive solution to address all modern needs.

Microservices are quite interesting for operations and business however they require better telemetry platforms and tools.

Especially if you have Cloud-Native microservices and you are working with A/B Testing and doing lots of live experimentations instead of old business analyst predictions.

Telemetry is hard and should scale as you architecture scales. I would say with the same pace. Otherwise, you will have trouble!

VirtualBox Hell on Windows 10

Currently, Docker and even Vagrant are difficult to use on Windows 10. As far as I know the VirtualBox is not being stable at all. That's why these last versions of docker and vagrant were being so unstable and given too much head-ache.
IF you have to work with a windows station I recommend not update this stack if is working for you. Some months ago I ran into serious trouble and spend lots of time to fix it.   If you are having networking issues with Vagrant or Docker on windows 10 I might have the solution for you. It works for me. :-)

Cloud-Native Microservices, SRE and Chaos Engineering: The New Rules of the Game

Could-Native Microservices is not just about ISOLATION and small specialised services. In order to have full benefit from Cloud-Native Microservices, you will need to make sure you architecture and infrastructure are Anti-Fragile and the only way to make sure that happens is with Chaos Engineering and SRE / DevOps Engineering.

Today I'm sharing the slide deck and a video version of the lecture I delivered on 1st AWS meetup in Porto Alegre and the 6th AWS Meetup in Sao Paulo this year. Enjoy!

Lean Thinking for DevOps and Software Architecture

Lean Thinking were and still is a big thing. The last Lean manifestation for me is on the DevOps Movement. That's the idea, unfortunately not every company is lean at all.  A Lean approach is everything. Some people may call it vision, which is the ability to think in a very specific way.  The reality is: It is broken and does not deliver what the business want. In order to archive high performance, you need more than just new techniques.  Think lean is not hard but it need to carefully put in practice every day.  It's very likely your company have a monolith application and you are trying to slice it and do DevOps like pretty much everybody else.

Reactive Microservices with RxJava part 1

It's funny but some time ago reactive was used a word that relates to bad things all that changed now if you are reactive you are awesome. Besides the huge hype about reactive microservices lets rewind a little bit and remember what microservices are about. Microservices are about isolation and fine-grained functionality. Microservices are a specific and modern flavor of SOA. It's possible to have others flavors of microservices too.  Microservices are not for free and following this architectural approach you gain some issues, most of people really  don't know what are this issues. Which is very dangerous adopt something you don't know the issues :-)

DevOps Cultural Noise

I saw this happening with other movements before, sooner or later I knew it would happen to DevOps. Culture is so fragile. Culture is fragile because it rely on people vision. It's so easy to understand something wrong or just deliberately misappropriate from something in the wrong way.  DevOps is something hot today and more and more companies what be part of the party.  If you are familiar with the Agile movement, something it happened with it before.

There is no what or ever written on STONE DevOps Definition however for me it's 100% clear what DevOps is NOT:
  - It's not a Tool
  - It's not a Service
  - It's not a Team
  - It's not a Department
  - It's not a Certification
  - It's not a Role

Telemetry and Microservices part1

Telemetry is a key component in a Microservices architecture solution. If you solution is a monolith or an old fashioned SOA you still need to have some level of telemetry.

There are many companies out there using Nagios and Zabbix. These tools are not the new kids on the block anymore. They were born into a monolith and bare-metal world.

Currently, we live in a Cloud Native, Microservice Oriented world. This is a bigger trend them you might think. Gartner predicts by 2020 companies will be doing more algorithms on they own.  Consider we are transitioning from a centralized architecture with a monolith UI, monolith service and monolith database to a distributed-* we need scale and work with different approaches for telemetry.

Grafana the Dashboard Builder

Grafana is an open source graph and dashboard builder. It provides powerful and elegant dashboards for operations. Grafana has several integrations such as ElasticSearch, AWS CloudWatch, InfluxDB, Graphite and much more. Grafana is an alternative to Elastic Kibana.  There is a Live demo here you check it out.

The UI sometimes is a little bit buggy but the solution is amazing and it works. You can share dashboards with your time with no trouble. Grafana also supports some data stores like InfluxDB, KairosDB and ElasticSearch.

API management with Kong

Kong is an API Management solution.  These kind of solutions are very popular currently but I remember back in 2010 have to work in projects that had required develop in-house.  API Managers are not a brand new concept they have some functions like ESBs. I'm not saying you should use an ESB :-).

Kong is built on the top of NGINX. No matter if you are a developer or operations it's possible to use king with a REST API. Another interesting feature is the plugin support.

Using Ruby properly in Linux with RVM

RVM is a virtual env manager in ruby. This kind of solution is very common currently. In Python and Go we have similar solutions for instance. This is needed because sometimes libraries have different version and conflicts and this makes the process way easier to deal with.

Today as you go down to the isolation and container era you tend to have better separation between development, test and production envs  but even with that is easier to manage dependencies using this kind of systems.

For this blog post i will show how to download, install and configure rvm and install a ruby version on it for Ubuntu Linux.