首页 文章 精选 留言 我的

精选列表

搜索[全家桶],共2072篇文章
优秀的个人博客,低调大师

AutoMQ 登顶 Hacker News: 开源项目流量的第一金以及经验分享

01 事件回顾 2024 年 4 月 8 日中午,随着 AutoMQ 的一则简短的标题内容:Show HN: AutoMQ - A Cost-Effective Kafka Distro That Can Autoscale in Seconds[1] 成功登顶 Hacker News (HN) ,我们迎来了大量优质、精准的海外用户的关注。仅在24小时内,我们开源项目[2]的关注量就突破了1K,累计获得 200+高质量的 Star。 对于一个创业公司或新的创业项目而言,初期的宣传是一个巨大的挑战。Hacker News 提供了一个公平且广阔的舞台,在这里展示自己可以获得曝光和认可,对于有意向进军国际市场的创业者或是新开源项目来说都极具价值的。在这里,你也同样可以获得来自极客们的反馈。 | Tips: 如果对 Hacker News 还不太了解的,可以查看参考资料[3] 下图是 Ranking Info[4]上的时段排名以及 Github Traffic 的统计: 02 HN 技术运营心得 其实我们官网新博客页面[5]在 4 月 7 日上线后,才正式开始在 HN 上发表一些内容。在短短这几天时间,我们就成功登顶了 HN,还是非常幸运的。下面分享下我们这次成功经验的一些心得。 内容试水掌握 HN 规则 在登顶 HN 的帖子发布之前,我们发布了以下 2 篇内容: ꔷAutoMQ: An open source Kafka solution that is more scalable,cost-effective[6]:初看起来,这篇文章似乎与我们登顶的标题非常相近,但是最终呈现出来的结果却截然不同。我们将在后文揭示其中的秘密。作为首篇文章,其内容的主要价值在于试水 HN 的规则,以了解该平台的发帖逻辑。 ꔷ Redis License Change:A Competitive Game Between OSS and Cloud Computing Giants[7]:开源和商业化是个很值得探讨的主题。因此我们选择了它作为第二篇内容,希望能引发一些讨论。尽管最终并未引起广泛的话题参与,但持续的尝试仍然非常重要。毕竟 HN 上每天都会出现大量的帖子,即便内容十分合适,获得注意且最终能火爆起来也是一个概率性事件。我们能做的就是持续产出优质、原创的内容。 经过前两篇内容的发表,我们掌握了 HN 的一些基本玩法: ꔷ 新号的限制:注册后大概 2 周的时间,你在 HN 上的名字展示时都是绿色的,方便别人识别你是一个新号。新号评论和发帖大概率都是 dead。 ꔷ 不要推广:无论是评论还是标题,请不要包含一些夸张的形容词以及其他任何造成推广意味的内容。推广的帖子和评论会由于违反版规变成 dead ,即使没有变成 dead,HN 上的读者也是非常讨厌看到这一类内容的。下面第一个标题和评论就是一个负面案例,作者急于用一些“漂亮”的形容词在标题和评论中展示自己的产品是多么的“牛 x”,这样的结果就会直接导致帖子被标记为 dead。 | Tips: 可以参考下图在 HN 上打开展示 dead 的内容,方便我们更好了解哪些是负面案例 ꔷ保持真诚客观:在 HN 上,真诚客观地描述是受欢迎的。我们观察比较热门的帖子,基本都有类似的特征:直接地告诉别人你做了什么事情就可以了。 ꔷ熟悉各板块的功能: new: 展示最新的帖子。这里的帖子就是按照时间滚动,和热帖是没关系的。 thread: 展示你的回帖。 past: 可以查看过去某天、月、年的热帖。排在前面的是按照 HN 算法。 comments: 查看最近的评论。 ask: 如果你的帖子以 Ask HN: 开头,那么你的内容除了在 new、past 等板块也会展示在该板块。 show: 如果你是希望分享、推荐一些东西,只要帖子以 Show HN: 开头那帖子除了在 new、past 等板块也会展示在该板块。 jobs: YC 投资的一些公司的招聘信息。 submit: 关键的发帖按钮。如果携带了 url,则可以不包含内容。 热帖成功原因揭秘 前文可以发现我们第一篇试水的内容其实和最终成功的帖子有着相似的标题,但是截然不同的命运。这次登顶帖子的成功可能可以归功于以下一些措施。 放到 Show HN 板块 初期对于 HN 规则的探索是至关重要的。如果你的内容是直接关于产品分享的,需要放到 Show HN 板块。这个板块从功能上来说本来就是用于给你展示产品的(当然仍然需要保持我们的原则,不要推广)。合适的内容放在合适的板块可以曝光最大化。在 show 板块发布,你的帖子内容既可以在 show 板块展示,也可以在 new 板块展示。此外,来这个板块的人本身就是关注一些新事物的,他们对新事物也会有更好的包容性。 美观的 Github Readme 与直接引流 这个热帖其实并没有关联内容,其 URL 直接指向了 Github。如果你的目标是增长 Github 开源项目的关注,这种方式无疑是个不错的方式。中间每经过额外一跳,你的转化率都会下降。根据我们经验从 HN 上过来的流量,也只有约 10%左右会真的 Star。由于没有直接和内容关联,此时你的 Readme 就会显得非常重要,请务必好好“装修”你的 Readme 确保首次看到你项目的人一眼就可以知道你在做什么,以及你的优势。 取好标题 在 HN 上,每时每刻都会有新的内容出来将你的排名挤下去。如何在最短时间内吸引他人的关注就会变得十分重要。第一篇内容之所以没有展现出效果,很大原因可以归结于其没有发在合适的板块,以及标题上还不够顾名思义和吸引人。 在有限字数下,使用准确的词语把产品是什么、最核心优势是什么表达出来其实是很有挑战的。对于 AutoMQ 来说,一定要提到的关键词属性一定是: ꔷKafka : AutoMQ 是完全 100%兼容 Kafka 的,其本质可以理解成就是一个社区分叉的 Kafka。太多字表达清楚这个含义就会太啰嗦。人们往往善于将新知识和过去已有的知识进行类比来快速理解,因此为了避免使用新概念,而去使用大家已经充分理解的词汇对于让大家一眼明白你“是什么”非常重要的。最终我们精炼这个词语为“Kafka Distribution”。由于大家都知道 Linux Distribution 的含义,再对照着理解下 Kafka Distribution 自然就顾名思义了。此外,这里使用 Distro 缩写是碍于标题长度的限制。 ꔷ成本 :相比 Kafka,AutoMQ 可以带来指数级的成本降低这点非常重要。这里我们选择了可以符合开发者理解并且精确表达成本效益好的单词 cost-effective。通过 Cost-effective Kafka Distro 三个单词,我们就已经成功表达了两层含义。 ꔷ弹性 :AutoMQ 可宣传的技术点其实是非常多的,包括秒级分区迁移、持续分区重平衡、基于 S3Stream 的存算分离架构。这些技术点的本质还是弹性问题。这是 AutoMQ 技术投入重要解决的问题,也是 Apache Kafka 一直没有解决好的最大痛点。所以在标题里面我们也非常“慷慨”地多使用了几个单词来表达我们在弹性这一块的能力,即 can autoscale in seconds。这强调了我们一系列技术投入反应出来的最终成果,即这个 Kafka 发行版是可以在秒级内完成自动伸缩的。这里也同样遵循了“不引入新概念”的原则。 | Tips: 由于我们不是英语母语者,为了确保用词准确,可以在 HN 上搜索下自己使用的单词。如果很多热帖也都是使用一样的单词,那么可以认为其是非常推荐使用的 初期的评论和点赞 初期的点赞和评论也是很重要的。初期的几个点赞可以保证处于“新鲜期”的帖子能在首页多停留一会儿,增加一些帖子变火的可能。不过注意不要大量用新小号刷赞回帖,这是违反社区规范的。不过邀请一些身边相关的开发者一起参与讨论并且给出一些有价值的评论是十分有意义的,可以达到抛砖引玉的效果。一些好的评论可以给其他读者启发,引发一些深度的技术交流,这是社区提倡的。 一些运气 我们得做好准备,即使做好了一切工作,也不一定可以确保帖子登顶 HN。遇到几个“贵人”给你点赞,并且参与讨论给出有价值的内容确实需要一些运气。不过只要我们用正确的方法,持续去产出优质的内容,那么可以预见的是,成功会迟到,但是不会缺席。 参考资料 [1] Show HN: AutoMQ - A Cost-Effective Kafka Distro That Can Autoscale in Seconds:https://news.ycombinator.com/item?id=39966114 [2] AutoMQ Github Repository:https://github.com/AutoMQ/automq [3] 混迹 Hacker News (HN) 一年的一点经验: https://zhuanlan.zhihu.com/p/598463171 [4] Hacker News Ranking Info: https://hnrankings.info/ [5] AutoMQ Blog: https://www.automq.com/blog [6] AutoMQ: An open source Kafka solution that is more scalable,cost-effective: https://dev.to/wanshao/automq-an-open-source-alternative-to-kafka-more-scalable-and-cheaper-2aia [7] Redis License Change:A Competitive Game Between OSS and Cloud Computing Giants: https://news.ycombinator.com/item?id=39957863 [8] Hacker News 的热门排名算法:https://zhuanlan.zhihu.com/p/633013574 关于我们 我们是来自 Apache RocketMQ 和 Linux LVS 项目的核心团队,曾经见证并应对过消息队列基础设施在大型互联网公司和云计算公司的挑战。现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。 🌟GitHub 地址:https://github.com/AutoMQ/automq 💻官网:https://www.automq.com 👀 B站:AutoMQ官方账号 🔍视频号:AutoMQ

