DevOps: how we got here

Developer toolset

From the developer point of view, there are some tools involved in the source-to-deploy process

  • Source control management tools: Subversion, Git, Mercurial, Perforce,…
  • Build tools: Maven, Ant, Ivy, Buildr, Graddle, Rake,…
  • Continuous Integration tools: Continuum, Jenkins, Hudson, Bamboo,…
  • Repository (Artifact) management tools: Archiva, Nexus, Artifactory,…

The #1 programmer excuse for legitimately slacking off: My code is compiling

When everything is set together, we can have a CI schedule that is building automatically the changes from the SCM as they are committed, deploying to an artifact repository the result of the build or sending a notification if there is any error. Everything fully automated. A change is made to SCM, the CI server kicks in, builds and runs all sort of tests (unit, functional, integration,…) while you go off for a sword fight with your coworkers.

Now what? somebody sends by email the tarball, zipfile,… to the operations team? oh, no that would be too bad. Just send them the url to download it… And even better send some instructions, a changelog, upgrade task list,…

What developers do today to specify deployments and target environments is not enough. 

The simplest solutions are often the cleverest. They are also usually wrong.

Using tools like Maven in the Java world or Bundle in Rubyland you can explicitly list all the dependencies and versions you need. But there are some critical dependencies that are never set.

It is just too simple.

Packages installed, C libraries, databases, all sort of OS and service level configuration,… That’s the next level of dependencies that should be explicitly listed and automated.

For example, think about versions of libc, postgresql, number of connections allowed, ports opened, opened file descriptors limit,…

Operations

Requirements

From the point of view of the operations team the number of requirements is complex: operating system, kernel version, config files, packages installed,…

And then multiply that for several stage configurations that most likely won’t have the exact same configurations.

  • dev
  • QA
  • pre-production
  • production

Deployment

Deployment of the artifacts produced by the development team is always a challenge

  • How do I deploy this?
  • Reading the documentation provided by the development team?
  • Executing some manual steps?

That is obviously prone to errors

Cloud

It’s nothing new but it has increased with the proliferation of Cloud based environments, making it easier and easier to run dozens or hundreds of servers at any point in time. Even knowing how to deploy to one server, how is it deployed to all those servers? what connections need to be established between servers? how is it going to affect the network?

FOSDEM

The slides from my From Dev to DevOps talk at FOSDEM 2012 Brussels are up in Slideshare. The material is also in the Lanyrd page.

The conference was huge, I’ve heard that over 4000 people showed up this year, for this free (as in both software and beer) event, organized on several tracks. Not bad considering that the temperature was between -15 and -6C (5 and 23 Fahrenheit) and got a lot of snow.

I spoke on the main auditorium with capacity for 1400 people, there was plenty of space. Unfortunately (for me, but great for the other speakers and the organization) some other devrooms got filled quickly, and couldn’t get into the Configuration and Systems Management Devroom, which should have been really good as nobody left as I was waiting outside between talks 😦

A lot of care by the organization, including a note with a 24/7 phone number in case I got “lost/confused/arrested” (which makes me think it must have happened before), and a full commitment to promote belgian beer 😉

And thanks to the people that attended my talk and engaged through twitter, got great feedback and hints for improvements on the future of development and infrastructure automation!

Grand Place 360 panorama

“From Dev to DevOps” at the Paris JUG next week, FOSDEM Brussels in February

The year starts with two speaking engagements, about development and DevOps

Soirée Devops @ Paris JUG

Next week, Tuesday January 10th at the I.S.E.P. Paris

An afternoon about DevOps, with Henri Gomez also speaking, where I’ll be finally able to put faces to some long time online friends and collaborators on different open source projects.

FOSDEM

Sunday February 5th at the ULB Campus Solbosch in Brussels.

the biggest free and non-commercial event organized by and for the community

Interesting conference concept with no registration necessary, around 4000 attendees in 4-6 tracks, completely free, including a Friday Belgium beer event, as they say don’t miss this great opportunity to taste some of the finest beer in Belgium (and, hence, in the world). And they even include spouse/partner tours!

Are you going to any of them? say hi!

About: DevOps

This is the start of a (hopefully) series of posts about DevOps, based on my presentation From Dev to DevOps.

The Agile movement stablished a series of development practices quite common nowadays, or at least highly desired:

  • planning
  • iterative development
  • continuous integration
  • release soon, release often

But what happens after the development cycle? The process of building software or products does not stop there. Even if you are an agile shop, you may hit a wall when trying to move between Development, QA and Operations.

DevOps is a door in that wall.

DevOps is the intersection between Development, QA and Operations. You can also think of it as DevQAOps.

Old issues fixed, new issues come up

As some issues were solved by Agile methodologies, new issues arose. Agile development generates a higher number of releases (release early/release often) than waterfall methodologies, and that pushes the problem from development teams to operations, that have to deal with more frequent deliveries to production.

DevOps addresses

Fear of change

Once a product is working, changes are seen as a risk by business, developers, QA, operations,… Reducing the time to make (and revert!) changes increases the assurance to do more frequent changes.

Risky deployments

Automation, automation, automation! Not only the development needs to be automated. No more docs with instructions, manual steps, individual knowledge, “deployment master” or hacks. All the steps up to production need to be automated too, including deployments, to reduce risk of manual mistakes.

It works on my machine!

With the proliferation of virtualization, cloud, PaaS, stacks,… is absolutely necessary to be able to replicate environments for development, QA, pre-production,… Ensuring that proper level of testing is conducted as the product (software + environment) progresses through the lifecycle.

Siloisation

Teams split in Dev, QA, Ops,… cause walls to stand between them, and unnecessary friction, with each team pushing for its own benefit and requiring escalation of issues to account for the overall business good. Getting all the teams on the same table more often the friction is reduced.

Dev Change vs. Ops stability

Developers are usually measured by the number of features implemented, while operation teams are measured by the performance and stability on production. Two different goals that make both teams clash in many occasions. Bring issues early on and involve all the teams in the decisions.

Read more at What Is This Devops Thing, Anyway?

DevOps is a extension of Agile

Does this sound familiar?

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Exactly, that’s the Agile manifesto, which is still perfectly valid, with some clarifications, if we get into detail:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software products.
  • Welcome changing requirements, even late in development any part of the DEV/QA/OPs cycle.  Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software products frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers development/QA/Operations teams must work together daily throughout the project.
  • The most efficient and effective method of conveying information to and within a development DEV/QA/OPs team is face-to-face conversation.
  • Agile processes promote sustainable development. The sponsors, developers, QA and OPs teams, and users should be able to maintain a constant pace indefinitely.

What does that exactly mean

  • software/working software. The concept of product, meaning software running, in production
  • late in development. Late in the development, QA or operations phases, not just development
  • developers. Don’t consider only developers, QA and operations teams need to be involved too

The key part is the involvement of not just the development team but the QA and Operations teams.

Game theory

Game theory is defined as the method for analyzing calculated circumstances, such as in games, where a person’s success is based upon the choices of others. If you have watched A beautiful mind, you’ll remember the scene where he tries to pick up a girl at a bar.

What does it have to do with DevOps? The success of the Dev team greatly depends on actions done by the Ops team, good software deployed incorrectly will transmit the wrong impression. Likewise, the success of the Ops team definitely depends on the work of the Dev team, as poorly developed software will cause all sort of performance issues.

If all teams try to achieve their own benefit, it’s not necessarily a good thing for the overall business. Imagine the Ops team not pushing new features because they don’t want to risk the production stability. Or the Dev team pushing new features to production without proper testing because it’s a QA problem, not theirs, and are only measured on the amount of features pushed.

Como enviar un coche de USA a España

Z4 en A CoruñaDespués de vivir unos años en Los Angeles decidí llevarme conmigo el coche de vuelta a España, tras valorar los distintos gastos y el precio de venta del coche en Estados Unidos y España parecía que me saldría mas barato que comprar uno igual en España.

Hay algunos posts en internet sobre como hacerlo, pero todos son mas teóricos que prácticos, así que he decidido contar mi experiencia para el que lo intente después que yo sepa lo que hacer, y muy importante, lo que NO hacerMariano cuenta los detalles teóricos bastante bien. Asegurate de leer hasta el final de mi historia para ver que el final no es tan feliz como debería haber sido.

Hay dos posibilidades de enviar el coche, como importación o como cambio de residencia. En el primer caso los requisitos son mucho mayores en cuanto a la homologación del vehículo (y por tanto el coste) y ademas habría que pagar impuestos de aduana y matriculación en España, salvo que sea un clásico de mas de 25 años. Aquí voy a contar mi caso, en el que hice un cambio de residencia, y que es lo mas común para gente que ha vivido en USA.

