a1c6edc9f76695911a597818fda66308d6a0dba4
[AGL/documentation.git] / docs / 3_Developer_Guides / 2_Building_Microservices_Natively / 0_build-microservice-overview.md
1 ---
2 edit_link: ''
3 title: Overview
4 origin_url: >-
5   https://raw.githubusercontent.com/automotive-grade-linux/docs-sources/master/agl-documentation/host-configuration/docs/0-build-microservice-overview.md
6 ---
7
8 <!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/host-configuration-developer-guides-devguides-book.yml -->
9
10 # Overview
11
12 You can develop Microservices on your native Linux machine quickly
13 by following the workflow in this section.
14 This workflow takes advantage of RPM or Debian packages,which are available
15 through the
16 [OpenSUSE Build Service (OBS)](https://build.opensuse.org/).
17 You can install these
18 [packages](https://build.opensuse.org/project/subprojects/isv:LinuxAutomotive)
19 and bypass the
20 [Yocto Project](https://yoctoproject.org) build cycles described in the
21 "[Developing an AGL Image](../../getting_started/reference/getting-started/image-workflow-intro.html)" section.
22
23 Using this workflow, you can start to code, execute, and debug Microservice
24 bindings directly on your host.  This flow works for many cases for which
25 no specific hardware is required, or when you can plug hardware directly
26 into your native Linux host's USB port such as a Controller Area Network
27 ([CAN](https://en.wikipedia.org/wiki/CAN_bus)) bus Adapter or a Media
28 Oriented Systems Transport
29 ([MOST](https://en.wikipedia.org/wiki/MOST_Bus)) Controller.
30
31 The following figure and list overview the Microservice Native Development
32 process.
33 You can learn about the steps in the process by reading through the
34 remaining sections.
35
36 <center><img src="pictures/microservice-workflow-native.png"></center>
37
38 1. **Verify Your Build Host:**
39    Make sure you have a native Linux host.
40    For the example used in this section (i.e. `helloworld-service`), be sure your
41    Linux distribution is a recent version of Debian, Ubuntu, OpenSUSE, or Fedora.
42
43 2. **Download and Install AGL Packages:**
44    Download and install the
45    [near-zero](https://en.wikipedia.org/wiki/Zero_Install) packages
46    from the OBS.
47
48 3. **Install the Binder Daemon:**
49    Install the Binder Daemon, which is a part of the
50    [AGL Application Framework (AFM)](../../apis_services/reference/af-main/0-introduction.html).
51    The daemon allows you to connect applications to required services.
52
53 4. **Get Your Source Files:**
54    For this section, you clone the `helloworld-service` binding repository.
55    You also need to make sure you have some other required packages to build
56    that specific binding.
57
58 5. **Build and Run Your Service Natively (Optional Tool Use):**
59    Build your binding on your Linux host using native tools.
60    Once the binding is built, you can run it to make sure it functions
61    as expected.
62
63    Optionally use extra tools once your binding is building and running
64    smoothly in the native environment.