Posts

Showing posts from 2015

Building Infrastructure with Terraform

Image
Terraform is similar to Amazon Cloud Formation . It allows you to automate the creation of your infrastructure like VPCs, ELBS, ASGs, Instances. Terraform is generic, it works with other provides besides AWS like containers and even bare-metal servers. Terraform build infrastructure, but also launch it as well. Terraform enables infrastructure as a Code because you can describe your whole infrastructure with a simple set of declarative files. Terraform keeps track of state, so will tell you if can do something or can't do some operation. This is very cool for operation point of view. To use Terraform you just need to download the binaries for your OS and them put Terraform in your PATH. Once you have the config files you can do $ terraform apply and the magic will happen :-) Today i will show how to build a very simple infrastructure on AWS, you just need have your credential(ID and Secret).  Main.tf is your config for the infrastructure. Variables are var you can use into

Having fun with the Jenkins DSL

Image
Jenkins it's a outstanding deployment tool. I love Jenkins, i use for a very long time.  I remember when was called Hudson.  There are several things that made Jenkins one for the most used solutions for deploys. Jenkins has a awesome community with more than 1k plugins . For this post i will cover a specific plugin called Jenkins Job DSL . This plugin gives you a Groovy DSL to code your Jobs, yes Code not XML. :-) This is good for lots of reasons. First of All in a DevOps context this allow you to automate the job creation which is tedious and manual. Moreover the DSL is great because it allow you to create a massive number of job, so in a microservices context lets say you have 50 microservices and all run in they own jetty and they code is on GitHub and build is done using maven. You can automate all that and create a JOB using the DSL this job will create the other jobs. Even if you have one job only for me it makes sense because you have it automated. We will creat

Having some fun with AWS Route53

Image
Amazon Web Services Route53 is a high available and scalable DNS solution. It can be used to route request inside and outside amazon web services as well. Route53 allow you to configure DNS health checker to route traffic to a healthy endpoint. Route53 has plenty of features, for me best ones are: Traffic Flow: Route end user to best endpoints. Latency Based Routing: Routes users to region with lowest latency. GEO DNS: Route users based on they IP location. Private DNS for Amazon VPC:  Manages custom domains internaly. DNS Failover: Avoid outages routing users to different locations. For this post i will show how to install and do some basic operations with  CLI53 a command line interface for Amazon Route53.  For this post we will use CentOS / Amazon Linux Distribution.

RPM deploy in Neuxs

Image
Nexus is a repository manager solution for Java. Similar to Archiva and Artifactory . If you are a Java developer probably you are familiar with this kind of solutions. Nexus is useful because acts like a proxy then you can improve download speed because you have a central cache and you have your deploys and binaries there. There is feature is really cool on the DevOps context makes lots of sense is the RPM feature. Basically you are allowed to deploy RPM in Nexus, Artifactory has a similar feature too. This is very useful because sometimes you need to pack things that are not JARS and this is very useful to the operations point of view. So In this post I will show how to install Nexus on Linux and how to deploy an RPM in Nexus is pretty easy and there are more than one to do this.

AMI Backing: Using Ansible to Provision with Packer

Image
Immutable Infrastructure in on the heart of DevOps. Today Backing is a very popular idea. AWS allow you to create AMI (AMI is amazon specific image is kinda of a ISO on the OS) this image can be backed in a automated fashion. To perform this task we can use Packer but Packer will take care on the AMI and publishing to AWS but you still need to install things on this linux image lets say Ubuntu or CentOS for instance. For provision you can use Ansible . In this post i will show how to install Ansible, Packer and build an AMI image with Packer and have the full provisioning using Ansible. 

Having fun with ArangoDB

Image
Besides performance, strong consistency and scalability we also pick NoSQL DBs based on the Design of your Data this is one of the cool things about ArangoDB because it has multi-models. ArangoDB is a distributed NoSQL database. It has a flexible data model for documents, graphs, and key-values this is also called multi-model db. ArangoDB has convenient SQL-like query language or JavaScript extensions. In this post i will cover the Document Model and show some have code for such task i will use gradle and Java 8 .  ArangoDB have drivers for lots of languages you check it out here . I'm using ArangoDB in Ubuntu Linux, so to install you just do $ sudo apt-get install arangodb . If you are using another OS or Docker for instance is fine you check it out here as well .

