Project Sagan:零停机部署

工程 | Chris Beams | 2014年4月4日 | ...

上周,我开始这个系列,宣布Sagan参考应用程序现已开源,并展示了如何在您自己的机器上启动和运行它。

在这篇文章中,我想介绍一下我们如何在 spring.io 上每天多次使用蓝绿部署将 Sagan 推送到生产环境中,而不会出现任何停机时间。您可能以前听说过这种技术;Martin Fowler 几年前写过一篇关于它的文章,并且在强烈推荐的书籍Continuous Delivery中有一节专门介绍它。简而言之,它是这样工作的

  1. 维护生产环境的两个副本(“蓝色”和“绿色”);
  2. 通过将生产 URL 映射到它,将所有流量路由到蓝色环境;
  3. 在绿色环境中部署和测试对应用程序的任何更改;
  4. “切换开关”,即将 URL 映射到绿色环境并取消映射到蓝色环境。

评论回来了!

工程 | Chris Beams | 2014年4月1日 | ...

当我们推出新的 spring.io 时,我们关闭了博客的评论功能。一方面,这是因为我们时间有限,关闭评论功能是最简单的方法。另一方面,这是一个极简主义的实验。我们认为我们可以减少反馈渠道的数量,从而提高整体质量。我们要求每个人将他们对我们博客帖子的问题和反馈发送到@springcentral Twitter 句柄,并且你们中的许多人确实这样做了——谢谢!

那么结果如何呢?好吧,我们听到社区的一些反馈,他们想念博客上的评论…

本周 Spring(Spring Boot 版!)- 2014年4月1日

工程 | Josh Long | 2014年4月1日 | ...

欢迎大家来到一个具有里程碑意义的本周 Spring - Boot 版

