Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Camel K 1.0.0 announcement #387

Merged
merged 2 commits into from
Jun 9, 2020
Merged

Camel K 1.0.0 announcement #387

merged 2 commits into from
Jun 9, 2020

Conversation

nicolaferraro
Copy link
Member

No description provided.

@nicolaferraro
Copy link
Member Author

We can merge this when it's official

Copy link
Contributor

@davsclaus davsclaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome blog - has a great set of details and how great Camel K 1.0 is from the beginning.

We may want to add a section int the bottom about links to how to download and "install Camel K".

and performance. This post contains a list of cool stuff that you'll find in the 1.0 GA release.

First of all, if you're living under a rock and it's the first time you hear about Camel K,
you can read some introductory blog posts here ([1 - introducing camel k ](https://nicolaferraro.me/2018/10/15/introducing-camel-k/), [2 - camel k on knative](https://www.nicolaferraro.me/2018/12/10/camel-k-on-knative/))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space after k ]

but a lightweight *integration* platform) and it's technically difficult to provide IDE support, such as code completion and other utilities,
to developers.

But now we've it. The Red Hat Integration tooling team has created some cool extensions for VS Code that make the development experience
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Integration tooling team

Code completion works with Java code, but it's not only limited to it: you also have suggestions and documentation out of the box when writing the Camel URIs and property files.
And you also have many options to run integrations and interact with them, all integrated in the IDE.

Just install the VS Code [Extension Pack for Apache Camel by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.apache-camel-extension-pack) to have all these features available.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extension Pack for Apache Camel


The **basic quickstart is [also available online](https://learn.openshift.com/middleware/courses/middleware-camelk/camel-k-basic)**, so you can have a look at how camel k works **without installing anything on your laptop**.

More examples are expected to come in the following months. You are also welcome if you want to help us by **contributing your own**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More tutorials

More examples are expected to come in the following months. You are also welcome if you want to help us by **contributing your own**.
They are based on the [VSCode Didact](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-didact) project, that provides an
awesome user experience.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could also add a section about the misc examples we have here
https://github.com/apache/camel-k/tree/master/examples

I do like the tutorials but they kinda assume you have the time and want to use Visual Code.

For people that just want to hack from CLI and a plain text editor (notepad++, emacs etc) then I would like to point them to these standalone. We could in the future port them or some of them to that example git repo.

There are some good ones here we could point to at first:

kamel run Sample.java
kamel run hello.xml
kamel run simple.js

kamel init Handler.java
```

You get a Java file with **all the boilerplate written for you** and you just have to write your integration routes. It works also with all other languages: Groovy, XML, YAML, Kotlin and JavaScript.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add an example for another language, eg

kamel init foo.js

kamel run -d mvn:org.my:lib:1.0.0 -d mvn:org.my:otherlib:2.0.0 -t quarkus.enabled=true Handler.java
```

Sometimes the number of command line parameters you've to add **can become too many**. For this reason we've added the possibility to specify them as **modeline options** in the integration file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(done by adding a comment line with camel-k: as prefix)

Whenever you have an integration route that must be running, at any point in time, in at most one single Camel instance, you need to use a master route. Master routes can be declared by simply prefixing the consumer endpoint by the 'master' keyword and a name that will be used to create a named lock, e.g.

```
from('master:lock:telegram:bots')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lock -> mylock

.to('log:info')
```

It can be used to print all messages that are sent to your Telegram bot. Since the Telegram API support a single consumer only, you can guard the route with a master prefix to have the guarantee that the consumer will be only one.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that there will be at most only one consumer at any given time


You can see that keeping a container with a JVM running for a task that should be executed once every two minutes may be overkill (it is overkill for sure when the period is 2 hours). We live in a time where resources such as **memory and CPU are really valuable**.

So the Camel K operator automatically handles this situation by deploying your integration not as a Kubernetes deployment, but as a **Kubernetes CronJob**. This saves a lot of resources, especially when the period between executions is high. When it's time to run your integration code, a container starts, triggers the execution and then gracefully terminates. Everything is handled automatically by the Camel K runtime.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by the Camel K runtime -> by Camel K and Kubernetes.

@nicolaferraro
Copy link
Member Author

Thanks @davsclaus , I think I've addressed all the points

@oscerd
Copy link
Contributor

oscerd commented Jun 9, 2020

Are we ok on merging this? @nicolaferraro @davsclaus

@davsclaus
Copy link
Contributor

+1

@oscerd oscerd merged commit 031d9c7 into apache:master Jun 9, 2020
but a lightweight *integration* platform) and it's technically difficult to provide IDE support, such as code completion and other utilities,
to developers.

But now we've it. The integration tooling team has created some cool extensions for VS Code that make the development experience
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps:

Suggested change
But now we've it. The integration tooling team has created some cool extensions for VS Code that make the development experience
But now we've have it. The integration tooling team has created some cool extensions for VS Code that make the development experience

and performance. This post contains a list of cool stuff that you'll find in the 1.0 GA release.

First of all, if you're living under a rock and it's the first time you hear about Camel K,
you can read some introductory blog posts here ([1 - introducing camel k](https://nicolaferraro.me/2018/10/15/introducing-camel-k/), [2 - camel k on knative](https://www.nicolaferraro.me/2018/12/10/camel-k-on-knative/))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be cool to cross post this to Camel blog as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants