Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 2E3D9166000 for ; Tue, 25 Jul 2017 03:27:41 +0200 (CEST) Received: (qmail 1152 invoked by uid 500); 25 Jul 2017 01:27:40 -0000 Mailing-List: contact dev-help@heron.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@heron.incubator.apache.org Delivered-To: mailing list dev@heron.incubator.apache.org Received: (qmail 1139 invoked by uid 99); 25 Jul 2017 01:27:39 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Jul 2017 01:27:39 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 2364BC006E for ; Tue, 25 Jul 2017 01:27:39 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.479 X-Spam-Level: ** X-Spam-Status: No, score=2.479 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=streaml-io.20150623.gappssmtp.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id pp71D9I1sUo8 for ; Tue, 25 Jul 2017 01:27:36 +0000 (UTC) Received: from mail-yw0-f180.google.com (mail-yw0-f180.google.com [209.85.161.180]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id D2BE95FB6A for ; Tue, 25 Jul 2017 01:27:35 +0000 (UTC) Received: by mail-yw0-f180.google.com with SMTP id l82so2041702ywc.2 for ; Mon, 24 Jul 2017 18:27:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=streaml-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=FeIRagb3l8GAIxxTFxU4Q6aU2CSDL4Bi8gkjNYT/4/8=; b=d1O4bMf79WY0sfjtrecNAbN+nv0/aCgOojw+gQe0LjwwarFAN4qzfYkARWUVgYOzh/ rzyKblqM7kSFeZtEOxWQQ/bQYD3Y2vaBOg1tgm8cK6sDSBqf4HYTHLNvEzaUbM5yE7/d nfBKx3tN4t+0kTKbZI9cXTDf7LkExzcIqblGZLt2VZlDJPlFrEzjTvy3MoPN4AvDKdZM m/OAMgfA/DSTec71carkFdm7Ne6KDLnDbYovSijPYuv06PcOoExavuR7pg7G5pIVesze yfQlOoKqyRmTc8NGEkwRh7yJrSqSpPN7niv/YE9D/Lx/AUqOxrcjsCiriGrx3swrZ1MN eGMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=FeIRagb3l8GAIxxTFxU4Q6aU2CSDL4Bi8gkjNYT/4/8=; b=IFP6BS5zYfZf27GciFRYFd2yU6kkrUUNI/o5gYyF/E3Etib2UAtnlivS8lI+5YsTPd aVMIsz/9wGUUY7rn5Gc30aJzZgXIha2zGJjeG+xlJAF2+t0+t3DHZytXGu5yw2ZKlbbg OKPxUwoDOz5GvpeICbOtkJIBudVn426dOwhz55NMsoSflQo6lPBDkw52njc7GUxc+bwJ Buk+t+lkd7gNNenX6yKtBGckSTmJ1o8bx5XQ5d/oX4tTumXls5/92ZXwAL3uKm/krqEF jhSmeBzroYjfFSSgNQfkUKBPmejpXZMapivsX+D56QL0yLg/bbhMO3JM4CTj9XQgwlMJ L4sg== X-Gm-Message-State: AIVw110cIe4hupk5jegeUXXXoYSdG2fVFsKK9m17WiJAzrwq2TI5KlMq ZW9cgGgOBHrxmbDZ6mCVtXIOc0nZVDzA X-Received: by 10.129.111.213 with SMTP id k204mr14817750ywc.258.1500946048958; Mon, 24 Jul 2017 18:27:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.27.6 with HTTP; Mon, 24 Jul 2017 18:27:28 -0700 (PDT) In-Reply-To: References: From: Karthik Ramasamy Date: Mon, 24 Jul 2017 18:27:28 -0700 Message-ID: Subject: Re: Proposal for Heron API Server To: dev@heron.incubator.apache.org Content-Type: multipart/alternative; boundary="001a1149423a13649005551a3ca0" --001a1149423a13649005551a3ca0 Content-Type: text/plain; charset="UTF-8" 1st version of the api server will support the following commands - submit - kill - update - activate - deactivate We are designing API server to be stateless and it will run as a job in the scheduler (similar to tracker and UI). With this approach, there is no need to worry about availability issues. cheers /karthik On Mon, Jul 24, 2017 at 5:43 PM, Fu Maosong wrote: > I like the idea of *service mode* for heron. > > But we need to be more cautious about merging tracker into API Server, > since it can easily bring scalability and availability issues. > BTW, storm's nimbus serves both topology management requests as well as > metrics requests, which is kind of "merging tracker into API server". We > can learn the pros&cons of such design from it. > > > 2017-07-24 16:57 GMT-07:00 Karthik Ramasamy : > > > *Rationale*: > > > > Currently, Heron supports a single mode of deployment called library > mode. > > Library mode requires several steps and client side configuration which > > could be intensive. Hence, we want to support another mode called service > > mode for simplified deployment. > > > > *Library Mode:* > > > > With Heron, the current mode of deployment is called library mode. This > > mode does not require any services running for Heron to deploy which is a > > huge advantage. However, it requires several configuration to be in the > > client side. Because of this administering becomes harder - especially > > maintaining the configuration and distributing them when the > configuration > > is changed. While this is possible for a bigger teams with dedicated > > dev-ops team, it might be overhead for medium and smaller teams. > > Furthermore, this mode of deployment does not have an API to > > submit/kill/activate/deactivate programmatically. > > > > *Service Mode:* > > > > In this mode, an api server will be running as a service. This service > will > > be run as yet another job in the scheduler so that it will be restarted > > during machine and process failures thereby providing fault tolerance. > This > > api server will maintain the configuration and heron cli will be > augmented > > to use the rest API to submit/kill/activate/deactivate the topologies in > > this mode. The advantage of this mode is it simplifies deployment but > > requires running a service. > > > > *Merging Tracker into API Server:* > > > > Current, Heron tracker written in python duplicates the state manager > code > > in python as well. The API server will support the heron tracker api in > > addition to topologies api. Depending on the mode of the deployment, the > > api server can be deployed in one of the modes - library mode (which > > exposes only the tracker API) and services mode (which exposes both the > > tracker + api server). Initially, the tracker and api server will be in > > separate directory until great amount of testing is done. Once it is > > completed, we can think about cutting over to entirely using API server. > > > > This change will not affect any of the existing deployments and it will > be > > backward compatible. > > > > > > -- > With my best Regards > ------------------ > Fu Maosong > Twitter Inc. > Mobile: +001-415-244-7520 > --001a1149423a13649005551a3ca0--