Having fun with Etcd

Image
Etcd is a distributed, consistent key-value store for shared configuration and service discovery, with a focus on being. Etcd is very useful in DevOps context because today Immutable Infrastructure is one of the core principles. Often what people do is store the configs into a K/V store like Etcd and them just export OS_VARS into the OS level that could be an Amazon AMI, Linux or Bare metal, Mesos or even a Docker container. One of the cool things about Etcd is that you have a pretty simple REST interface to operate over the K/V store.  When you are doing provisioning sometimes you need store IPs, IDS, Tags, etc... and this is very viable solution.

Having fun with FPM

Image
Working with automation is not easy. I would say would take 5-10X more to get something automated rather than manual, but this pays off on a long term so this is not an open matter. DevOps has many meanings for different people now a days, for me, is really about Dev and Ops work together. I don't see how an OPS team often called DevOps time could carry this alone, for it can't . The best model I see so far is the Silicon Valley model you see in companies like Netflix. Were you pretty much have everybody doing everything so you build it you run it. Ops needs to learn how to code and other Dev disciplines and Devs need to learn about ops, this is how is it going to me as well on the last couple of years. Today I want to show a little bit more about FPM. FPM it's a package management solution that builds deb and RPM files for you. This is great because leverage Linux tools that are already in place and ops know how to use it. :-)

Tech Trade Offs

Image
Writing software is fairly easy today.  There are Dynamic Languages, Frameworks, Libraries and lots of guides and styles about how to write good code that other humans will understand. Unfortunately, so few are captured about trade offs, this is specially hard since tech is constant change and evolution as requirements come and go is very hard to document this, so this kind of knowledge is hard to get it, specially because we are always building new things and at the scale we have different and bigger problems. The scale changes things, it creates new problems this requires a new way of thinking. There are matters like Anti-Fragility and Multi-Data center that are very hard to add it later, its way better get it from the get-go.  The hard part is that you don't know how much your business will grow and is hard for someone invest on rocket since tech before knowing where the business is going so in other words trade offs are really tough in this sense. Today it makes

Running Ansible on Vagrant

Image
On the previous post i was talking about how to run Ansible on AWS .  IF you dont have acess to AWS or your solution runs on bare metal you still can run ansible on Vagrant and have an environment to test your playbooks. Once you download and install Vagrant, you just need pick up my vagrant file and them you ready to have ansible running :-) So you download the Vagrantfile and put it into a directory in your machine, them you gonna run: $ vagrant up $ vagrant ssh   That`s it, you are ready to have fun. Keep in mind for this vagrant file im using a shared folder where im putting my playbooks, if you dont want this just comment the line on the Vagrantfile.

Running Ansible on AWS

Image
Ansible is Configuration Management and automation engine.  Its has a very minimal setup, its just depends on Python - witch is good because pretty much all linux distributions came with python. You can run Ansible with just SSH, yes with-out agents. Like other engines Ansible is based on Recipes, in Ansible world recipes are called palybooks. Playbooks are written in a kind of DSL inside a YAML file, often called main.yml. You can have multiple YAML files and reuse a lot your provision playbooks. Ansible runs easily pretty much in all environments BUT windows.  For windows users its easy to use it with Vagrant.  It`s possible to have pretty complex provision scripts if needed, there are lots of modules like git, file, get_url and so one and on. Ansible provide variables, so you can bind custom values on conf files also called templates.  For this post i will how to do a very simple and straight forward setup for ansible on AWS, this will be a pretty basic setup but will be gr

Setting up a AWS VPC/VPN for Multi-Region

