Graal VM:云原生时代的Java(转载)
Created|Cloud NativeJava
|Word Count:0|Reading Time:1mins
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2022-07-06
Spring Cloud - JPA

2022-11-06
Kubernetes - CNI
网络模型 Docker bridge Docker 会创建一个名为 docker0 的虚拟网桥,默认网段为172.17.0.0/16 每个容器上都会创建一个虚拟网卡对(veth pair) 两个虚拟网卡分别连接容器和虚拟网桥,从而实现容器间的网络互通 Docker 的网络方案只局限在单机环境下工作,Kubernetes 的网络模型:IP-per-pod IP-per-pod 集群内的每个 Pod 都会有唯一的 IP 地址 Pod 内的所有容器共享这个 IP 地址 集群内的所有 Pod 都属于同一个网段 Pod 可以基于 IP 地址直接访问另一个 Pod,不需要做 NAT CNI Container Networking Interface CNI 定义了一系列通用接口,开发者只需要遵循规范接入 Kubernetes 为 Pod 创建虚拟网卡、分配 IP 地址、设置路由规则,进而实现 Kubernetes 的 IP-per-pod 网络模型 依据实现技术分类,CNI 插件可以分为 3 类 Overlay 构建一个工作在底层网络之上的逻辑网络 把原始的 Pod 网络数据包封...

2022-09-12
Oauth2 - Overview
问题域 开放系统间授权 账号密码 不安全 万能钥匙 适用于公司内部 特殊令牌 核心挑战是令牌的生命周期管理 微服务安全 核心是 Token OAuth2最简向导 正式定义 Token 是核心,可类比为仆从钥匙(给应用授予有限的访问权限,让应用代表用户去访问用户数据) 优劣主要优势 OAuth2 使用代理授权的方式解决密码共享的反模式问题 主要劣势 OAuth2 不是认证协议,而是一个代理授权框架 OAuth2 提供一个宽泛的协议框架,具体安全场景需要定制 主要角色 主要术语 Token 类型 常见误区 典型 Flow https://www.rfc-editor.org/rfc/rfc6749 Authorization Code Flow 最复杂 + 最安全 + 应用最广泛 Implicit Grant Flow 减少了授权码兑换的过程(通过 Script 解析 Access Token),适用于单页应用(无后端) Resource Owner Password Credentials Flow 适用于公司内部应用等风险可控的场景 Client ...

2022-12-13
Kubernetes - Manage Production Clusters
操作系统 通用操作系统 - 成熟 Ubuntu CentOS Fedora 专为容器优化的操作系统 - 最小化主机操作系统 CoreOS 最早的容器化操作系统,已被收购 RedHat Atomic 将 RPM Repository 转换成 ostree,可以被 bootloader 直接加载 Snappy Ubuntu Core Canonical 出品,最初为移动设备设计 RancherOS 相对较新,RancherOS 中运行的所有服务都是 Docker 容器 评估选型的标准 是否有生态系统 成熟度 内核版本 对运行时的支持 Init System 包管理和系统升级 安全 不可变基础设施 不可变的容器镜像 不可变的主机操作系统 Atomic - 打包成一个经过裁剪后的操作系统 由 Red Hat 支持的软件包安装系统 多种发行版:Fedora / CentOS / RHEL 优势 不可变操作系统,面向容器优化的基础设施 只有 /etc 和 /var 可以修改,其它目录均为只读 基于 rpm-ostree 管理系统包 Ia...

2023-05-01
Go Engineering - Elegant Project
优雅项目 Go 应用 代码结构 按功能拆分 - Kubernetes / Docker / Helm / Prometheus 代码规范 编码规范 - https://github.com/xxjwxc/uber_go_guide_cn 静态代码检查 - https://github.com/golangci/golangci-lint 最佳实践 https://go.dev/doc/effective_go https://go.dev/wiki/CodeReviewComments https://rakyll.org/style-packages/ 代码质量 单元测试 可测试 将依赖的数据库等抽象成接口,在被测代码中调用接口的方法,在测试时传入 Mock 类型 尽量减少 function 中的依赖 + 依赖是容易 Mock 的 高覆盖率 Code Review Mock 工具 https://github.com/golang/mock 官方 Mock 框架,与 Golang 内置的 testing 包集成,最常用 实现基于 interface...

2023-02-03
DevOps - Overview
演进过程精益 诞生于工业领域:用最少的时间和资源消耗,生产出高质量的产品 瀑布模式 线性的开发流程、将软件开发划分为一系列阶段 敏捷模式 误区:敏捷 = 管理 敏捷是基于精益的思想 将开发过程拆分成 N 个敏捷开发周期,小步快跑 生命周期 基于迭代的敏捷(固定的迭代周期) 基于流程的敏捷(不固定的迭代周期) 运维不堪重负,建立部门墙,敏捷模式只关注开发,不关注运维 DevOps 核心阶段 版本控制 持续集成 - 代码提交 持续交付 - 测试环境 持续部署 - 生产环境 持续监控 源码管理 SVN / Git Git Flow git pull = git fetch + git merge Git 高级用法rebase 将一个分支的提交移动到另一个分支的末尾,使得提交历史更加线性和整洁 主要场景: 更新本地分支以匹配远程分支,避免产生多余的 merge commit 合并提交 重新排列提交 12$ git checkout feature$ git rebase master 从两个分支的共同祖先开始提取待变基分支(fe...
Announcement
Things are always unexpected!





