Golang站点可靠性工程师(SRE)- Defense Products @ United Internet 招聘

Golang站点可靠性工程师(SRE)- Defense Products @ United Internet 招聘 IONOS凭借其商业应用,是欧洲领先的主机和云应用提供商之一。凭借我们先进的技术,我们每天都能赢得来自许多不同国家的超过800万客户的信赖。

您的职责

我们充满热情、致力于对抗网络安全攻击的专家团队正在寻找更多队友。作为一名站点可靠性工程师,您将与系统管理员和网络工程师一起开发和运营我们的防御平台,以保护我们的主机产品和基础设施。除了经典的DDoS缓解,我们还负责现代Web应用防火墙或零信任策略。在一个高度重视创意、敏捷工作方法、主动性和参与度的文化中,您可以期待以下任务:

  • 开发和调整我们的防御逻辑,以缓解网络层和应用层的DDoS攻击。
  • 优化当前用于自动威胁检测、缓解及报告这些威胁的流水线。
  • 支持我们的系统管理员实现运维任务和部署的自动化。
  • 为其他团队提供接口,以便集成到我们的主机产品中。
  • 管理和故障排除我们高可用且复杂的基础设施,包括参与随叫随到的值班轮换。
  • 在敏捷的DevOps环境中,通过高效的运营架构、主动的生命周期管理和精益流程来支持公司目标。

我们看重

您学习过计算机科学或已完成类似的教育。您对安全主题有浓厚的兴趣,具备良好的网络知识,并拥有以下资质:

  • 多年使用编程或脚本语言(如:Go、C、Python、PHP、Bash)进行高可用软件制品系统级开发的经验。
  • 具备使用Lua作为脚本语言结合nginx编写应用逻辑的经验者更佳。
  • 具备将nginx作为反向代理或Web应用防火墙进行运维的实践经验。
  • 基础设施即代码和自动化是您自身工作方式的重要组成部分。
  • 您对BGP、flowspec、任播路由有额外的了解,并且对Linux系统上的网络协议有基本的理解。
  • 良好的分析能力,能够评估DDoS攻击、实施应对措施,并持续开发我们的防御平台。
  • 和我们一样,您是开源(尤其是Linux)的爱好者。
  • 能够与国际团队用英语流利沟通,懂德语者优先。

在此申请


更多关于Golang站点可靠性工程师(SRE)- Defense Products @ United Internet 招聘的实战教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

你好,

我可以帮助你。

更多关于Golang站点可靠性工程师(SRE)- Defense Products @ United Internet 招聘的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


您好,

那么请使用此申请链接来申请。请注意,这是一个全职职位,要求常驻德国,因此您需要准备好搬迁。

此致, Pawel

这是一个非常典型的SRE岗位,专注于网络安全防御领域,技术要求明确,与Go语言高度相关。以下是对该职位技术要点的分析及Go语言在此场景下的应用示例。

该职位核心是使用Go等语言开发和维护自动化防御系统。Go的并发模型、标准库对网络协议的良好支持以及编译为单一二进制文件的特性,使其非常适合构建高性能、可部署的网络安全工具和自动化流水线。

1. 自动化威胁检测与缓解流水线 职位要求优化用于自动威胁检测、缓解及报告的流水线。Go的net/httpcontext和并发原语(goroutine, channel)非常适合构建此类实时处理系统。

package main

import (
    "context"
    "log"
    "time"
    "golang.org/x/time/rate"
)

// DDoS检测器示例:使用速率限制器识别异常流量
type DDoSDetector struct {
    limiter *rate.Limiter
    alertCh chan Alert
}

type Alert struct {
    SourceIP   string
    AttackType string
    Timestamp  time.Time
}

func NewDDoSDetector(r rate.Limit, b int) *DDoSDetector {
    return &DDoSDetector{
        limiter: rate.NewLimiter(r, b),
        alertCh: make(chan Alert, 100),
    }
}

// ProcessRequest 模拟处理传入请求,检测是否超出阈值
func (d *DDoSDetector) ProcessRequest(ctx context.Context, sourceIP string) bool {
    if !d.limiter.Allow() {
        // 超过速率限制,触发警报
        alert := Alert{
            SourceIP:   sourceIP,
            AttackType: "RateLimitExceeded",
            Timestamp:  time.Now(),
        }
        select {
        case d.alertCh <- alert:
            log.Printf("警报已发送: %v", alert)
        default:
            log.Println("警报通道已满,丢弃警报")
        }
        return false // 请求被拒绝
    }
    return true // 请求允许通过
}