Image
Today i will show how to setup a complete VPC(Virtual Private Cloud) between 2 Data Centers in different Regions(I will use AWS Oregon and AWS N California) this is mandatory to test and run multi-data center solutions, we will need create a VPN(Virtual Private Network) over the internet, todo such a task we will use Open Swan . This task is very complicated and have several steps its easy to make some mistake and mess with everything so be very careful, the whole exercise could easily take 3h or more. Also want say thanks to my Friend Joao Palma(AWS Solution Architect) who supported me on this task :-) and have extreme patience and know-how on the hard-core devops amazon cloud things :-)

Netflix Dynomite/Dyno: The Cluster for Redis

Image
Dynomite is brilliant. Kudos for NetflixOSS team because it kicks ass. First all they mixed several interesting, battle tested and sexy architectural ideas and deliver into a single solution. What would be Dynomite? You can think as a kick Ass Cluster for Memcached and Redis. But its way more than that. Dynomite is integrated with the Netflix Stack so you can use with Eureka and the rest of the stack. You dont need use Redis or Memcached if you dont want because Dynomite is modular so you can use the NoSQL or thing behind it. Dynomite is based on the Amazon Dynamo paper, so it implements the Consistence Hashing Ring, with quorum-like mechanisms, so you can have strong consistency and dont loss data(similar to Cassandra and Riak ) and also have some low latency and high throughput using Redis or Memcached Behind. Dynomite is written in C and its a proxy, it uses the twitter twemproxy as base solution. Replication is a aymetric, dynomite has a java client called Dyno with has

Redis Cluster: Should I go or should i stay?

Image
First all i just want make clear a respect Redis and Salvatore a lot. This is just my view of the topic, no intention to create any kind of FUD or flame war here, just sharing my toughs and experiences. I use redis in production since 2011, its a great piece of technology. Redis has amazing throughput for single instance solution given the fact redis does not have threads(compared with Memcached). Do i recommend use Redis in production? Yes i do :-) Redis: The K/V Solution Whats is Redis? What is good for? Redis is a K/V store and its great for caching. Memcached have few key/set operations in comparison with Redis, there are lots of commands todo very precision operations. Redis cluster was added recently but originally redis was used more like a farm of servers like Memcached case, so replication and other tasks was carry out by the clients apps. Redis has a cluster now. Redis is written in C and has very fast and direct access do data structures like lists, sets and maps. Si

Being an Active Architect

Image
This could sound strange. Martin fowler said once, who need architects? (fowler article) . I always believe that to be specialist in something you need to that thing, for me is very complicate the view of *Specialized Architect* the IT Industry have. First all IF you dont CODE you are not an architect anymore, because CODE is want make you pure, its the bound that make you practice every will keep you current. If you think about money when money become with no value? when the coin is not current, so if the coin is not running and its old its consider not current and lost the value, why for software architect we think just because you did something 5-10 years ago you still have value? Because is far as i know things change pretty much everything is sense of technologies from 3 to 3 years. There is value being a mentor and give guidance for other architect, discussion high level solutions are well but this is only 30% of the problem, that's all the piratical, operation and producti

Anti-Fragility Requires Chaos Engineering

Image
There are lots of buzz around microservices and everybody want do it right now. The main problem is people are not providing the right level of isolation in sense of operation system or containers, database and interface without that microservices are just webservices with REST. When you go from 10 services to 100 you create more distribution, more distribution is more failure, for sure the network is not reliable even with a cloud provider like amazon web services. You need anti-fragility on the DevOps Era we live, why? because otherwise we just changing the names but doing the same mistakes as before. You will built and operate software automated, not only your deploy pipeline, but them that's enough? No is not at all, why not? Because your software and your infrastructure will fail, and as Vogels from AWS said, all the things fail all the time, you need be able to quickly recover, if you need that, them we need 3 basic things. 1. We need Design For failure You cant do it late

Some fun with Memcached

Image
Memcahed is a K/V store. Its fast pretty much all operations are O(1). Memcached use Threads(Async and non-blocking IO ) different from Redis with is single-thread. Memcached does not have a cluster, its a farm, some concerns like Replication need be handled by the clients or 3rd party application, nodes on the farm don't talk o each other so there is no GOSSIP . Memcached has few key/set operations in comparison with Redis . Redis have several. Some clients have the concept of the master-key / sub-key based on this it can locate what server has that specific key. Often keys are smaller than 250 chars and objects smaller than 1MB. Memcached if used for a lot lot of scenarios like: Profile Caching(Social Networking), Page Caching(HTML), Ad Targeting with cookie / profile tracking, Session caching for games and entertainment its pretty much for caching.

