回顾过去的一年,DevOps技术圈风起云涌,开源社区和商业软件在DevOps领域取得长足进步。今天从IssueTracking系统、开发语言、构建、持续集成、服务器、容器等方面,盘点一下过去一年DevOps工具的使用情况和技术发展趋势。这里的IssueTracking系统指的是JetBrain(IntelliJIDEA的开发者)对全球20个国家(包括中国、美国、英国、日本等国家,覆盖率达70%)的5000名软件工程师进行了全面调查。开发人员)。调查结果显示Jira是最好的IssueTracking系统,只有C#开发者倾向于使用微软的TFS(TeamFoundationServer)。GithubIssue也因为免费而受到很多互联网公司和开源社区的青睐。个人比较推荐小团队可以使用Gitlab的IssueBoard,可以满足基本的看板需求。不过如果需要丰富的报表功能,还是推荐使用Jira。Jira的插件市场有非常丰富的报表插件,Jira本身也提供了强大的定制化功能。能够满足不同用户的各种需求。开发语言JavaScript无疑是使用最广泛的语言,而Java仍然是后端开发的主导语言。构建工具71%的Java开发者使用Maven构建,Gradle的使用率达到42%。灵活性和性能的提升,确实为开发者带来了更灵活的选择。Netflix和LinkedIn等公司使用Gradle进行构建。未来其增长趋势有望超过Maven,而使用Ant的用户数却在逐年减少。持续集成服务器Jenkins仍然是世界上最流行的持续集成工具。国内某社区曾经调查过,Jenkins在国内的使用率在70%左右。为什么Jenkins如此经久不衰?这得益于Jenkins的插件生态。Jenkins社区中有数以千计的插件,可以轻松连接到任何DevOps工具。TravisCI是公有云上的持续集成服务器。对GitHub和GitLab有很好的支持,深受AWS用户的喜爱。测试工具随着DevOps时代的到来,企业面临着快速发布和质量提升的需求。上图来自Gartner2017年自动化测试工具魔力象限,对业界主流测试工具提供商进行了评估,其中:●MicroFocusMicroFocus在全球拥有40,000+用户,主要客户包括AIG、BMW等。作为领导者在市场上,其优势在于提供了一套完整的软件生命周期管理解决方案,包括ALM和核心产品UFT(统一功能测试),以及BPT(业务流程测试)工具等,让用户可以进行一个-停止持续交付。其缺点是被HPE收购后,与HPE现有产品线重合度高,未来发展不明朗。此外,该产品相对较重,对于寻求轻量化产品解决方案的企业来说吸引力不大。●TricentisTricentis在自动化测试领域处于领先地位。国内用户可能很少听说过这家公司。它在北美有很好的市场份额,但测试工具的主要市场在欧洲和亚洲。公司需要在这些地区进行更广泛的研究。推动。下图是Tosca和HPE的UFT和Selenium的对比:可以看到Tosca与第三方工具的对接比Selenium好,集成度也高。一个好的DevOps工具的特点之一是它可以灵活、容易和第三方工具集成。●Selenium图中没有提到Selenium,但是作为一个开源的自动化测试工具,Selenium在功能自动化测试方面仍然占据着很大一部分市场。如果您在StackOverflow上搜索Selenium,您会发现48,800个问题。如此活跃的社区让Selenium得以存活。基于Selenium开发的测试框架也有很多,比如RobotFramework等。容器编排平台CNCF(CloudNativeCloudFoundation)在KubeCon大会上对容器编排平台的使用情况进行了调查。它调查了1,500名会议参与者,其中41%来自DevOps/SREs团队,29%来自开发团队。30%的受访者来自员工人数超过5,000人的公司。发布的调查报告显示,Kubernetes已经占据了70%以上的容器编排平台市场。2017年是Kubernetes的众神之年。从下图可以看到GitHub开源项目前30名:Kubernetes在GitHub上的Star为32.6K,排名第五,参与人数和Commits跃居第二,仅次于***Linux项目。在过去的一年里,原本支持Mesos或其他容器编排工具的厂商开始支持Kubernetes,转型较早的平台也开始收割,例如:Openshift,RedHat在2017年的收入达到了24亿,截至2017年以Q3的数据来看,Openshift已经完成了超过50个6-7位数的订单。2018年Kubernetes将如何发展?从去年的KubeCon大会上也可以注意到,来自RedHat的Kubernetes架构师ClaytonColeman宣布Kubernetes社区在2018年有几个重要的关注点:ServiceMesh2018将是ServiceMesh元年,ServiceMesh是用于描述大规模微服务部署情况下服务网络之间的复杂协作。业界知名的框架有:Istio、Envoy、CONDUIT等。其中IBM、Google等公司贡献的Istio比较知名,在Github上有近6000个Star。Istio的初衷是为了解决微服务规模越来越大,服务之间的服务发现,负载,失败重试,监控,以及更复杂的需求如:A/B测试,端到端认证,权限访问控制等对大数据和机器学习工具的支持Spark和TensorFlow在Kubernetes上的部署变得越来越容易,Kubernetes社区将继续优化对大数据和机器学习工具的支持。改进应用配置每个公司使用应用配置的方式不同,但是18年的Kubernetes社区将更多的精力投入到部署和配置的优化上。社区中有很多优秀的项目,比如KubernetesHelm,它是Kubernetes的基础。包管理平台,使用Helm管理Kubernetes需要的资源,可以理解为Kubernetes中的apt/yum/brew。使用Helm可以从社区获取大量优化过的Kubernetes应用配置,可以对Kubernetes应用进行版本管理,如回滚、灰度发布等。在KubeCon上也备受关注,6个Tracks专门介绍了Helm的特性以及Helm未来的发展方向。2018年Kubernetes还将支持ServerLess工具,如Openwhisk、Kubeless等,集成LDAP,支持多租户,支持多容器和虚拟机运行环境,如cri-o、KubeVirt、hyperv等。对了,CNCF来了。CNCF是一个成立于2015年底的非盈利组织,隶属于LInux基金会。如果你想成为CNCF的成员,你必须先成为Linux基金会的成员。CNCF的使命是引领一个能够支持数万个自愈多租户节点的新型分布式计算系统。CNCF孵化了很多知名项目,包括Kubernetes、Prometheus、OpenTracing、Rkt、Envoy等,从上面的CNCF会员名单也可以看出,DevOps行业的巨头都加入了会员。从CNCF的BoardMember名单来看,Amazon的云架构师AdrianCockcroft、CoreOs的CTO、RedHat的资深科学家都在引领CNCF的方向。有两家国内公司在董事会中占有一席之地。他们是阿里和华为。中国可以开发的技术正在逐渐影响世界。相信2018年CNCF在全球的影响力会继续扩大。FaaS(FunctionasaService)AWS首席云架构师(前Netflix首席架构师)AdrianCockcroft认为,业务逻辑的载体在五年前就从传统的单体应用迁移到了微服务。现在,业务逻辑的载体将从微服务向功能演进。从5年前到今天,我们已经能够完成微服务的构建。业务逻辑可以在容器上运行。开发人员不需要知道特定容器在哪个节点上运行。即使容器出现故障,容器管理平台也可以实现故障自愈。FaaS认为微服务并不是业务逻辑的最小载体。函数可以作为业务逻辑的载体,让开发者无需关心服务器在哪里,如何扩展。这些事情就交给FaaS了。公有云厂商在FaaS的建设上投入了大量资源,如AWS的LambdaFunction、微软的AzureFunctions、Google的CloudFunctions。开源社区比较知名的框架是ServerLess,可以对接各种云平台提供的FaaS功能。GitHub有数以万计的Star。而AWS的LambdaFunction可以实现“即时方法”,即方法按需创建,按需使用,用完销毁。AWS根据使用的数百微秒计费。当系统闲置时,自动关机,无需任何费用,大大降低了用户的使用成本。也许你要问了,如果程序员写了一个死循环的方法调用,会不会一直扣钱直到破产?当然不是,AWS会限制一个Region的并发方法数不超过100个。当然,FaaS还是一个比较高级的概念,由于要进行改造,真正落地还需要一段时间项目。DevOps数据可视化市场上数据可视化的工具很多,但是专注于DevOps的数据可视化工具还很少。去年,首创的开源项目——Hygieia为国人所熟知。Hygieia是CapitalOne内部孵化的一个项目。为了解决DevOps工具链中数据碎片化的问题,Hygieia提供了一个Collector用于收集不同工具的数据,将数据存储在MongoDB中,然后将数据可视化展示。综上所述,过去一年出现了很多新技术。把握好这些技术的发展方向,对于公司内部技术平台建设和技术发展方向非常重要。新的一年,希望大家多多关注JFrog公众号,获取一手硅谷科技资讯。
