AWS S3 ¿on-premise?

minio ha sido, junto a un bug de la máquina de vending que me permite sacar dos bollitos por el precio de uno, mi descubrimiento más grande de esta semana.
Permite tener un servicio compatible con AWS S3 en tu cluster de Kubernetes. Esto podrá parecer innecesario si trabajas en cloud pública, donde ese servicio ya existe, pero en entornos on-premise es una necesidad muy real.

¿Porqué AWS S3 on-premise?

Cuando hablamos de servicios cloud no solo hablamos de disponibilidad, replicación, gigas, y con casinos, y ....... .

Para el desarrollador de un equipo agile lo importante es tener un api para poder trabajar. Y si además es un api "estandarizada" pues mucho mejor porque nos permite desarrollar nuestras aplicaciones de forma que son independientes del entorno sobre el que corren.

Por desgracia en los clientes que suelo frecuentar hay una cierta alergia a todo lo que sea externalizar servicios por lo que AWS S3 les provoca urticaria pero minio encaja como un guante.

Despliegue en OpenShift

Usamos los objetos de karrier.io un poco modificados e incrustados en una plantilla que puedes encontrar en este repositorio.

Ejecuta:

oc new-app -f minio-template.yaml

Y ya está. ¿A que pensabas que iba a ser más difícil? ;-)

openshift

Recuerda apuntar la "Access Key" y la "Secret Key".

Venga, te pongo la salida del comando para que parezca más difícil:

jmferrerm@serenity:~/blog/AWSS3on-premise$ oc new-app -f minio-template.yaml -p MINIO_ACCESS_KEY=holaaaaaaa -p MINIO_SECRET_KEY=adiooooooos
--> Deploying template "jmferrer-minio-template/minio" for "minio-template.yaml" to project jmferrer-minio-template

     min.io
     ---------
     A min.io service.  For more information about using this template, including OpenShift considerations, see https://github.com/elmanytas/minio-openshift/blob/master/README.md.

     WARNING: This template needs a default storage class with space enough.

     The following service(s) have been created in your project: minio.

     For more information about using this template, including OpenShift considerations, see https://github.com/elmanytas/minio-openshift/blob/master/README.md.

     * With parameters:
        * Name=minio
        * Memory Limit=512Mi
        * Application Hostname=
        * Access Key=holaaaaaaa
        * Secret Key=adiooooooos

--> Creating resources ...
    secret "minio-keys" created
    service "minio" created
    route "minio" created
    statefulset "minio" created
--> Success
    Access your application via route 'minio-jmferrer-minio-template.osapps.elmanytas.es'
    Run 'oc status' to view your app.
jmferrerm@serenity:~/ownCloud/blog/AWSS3on-premise$

Uso con la cli de aws

Hacemos un uso normal cambiando el endpoint url tal como pone aquí:

jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 ls
jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 mb s3://swordartonline
make_bucket: swordartonline
jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 cp /tmp/YukiKajiuraSAOLive.mp4  s3://swordartonline
upload: ../../tmp/YukiKajiuraSAOLive.mp4 to s3://swordartonline/YukiKajiuraSAOLive.mp4
jmferrerm@serenity:~$ aws --endpoint-url=http://minio-jmferrer-minio-template.osapps.elmanytas.es s3 ls s3://swordartonline
2019-04-04 20:04:27  237535530 YukiKajiuraSAOLive.mp4
jmferrerm@serenity:~$

GUI

El GUIaburros es simple y escueto.

login

Tanto que no necesita mayor explicación:

interfaz

Happy object storing!!

Un poco de música épica para amenizar tu fin de semana

Conciertazo en vivo de Yuki Kajiura 梶浦由記 at 「Sword Art Online event “Sing all Overtures”」: