diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..98b2a8e
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,54 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+SHELL := /bin/bash -o pipefail
+
+VERSION ?= latest
+RELEASE_SRC = skywalking-kong-${VERSION}-src
+
+.PHONY: default
+default: release-src
+
+### test:         Run test suite. Use test=... for specific tests
+.PHONY: test
+test:
+	prove -I. -r -s t
+
+### help:         Show Makefile rules
+.PHONY: help
+help:
+	@echo Makefile rules:
+	@echo
+	@grep -E '^### [-A-Za-z0-9_]+:' Makefile | sed 's/###/   /'
+
+### release-src:  Release source code
+.PHONY: release-src
+release-src:
+	tar -zcvf $(RELEASE_SRC).tgz \
+		./kong \
+		./rockspec \
+		./Makefile \
+		./NOTICE \
+		./LICENSE \
+		./*.md 
+
+	gpg --batch --yes --armor --detach-sig $(RELEASE_SRC).tgz
+	shasum -a 512 $(RELEASE_SRC).tgz > $(RELEASE_SRC).tgz.sha512
+
+	mkdir -p release
+	mv $(RELEASE_SRC).tgz release/$(RELEASE_SRC).tgz
+	mv $(RELEASE_SRC).tgz.asc release/$(RELEASE_SRC).tgz.asc
+	mv $(RELEASE_SRC).tgz.sha512 release/$(RELEASE_SRC).tgz.sha512
+
diff --git a/README.md b/README.md
index 2ea8293..6d1d993 100644
--- a/README.md
+++ b/README.md
@@ -51,5 +51,8 @@
 * Join `skywalking` channel at [Apache Slack](https://join.slack.com/t/the-asf/shared_invite/enQtNzc2ODE3MjI1MDk1LTAyZGJmNTg1NWZhNmVmOWZjMjA2MGUyOGY4MjE5ZGUwOTQxY2Q3MDBmNTM5YTllNGU4M2QyMzQ4M2U4ZjQ5YmY). If the link is not working, find the latest one at [Apache INFRA WIKI](https://cwiki.apache.org/confluence/display/INFRA/Slack+Guest+Invites).
 * QQ Group: 392443393(2000/2000, not available), 901167865(available)
 
+# Release Guide
+All committers should follow [Release Guide](release.md) to publish the official release.
+
 # License
 Apache 2.0
diff --git a/release.md b/release.md
new file mode 100644
index 0000000..0a5cf86
--- /dev/null
+++ b/release.md
@@ -0,0 +1,151 @@
+# Release Guide
+All committer should follow these steps to do release for this repo.
+
+1. Prepare the official release.
+
+- Update the [CHANGES.md](CHANGES.md).
+- Create a new `skywalking-kong-x.y-z.rockspec` file under [rockspec](/rockspec).
+
+2. Package the source release.
+
+```shell
+> export VERSION=x.y.z
+> make release-src
+```
+
+Use SVN to upload the files(tgz, asc and sha512) in the `release` folder to `https://dist.apache.org/repos/dist/dev/skywalking/kong/x.y.z`.
+
+3. Make the internal announcements. Send an announcement mail in dev mail list.
+
+```
+[ANNOUNCE] SkyWalking Kong x.y.z test build available
+
+The test build of x.y.z is available.
+
+We welcome any comments you may have, and will take all feedback into
+account if a quality vote is called for this build.
+
+Release notes:
+
+ * https://github.com/apache/skywalking-kong/blob/vx.y.z/CHANGES.md
+
+Release Candidate:
+
+ * https://dist.apache.org/repos/dist/dev/skywalking/kong/x.y.z/
+ * sha512 checksums
+   - xxxxxxx  skywalking-kong-x.y.z-src.tgz
+
+Release Tag :
+
+ * vx.y.z
+
+Release CommitID :
+
+ * https://github.com/apache/skywalking-kong/tree/xxxxxxxxxx
+
+Keys to verify the Release Candidate :
+
+ * https://dist.apache.org/repos/dist/release/skywalking/KEYS
+
+
+A vote regarding the quality of this test build will be initiated
+within the next couple of days.
+```
+
+4. Wait at least 48 hours for test responses. If there is a critical issue found and confirmed by the PMC, this release should be cancelled.
+
+5. Call for a vote. Call a vote in dev@skywalking.apache.org
+
+```
+[VOTE] Release SkyWalking Kong x.y.z
+
+This is a call for vote to release Apache SkyWalking Kong version x.y.z.
+
+Release notes:
+
+ * https://github.com/apache/skywalking-kong/blob/vx.y.z/CHANGES.md
+
+Release Candidate:
+
+ * https://dist.apache.org/repos/dist/dev/skywalking/kong/x.y.z/
+ * sha512 checksums
+   - xxxxxxx  skywalking-kong-x.y.z-src.tgz
+
+Release Tag :
+
+ * vx.y.z
+
+Release CommitID :
+
+ * https://github.com/apache/skywalking-kong/tree/xxxxxxxxxx
+
+Keys to verify the Release Candidate :
+
+ * https://dist.apache.org/repos/dist/release/skywalking/KEYS
+
+
+Voting will start now (xxxx date) and will remain open for at least 72 hours, Request all PMC members to give their vote.
+[ ] +1 Release this package.
+[ ] +0 No opinion.
+[ ] -1 Do not release this package because....
+
+```
+
+5. Publish release, if vote passed.
+
+Move the release from RC folder to the dist folder. This will begin the file sync across the global Apache mirrors.
+```
+> export SVN_EDITOR=vim
+> svn mv https://dist.apache.org/repos/dist/dev/skywalking/kong/x.y.z https://dist.apache.org/repos/dist/release/skywalking/kong
+....
+enter your apache password
+....
+```
+
+Send ANNOUNCE email to `dev@skywalking.apache.org`, `announce@apache.org`, the sender should use Apache email account.
+```
+Mail title: [ANNOUNCE] Release Apache SkyWalking Kong version x.y.z
+
+Mail content:
+Hi all,
+
+Apache SkyWalking Team is glad to announce to release Apache SkyWalking Kong version x.y.z.
+
+SkyWalking: APM (application performance monitor) tool for distributed systems,
+especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.
+
+SkyWalking Kong Agent provides the native tracing capability for Kong.
+
+This release contains a number of new features, bug fixes and improvements compared to
+version a.b.c(last release). The notable changes since x.y.z include:
+
+(Highlight key changes)
+1. ...
+2. ...
+3. ...
+
+Please refer to the change log for the complete list of changes:
+https://github.com/apache/skywalking-kong/blob/vx.y.z/CHANGES.md
+
+Apache SkyWalking website:
+http://skywalking.apache.org/
+
+Downloads:
+http://skywalking.apache.org/downloads/
+
+Twitter:
+https://twitter.com/ASFSkyWalking
+
+SkyWalking Resources:
+- GitHub: https://github.com/apache/skywalking
+- Issue: https://github.com/apache/skywalking/issues
+- Mailing list: dev@skywalkiing.apache.org
+
+
+- Apache SkyWalking Team
+```
+
+6. upload rockspec file to luarocks.org
+login to [luarocks.org](https://luarocks.org/), the user name is `apache-skywalking` and the password has been sent to `private@skwalking.apache.org`.
+
+Then upload the rockspec file and you can use the `luarocks` command line to install the new version.
