diff --git a/content/blog/2020/06/camel-k-release-1.0.0/index.md b/content/blog/2020/06/camel-k-release-1.0.0/index.md index 399260067e0..00508033f2f 100644 --- a/content/blog/2020/06/camel-k-release-1.0.0/index.md +++ b/content/blog/2020/06/camel-k-release-1.0.0/index.md @@ -11,16 +11,16 @@ Apache Camel K has made a lot of progress since its inception and we're now prou We've been working hard in the past months to add more awesome features to Camel K, but also to improve stability 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, +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/)) or look at the Apache Camel website that contains a [Camel K section](/camel-k/next/) with a lot of material that is automatically generated from the [Github repository](https://github.com/apache/camel-k). ## User experience -Camel K development style is minimalistic: you need just to write a single file with your integration routes and you can immediately -run them on any Kubernetes cluster. This way of defining things is common to many FaaS platforms (although Camel K is not a proper FaaS platform, -but a lightweight *integration* platform) and it's technically difficult to provide IDE support, such as code completion and other utilities, +Camel K development style is minimalistic: you need just to write a single file with your integration routes and you can immediately +run them on any Kubernetes cluster. This way of defining things is common to many FaaS platforms (although Camel K is not a proper FaaS platform, +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 done it. The integration tooling team has created some cool extensions for VS Code that make the development experience @@ -61,11 +61,11 @@ You can find ready-to-use examples written in different languages (e.g. [XML](ht ## Serverless -Serverless is the most important area where we're focusing the new developments in Apache Camel K, although, you should remember, +Serverless is the most important area where we're focusing the new developments in Apache Camel K, although, you should remember, you can have a wonderful Camel K experience even without serverless features. To enable the serverless profile in Camel K, you just need to have **[Knative](https://knative.dev) installed**. -In recent releases, we have added support for the most recent advancements in Knative, for example, Camel K is very well integrated +In recent releases, we have added support for the most recent advancements in Knative, for example, Camel K is very well integrated with the **Knative event broker** and you can easily produce or consume events from it. With **2 lines of code** you can transfer events (e.g. generated by IoT devices) **from your MQTT broker to the mesh**: @@ -76,7 +76,7 @@ from('paho:mytopic?brokerUrl=tcp://broker-address:1883&clientId=knative-bridge') .to('knative:event/device-event') ``` -No kidding, you just need to write those two lines of code in a file and run it with `kamel run bridge.groovy` to +No kidding, you just need to write those two lines of code in a file and run it with `kamel run bridge.groovy` to push data into the Knative broker. And you can also scale the Integration out (*Integration* is a Kubernetes custom resource, `kubectl get integrations` to see all of them) @@ -88,20 +88,20 @@ The Camel K embedded auto-scaling feature works really well when you want to rea ```groovy from('knative:event/device-event') .to('http://myhost/webhook/random-id') -``` +``` This integration is configured to receive all events with `type=device-event` and **scales automatically with the load** because it is materialized into a [Knative Serving Service](https://knative.dev/docs/serving/spec/knative-api-specification-1.0/#service) and automatically [subscribed to the Eventing Broker via a Trigger](https://knative.dev/docs/eventing/broker/). It then receives a [CloudEvent](https://cloudevents.io/) when your IoT devices produce something and scales down to zero if there's no data coming. -You just need to create it (as before, just `kamel run listener.groovy`), all the remaining configuration is +You just need to create it (as before, just `kamel run listener.groovy`), all the remaining configuration is done **automatically by the Camel K operator**. We've added much more features for having a better integration with the Knative ecosystem and we've also fixed some compatibility and performance issues that were present in previous versions. The user experience is now much smoother. If you are a Knative YAML developer (!), instead of using Camel K directly, you also have the option to use **[Knative Camel Sources](https://knative.dev/docs/eventing/samples/apache-camel-source/)** which are part of the Knative release. They are wrappers for Camel K integrations that are compatible with all the tools used by Knative developers (such as the `kn` CLI or the OpenShift serverless console). Sources in Knative can only push data into the various Knative endpoints, but not the other way around (i.e. they cannot be used to publish data from Knative to the outside). -In Camel K you don't have this limitation: the Route is the fundamental building block of a Camel integration and you can do whatever you want with it. +In Camel K you don't have this limitation: the Route is the fundamental building block of a Camel integration and you can do whatever you want with it. ## Fast startup and low memory @@ -185,7 +185,7 @@ This kind of configuration is extremely useful in CI/CD scenarios because it all ## Monitoring and Tracing -Ok, you've finished level 1 of Camel K development and you want to make serious things. You're in a very good position because Camel K provides a lot of +Ok, you've finished level 1 of Camel K development and you want to make serious things. You're in a very good position because Camel K provides a lot of useful tools to add visibility on **what your integration routes are doing**. Let's suppose you've a **[Prometheus](https://prometheus.io/)** instance in your namespace and you want to **publish your integration metrics**: @@ -203,7 +203,6 @@ kamel run Routes.java -t prometheus.enabled=true -t tracing.enabled=true ``` That's it again. The Camel K operator will add the camel-opentracing library and **connect it to the Jaeger collector that is available in the namespace**. -Here again, [advanced use cases](/camel-k/next/traits/tracing.html) are supported. ## Master routes @@ -262,7 +261,7 @@ This way you're always notified of problems in the code and you can better under The first step is to go to the [Camel K release page](https://github.com/apache/camel-k/releases) on Github (or the official [Apache release repository](https://dist.apache.org/repos/dist/release/camel/camel-k/1.0.0/)), **download the kamel CLI** for your OS and put it in your system path. -Installation is done usually using the `kamel install` command, but, depending on the kind of Kubernetes cluster you're using, +Installation is done usually using the `kamel install` command, but, depending on the kind of Kubernetes cluster you're using, you may need to execute additional configuration steps. The Camel K documentation contains a section about **[installing it on various types of Kubernetes clusters](/camel-k/next/installation/installation.html)**. diff --git a/content/blog/2023/02/camel-k-release-1-12/index.md b/content/blog/2023/02/camel-k-release-1-12/index.md index 59daa5b4440..3814609ce73 100644 --- a/content/blog/2023/02/camel-k-release-1-12/index.md +++ b/content/blog/2023/02/camel-k-release-1-12/index.md @@ -55,7 +55,7 @@ We're now looking forward to see a ton of new tools based on Camel K! ## Distributed Tracing support moving to OpenTelemetry -If you are already using Distributed Tracing tools then you might already know that the [CNCF](https://www.cncf.io) announced that they were [archiving the OpenTracing project](https://www.cncf.io/blog/2022/0T1/31/cncf-archives-the-opentracing-project/) in favor of the [OpenTelemetry project](https://opentelemetry.io/). In this new release we decided to introduce the [`telemetry` trait](/camel-k/next/traits/telemetry.html) based on OpenTelemetry and deprecate the [`tracing` trait](/camel-k/next/traits/tracing.html) based on OpenTracing. +If you are already using Distributed Tracing tools then you might already know that the [CNCF](https://www.cncf.io) announced that they were [archiving the OpenTracing project](https://www.cncf.io/blog/2022/0T1/31/cncf-archives-the-opentracing-project/) in favor of the [OpenTelemetry project](https://opentelemetry.io/). In this new release we decided to introduce the [`telemetry` trait](/camel-k/next/traits/telemetry.html) based on OpenTelemetry and deprecate the `tracing` trait based on OpenTracing. ## Dependencies upgrade diff --git a/content/blog/2023/03/camel-k-telemetry/index.md b/content/blog/2023/03/camel-k-telemetry/index.md index 35eed806ef7..acf4f247bde 100644 --- a/content/blog/2023/03/camel-k-telemetry/index.md +++ b/content/blog/2023/03/camel-k-telemetry/index.md @@ -7,9 +7,9 @@ categories: ["Camel K", "Features", "Devops"] preview: "Camel K: how to configure Distributed Tracing for an Integration" --- -Tracing is an important approach for controlling and monitoring the experience of users, it allows us to gather more information about an integration's performance. +Tracing is an important approach for controlling and monitoring the experience of users, it allows us to gather more information about an integration's performance. -Camel K has been providing support for distributed tracing using OpenTracing since long time. At the beginning of 2022, the [CNCF](https://www.cncf.io) announced that they were [archiving the OpenTracing project](https://www.cncf.io/blog/2022/01/31/cncf-archives-the-opentracing-project/) in favor of the [OpenTelemetry project](https://opentelemetry.io/). OpenTelemetry is the latest solution created by merging OpenTracing and OpenCensus. As a result, we decided in Camel K 1.12 to introduce the [`telemetry` trait](/camel-k/next/traits/telemetry.html) based on OpenTelemetry. At the same time we decided to deprecate the [`tracing` trait](/camel-k/next/traits/tracing.html) based on OpenTracing. +Camel K has been providing support for distributed tracing using OpenTracing since long time. At the beginning of 2022, the [CNCF](https://www.cncf.io) announced that they were [archiving the OpenTracing project](https://www.cncf.io/blog/2022/01/31/cncf-archives-the-opentracing-project/) in favor of the [OpenTelemetry project](https://opentelemetry.io/). OpenTelemetry is the latest solution created by merging OpenTracing and OpenCensus. As a result, we decided in Camel K 1.12 to introduce the [`telemetry` trait](/camel-k/next/traits/telemetry.html) based on OpenTelemetry. At the same time we decided to deprecate the `tracing` trait based on OpenTracing. I'll walk you through the configurations needed to support Distributed tracing for your Camel integrations in this blog post. @@ -52,7 +52,7 @@ If Jaeger is not already available on your kubernetes instance, an easy way to i In short, to install the Jaeger operator you should: -* Install cert-manager if it is not installed as it is required +* Install cert-manager if it is not installed as it is required ```sh # The cert manager is a prerequisite to the Jaeger operator (see https://cert-manager.io/docs/installation/) $ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.yaml