博客

post-image

如何规模化企业的数字化服务--Kubernetes的最佳实践

2020-03-20 作者 郑思龙 Kubernetes, Docker, CI/CD, 云计算, 微服务

企业的线上产品的发展主要分为3个阶段。第一阶段主要是快速打造产品,然后推向市场并验证想法;第二阶段主要是打磨产品同时发展用户基数,使得用户基数达到千万级别;第三阶段则是维护产品,迭代新功能,保证产品能够为企业带来持续的收入。每一个阶段都会有对应的技术手段来支撑,本文的内容主要解决企业在第二阶段所面临的挑战。这些挑战主要有:企业如何在原来的基础上重构数字化产品?企业如何构建支撑千万级用户的数字化产品?对于后者,企业需要综合多种技术手段来实现,其中Kubernetes(K8S)在容器编排方面为拥有千万级别用户群体的服务提供了支持。接下来,让我们看看K8S是如何规模化数字化产品的。

阅读全文
post-image

从提出想法->对外发布产品--如何0成本在github上缩短该过程

2020-03-19 作者 郑思龙 软件研发流程, 持续集成, CI/CD, 云计算, 持续部署, 软件自动化, Infrastructure as Code

Craft a shorten URL service base on AWS in 1 day With Cloud Computing becoming popular, uniform and standard software development methodologies are arising, meaning that companies can leverage out-of-the-box infrastructures provided by Cloud providers, such as AWS, to craft complex yet competitive software product in order to domain markets in a short time, sometime, even in a day. Here, I will show you how to combine some sort of services provided by AWS, to build a production-grade shorten URL service with high availability, resiliency and maintainability in just one day!

阅读全文
post-image

如何提高企业的研发效率--CI/CD

2020-03-18 作者 郑思龙 软件研发流程, 持续集成, CI/CD, 云计算, 持续部署, 软件自动化, Infrastructure as Code

CI/CD是现代软件研发过程中必不可少的基础设施。类似于福特流水线,它能够帮助企业提高软件的研发效率,提高软件的质量以及对外发布新功能。CI/CD能够帮助企业的研发团队提高研发效率。CI/CD将企业中的所有研发人员,包括研发团队,测试团队,DevOps团队,串联在一起,使得上一个团队的输出都可以顺利地流转到下一个团队。CI/CD能够帮助企业提高软件质量。研发团队借助CI/CD能够快速看到修改产品之后的结果,从而能够及时解决因修改不当而引起的问题;测试团队将UI测试,集成测试接入到CI/CD中,使得软件产品对外发布之前,都有足够的自动化测试来验证其功能。CI/CD能够帮助企业及时对外发布产品的新功能。DevOps团队只需要执行一个命令,就能将研发团队所研发的新功能通过机器自动地部署到生产环境中,有时还能支持线上实时更新!CI/CD分为2部分,它们分别是CI和CD。每个部分都需要借助一些工具和经验来实现,其中<如何0成本在github上构建CI>通过一个例子来构建CI,而本文将围绕CD来展开,包括Continue Test,Continue Monitor,Continue Security,Continue Deployment等。

阅读全文
post-image

如何0成本在github上构建CI

2020-03-17 作者 郑思龙 软件研发流程, 持续集成, CI/CD, 云计算, 持续部署, 软件自动化, Infrastructure as Code

现代软件的研发流程基本上均会配备一定程度的CI/CD(这篇文章解释了为何需要在企业里实施CI/CD),整个流程主要分为CI和CD部分,这篇文章将围绕CI部分展开,并通过一个具体的例子解释如何0成本在github上构建CI。构建CI的最佳实践离不开Trunk Based Development的分支策略,感兴趣的读者可以通过这篇文章来了解什么是Trunk Based Development。在github上构建CI有2个好处:无需任何费用和有大量可以用于构建CI的模块,借助这2个好处,小规模团队可以快速地搭建还不错的CI流程。接下来,让我们结合一个使用Go编写的Hello World例子以及基于Trunk-Based Development模式来构建这个CI流程。

阅读全文
post-image

如何提高企业的研发效率--trunk-based development

2020-03-16 作者 郑思龙 软件研发流程, trunk-based development, CI/CD, 云计算, 分支管理

企业的研发团队在研发产品功能时通常会选择2种分支管理策略,它们分别是Feature Branches Development和Trunk-based Development。2种分支管理策略都有它们适用的场景,比如在github上研发开源软件时,经常会使用Feature Branches Development模式,而Google,Facebook,LinkedIn,微软常常会使用Trunk-based Development模式。企业在实施CI(持续集成)时通常需要Trunk-based Development方面的实践,原因在于这种模式能够快速输出集成的结果。本文将围绕Trunk-based Development展开,并提供一些可实施该模式的操作步骤。

阅读全文
post-image

Terraform、aws-vault和Go实用技巧指南

2020-03-15 作者 郑思龙 Terraform, 自动化经验, 云计算, Go

Terraform实用技巧 aws-vault实用技巧 Go实用技巧 组合Terraform、aws-vault和Go工具的实用技巧 本文记录了2cloudlab.com在使用Terraform、aws-vault和Go工具所积累的知识和经验。这些知识和经验是在解决某些问题的时候发现的,如果能够将这些知识和经验汇总,也许能够帮助到其他团队。

阅读全文
post-image

如何通过命令行访问AWS服务-最佳实践

2020-03-15 作者 郑思龙 AWS, 命令行, 授权访问

