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.

Monday, May 25, 2015

Customizing Redhat/Oracle Linux 6 ISOs

Performing a complete Redhat/Oracle Linux installation when booting from an ISO is very neat. This is an easy and consistent method to quickly start virtual machines with Packer for VirtualBox, VMWare or Parallels.

You can find a complete example of how to do it with Redhat/Oracle Linux 7 in "Customizing Redhat/Oracle Linux CDROMs, ISOs and USBs". However, I had to use this method with release 6 of Oracle Linux this week and, as you can expect, some of the parameters have changed. That's why I've documented how to do it also with Release 6. It should not take you more than 15 minutes to customize your own ISO file and 5 minutes to perform a new installation...