优秀的个人博客,低调大师

从蜜雪冰城到星巴克、麦当劳、全家:看新零售独角兽“非码”如何用开源 Zadig 实现 15 万家门店实现每周发布 7 次

“我们需要非常快速的迭代节奏,客户爸爸说明天上,通宵熬夜也要完成目标,一周 7 次迭代也是常有的事:没有 Zadig, 我们的自动化测试不可能做起来,更不可能满足客户的需求。 有了 Zadig 的环境治理能力,自此我们的开发专心做 coding,环境构建部署交给Zadig;测试专心写用例,环境资源交给 Zadig;运维专心做维护,服务管理交给Zadig;不仅大大缩减了我们在上线前的迭代效率,稳定的环境也提供了大家对上线质量信心 在使用 Zadig 的 2 年中,我切身感受到这个产品的前瞻性,是非常具有创新性的产品,可以说给整个行业带来了新的 软件交付 3.0 时代。Zadig 已经开源,相信会有更多企业感受到其魅力!” 非码科技质量部技术负责人:钱娟娟 Zadig on Github/Zadig on Gitee 阅读原文/加入 Zadig 技术交流群 写在前面 非码是为新零售行业的每一个商家提供解决方案,面对的客户是每一个开门做生意的门店。 你可能没听说过非码,但你一定听说过: 对!从蜜雪冰城到麦当劳,从老乡鸡到星巴克,他们都是非码的客户! 你也看到了,非码服务的客户大多是一线标杆商户,为了吸引消费者,每季更新新品菜单、每个节日花样大促、会员节优惠狂欢、紧跟热点的游戏上线等等都是非常经典的营销。为了帮助客户达成市场营销策略,我们需要非常快速的迭代节奏,客户爸爸说明天上,通宵熬夜也要完成目标,一周 7 次迭代也是常有的事。 同时,因为常常有火爆的活动引流,高并发是我们经常面临的真实场景。所以在上线之前,除了保障功能可用性,系统稳定性也是我们非常重要的指标,在大型的活动,如为了保障我们其中一个大客户的 88 会员节活动,我们甚至会提前三个月做准备,包含功能迭代封版、系统调优、高可用测试、全链路性能测试,使得服务单接口的性能指标要达到过万的并发能力。 非码业务架构概图: 要知道非码面对的商家,在系统中可能是一串代码一条数据,但门店店员直面消费者,系统出了任何问题都会被当面质问。我们自己在生活中也是一个个消费者,试问你开开心心去门店消费,打开手机下单却提示你“系统异常”、明明有优惠券却使用不了、付了钱店家却说没收到订单......,想想都觉得美好的心情被破坏。可想而知,门店的压力非常之大,我们也必须要具备高效故障定位能力、并能迅速测试后 Hotfix,第一时间解决客诉。 初遇 我们拥有着复杂的业务系统,面临着新零售行业高频迭代、高并发场景,产品质量和稳定性是最根本目标。为了达成这个目标,我们一步步摸索着,逐渐开始了技术转型和测试转型。 首先是技术转型。 非码前期服务为了更快迭代功能,选择以项目制开发,服务端有各自的实践方式,在系统技术架构上缺少设计。随着业务发展,服务端选择不再项目制的重复造轮子,使用微服务最佳实践作为核心,减轻之前积累的技术包袱。 接着我重点谈下测试转型。 刚开始和很多创业公司一样,测试的作用集中在黑盒测试,瀑布式的按部就班作业,等待运维维护环境、等待开发提测(开发晚提测也只能催)、手工点点、上线回归,顺便疑惑怎么测试环境没有这个问题? 随着非码的业务发展和技术转型,从1条业务线扩展为 2 条、到后面的 5 条业务线,业务线之间也并不完全独立,有定制化有产品化,有基础服务也有聚合服务,微服务数量呈几何增长速度。测试的工作量和复杂度有了非常大的挑战,我们开始思考,开始了测试的转型之路。 首先是拒绝被动,测试人员要"走"出去,质量保障是一个过程,不是一个结果。走到开发的前面和产品沟通用户需求,利用自身的优势--比产品懂技术、比开发懂业务,需求阶段和开发设计阶段就可以排雷。另外一点是走到上线的后面,关注用户反馈和影响范围,分析系统稳定性和测试质量的薄弱之处。 其次是自动化测试,(一般提到测试进阶第一个想到的就是自动化测试,我们认为自动化测试是测试转型的一种途径,不是目标,先摆正思路更重要),在团队只有业务测试人员的背景下,我们第一选择是通过开源测试工具实现自动化,但多数偏向于个人不便于团队协作。秉承着发挥自动化最大价值的初心,我们慢慢通过开发一些提高效率的小工具,最终选择以接口测试为切入点自己写代码实现自动化(UI 自动化试点后,发现我们业务特性不适合)。我们多线业务,且业务灵活度较高,服务接口变化也很快,通过学习和逐步尝试,针对我们业务特性,设计了接口结构灵活变更的自动化方式(Python+unittest 后改版为 Python+pytest),结构概要如下 最后是环境管理,自动化完成后也遇到了诸多落地困难,我们之前的环境都是虚机,环境部署无法自动化,也就无法保障自动化测试的代码最新版本,想要实现自动化能同步测试不同版本的、不同分支的代码更是困难。除此之外,虚机环境的成本和管理也很难控制,我们推动设立了“测试环境管理员”一职,轮班管理测试环境,缓解了一部分混乱现象,但自动化测试的效益仍被限制。并且开发除去代码开发的时间投入,也花费了大量时间在环境部署、服务联调上。 之后我们又迎来了docker K8s的转型,服务管理有了新的方式,也逐步学习 CI/CD 的高效迭代方式,我们开始摸索自动化和其产生的火花。也在一次技术峰会上,我们CEO 和 CTO 结识了李倩,邀请李倩给我们做了多次技术分享,李倩对软件微服务快速交付的理念,与当下正在寻求快速迭代解决方案的我们,不谋而合。进而知道了 KodeRover 的产品Zadig(开源之后的名字,下文统一用 Zadig 这一名称),立刻被这个产品所吸引。 一拍即合 Zadig 最吸引我们的地方便是: 快速创建环境。Zadig 基于 K8s NS 支持一键拉起一套新环境,是当下解决我们环境管理痛点的最优解决方案。 工作流管理微服务启动顺序。解决了我们技术转型后,服务数量猛增后引发的依赖管理问题。 优秀的 k8s 服务编排机制。Zadig 的单个应用可维护 N 个资源控制器,极大降低了维护、排错成本。 我们迅速在团队内部试点 Zadig,选定了我们点餐业务线进行了服务迁移。在之前我们的环境无法严格控制权限管理,测试和运维同学依赖手工构建、部署、服务启动等,有了 Zadig 的快速创建环境,我们对环境进行了重新管理,大致如下: 有了 Zadig 的环境治理能力,自此我们的开发专心做 coding,环境构建部署交给Zadig;测试专心写用例,环境资源交给 Zadig;运维专心做维护,服务管理交给Zadig;不仅大大缩减了我们在上线前的迭代效率,稳定的环境也提供了大家对上线质量信心。 如虎添翼 同时,因为有了稳定的环境,自动化测试终于真正意义的“自动化”了。 此前,我们自动化测试虽一直都在执行,但其实收益较低且相对滞后,因为无法完全保障测试环境和自动化环境的一致性,也难以做到测试左移。Zadig 便提供了这样的功能,且对接方式十分简单,除了定时任务、测试执行、报告展示常见功能之外,还具有强大的统计分析功能,多维度直观的展示测试自动化的过程、收益。 至此,我们的自动化测试实现了测试左移,使得开发在发版后,立刻知晓自己本次发版质量,在测试人员无需介入的情况下,实时跟进发版的质量问题,并以此结果作为自测的验收标准。 能更早的发现问题、解决问题,使得测试收益最大化,自动化测试执行结果成为质量验收标准的一项重要指标。现在业务线仍在增加、生态也在向支付宝、抖音发力,对此我们有信心做的更好。 未来可期 我们在使用Zadig中感受到这个产品的前瞻性,是非常具有创新性的产品,给行业带来了新的软件交付时代。 Zadig 已经开源,相信会有更多企业感受到其魅力,未来可期! KodeRover KodeRover 是开源、分布式持续交付(CD)产品 Zadig 背后的团队,专注于云原生软件交付产品的研发。我们的目标是通过云原生技术的运用和工程产品赋能,打造极致、高效、愉悦的开发者工作体验,让工程师成为企业创新的核心引擎。 加入 Zadig 技术交流群

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。