Fun with Apache Kafka

Image
Apache Kafka is a high throughput messaging system created by LinkedIN in 2011 using Scala . Kafka is a high throughput system pretty much, in other words it means will handle the load you have, so you can use it as a buffer for back pressure or spooling mechanism. Now a days people use Kafka a lot with other Big Data Technologies like Apache Storm, Apache Hadoop or even with Apache Spark, so there is a common pattern like you read data from Kafka, process in spark/storm/hadoop and store it in the end into a NoSQL database like Cassandra for instance.  People end up using Kafka for Analytics (that's what i meant by big data), monitoring, log activity and sometimes for building block as part of bigger architectures / systems. You can see more on LinkedIN view on this post . Kafka is Durable(can be persisted on DISK) and very FAST and can scale great deal of loads like 800 billions messages per day at LinkedIN.  Besides LinkedIN, Twitter, Netflix, Spotify, Mozilla and others als

DevOps The IT Revolution ERA

Image
Eae galera blz? Sexta-feira passada rolou outra friday talk. Dessa vez falando de uma visão consolidada do movimento de DevOps e como ele pode agregar valor pro negocio. Além de novas técnologias e práticas para escrever e operar software. Nos estamos vivendo um momento de mudanças. Graças a DEUS o negocio já consegue perceber que se a TI não mudar não ser capaz de dar conta do recado. Muitos dizem que isso é besteira, mas a verdade é que nem todos querem mudar, nem todos querem sair da zona de conforto, isso tudo é OK por que a sobrevivência não é necessário é sempre OK piorar e ficar no mesmo lugar. Essa palestra sumariza uma serie de visões e experiencias sobre DevOps e experiencias de consultoria e delivery de TI dos últimos 5 anos. Espero que gostem. Confere ae, tem os videos e o slides :-)

How to Install GO Lang on CentOS / Amazon Linux?

Image
Go Lang is growing a lot.  It`s a C on Steroids language. You have great performance and also some nice features that are built in on the language. In this post i will show how to install and configure GO on Amazon Linux / CentOS based. Go has Closures, so you can have performance and still do some kind of functional programming.  There are lots of infrastructures tools being built on Go as well.  Besides go have great multi-core support and async mechanisms. Lots of great infrastructure solutions use go like Docker, CoreOS, HarishCorp solutions.  Le`ts see how install and configure it on Amazon Linux(AWS Cloud). Go on Linux Cheers, Diego Pacheco

Failure is Hard

Image
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

Image
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

Image
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

Image
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

Image
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

Image
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

Image
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

Image
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 - http://diego-pacheco.blogspot.com/2015/09/netflixoss-devops-stack-for.html * Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1 - http://diego-pacheco.blogspot.com/2015/09/microservices-with-netflixoss-karyon.html * Microservices with NetflixOSS: Building and Running Eureka part 2 - http://diego-pacheco.blogspot.com/2015/09/microservices-with-netflixoss-building.html * Microservices with NetflixOSS: Karyon and Services part 3 - http://diego-pacheco.blogspot.com/2015/09/this-is-next-post-on-services-of.html

Microservices with NetflixOSS: Karyon and Services part 3

Image
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 - http://diego-pacheco.blogspot.com/2015/09/netflixoss-devops-stack-for.html * Microservices with NetflixOSS: Karyon, Ribbon and Eureka part 1 - http://diego-pacheco.blogspot.com/2015/09/microservices-with-netflixoss-karyon.html * Microservices with NetflixOSS: Building and Running Eureka part 2 - http://diego-pacheco.blogspot.com/2015/09/microservices-with-netflixoss-building.html

Microservices with NetflixOSS: Building and Running Eureka part 2

Image
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