使用命令行操作AWS服务之前,需要输入登陆凭证。每一个研发人员会经常使用不同账号的登陆凭证来完成他们的工作,比如在测试账号中进行测试工作,在stage账号中部署测试通过的功能等。在现实的工作中,每个研发人员每天平均会操作AWS服务20~50次,而每次都需要给AWS提供登陆凭证。因此为了提高一个团队的研发效率,需要采用一个能够高效访问AWS服务的方法。本文将对比几种方法,并最终给出一个更加有效的方法来访问AWS。

阅读全文
post-image

提高研发团队使用AWS服务的效率x100--高效使用aws-vault工具

2020-03-10 作者 郑思龙 aws-vault工具, 研发效率提升, devops, cicd, 云计算, cloudcomputing

在DevOps的世界里有太多工具需要掌握,命令行工具就是其中之一。企业在打造DevOps的过程中会经常使用命令行工具访问AWS服务。一名研发人员每天可能要在命令行里反复(平均50~60次)输入登录AWS的凭证才能创建资源,如果为每一名账号引入安全机制,那么这个登录流程耗时更长!为了减轻这种重复登录所带来的痛苦,则需要一个更加友好的命令行工具来辅助,这个工具就是:aws-vault。

阅读全文
post-image

让产品7*24小时持续服务于用户--在线更新产品功能

2020-02-15 作者 郑思龙 2cloudlab.com, 云计算, devops, terraform, rolling deployment

当企业对外发布产品的新功能时,如何保证原有的功能不受影响,仅替换需要升级的功能?企业无法接受在线服务暂时性停止对外服务。试想想,几十万用户正在使用某个软件产品,突然因为企业的一次功能升级,导致几十万用户无法正常使用,最终造成企业损失。幸运的是,在软件行业,有几种方案可以解决这类问题。

阅读全文
post-image

Go编程的奇幻之旅(一)基础知识

2019-12-15 作者 郑思龙 Go, 并发, 编程

本文将指导你如何准备Go研发环境以及介绍一些基础语法知识。这些内容能够帮助你快速地在企业中应用Go语言所带来的好处。这些好处有:跨平台、丰富的三方库、并发和内置自动化测试功能。本文将按照以下几个方面来介绍Go:

阅读全文
post-image

如何为产品提供可信度较高的运行环境

2019-11-15 作者 郑思龙 2cloudlab.com, 云计算, devops, terraform, 自动化测试

在企业中经常会发生此类事情:临近产品新功能发布的日子,企业上下忙的不可开交,甚至有些研发人员被半夜叫醒解决新功能无法使用的问题,大家急急忙忙将遇到的问题解决了却又引发了其它问题,最终导致产品新功能无法及时发布或者产品运行在一个容易奔溃的环境。这类事件反复发生,使得研发人员害怕产品新功能的每一次发布。这种害怕将导致企业延长新功能的发布周期,本来一周一次的发布计划改成了一个月一次发布。更长的发布周期将会积累和隐藏更多的风险和不确定因素,因此这类事件变得更加常见,问题变得更加糟糕!面对这个问题所带来的挑战,企业需要缩短发布周期来及早暴露和解决问题,而缩短发布周期的关键点在于如何在短时间内发现更多的缺陷!自动化测试是实现这个关键点的因素之一。

阅读全文
post-image

如何正确使用2cloudlab.com的服务

2019-10-15 作者 郑思龙 2cloudlab.com, devops

企业在为软件产品提供运行环境时需要做的事情太多了。这些事情有安装软件、配置软件、创建服务器、准备数据库、监控等等。如果每一件事情都需要手动去完成,那么效率是低下的,而且容易出错!在2cloudlab,我们试图通过自动化的方式处理以上事情。因此2cloudlab提供了各种可重复使用的模块,通过组合这些模块以及依赖计算机执行这些模块来加速产品运行环境的生成!2cloudlab致力于让企业在一天之内创建完整的软件运行环境。

阅读全文
post-image

企业如何在一天之内部署线上服务--高效使用terraform

2019-07-15 作者 郑思龙 terraform工具, 企业的数字化转型, devops, cicd, 云计算, cloudcomputing

terraform是一个用go语言编写的跨平台、开源、只有单个运行文件的命令行程序。terraform通过解析和执行terraform configuration文件集合,最终会在短时间内生成分布式软件所运行的环境,避免了手动配置环境,减少出错的可能性。在企业里,要想高效地使用terraform来正确且快速地生成分布式软件所运行的环境,不仅需要掌握terraform知识,还需要结合工程方面的实践经验(比如版本控制,模块划分,测试)以及其它工具(比如Packer、Docker、Kubernetes)来共同实现。

阅读全文
post-image

企业为何需要在内部推广Devops

2019-02-21 作者 郑思龙 DevOps, CICD, InfrastructureAsCode

企业对外发布产品之前其在内部需要做好各种准备:研发工程师完成产品研发,测试工程师完成产品测试,DevOps工程师部署产品。在这个过程中遇到任何问题,都会影响产品的发布,因此企业在数字化转型的过程中都需要优化这一流程。在软件行业中,优化这个流程的方法论是:DevOps。

阅读全文

听起来还不错 ?

如果你所在的企业遇到了以下问题:
研发流程混乱不堪或者效率低下、经历了持续上升的运维成本、无法及时向用户发布新的服务或产品以及想使用云计算技术但缺乏经验!
那么,请毫不犹疑地

联系我们