// AlertConsumer 处理警报的消费者
func (d *DDoSDetector) AlertConsumer(ctx context.Context) {
    for {
        select {
        case alert := <-d.alertCh:
            // 此处集成实际缓解动作,例如:通过API调用下发flowpec规则
            log.Printf("执行缓解动作,针对攻击源: %s, 类型: %s", alert.SourceIP, alert.AttackType)
            // go d.triggerMitigation(alert) // 可启动goroutine执行具体缓解任务
        case <-ctx.Done():
            return
        }
    }
}

2. 运维任务自动化 职位要求支持系统管理员实现运维任务自动化。Go可以编写跨平台的CLI工具或Agent,用于配置管理、服务部署和状态收集。

package main

import (
    "fmt"
    "os/exec"
    "encoding/json"
)

// 基础设施状态收集示例
type ServiceStatus struct {
    Name   string `json:"name"`
    Active bool   `json:"active"`
    Load   string `json:"load,omitempty"`
}

// CollectNginxStatus 收集Nginx相关状态(模拟)
func CollectNginxStatus() ([]ServiceStatus, error) {
    var statuses []ServiceStatus

    // 检查Nginx进程状态
    cmd := exec.Command("systemctl", "is-active", "nginx")
    output, err := cmd.Output()
    isActive := err == nil && string(output) == "active\n"

    statuses = append(statuses, ServiceStatus{
        Name:   "nginx",
        Active: isActive,
    })

    // 可扩展:收集连接数、请求率等
    // cmd = exec.Command("nginx", "-t")
    // ...

    return statuses, nil
}

// 将状态输出为JSON,便于集成到监控系统
func main() {
    status, err := CollectNginxStatus()
    if err != nil {
        fmt.Printf("收集状态失败: %v\n", err)
        return
    }
    data, _ := json.MarshalIndent(status, "", "  ")
    fmt.Println(string(data))
}

3. 为其他团队提供API接口 职位要求为其他团队提供接口以便集成。Go是构建高性能、可靠API服务的理想选择。

package main

import (
    "net/http"
    "encoding/json"
    "log"
)

// 防御平台API示例
type MitigationRequest struct {
    TargetIP   string `json:"target_ip"`
    AttackType string `json:"attack_type"`
    Duration   int    `json:"duration_seconds"`
}

type MitigationResponse struct {
    ID     string `json:"mitigation_id"`
    Status string `json:"status"`
}

func mitigationHandler(w http.ResponseWriter, r *http.Request) {
    if r.Method != http.MethodPost {
        http.Error(w, "方法不允许", http.StatusMethodNotAllowed)
        return
    }

    var req MitigationRequest
    if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
        http.Error(w, "无效的请求体", http.StatusBadRequest)
        return
    }

    // 此处应包含实际的缓解逻辑,例如调用内部系统或配置硬件
    log.Printf("启动缓解措施: IP=%s, 攻击类型=%s", req.TargetIP, req.AttackType)

    resp := MitigationResponse{
        ID:     "mit_12345",
        Status: "已激活",
    }
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(resp)
}

func main() {
    http.HandleFunc("/api/v1/mitigate", mitigationHandler)
    log.Println("API服务器启动在 :8080")
    log.Fatal(http.ListenAndServe(":8080", nil))
}

技术匹配点分析:

  • Go/C/Python经验:该职位明确将Go列为首选语言。以上示例展示了Go在构建并发检测引擎、CLI工具和API服务方面的适用性。
  • nginx与Lua:虽然主要逻辑可能用Lua编写在nginx中,但Go可用于管理nginx配置(生成nginx.conf)、收集指标或作为控制平面。
  • 基础设施即代码(IaC):Go可以用于编写自定义的Terraform Provider、Kubernetes Operator或直接调用云API来管理资源。
  • 网络协议(BGP, flowspec):Go拥有强大的网络库,可以用于开发BGP监听器、flowspec规则生成器或网络流量分析工具。
  • 高可用系统:Go的轻量级并发模型利于构建需要处理大量连接或请求的监控和缓解系统。

这个职位是Go在运维和安全领域(DevSecOps)的典型应用场景,涉及从底层网络协议处理到上层自动化API的完整技术栈。

回到顶部