Fabric8 - Being devOps doesn't suck anymore

48
Being devOps doesn’t suck anymore!

description

Fabric8 - Being devOps doesn't suck anymore

Transcript of Fabric8 - Being devOps doesn't suck anymore

Page 1: Fabric8 - Being devOps doesn't suck anymore

Being devOps doesn’t suck anymore!

Page 2: Fabric8 - Being devOps doesn't suck anymore

Brought to you by...

Page 3: Fabric8 - Being devOps doesn't suck anymore

Why do devOps cry?

Because the gap between dev and ops is thaaaaaaaat huge.

Page 4: Fabric8 - Being devOps doesn't suck anymore

What can make devOps happy?

Ansible/Chef/Puppet/Salt doesn’t solve all the issues.

Page 5: Fabric8 - Being devOps doesn't suck anymore

What can make devOps happy?

Reducing the gap between dev and ops.

Page 6: Fabric8 - Being devOps doesn't suck anymore

What is Fabric8 then?

The tool to make (JVM) devOps happy ;) .

Page 7: Fabric8 - Being devOps doesn't suck anymore

But how?

● integrate early● fail fast● automate● monitor

Page 8: Fabric8 - Being devOps doesn't suck anymore

Integration platform FTW!

Let your devs be the ops (in their sandbox).

Page 9: Fabric8 - Being devOps doesn't suck anymore

Little background

Page 10: Fabric8 - Being devOps doesn't suck anymore

Fabric origins

● Apache Camel● Apache ActiveMQ● Apache ServiceMix● Apache CXF

To put the s**t together.

Page 11: Fabric8 - Being devOps doesn't suck anymore

Fabric-eight

● FuseSource acquired by Red Hat ● project renamed from fabric to fabric8● wider scope of the project

Page 12: Fabric8 - Being devOps doesn't suck anymore

Fabric8 crash course #1

Start Fabric8 platform.

Page 13: Fabric8 - Being devOps doesn't suck anymore

Fabric8 crash course #2

Log into shell or GUI.

Page 14: Fabric8 - Being devOps doesn't suck anymore

Fabric8 crash course #3

Tell Fabric8 to deploy your app.

Page 15: Fabric8 - Being devOps doesn't suck anymore

Fabric8 crash course #4

Repeat for the test/QA/production.

Page 16: Fabric8 - Being devOps doesn't suck anymore

Do less. Be dev focused.

Page 17: Fabric8 - Being devOps doesn't suck anymore

In the devOps world...

...failures happen.

Page 18: Fabric8 - Being devOps doesn't suck anymore

Be ready for failures

Have monitoring. Stay cool.

Page 19: Fabric8 - Being devOps doesn't suck anymore

Sharing is good

DevOps need to share.

Page 20: Fabric8 - Being devOps doesn't suck anymore

Sharing is good

?...for service discovery.

Page 21: Fabric8 - Being devOps doesn't suck anymore

Sharing is good

...for load-balancing.

Page 22: Fabric8 - Being devOps doesn't suck anymore

Sharing is good

…for the microservices coordination.

Page 23: Fabric8 - Being devOps doesn't suck anymore

Describing deployables

Fabric8 uses “profiles” for that.

Page 24: Fabric8 - Being devOps doesn't suck anymore

Profile describes what to deploy

For example my-spring-boot-app profile has mvn:com.example/my-spring-boot-app/1.0 jar assigned to it.

Page 25: Fabric8 - Being devOps doesn't suck anymore

Profiles can have parents

For example my-spring-boot-app profile has containers-java.spring.boot parent.

Page 26: Fabric8 - Being devOps doesn't suck anymore

Deploy, but where?

Fabric8 deploys applications to the container.

Page 27: Fabric8 - Being devOps doesn't suck anymore

Containers

● Tomcat● WildFly● plain JVM process● Karaf● OpenShift● Docker● ...

Page 28: Fabric8 - Being devOps doesn't suck anymore

Fabric8 <3 Docker

Docker will be a recommended container for the Fabric8.

Page 29: Fabric8 - Being devOps doesn't suck anymore

Unified provisioning

Use (almost) the same profiles for test/QA/production.

Page 30: Fabric8 - Being devOps doesn't suck anymore

How can I distribute profiles?

Via Maven repos. Using Fabric8 Maven plugins.

Page 31: Fabric8 - Being devOps doesn't suck anymore

Managing environment configuration

Fabric8 uses Git for that.

Page 32: Fabric8 - Being devOps doesn't suck anymore

Version your system

● you can version your system in Git● rollback if necessary

Page 33: Fabric8 - Being devOps doesn't suck anymore

Fabric8-awarness

Applications deployed by the Fabric8 can use API to become Fabric8-aware.

Page 34: Fabric8 - Being devOps doesn't suck anymore

Fabric8-aware Camel routing

from("master:http://0.0.0.0:10000").

to("jms:prices");

from("http://0.0.0.0:10000").

to("fabric:brokers:jms:queue");

Page 35: Fabric8 - Being devOps doesn't suck anymore

Fabric8-aware Spring apps

@Value("${service.url}")

String serviceUrl;

...

new RestTemplate().getForObject(serviceUrl);

Page 36: Fabric8 - Being devOps doesn't suck anymore

Monitoring

Hawt.io and shell.

Page 37: Fabric8 - Being devOps doesn't suck anymore

Choose your weapon - shell

something for | scripting > fans

Page 38: Fabric8 - Being devOps doesn't suck anymore

Choose your weapon - hawt.io

Sexy!

Page 39: Fabric8 - Being devOps doesn't suck anymore

Choose your weapon - hawt.io

Sexy!

Page 40: Fabric8 - Being devOps doesn't suck anymore

Choose your weapon - hawt.io

Sexy!

Page 41: Fabric8 - Being devOps doesn't suck anymore

Hawt.io is JMX friendly

Hawt.io plugins know how to handle JMX beans of popular libraries and servers.

Page 42: Fabric8 - Being devOps doesn't suck anymore

Monitor by default

Hawt.io monitors all apps managed by Fabric8.

Page 43: Fabric8 - Being devOps doesn't suck anymore

Monitoring with shell

host = (process:environment <PID> | grep SSH_ADDRESS | word 1 | tac)

ssh $host "grep -C 10 FindMe app/log.txt"

Sriptable diagnostic!

Page 44: Fabric8 - Being devOps doesn't suck anymore

Monitor legacy

You can use Hawt.io to monitor your existing apps (JMX + Jolokia).

Page 45: Fabric8 - Being devOps doesn't suck anymore

What’s next?

Better devOps (monitoring, Ansible?, etc).

Page 46: Fabric8 - Being devOps doesn't suck anymore

What’s next?

More apps supported (vert.x!).

Page 47: Fabric8 - Being devOps doesn't suck anymore

What’s next?

Deploy all the JBoss middleware (and more).

Page 48: Fabric8 - Being devOps doesn't suck anymore

Many thanks!