Soumettre la recherche
Mettre en ligne
前端转行 DevOps 经验分享
•
Télécharger en tant que PPTX, PDF
•
1 j'aime
•
316 vues
Yan Wang
Suivre
- 前端行业就业背景 - 人工智能对前端的挑战 - 从前端到工程化到 DevOps - Docker Swarm - Ansible 简单介绍
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 35
Télécharger maintenant
Recommandé
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
Will Huang
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
Will Huang
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
Frontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
Yan Wang
Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
Recommandé
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
Will Huang
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
Will Huang
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
Frontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
Yan Wang
Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Will Huang
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
宅學習 Firebase
宅學習 Firebase
Wei chung chai
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
Will Huang
React.js what do you really mean?
React.js what do you really mean?
昱安 周
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
容器式基礎架構介紹
容器式基礎架構介紹
Philip Zheng
容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
Will Huang
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03
Erhwen Kuo
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
Will Huang
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
Philip Zheng
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
Li Yi
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Edward Kuo
Contenu connexe
Tendances
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Will Huang
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
宅學習 Firebase
宅學習 Firebase
Wei chung chai
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
Will Huang
React.js what do you really mean?
React.js what do you really mean?
昱安 周
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
容器式基礎架構介紹
容器式基礎架構介紹
Philip Zheng
容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
Will Huang
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03
Erhwen Kuo
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
Will Huang
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
Philip Zheng
Tendances
(20)
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
宅學習 Firebase
宅學習 Firebase
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
React.js what do you really mean?
React.js what do you really mean?
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
容器式基礎架構介紹
容器式基礎架構介紹
容器式軟體開發介紹
容器式軟體開發介紹
RxJS 6 新手入門
RxJS 6 新手入門
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式
Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
Similaire à 前端转行 DevOps 经验分享
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
Li Yi
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Edward Kuo
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
inwin stack
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
从Docker到容器服务
从Docker到容器服务
Li Yi
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
Gelis Wu
Docker 最佳实践
Docker 最佳实践
YuLing Liu
Docker tutorial
Docker tutorial
azole Lai
Docker open stack
Docker open stack
Guangya Liu
Artifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
docker intro
docker intro
koji lin
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
Philip Zheng
Full stack-development with node js
Full stack-development with node js
Xuefeng Zhang
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
升煌 黃
Kubernetes project update and how to contribute
Kubernetes project update and how to contribute
inwin stack
FBTUG - 當NAS遇見智慧農耕
FBTUG - 當NAS遇見智慧農耕
Jarvis Chung
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
li luo
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
Similaire à 前端转行 DevOps 经验分享
(20)
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
从Docker到容器服务
从Docker到容器服务
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
Docker 最佳实践
Docker 最佳实践
Docker tutorial
Docker tutorial
Docker open stack
Docker open stack
Artifacts management with CI and CD
Artifacts management with CI and CD
合久必分,分久必合
合久必分,分久必合
docker intro
docker intro
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
Full stack-development with node js
Full stack-development with node js
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
Kubernetes project update and how to contribute
Kubernetes project update and how to contribute
FBTUG - 當NAS遇見智慧農耕
FBTUG - 當NAS遇見智慧農耕
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
前端转行 DevOps 经验分享
1.
前端转行 DevOps 经验分享 王龑 ·
北京
2.
内容 • 背景介绍 • 前端工程化到
DevOps • DevOps 利器 Docker • Ansible 介绍和使用 • 使用 Node.js 开发一个 Docker 插件 2017/4/23 2
3.
背景介绍 2017/4/23 3
4.
《北森2016-2017中国企业招聘指数报告》 2017/4/23 4http://www.beisen.com/activity/zpzs 不仅是前端工程师和程序员
5.
“鲁班”AI 设计系统 • 双
11 期间 1.7 亿个 Banner 2017/4/23 5http://www.uisdc.com/alibaba-luban-ai-banner
6.
“鲁班”AI 设计系统 2017/4/23 6http://www.uisdc.com/alibaba-luban-ai-banner
7.
《 2017互联网人才流动报告》 2017/4/23 7http://weibo.com/3632539935/EA1R64Ehx
8.
工作职责 • 负责 React
前端开发 • 主导前端工程化,一键部署 • 运维了 N 多个服务,博客、网站 • 监控和业务数据分析 • 推动自动化程度的提升 2017/4/23 8
9.
前端工程化 • 技术升级 • 框架技术选型 •
模块化、组件化 • 构建工具 • 预处理技术 Jade / Less / Babel • 文件压缩 • 持续集成 • 单元测试 • 语法规范 • 每次 Push 触发 Jenkins 构建 • 平均每天 1~2 次发布 • 持续部署 • CDN • 配置管理 2017/4/23 9
10.
2017/4/23 10 源代码 分支管理 包管理 图片 Jenkins Gitlab CI 10分钟修复 静态文件 测试报告 jMeter
压测 Zip War POM apk 配置管理 Maven NPM SFTP Nginx 错误监控 业务数据
11.
DevOps 流水线 2017/4/23 11 前端 后端 第三方服务
12.
保障服务存活 • 方法 • Nohup
挂后台 • Daemon Process 交给操作系统 • Supervisord 支持多个命令 • PM2 + Keymetrics 设计超前 • Docker • 需求 • 查看管理服务的状态 • 监控 CPU,磁盘,网络 • 服务发现 2017/4/23 12
13.
Docker • 标准化 • 多平台 •
版本控制 • 隔离性 • 安全性 2017/4/23 13
14.
从单机到集群 • 1 台
Docker 主机 • InfluxDB • Grafana • Sentry • Postgres • Ghost • Metabase • MongoDB • 十几个容器,负载不断上升 • 升级重启需要花费 15 分钟 • 调研集群方案,最终确定 Swarm • 最小成本 Hold 住 2017/4/23 14
15.
Docker Swarm 2017/4/23 15
16.
关于集群 • 权限 • 自签名证书 •
Portainer • 监控 • cAdvisor + InfluxDB + Grafana • 日志 • ELK Stack + Gelf Driver • 负载均衡 • Traefik • *.swarm.company.com 2017/4/23 16
17.
修改服务以更好的适应集群 • 以 Grafana
为例 • 改动前 • 只有一个容器 App • 使用 SQLite 数据库 • 改动后 • 使用三个容器 Web / DB / Session • Web 容器可以水平伸缩 • 数据库迁移到 Postgres • 使用 Memcache 做粘性的 Session 2017/4/23 17
18.
overlay network 2017/4/23 18 all
in one web-2db session 单节点 集群 web-1 node-1 node-2 node-3
19.
2017/4/23 19
20.
Ansible – 自动化运维工具 •
特点 • 基于 Python 和 SSH 不用安装 Agent • Inventory 支持主机分组管理 • 能够批量执行命令 • 封装了安装软件包等常用操作 • 支持 YAML 格式的 Playbook 剧本 2017/4/23 20https://www.ansible.com/it-automation
21.
使用 Ansible 的公司 2017/4/23
21
22.
使用 Ansible 安装
Nginx --- - hosts: web-server become: true tasks: - name: 使用默认配置安装 Nginx apt: name: nginx state: present 2017/4/23 22 • 命令行 • ansible-playbook install_nginx.yml • 可读性 • 使用 YAML 编写 Playbook • 声明式 • 类似于单元测试里的断言 assert. true ( nginx is present ) • 幂等性
23.
Ansible 架构 • Ansible
Core 核心 • Host Inventory 主机列表 • Playbooks 剧本 • Modules 模块 (900+) • Plugins 插件 • Ansible Tower 可视化 2017/4/23 23https://terry.im/wiki/terry/Ansible.html
24.
Inventory [web-servers] 10.1.1.1 ansible_ssh_port=22 ansible_ssh_user=root 10.1.1.2 10.1.1.3 [db] 10.1.1.4 2017/4/23
24 • 每台主机都可以有自定义的配置 • 检查所有机器连通性 • ansible all –m ping
25.
使用 Ansible 安装
Docker 2017/4/23 25 - name: 安装 Docker shell: curl -sSL https://get.daocloud.io/docker | sh - name: 确认 user 在 docker 组里 user: name: user state: present groups: docker append: yes - name: 安装 Docker Compose get_url: url: https://get.daocloud.io/docker/compose/releases/download/1.11.2 ... dest: /usr/local/bin/docker-compose mode: 0755
26.
2017/4/23 26 - name:
分发配置 copy: src: "./config/docker.service" dest: "/lib/systemd/system/docker.service" owner: root group: root mode: 0644 - name: 重启 Docker 服务 systemd: name: docker daemon_reload: yes state: restarted - name: 查看版本 command: docker -v register: i - debug: var=i.stdout
27.
2017/4/23 27
28.
Ansible and Docker •
Ansible 针对操作系统 • 通过 docker-container 内置模块支持 Docker • 利用 docker-py pip 模块和 Docker API 通信 • Docker 针对 Container / Image • 可用 Ansible 安装 Docker 环境 • 可用 Ansible 管理容器生命周期 2017/4/23 28https://nathanleclaire.com/blog/2015/11/10/using-ansible-with-docker-machine-to-bootstrap-host-nodes/
29.
使用 Node.js 开发
Docker 插件? 添加 Docker 对 NFS 的支持,使得容器可以在集群内自由迁移 2017/4/23 29https://docs.docker.com/engine/extend/plugin_api/
30.
2017/4/23 30 NFS Storage /shared_volumes docker
run --volume-driver nfs –v data:/data –it alpine “echo 1>/data/msg.txt” /shared_volumes /shared_volumes /msg.txt /msg.txt /msg.txt /data /data /data vm1 vm2 vm3
31.
Docker 插件 • Docker
插件是独立于 Docker Engine 进程的扩展,能够增强 Docker 的功能 • 插件可以运行在容器里也可以运行在容器的外面(插件先启动) • Docker 通过搜索指定的目录发现插件 • /etc/docker/plugins/nfs.spec 内容就一行 tcp://127.0.0.1:3245 • Docker 插件会在首次使用的时候被激活 2017/4/23 31
32.
Docker Engine 和插件的通信 2017/4/23
32 • 实现这几个 HTTP API • /Plugin.Activate • /VolumeDriver.Create • /VolumeDriver.Remove • /VolumeDriver.Path • /VolumeDriver.Mount • /VolumeDriver.Get • /VolumeDriver.List • 具体代码
33.
2017/4/23 33 app.post("/VolumeDriver.Get", (req,
res) => { const mp = path.join("/shared_volumes",sanitize(req.body.Name)); if (fs.existsSync(mp)) { res.json({ "Volume": { "Name": req.body.Name, "Mountpoint": mp, "Status": {} } }); } else { res.json({ "Err": "Not Exist" }); } });
34.
后话 • 测试完 NFS
性能后开源 • 为什么不直接用 mapping 而是用 volume • 管理功能 • 结合 ZFS 做快照 • 结合云存储做备份 • 跳出舒适区,DevOps 路漫漫,一起学习吧 2017/4/23 34
35.
谢谢 2017/4/23 35
Notes de l'éditeur
乐 yue 乘 阿里智能设计实验室 Logo
乐 yue 乘 阿里智能设计实验室 Logo
2017互联网人才流动报告
Puppet 和 Saltstack 的最大区别
Télécharger maintenant