今天,当然,是愚人节。作为愚人节的笑话,外面有很多很棒的东西!今年我们没有准备任何恶作剧,但我总是喜欢让人们看到这段仍然史诗般的视频Spring 联合创始人 Rod Johnson 宣布将 SpringSource(Spring 最初所在的公司)出售给微软!(在2008年,在愚人节

除此之外,今天还有更多有趣的事情要谈论(与愚人节毫无关系):Spring Boot,它——就在今天早上——终于发布了 GA 版本!祝贺Phillip WebbDave Syer 博士(以及帮助他们的众多人)取得了这一惊人的发布。

我不知道从外部看进来是什么样子,但我们 Spring 团队一直在观察 Philip 和 Dave 将 Boot 从概念推向完善的原型(在SpringOne2GX 2013上引起了巨大反响),并在过去一年左右的时间里推向 GA。Boot 已经影响了许多其他 Spring 项目,包括 Spring Framework 4.0。一项真正具有变革意义的技术,不仅限于 JVM。

如果您还没有尝试过,那么现在是时候了。有一个关于从STS 3.5(也即将发布)使用 Spring Boot 的视频。STS 根本不是必需的,但它确实有一些方便的工具!看看吧。

  1. 重大新闻:Spring Boot 1.0.0 已经发布了第一个主要版本!
  2. Spring Integration 忍者 Artem Bilan 刚刚宣布了Spring Integration 3.0.2Spring Integration 4.0 M4。Spring Integration 3.0.2 中的新内容很棒,但请向下滚动查看Spring Integration、Boot 和 Java 配置演示!我很高兴看到这个版本。#boot
  3. Spring 负责人 Juergen Hoeller 宣布了 Spring 4.0.3 版本,该版本支持 Java 8 并改进了 websocket 支持。
  4. Spring Data 传奇人物 Thomas Darimont 宣布Spring Data Redis 1.2.1 现已可用。新版本包括对RedisCacheManagerRedisTemplate的错误修复。
  5. Spring Data 负责人 Oliver Gierke 刚刚发布了Spring Data Dijkstra 的第一个里程碑。看看吧!
  6. 4月9日,我将在 vJUG 上做一次演讲,现场直播,全球范围介绍 Spring Boot。我希望在分配的短时间内演示使用 Spring Boot 构建应用程序的样子。我很乐意在那里见到你,并且请随时在 IRC 频道上提问。#boot
  7. 我们的朋友Chris Richardson发表了一篇博客文章,描述了一种使用 Spring Boot 构建微服务的方法。示例是用 Scala 编写的。看看吧!#boot
  8. Spring Boot 被提名为最具创新性的 Java 技术。我不确定投票流程是如何运作的,但一旦我弄清楚,我就会在这里发布。无论如何,我希望我们可以依靠您的帮助来推动投票!#boot
  9. Marco Vermeulen 做了一个非常好的演讲,介绍了如何使用 Spring Boot 构建微服务。此示例是用 Groovy 编写的。#boot
  10. Jim Drannbauer 创建了一个 GitHub 存储库,演示了如何使用最近发布的Spring MVC Test HtmlUnit 和 Cucumber。有了它,您的单元测试几乎可以像人类句子一样阅读!#boot
  11. 我们的朋友 Matt Raible 又回来了,这次不是一篇,而是两篇关于使用 Spring Boot 的帖子!第一篇帖子演示了如何将 Swagger 集成到 Spring Boot 应用程序中,第二篇帖子演示了使用 Ionic 框架构建 iOS 客户端到 Boot 后端应用程序是什么样的。#boot
  12. all and sundry 博客又回来了,这次发布了一篇关于将 Spring Boot 和 Scala 结合使用的文章。不错!无论您使用什么语言,Boot 都是一个胜利!#boot
  13. Sergi Almar 本周又发布了一篇关于如何使用 JMX 监视 websocket 线程池的文章。这是他对上一篇关于在 Spring 4 中检测 websocket 连接和断开连接的文章的后续文章。#boot
  14. 我们网站背后的团队已在我们的博客上安装了 Disqus 用于评论。我希望我能向您展示这些电子邮件,但从“想法”到“评论上线!”在这个例子中的速度非常快。敏捷,甚至。
  15. Adam Shook 在 SpringOne2GX 2013 上做了一个演讲SpringOne2GX 2013 回放:Hadoop - 大数据初学者的基础知识,其回放现已在线提供。不要错过!
  16. David Turanski 和 Luke Taylor 在 SpringOne2GX 2013 上的演讲使用 Spring 进行实时分析也已在线提供。看看吧!
  17. Spring LDAP 负责人Mattias Arthursson 去年在 SpringOne2GX 2013 上介绍 Spring LDAP 2.0 的演讲的回放现已上线
  18. 您是否错过了 Spring 负责人Juergen Hoeller 介绍 Spring 4 在 Java 8 上的网络研讨会?它现已可用,绝对值得一看!

Project Sagan:开源 spring.io

工程 | Chris Beams | 2014年3月27日 | ...

我们在去年的 SpringOne/2GX 上推出了 spring.io 网站,今天我很高兴代表团队宣布我们正在开源为其提供支持的基于 Spring 的应用程序。

我们将该项目称为Sagan,它旨在作为使用 Spring 构建现代 Web 应用程序的参考。代码现已在github.com/spring-io/sagan上提供,并且可以轻松入门。这是一个简短的屏幕录像来证明这一点

!{iframe src="//player.vimeo.com/video/90126708" width="640"  height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen}{/iframe}


在接下来的几周内,我们将发布一系列关于 Sagan 工作的文章,探讨应用程序的不同方面、其设计背后的决策以及记录其演变过程。例如,虽然 Sagan 今天在 JDK 7 和 JDK 8 上运行得同样出色,但我们还没有利用Java 8 语言特性。当我们这样做时,我们将在博客中发布,并在此过程中演示为什么我们认为Spring 和 Java 8如此般配。

同时,试用 Sagan!首先,您可以在本地启动和运行,然后尝试部署到 Cloud Foundry(位于Pivotal Web Services)。

注意:使用邀请码“sagan”注册即可立即批准帐户。PWS 团队已为此提供了有限数量的邀请码,因此先到先得。

从那里,您可以探索Wiki中的其余操作方法风格文档,如果您能在此过程中提供反馈,我们将不胜感激。

正如 GitHub 的贡献者图表所示,Sagan 项目在内部已经是一个大型团队的努力。今天,我们非常高兴地邀请所有阅读这篇文章的人加入我们。有很多事情要做,并且欢迎发送拉取请求


更新,2014年5月16日:SpringOne2GX 2013研讨会的回放,“spring.io inside and out”现已上线。

本周 Spring - 2014年3月25日

工程 | Josh Long | 2014年3月26日 | ...

欢迎来到另一期本周 Spring!本周将会是疯狂的一周,我迫不及待地想看到下周的你!有一些重大的公告即将发布!本周请密切关注spring.ioSo. Much. Win。好了,言归正传,让我们开始吧!

使用WebDriver进行Spring MVC测试

工程 | Rob Winch | 2014年3月26日 | ...

在我的第二篇文章中,我描述了如何使用Spring MVC Test与HtmlUnit。在这篇文章中,我们将利用WebDriver中的其他抽象来使事情变得更加容易。

为什么选择WebDriver?

我们已经可以使用HtmlUnit和MockMvc了,那么为什么还要使用WebDriver呢?WebDriver提供了一个非常优雅的API,并且允许我们轻松地组织我们的代码。为了更好地理解,让我们探讨一个示例。


注意尽管是Selenium的一部分,但WebDriver不需要Selenium服务器来运行你的测试。


假设我们需要确保正确创建了一条消息。测试涉及查找html……

使用HtmlUnit进行Spring MVC测试

工程 | Rob Winch | 2014年3月25日 | ...

在我的上一篇文章中,我介绍了Spring Test MVC HtmlUnit并解释了该项目的动机。在这篇文章中,我将描述如何使用Spring MVC Test与HtmlUnit

更新依赖项

在使用该项目之前,必须确保更新依赖项。有关MavenGradle的说明可以在站点文档中找到。

使用HtmlUnit

现在我们有了正确的依赖项,就可以在单元测试中使用HtmlUnit了。我们的示例假设你已经将JUnit作为依赖项。如果你还没有添加它,请相应地更新你的类路径。有关使用HtmlUnit和Spring MVC Test的完整代码示例可以在MockMvcHtmlUnitCreateMessageTest中找到……

介绍Spring Test MVC HtmlUnit

工程 | Rob Winch | 2014年3月19日 | ...

周一,我宣布发布了Spring Test MVC HtmlUnit的第一个里程碑版本,并承诺会推出一个博客系列来介绍它。这是介绍Spring Test MVC HtmlUnit的四部分博客系列的第一部分。系列大纲如下所示

为什么……

本周 Spring,Java 8版 - 2014年3月18日

工程 | Josh Long | 2014年3月18日 | ...

欢迎来到另一期本周 Spring!

今天,Oracle在EclipseCon上发布了Java 8及其众多精彩功能。Java 8终于来了!请务必今天就获取你的JDK。

有很多很棒的功能——比如Lambda表达式——可以增强Spring应用程序的开发。要了解更多信息,请务必查看Spring项目负责人Juergen Hoeller在3月25日关于Spring 4和Java 8主题的网络研讨会。我也会参加!

像往常一样,我们有很多内容要讲,所以让我们开始吧。

  1. InfoQ今天发布了一篇非常棒的文章,介绍了Spring Boot,作者是Dan Woods。Dan做得非常好,我推荐你阅读。

网页25岁生日快乐!或:通过拥抱它来纪念网页

工程 | Josh Long | 2014年3月13日 | ...

昨天,2014年3月12日是万维网25周年纪念日蒂姆·伯纳斯·李爵士发明了万维网。正如他解释的那样:“我只需要将超文本的想法与传输控制协议和域名系统结合起来,然后——瞧!——万维网就诞生了。”真的很简单。(哈哈!)

图片(取自维基百科)显示的是最初的NeXT工作站(其操作系统NeXTSTEP是当今OS X和iOS设计的基础),蒂姆·伯纳斯·李爵士就是在这台机器上构建了最初的HTTP服务和客户端。

顺便说一句:我一直很好奇……

获取Spring通讯

与Spring通讯保持联系

订阅

领先一步

VMware提供培训和认证,以加速你的进步。

了解更多

获得支持

Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部