Ventajas por cambio de residencia

  • Exención de la homologación del vehículo
  • Exención de impuestos aduaneros (creo que es el equivalente al 18% de IVA o más)
  • Exención de impuesto de matriculación

Requisitos para que se considere cambio de residencia

Según la AEAT, para que se considere un cambio de residencia y no una importación:

  • Haber residido fuera de la comunidad Europea por mas de 12 meses, que se acredita con certificado de baja consular del consulado o embajada españoles
  • Tener el vehículo en posesión por 6 meses antes de la baja
  • El vehículo debe pasar aduanas en España en el plazo de 12 meses tras el establecimiento definitivo de la persona en España
  • No podrá venderse, alquilar, ceder,… el vehículo en el plazo de 12 meses tras el paso de aduanas

En USA

Una vez que hayas decidido enviar el coche, lo que tienes que hacer en el lado USA es escoger forma de envío y hacer el papeleo en la embajada/consulado y el DMV.

Envío

Escoger una naviera/agente no es muy difícil, hay bastantes sitios en internet que lo ofrecen.

Hay dos opciones:

  • container: el coche te lo meten en un contenedor junto con otros coches, hasta cuatro pueden meter, unos encima de otros, o algunas pertenencias que quieras mandar si pueden. Es mas caro, y puede tardar mas porque esperaran hasta que llenen un container, aunque hay mas barcos que hacen transporte de containers que Ro-Ro. Puede ser una ventaja si tienes que mandar mas de un coche o pertenencias que te puedan meter dentro, o si quieres que te lo lleven a otra ciudad que el puerto de llegada. Schumacher es una compañía que yo había mirado.
  • Ro-Ro (roll-on roll-off): es un ferry de alta mar, estanco, donde meten los coches conduciendolos normalmente. Es el método que usan para mover los coches nuevos de un continente a otro, y el que yo usé.

Yo iba a usar ShipOverseas por donde lo mandó un amigo mio, pero al final conseguí un precio un poco mas barato en Martin Transports International, puedes pedirle el presupuesto a Joanna (joanna at shipmti.com) que fue la que me preparó el envío a mí y fue muy maja. Estas compañías son agentes, porque al final la naviera que usan es la misma en muchos casos, Wallenius, que son los dueños de los barcos. Si piensas que la naviera te puede hacer un precio mas barato, pues… no. Yo les llamé y no te dan un presupuesto, ellos cargan el vehículo y después te mandan la factura calculando el peso, espacio, impuestos varios, tasas del canal de panamá,… Yo hice unos cálculos y me salia mas caro que el agente, además el agente se encarga de pasar las aduanas en USA.

En mi caso yo mande un BMW Z4 de Los Angeles (Long Beach) a Vigo, y me salio por $1600.

El precio incluía:

  • Aduanas de USA y documentación para la exportación
  • Tasas portuarias en USA
  • Envío del Title a España por mensajería urgente
  • 30 días de almacenamiento en USA, ya que dejas el coche un tiempo antes de que carguen el buque

Al precio que te suelen presupuestar le sumas el seguro si quieres, que puede variar de precio según el agente y las coberturas, en mi caso el 1,5% del valor declarado, con franquicia de $500. Añádele también el coste de descarga y aduanas en España, que cubro mas adelante.

Ademas otra cosa que no incluyen en el presupuesto es el coste de meter el coche en el puerto, ya que por motivos de “seguridad” tu no puedes llevarlo al muelle de carga, te van a cobrar por hacerlo. En el caso de ShipOverseas lo dejabas en el puerto de Long Beach y lo conducían por “sólo” $50, y con Martin Transports International lo dejas en un almacén que tienen en Paramount, CA para que lo lleven en grúa, y me cobraron $100.

Consulado

Solicitar baja consular, donde tiene que constar la fecha de alta en el consulado, y que tiene que ser de hace más de 12 meses. La puedes pedir por teléfono y te la envían por correo en unos tres días.

DMV

En el DMV en California, o su equivalente en otros estados, debes notificar

  • exportacion del vehiculo, en persona en una oficina del DMV, con el title original y tu ID.
  • cambio de dirección, DMV 14, con tu dirección española, para ti y el vehículo con el fin de que no te manden las renovaciones del registro. Yo no lo hice y tuve que mandárselo luego por correo porque me seguían llegando notificaciones.

Entrega del coche

Cuando hagas la entrega del coche tienes que entregar el Title original, dejar el coche con menos de 1/4 de gasolina y vacío de objetos personales, lo que quiere decir nada de cajas o mudanza, pero sí que puedes dejar algunas cosas (yo metí herramientas del coche y de la bici).

Debes sacarle fotos al coche, a la placa con los pesos y VIN que suele estar en el lateral de la puerta del conductor, y al VIN troquelado en el compartimento motor, verás más tarde por qué. De éste último es buena idea sacarle un molde con lápiz y papel por si te hace falta. Y desde luego debes quitarle las matriculas, ya que parece que es normal que se las roben en los puertos, particularmente las de California.

Si has contratado seguro acuérdate de sacarle más fotos y de que el resguardo que te den este completo y que no pongan más rayazos o golpes de los que tenga.

Necesitas que te den la factura ya que la tendrás que presentar en aduanas, Una vez que carguen el coche en el barco te mandaran el bill of lading y el title original por mensajería a España.

Travesía

Los puertos en los que descarga la naviera, que yo conozca, son Bilbao, Santander, Vigo, Valencia y Barcelona, pero no hacen viajes directos allí. Mi barco paró en Bremerhaven en Alemania, donde lo cambiaron a otro ferry que bajaba hasta Vigo. El tiempo que tardó en hacer Los Angeles – Vigo fue unos 35 días, desde que salió del puerto de Long Beach hasta que llegó a Vigo. De esos días creo que casi una semana la paso en Bremerhaven esperando por el ferry Bremerhaven – Vigo.

Se puede hacer el seguimiento del envío en la web de Wallenius, pero sólo lo actualizan al cargar y descargar, y con retraso. Lo mejor es que te digan en que buque va cargado y seguirlo en una web como APRS, donde te da la posición exacta del barco siempre que está cerca de la costa. Por ejemplo un ferry fue el Topeka y otro el Coral Leader.

En España

Padrón

Debes darte de alta en el padrón del municipio donde vayas a residir y guardar el justificante.

Descarga del coche

En cuanto tengas el booking de la naviera te puedes poner en contacto con su agente en España, para Wallenius en Vigo es la empresa Vasco Gallega. Ellos también te van a informar de lo que te cobran por descargar el coche, en mi caso 175 EUR + IVA y te tomarán los datos para ponerse en contacto cuando llegue.

Aduanas

Necesitaras que un agente de aduanas te haga el papeleo con Aduanas, que viene siendo la franquicia por traslado de domicilio y el DUA. El agente de la naviera te puede proporcionar el suyo, Redball Logistics, que es lo que yo hice, supongo que tardan menos que si buscas otro. Coste del despacho de aduanas 120 EUR + IVA.

Necesitas proporcionarle los originales del certificado de residencia o baja consular, title, factura de la naviera, alta en el padrón y copia del bill of lading y del dni.

Exención del impuesto de Matriculación

Se debe solicitar en el plazo de dos meses desde que el vehículo ha pasado aduanas. A mi no me fue necesario pasar la ITV para que me lo dieran, pero si ponen pegas creo que con solicitarlo antes de dos meses ya vale, aunque te lo concedan mas tarde si tardas en pasar la ITV.

Se presenta el modelo 06 en Hacienda junto con el DUA, factura de compra y el Title originales, para que hagan copias compulsadas. Lo dan de un día para otro.

Impuesto de circulación municipal

En Coruña por ejemplo se puede calcular online, imprimir el justificante y pagarlo en un banco. Se paga por trimestres enteros, así que lo des de alta el 1/4 o el 29/6 vas a pagar 3 trimestres igual.

Matrícula y seguro obligatorio

Aquí hay dos opciones que conllevan tramites distintos para la obtención del seguro obligatorio y pasar la ITV para la posterior matriculación

  • Llevarte el coche con la matricula americana
  • Tramitar las placas verdes (temporales) en Trafico

Matricula americana

Puedes pagar un seguro de frontera, un seguro para un coche con matriculas extranjeras y conducir por un tiempo hasta que finalmente lo matricules en España. Los únicos autorizados a hacer seguros de frontera son los agentes de Ofesauto, la Oficina Española de Aseguradores de Automóviles.

Los precios están fijados y dependen del tiempo y la potencia del coche. Por ejemplo hasta 155 CV y para 90 días serian aprox. 380 EUR. Sólo cubren, y de manera temporal, la Responsabilidad Civil Obligatoria mínima exigida en cada país del EEE. No incluyen Asistencia en Viaje, Daños Propios, Defensa Jurídica, etc.

Placas verdes temporales

