首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jenkins持续集成与自动化部署系统安装配置

相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛。由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由于当时对系统划分的不合理等等原因导致每次发版都会设计到多个系统的发布,小的版本三五个,大的版本十几个甚至几十个系统的同时发布!而我们也没有相应的基础设施的支撑,发版方式更是最传统的,开发人员将发布包发给运维人员,由其讲各个发布包一个一个覆盖到生产环境。因此每次上线仅仅发版就需要2-3个小时。这种方式不仅仅耗时、耗力,更是由于人工操作经常导致一些丢、落的现象。而我们当时的测试也是采用纯手工的测试,发版完毕后一轮回归测试就需要3-4个小时(当时主要是手工测试)。之前也一直提倡持续集成、自动化的测试和运维,但迟迟没有推进落地。终于在一个加班到凌晨四点的夜晚后,我再也受不了。回家后躺在床上迟迟睡不着,心想这个自动化的发布能有多难,他们搞不了,老子自己搞,于是6点爬起来来到公司,正式开始了我的持续集成、自动化部署的研究与推进之路。

03
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    进攻性横向移动

    横向移动是从一个受感染的宿主移动到另一个宿主的过程。渗透测试人员和红队人员通常通过执行 powershell.exe 在远程主机上运行 base64 编码命令来完成此操作,这将返回一个信标。问题在于攻击性 PowerShell 不再是一个新概念,即使是中等成熟的商店也会检测到它并迅速关闭它,或者任何半体面的 AV 产品都会在运行恶意命令之前将其杀死。横向移动的困难在于具有良好的操作安全性 (OpSec),这意味着生成尽可能少的日志,或者生成看起来正常的日志,即隐藏在视线范围内以避免被发现。这篇博文的目的不仅是展示技术,但要显示幕后发生的事情以及与之相关的任何高级指标。我将在这篇文章中引用一些 Cobalt Strike 语法,因为它是我们主要用于 C2 的语法,但是 Cobalt Strike 的内置横向移动技术是相当嘈杂,对 OpSec 不太友好。另外,我知道不是每个人都有 Cobalt Strike,所以在大多数示例中也引用了 Meterpreter,但这些技术是通用的。

    01

    .NET 环境变量

    在本文中,您将了解 .NET SDK、.NET CLI 和 .NET 运行时使用的环境变量。某些环境变量由 .NET 运行时使用,而其他环境变量仅由 .NET SDK 和 .NET CLI 使用。一些环境变量被所有人使用。 .NET 运行时环境变量 DOTNET_SYSTEM_NET_HTTP_* 有几个全局 HTTP 环境变量设置: DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 指示是否为全局 HTTP 设置启用诊断处理程序的活动传播。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 设置为falseor 时0,禁用 HTTP/2 支持,默认情况下启用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 设置为true或 时1,启用 HTTP/3 支持,默认情况下禁用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 当设置为falseor 时0,覆盖默认值并禁用 HTTP/2 动态窗口缩放算法。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE 默认为 16 MB。覆盖时,HTTP/2 流接收窗口的最大大小不能小于 65,535。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER 默认为 1.0。当被覆盖时,更高的值会导致更短的窗口但下载速度更慢。不能小于0。 DOTNET_SYSTEM_GLOBALIZATION_* DOTNET_SYSTEM_GLOBALIZATION_INVARIANT:请参阅设置不变模式。 DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY: 指定是否只加载预定义的文化。 DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU:指示是否使用应用程序本地Unicode 国际组件(ICU)。有关更多信息,请参阅App-local ICU。 设置不变模式 应用程序可以通过以下任何一种方式启用不变模式: 在项目文件中: XML 复制 <PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup> 在runtimeconfig.json文件中: JSON 复制 { "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } } 通过将环境变量值设置DOTNET_SYSTEM_GLOBALIZATION_INVARIANT为true或1。 重要的 在项目文件或runtimeconfig.json 中设置的值比环境变量具有更高的优先级。 有关详细信息,请参阅.NET 全球化不变模式。 DOTNET_SYSTEM_GLOBALIZATION_USENLS 这仅适用于 Windows。要使全球化使用国家语言支持 (NLS),请将其设置DOTNET_SYSTEM_GLOBALIZATION_USENLS为true或1。DOTNET_SYSTEM_GLOBALIZATION_USENLS要不使用它,请设置为false或0。 DOTNET_SYSTEM_NET_SOCKETS_* 本节重点介绍两个System.Net.Sockets环境变量: DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT 套接字延续从事件线程分派到System.Threading.ThreadPool。这避免了阻塞事件处理的延续。要允许继续直接在事件线程上运行,请设置DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS为1. 默认情况下它是禁用的。 笔记 如果有昂贵的工作最终会占用 IO 线程的时间超过所需时间,则此设置会使性能变差。测试以确保此设置有助于提高性能。 使用 TechEmpower 基准测试,在非常高的负载下生成大量小型套接字读取和写入,单个套接字引擎能够

    04
    领券