Image
On the previous post i was talking about the NetflixOSS Stack( http://diego-pacheco.blogspot.com/2015/09/netflixoss-devops-stack-for.html ) 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

Image
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

Image
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

Image
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

Agile is not only about management!

Image
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.

Microservices and Twitter Finagle

Image
Lots of people talk about microservices with REST and thats makes lots of sense because if we think about SOA and Service Orientation Principles we should have interoperability and Rest is great for that. Such task can be done be a edge service or proxy or api gateway so you really dont need use REST all the time internally. There is also 2 other important matters like performance for instance, use can use IPC and its way faster than HTTP calls. Second is do something in a JVM language like scala or java - you have benefits doing that. For instance you endup relying more in your compiler and this makes less tests needed and make ir easier to consume services.

Stress Test with Gatling

Image
Test is a very important part of software development. Everybody agree and some people(sadly not everybody yet) do lots of unit testing, some do integration tests other do some kind of UI testing as well. But thats not enought you are into SOA/microservice land. As much as you distribute your software you have way more wants to fail. Tests need to catch up, Stress test are something that unfortunately people dont do - sometimes they do but when they know that there is a scalability problem witch is sad. This practice of stress tests could be automated(it really should) or at least make sure you run periodically as far as i know Netflix does 2-3 times per week - because this is not just about scalability. Stress Tests are bigger than just how many users can i handle.

Is Gradle Dynamic resolution strategy safe?

Image
Gradle Dynamic Resolution strategy a.k.a use a + on the dependency is a usable feature.  This is handy because you can do something like spring:spring-core:4.0.+ and gradle will always get the latest snapshop for you -  but them to make this work fine you need people have discipline to do proper major/minor versioning. 

Downloading all your gist from github using Node.js

Image
Gists are a awesome tool for me. I use it a lot now a days. So is kind of a micro-blogging thing. For m is a great tool to find small commands for Linux, Gradle, AWS, Git, stuff i need do day by day as a engineer. Sometimes i have gist with just 1 line of code or just a command. I do that because is easy to recover this information because github search works very well and for me this is cheaper and faster than evernote. So lets say, like me you have lots of gists, you might want use gist as a blog as well or maybe you just want share some code with friends which is pretty cool as well :-) Would be handy if you could download them? You actually can, there is an JSON REST API for gist that allow you do a bunch of things.  I`m using Node.JS do download each gist and save it into a directory.  Node is very productive for this kinda of tasks thanks to the libraries like request, path and fs you can do this task with a couple of lines. You will need to have Node.Js and NPM installe

Setting up a Ruby env with Vagrant and RVM

Image
If you use windows and want code in Ruby you need use vagrant or docker because most of libraries does not for for windows at all - same happens for nodejs and python lots of libraries just dont work :(. I was trying to play with some static site generators like this and this one here . But unfortunately i use windows so vagrant pretty much made my day :-) This is pretty easy, once you have vagrant installed you just need do $ vagrant up with my Vagrantfile and them the rest will happen under the hood. You just need put RVM in your path because start using ruby - the command is on the Vgrantfile, you just need to source it and thats it.

Companies may not be ready for DevOps at All!

Image
DevOps is everywhere, its everybody talking about and like any hype has lots of people getting it so wrong. So DevOps is not a process, its not a tool its not a department is not a tool is not a specific technology. DevOps is about culture - how to you build and operate high scalable systems.  DevOps for me IMHO is a LEAN manifestation so its really needs be based on LEAN thinking and principles - At least i see this pattern a lot, lots of company that gets devops right are doing LEAN i dont think is a coincidence.  Unfortunately more and more companies are trying to make devops simple, easy, predictable and so scheduled, like in how many months and i be devops? 2 months? The DevOps Team  That`s the first and one of the most errors i see everywhere. You dont fix silos issues creating more silos - not at all. So before people might blame dev or might blame ops - but now people will blame the devops team so this is really just moving the problem to another place. Companies already

Is Scaling Agile Just About Process?

Image
There are many agile frameworks that try to handle the task of scaling agile to many teams or multiple products. This week I was reading this article on CIO about this matter. What a realize is that most of agile frameworks at scale are based on old principles like: process, communication and tools. How is that different from RUP? New practices but old principles all goes down to standard management principles.  What's missing? INHO 3 things: Culture, Leadership and Software Architecture. Scaling agile looks like a management problem is part is true but is more than that. 

