docs overview page, reworked intro page (#418)

* docs overview page, reworked intro page

* update sitegen version to 1.0.8
This commit is contained in:
Romain Grecourt
2019-02-19 13:47:53 -08:00
committed by GitHub
parent 266e274edd
commit e9486abcfd
8 changed files with 314 additions and 78 deletions

View File

@@ -1,75 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
= Introduction
:description: about Helidon
:keywords: helidon, java, microservices, microprofile
== Introduction
Helidon is a collection of Java libraries for writing microservices.
There is no unique tooling or deployment model. Your microservice is
just a Java SE application.
The foundation of Helidon is composed of three components:
[PILLARS]
====
[CARD]
.WebServer
[icon=settings_ethernet]
--
A programmatic HTTP API with reactive features, powered by Netty.
--
[CARD]
.Config
[icon=settings]
--
A flexible configuration framework with support for multiple sources and formats.
--
[CARD]
.Security
[icon=security]
--
A tool-chain to handle authentication, authorization and context propagation.
--
====
== MicroProfile
On top of this foundation Helidon supports the MicroProfile family of APIs,
including JAX-RS and CDI. This means you can choose from one of two
programming models:
* Helidon SE: a functional programming style that uses the Helidon WebServer,
Config and Security APIs directly. This gives you full
transparency and control.
* Helidon MP: a more declarative model that supports the https://microprofile.io[MicroProfile]
family of APIs. This will be familiar to Java EE developers.
Our <<getting-started/02_base-example.adoc,Quickstart Examples>> gets
you started using either of these programming models.
=== Docker and Kubernetes support
The <<getting-started/02_base-example.adoc,Helidon Quickstart Examples>> contain
support for Docker and Kubernetes. Just follow the examples and you'll have
a simple service up and running in minutes.

View File

@@ -0,0 +1,102 @@
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
= Overview
:description: Helidon documentation
:keywords: helidon, java, microservices, microprofile, documentation
== Get going
[PILLARS]
====
[CARD]
.Getting Started
[icon=assistant,link=getting-started/02_base-example.adoc]
--
Quickly create your first application, in under 2 minutes.
--
[CARD]
.Guides
[icon=explore,link=guides/01_overview.adoc]
--
Follow step-by-step guides to build your applications.
--
====
== Components
[PILLARS]
====
[CARD]
.WebServer
[icon=settings_ethernet,link=webserver/01_introduction.adoc]
--
A programmatic HTTP API with reactive features, powered by Netty.
--
[CARD]
.Config
[icon=settings,link=config/01_introduction.adoc]
--
A flexible configuration framework with support for multiple sources and
formats.
--
[CARD]
.Security
[icon=security,link=security/01_introduction.adoc]
--
A tool-chain to handle authentication, authorization and context propagation.
--
[CARD]
.MicroProfile
[icon=widgets,link=microprofile/01_introduction.adoc]
--
A platform definition that is familiar to enterprise Java developers.
--
[CARD]
.Extensions
[icon=extension,link=extensions/01_overview.adoc]
--
A set of add-ons for your Helidon-based applications.
--
[CARD]
.Metrics
[icon=av_timer,link=metrics/01_metrics.adoc]
--
Instrumentation to expose metrics of your applications.
--
[CARD]
.Tracing
[icon=timeline,link=tracing/01_tracing.adoc]
--
Profile and monitor your applications across multiple services.
--
[CARD]
.Health Checks
[icon=favorite_outline,link=health/01_health.adoc]
--
Expose health statuses of your applications.
--
====

View File

@@ -0,0 +1,62 @@
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
= Introduction
:description: about Helidon
:keywords: helidon, java, microservices, microprofile
== A collection of Java libraries
Helidon is a collection of Java libraries for writing microservices.
There's no need for any specific tooling or deployment model. Simply use your
favorite tools !
NOTE: Your microservice is a plain Java application. You do not need an
application server.
== Cloud-native Java
Helidon libraries interoperate with popular tools from the cloud-native space:
* https://www.docker.com/[Docker]
* https://kubernetes.io/[Kubernetes]
* https://prometheus.io/[Prometheus]
* https://opentracing.io/[OpenTracing]
* https://coreos.com/etcd/[Etcd]
TIP: The <<getting-started/02_base-example.adoc,Helidon Quickstart Examples>>
contain support for Docker and Kubernetes.
== Helidon SE
Helidon SE is the functional programming style provided by all Helidon
libraries.
NOTE: Helidon SE gives you full transparency and puts you in control. There is
no magic!
== Helidon MP
Helidon MP is our MicroProfile implementation.
https://microprofile.io[MicroProfile] is a platform definition that is familiar
to enterprise Java developers. It provides a declarative programming style that
is portable. It includes popular Java APIs such as `JAX-RS` and `CDI`.
NOTE: Helidon MP is built on top of the Helidon libraries.

View File

@@ -24,7 +24,6 @@
[PILLARS]
====
[CARD]
.SE REST Web Service
[link=guides/02_SE_REST_web-service.adoc]

View File

@@ -42,7 +42,7 @@ pages:
- "**/*.adoc"
backend:
name: "vuetify"
homePage: "about/01_introduction.adoc"
homePage: "about/01_overview.adoc"
releases:
- "${project.version}"
navigation:

View File

@@ -0,0 +1,59 @@
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
= Tracing
:description: Helidon Tracing Support
= :keywords: helidon, tracing
== Tracing Support
Helidon includes support for tracing through the `https://opentracing.io/[OpenTracing]` APIs.
Tracing is integrated with WebServer and Security.
Support for specific tracers is abstracted. Your application can depend on
the abstraction layer and provide a specific tracer implementation as a Java
`ServiceLoader` service.
=== Maven Coordinates
Declare the following dependency in your project to use the tracer abstraction:
[source,xml,subs="verbatim,attributes"]
.Tracer Abstraction
----
<dependency>
<groupId>io.helidon.tracing</groupId>
<artifactId>helidon-tracing</artifactId>
</dependency>
----
=== Configuring Tracing
To configure tracer with WebServer:
[source,java]
.Configuring OpenTracing `Tracer`
----
ServerConfiguration.builder()
.tracer(TracerBuilder.create("my-application") // <1>
.collectorUri(URI.create("http://10.0.0.18:9411")) // <2>
.build())
.build()
----
<1> The name of the application (service) to associate with the tracing events
<2> The endpoint for tracing events, specific to the tracer used, usually loaded from Config

View File

@@ -0,0 +1,89 @@
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
= Zipkin Tracing
:description: Helidon Tracing Support
:keywords: helidon, tracing
Helidon is integrated with the Zipkin tracer.
The Zipkin builder is loaded through `ServiceLoader` and configured. You could
also use the Zipkin builder directly, though this would create a source-code dependency
on the Zipkin tracer.
== Prerequisites
To use Zipkin as a tracer,
add the following dependency to your project:
[source,xml,subs="verbatim,attributes"]
----
<dependency>
<groupId>io.helidon.tracing</groupId>
<artifactId>helidon-tracing-zipkin</artifactId>
</dependency>
----
== Configuring Zipkin
The Zipkin tracer supports the following configuration options:
|===
|Key |Default value |Builder method |Description
|service |N/A |serviceName |Name of the service, to distinguish traces crossing service boundaries;
Zipkin is using lower-case only, name will be automatically lower-cased
|protocol |http |collectorProtocol |Protocol of the Zipkin trace collector (http or https)
|host |localhost |collectorHost |Host of the Zipkin trace collector (IP Address, hostname, or FQDN)
|port |9411 |collectorPort |Port of the Zipkin trace collector
|path |defined by version |collectorPath |Path of the Zipkin trace collector, each version uses a different path
by default.
|api-version |2 |version |Zipkin specific method, set the protocol version to communicate with
trace collector
|enabled |true |enabled |If set to false, tracing would be disabled
|tags |N/A |addTracerTag(String, String) |`String` tags to add to each span
|boolean-tags |N/A |addTracerTag(String, boolean)|`boolean` tags to add to each span
|int-tags |N/A |addTracerTag(String, int) |`int` tags to add to each span
|===
The following is an example of a Zipkin configuration, specified in the YAML format.
[source,yaml]
----
tracing:
zipkin:
service: "helidon-service"
protocol: "https"
host: "192.168.1.1"
port: 9987
api-version: 1
# this is the default path for API version 1
path: "/api/v1/spans"
tags:
tag1: "tag1-value"
tag2: "tag2-value"
boolean-tags:
tag3: true
tag4: false
int-tags:
tag5: 145
tag6: 741
----
Example of Zipkin trace:
image::webserver/zipkin.png[Zipkin example, align="center"]

View File

@@ -187,7 +187,7 @@
<version.plugin.resources>2.7</version.plugin.resources>
<version.plugin.scm-publish-plugin>3.0.0</version.plugin.scm-publish-plugin>
<version.plugin.site>3.7.1</version.plugin.site>
<version.plugin.sitegen>1.0.7</version.plugin.sitegen>
<version.plugin.sitegen>1.0.8</version.plugin.sitegen>
<version.plugin.source>3.0.1</version.plugin.source>
<version.plugin.spotbugs>3.1.3.1</version.plugin.spotbugs>
<version.plugin.spotify-docker>1.0.0</version.plugin.spotify-docker>