Sunday, November 6, 2016

Deploying Consul on AWS ECS with Terraform

Consul brings a lot to Docker management. Working with AWS EC2 Container Services (ECS), it has literally changed the game when I've been able to get its magic. Unfortunately there is not so much written on the subject and the only full implementation I did find was based on CloudFormation and did not workout well for me since I was already using Terraform a lot on the project...

I've decided to build and make available a project that embed the whole ECS/Consul stack written with Terraform. It has also been the opportunity to demonstrate some of the good practices I was talking about with Terraform in my last post. I've just made it available on Github.com and I've called the project ECS unleashed for several reasons I don't want to dig too much into for now. Once deployed, the project embeds a simple demonstration of a blue/green application upgrade.

I wish it will help people to adopt Consul, build more advanced demonstration or even use it in production. I hope you'll enjoy this project and will fork it. Do not hesitate to send your comments, feedback and question. Have fun!

Sunday, September 18, 2016

5 Good Practices to Start a Terraform Project

Bootstrapping a new project with Terraform resources is not that obvious. I mean, that is obviously easy but if you want it to scale, if you don't be trapped at some points or if you want people to collaborate efficiently, there are, for sure, a few things you should consider from the very ground.

I've started with a short list of 5 good practices you might want to adopt from the beginning of your project! Not that I've only hit 5 issues by doing things wrong but because I'm lazy and I want to keep things simple and fast. If you face some issues too that you've addressed by using good practices in your Terraform projects, don't hesitate to share them too: leave a comment and explain how we could avoid some mistakes...

Sunday, July 3, 2016

Accessing External IP Addresses from Lambda in a VPC

AWS Lambda is to compute what S3 is to storage. It is a simplified model where programs become stateless tasks named Lambda functions in Java, Python or Nodejs. Lambda functions can be triggered by HTTP call to the API Gateway, Cloudwatch time-based schedules or other AWS services. This is "just" stateless functions relying on the library you want. In return, don't bother with the infrastructure at all. Get a compute-model that scales out and is reliable. And best of all, pay for what you really use and not what you provision. I love Lambda as much as I love S3!

However, the devil remains in the details and there are a few of them: the security model; how Lambda connects to networks; How it scales; How to manage code; or how to deal with programming/debugging. Obviously, you can guess it takes some work to be able to kick off Lambda in milliseconds on distributed systems and it does not come for free. Even if you develop stateless functions. This article presents Lambda VPC setup or, more specifically, how to allow Lambda to access external networks and external endpoints from within a VPC.

But lets start with some good news:

Sunday, May 22, 2016

Introduction to R (2/10) - Programming Fundamentals

In the first article of the series, we've introduced R and explained why R is one the most popular language when it comes to explore and manipulate data, whether it is just to visualize them, build more advanced analytics or use machine learning algorithms. We've started to dig into the many language strengths, including the library of packages and functions, the ability to connect to many data sources, tools for statistics and computations. Obviously, R is also successful because it is free software and because it does not require advanced programming skill. You should now have been able to install R and RStudio and run a few commands.

Yes, it is true: we've said that R does not require advanced programming skills! Although that statement is true, there are some basic programming elements and methods that need to be learned by any R user. This article introduces some fundamentals of R Programming.

Saturday, May 21, 2016

Introduction to R (1/10) - An Efficient Language for Data Processing

R is a programming language built for statistical and graphics purposes. For reasons that we are going to develop in this article and the ones coming after, R has grown in popularity to become one of the highest ranked widely used software among data miners and statisticians.

The fact that R is free to use, the wealth of the R community as well as the incredible number of packages that have been developed over the years make it an essential component to anyone involved in data science, data mining or machine learning. Many data management engines, like Spark, SQL Server or Oracle now provide deep R integration so that as much as SQL, it is important learn and know a little about how to use R today, if not embracing it and figuring out what makes R most reliable options. We will just do that and we will start by presenting RStudio which is the developing environment provided with R.

Sunday, January 10, 2016

Oracle database 12c with Oracle Linux 7.x and LXC

Linux Containers (LXC) are now certified to run Oracle Database 12c, including Oracle RAC and ASM. You can check out for yourself in the Virtualization Support Matrix as well as in the Database 12.1 Release Notes. If you want to give it quick try and figure out what could be done, nothing is very complicated. Below is a quick introduction. It demonstrates how to use Oracle database 12.1 with Oracle Linux 7.x and LXC container.

Sunday, May 31, 2015

Building an Oracle Linux Amazon Web Services AMI with Packer

No need to explain why Amazon Web Services is a nice platform to run Oracle. The largest IaaS Cloud Provider is one of the few Oracle Authorized Cloud Environments. You can Bring Your Own "Oracle" Licenses (BYOL) on AWS EC2 or RDS. You can pay for what you've provisioned because it is considered as a hard partitioned Platform.

Obviously, there are some drawbacks including the one pointed by Marc Fielding on Pythian's Blog or the fact you cannot run RAC. But it is, for sure, a nice playground to run Oracle technologies, your applications on Oracle or any Oracle applications including JD Edwards, Peoplesoft, Oracle E-Business Suite and many more... In addition, Amazon RDS for Oracle offers an attractive pay-per-use and "per-hour" model for Oracle Database SE1.

On the other hand, Oracle Linux is probably the best operating system to run Oracle, on AWS EC2 like on any x86_64 Platforms: it requires one-only rpm to be ready for most Oracle software; it is free and you don't need to support all your instances the same way as described in the Service Levels section of "Oracle Linux and Oracle VM Support Policies". Last and not least, it is 100% compatible with Redhat Enterprise Linux and you can even get AMIs from Oracle on the AWS Marketplace.

This blog presents and easy and fast way to create an Oracle Linux AMI from the Open Virtual Format (OVF) with AWS VM Import/Export... It relies on Virtualbox, Packer.io and Kickstart.