AWS Cloud and the COST visibility Revolution

Image
 Everybody is looking for the cloud right now. Amazon Web Services(AWS) is leading and MS is getting aggressive with OSS and cloud, I think google was never competitive with cloud. The cloud market is ultra-hot . However there are lot of side effects on this let's say cloud rush. The basic one is the fact if you have a low skill operator or low skill architect this guys are dead. Because today is pretty ready to have solid and great architecture almost for free using amazon AWS. Off course there is a lock in effect on this. Amazon strategy already migrate monoliths to the cloud using lots of cloud services, dont get me wrong this services are great but you have a big infrastructure lock in with this. And depending how you do in out application you can have application lock in as well because amazon is amazon is not a RFC or a JSR spec.

Setting up a full JVM Env with Vagrant: Java 8, Scala 2.11, Groovy 2.4, Clojure 1.6, Maven 3.3, Gradle 2.4, Sbt 0.13 and Lein

Image
On the previous posts i show how to use docker , docker-compose and nodejs with vagrant now let`s do a full jvm env :-) This setup is pretty easy and straightforward for you however it could take some time depending of your internet bandwidth because we gonna download several components. Remember you need to have Vagrant installed already, this time we gonna need more than just the Vagrant file because java, scala, clojure for instance require we setup environment variables so we gonna need change some files for clojure and sbt  in order to make everything work smoothly.

NodeJS with Vagrant

Image
On the previous post i showed how to have docker and docker-compose with Vagrant . In this post i will show how to have a simple NodeJS environment with Vagrant. I will show how to install the most common solutions and frameworks for node like: npm , express , qunit , yo and much more. It`s very easy, you need to have vagrant installed, them just copy my Vagrantfile and create a directory called shared on the same folder you have copied my Vagrant file.  After that you are ready to rock.

Vagrant: Ubuntu 14.04 with Docker 1.7

Image
Boot2Docker is great however it has some limitations. For instance the OS is readonly and came with pretty much nothing, setting up a shared folder in windows is challenging as well as i showed on last post .  In this post i come to show something different and easier than the previous solution. You can use docker with vagrant if you are a windows or mac user this is better than use boot2docker because IMHO you can do it easily and with less software and you also gain a linux os with you can do stuff because is not read only. Let`s use Vagrant .

Docker Shared folder on windows

Image
Docker is ultra hot right now. It`s becoming a standard very quickly.  There are some issues on IO and Network but still a very promising solution for prime time. If you are a developer and are working on a Windows machine docker is great for you because you can have linux almost for free :-) For Mac and Windows users we need use Boot2Docker . Boot2Docker is a very small image lass them 30MB and is ultra fast it uses tiny linux kernel . Let`s see how to have a shared folder in windows and a docker container using ubuntu inside docker :-) This should be included at the official boot2docker image at some point but for now or you build the image or you do a workaround.

DevOps: Learning the hard way

Image
DevOps is not a tool, its not a service, its not a framework, its not a process, its not a role. DevOps is a state of mind and mindsets that your company wants get there to have better it performance.  This is hard and depends from culture and several aspects that are unique from company to company so there is no recipe for doing devops or right way.

Akka, Cluster and Microservices

Image
Akka is a great tool. It has so many cool feature and very impressive performance. Today its one of the best technologies todo lightweight sync or async processing. Great for high frequency trading domains, onlime media, ads and financial. Even if your company is not in one of this domains you can benefit from akka, specially if you are looking for efficiency.  So whats the relation with Microservices architecture(MSA)? Microservices architecture powers distribution over centralization, thats leverage another aspect called Discoverability.

Core FP Concepts slidecast

Image
Functional programing is growing a lot now a days, not only pure function programing languages but several new languages are hybrid or at lest had fp influences like java, javascript, c#, python.  On this slidecast i will talk about some of the core concepts on functional programing, here you want find all concepts but this could be a starting point for you. I hope you have fun :-)