Antes de retirar el coche del puerto se pueden solicitar las placas verdes en trafico, con lo que cualquier aseguradora española te podría hacer el seguro. Las tasas son 19 EUR + placas

Tráfico envía la documentación directamente a la ITV, con lo que si ya has comenzado un expediente en la ITV tendrías que cancelarlo si quieres solicitar las placas verdes, y perder lo pagado.

Yo contraté seguro de frontera por un mes pensando que tendría solucionada la ITV para entonces, pero luego tuve que ampliarlo porque ya no podía solicitar las placas verdes sin perder ese dinero

Ficha técnica reducida

Para pasar la ITV hace falta una ficha técnica reducida realizada por un ingeniero.

Hay múltiples servicios que la hacen, pero el que usé por precio y comodidad es fichareducida.com, un ingeniero de Carballo que no necesitó ni ver el coche, con lo que se puede hacer antes de que llegue a puerto, y te la dan en 24 horas. Otras opciones es que la haga TUV, e incluso algunas estaciones de ITV.

Necesitas:

  • documentación (Title)
  • características del vehículo: pesos, cilindrada, potencia,… que vienen en la placa de características en el chasis, debajo del capot o en las puerta del conductor. Yo necesité la página del manual del coche donde vienen los datos técnicos
  • fotografías del vehículo: frontal, trasero y lateral

Es MUY conveniente revisar la ficha, por ejemplo tenía errores en el tipo de cambio y marchas, porque se pueden basar en modelos europeos, y luego hubo algún problema con la ITV que solucionó el ingeniero directamente.

Coste: 80 EUR + IVA

ITV. Aquí comienzan los problemas

Por teléfono en la ITV de Sabón me dijeron que no había problema en pasar la ITV al ser por cambio de residencia, que no había que cambiarle nada al coche, ni luces ni neumáticos ni nada. Si no fuera por cambio de residencia todo tendría que estar homologado, con el símbolo CE: faros, neumáticos, cristales,… o por un instituto que dé una homologación individual.

Pero al presentarme en la ITV la cosa cambió. Problemas:

  • luces de posición ámbar
  • faros Xenon sin lavafaros
  • sin luz antiniebla trasera (esta me la añadieron en otra ITV pero la arreglé de todas formas para evitar futuros problemas)
  • reflectantes laterales en la parte trasera (esta me la dijeron en otra ITV pero coló)

Y en el caso de un BMW en el que todo es electrónico es prácticamente imposible encontrar a alguien que te lo solucione. Hay gente que hace chapucillas con modelos clásicos como Mustangs. Encontré un taller que le había puesto la luz antiniebla a un Z4 americano y me dijeron que una y no más. En la BMW pasan bastante pero conseguí que en el concesionario de Santiago hablando con el jefe de taller me lo hicieran (por teléfono o empleados pasaron de mí)

Total que lo que había que cambiarle era

  • faros delanteros por unos europeos, de Xenon a 1000 EUR cada uno
  • faros traseros por los europeos con luz antiniebla. Me tuvieron que poner un botón extra porque no consiguieron que funcionara con la centralita
  • mando de luces con centralita
  • instalar lavafaros (el menor de los problemas)

Total, unos 4000 EUR cuando ya no había marcha atrás, ni mandar de vuelta el coche 😦 Espero poder vender alguna pieza en USA con eBay.

Y eso que no le cambié la radio. En USA/America van a distinta frecuencia que en Europa (frecuencias impares respecto a las pares de España), con lo que no sintonizara bien las emisoras en España… En el Z4 supone cambiarle la radio, amplificador y nosequemas…

Actualización: cambiar la radio de región lleva un minuto, para ello hay que encender la radio, aguantar M durante unos 10 segundos hasta que salga el numero de serie. Luego pulsar + para navegar los menus hasta que salga AREA y pulsar 1 varias veces para cambiar la region a EUROPE. Luego apagar la radio.

 

Aquí hay una página que explica perfectamente las diferencias de luces en USA y Europa.

Una vez que todo está solucionado y se consigue pasar la ITV tardan una semana aprox. en hacer la tarjeta de la ITV.

Matriculación

En un plazo creo que de 6 meses debes tener el vehículo matriculado a tu nombre en la provincia en la que vas a residir. Para ello necesitas 91,80 EUR y presentar

  • Padrón
  • Tarjeta de la ITV
  • Justificante del pago del Impuesto de Circulación del Ayuntamiento
  • Justificante de la exención del Impuesto de Matriculación, modelo 06 de Hacienda
  • DUA

Y a última hora del día o el día siguiente ya tienes la matrícula, listo para que te la hagan en un taller y para que contrates el seguro del coche.

Conclusión

Espero que esta odisea le sirva a alguien y se evite las vueltas y problemas que yo he tenido que dar. Un amigo mío también se trajo un coche y no tuvo mayores problemas, supongo que al no necesitar cambios en las luces, así que mirándolo bien y con tiempo puede salir bien el enviar el coche.

Suerte!

From Dev to DevOps slides from ApacheCON NA Vancouver 2011

ApacheCON NA 2011The slides from my From Dev to DevOps talk at ApacheCON NA 2011 Vancouver. Thanks to all the attendees for coming!

The audio recording seems that it’s going to be uploaded to FeatherCast.

UPDATE: the Lanyrd official page is up too

The code for the Maven-Puppet module is avalable in GitHub, and I’ll write some posts about it in the coming weeks.

The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.

Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.

In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.

Vancouver harbour panorama

ApacheCON NA Vancouver 2011

ApacheCON NA 2011I’m in Vancouver for ApacheCON NA 2011, where I’ll be speaking on Friday 14:30 about DevOps, From Dev to DevOps, my take on DevOps for people like me interested in DevOps and automation coming from the dev side, and expanding the dev lifecycle all the way to deployment to production. I have previously posted the slides from a another event and will post the updated ones after the talk.

If you are at the conference, come over and say hi!

The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.

Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.

In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.

Headless VirtualBox with Windows 7 guest

Virtualbox logoContinuing my VirtualBox series, let’s talk about headless VirtualBox.

You can run any VBox machine on headless mode, without the GUI. This is particularly interesting for *nix servers where you don’t want to install the X components, but it’s also interesting for Windows boxes that you can use as servers, in order to save some resources (memory, cpu,…) while it’s running.

Use case

I have a Windows 7 box running VPN software (that only runs in Windows), but I don’t want to use the Windows GUI and keep switching from the Mac to the Windows UI do do some things.

Solution

Configuring VirtualBox

Set an IP for your Windows guest, for easier configuration. You could use port forwarding too, but that’d be more cumbersome.

Install VirtualBox extension pack to enable remote display (VRDP support). In the host install a RDP viewer, for instance, for OS X, Microsoft Remote Desktop client.

Configure the guest vbox, enabling in settings Display -> Remote Display and set authentication method to null for no authentication. There are other options for authentication, if you want to check.

Manage the VM headless with VBoxHeadless and VBoxManage commands


# start the VM

VBoxHeadless -s "Windows 7"

# save VM state

VBoxManage controlvm "Windows 7" savestate

Connect to the running VM with your RDP client as you would do with any Windows box.

Web browsing from the host

Install a proxy server on Windows, FreeProxy for instance, but there should be better options out there.

Use FoxyProxy on Firefox on the host, configuring all the remote VPN urls to go through the Windows server. Then you can connect from your host’s Firefox to any url in the VPN.

SSH and other ports from the host

On the Windows guest, connect with Putty to a SSH server on the VPN side, and configure port forwarding. Then you can connect to your VM ip on the ports you forward and end up in the remote server. You could set a server name on /etc/hosts with the VM ip so it’s easier to remember.

With this setup I can use my Mac Firefox, iTerm and other tools without needing to use the Windows interface.

From Dev to DevOps slides from Agile Spain

Conferencia Agile Spain 2011Updated slides from my “From Dev to DevOps” presentation at the Agile Spain conference in Castellon on October 20th. Thanks to all the attendees for the questions and feedback!

Just some updates on Vagrant, VeeWee, Geppetto, and Puppet-Maven. Next stop, ApacheCON Vancouver!

UPDATE The video is also available (in Spanish) at the UJI web server as Flash and WMV.

From Dev to DevOps slides from Apache Barcamp Spain

Here are the slides from my “From Dev to DevOps” presentation at the Apache Barcamp Spain in Seville on October 8th. Not all that useful without the talking and hand waving 🙂

I’ll be presenting it too at the Agile Spain conference on Thursday, with new slides, and adding some more info on Vagrant, VeeWee, Geppetto, and Puppet-Maven, just ten days after, things evolve really fast! Then, on to present at ApacheCON in Vancouver.

I’ll hopefully find the time to publish here at some point, in the meantime, there’s a good summary about the tools, Setup your devops playground with Puppet, Vagrant & co by Arnaud Heritier.