美文网首页
函数式运维

函数式运维

作者: 姜戈看世界 | 来源:发表于2019-03-16 22:32 被阅读0次

今天偶然在简书上看到一篇函数式运维的文章,概念新颖小众,记录一下,期待函数式运维能发展壮大。

自动化运维现状

在企业生产中,自动化运维已经是必不可少的一环,经历过生产上各种版本割接问题,自动化运维包含两部分:自动化构建跟自动化部署。

常用的工具是大家耳熟能详地jenkins跟docker,但是不好用,不简单,不牛逼!
此篇讲解实例 函数式自动化部署elk方案,将在下期讲解函数式自动化构建spring boot方案。

自动化部署这里介绍的工具是nixops: https://nixos.org/nixops/manual/
这里的核心不是介绍工具,所以我们从底层讲解,后期会专门介绍nixops之大杀器。

自动化部署需要载体,所以产生了不同的隔离级别。
nixops支持三种隔离级别:

  1. 环境隔离(nix-env)

  2. 进程隔离(nix-container)

  3. 资源隔离(nixos virtualbox)

大家常见的docker就是进程隔离, 虚拟机就是资源隔离。

有了函数式运维,我们所需要的隔离90%以上只需要nix-env环境隔离就可以解决,甚至nix-container的进程隔离也是完全不需要虚拟化的,简单强大。
nix-container将在后续nixops使用篇介绍。

不得不说,docker老矣。大家要问,如日中天的docker有哪些不好?
第一: 部署友好度。
你觉得用root装软件是个很安全的操作吗?
但是nix-env不一样,只需建个目录便于所有用户共享即可。

第二: 资源利用率
我就简单的部署个jar包,就得启动虚拟化技术,损耗实在太大了点,性能也是极大的浪费。
但是nix-env不一样,通过环境隔离,与系统无缝集成。

第三: 资源透明度
如果在一台机器上安装相同的多个节点服务,这里就涉及复杂的端口映射,甚至locahost跟主机都是调试一大障碍。
但是nix-env不一样,直接原生应用开干,简单强大,不需要那么复杂。

第四: 版本管理
docker的强项不就是版本管理么?NO!如果1.0代码改动一小点,它还是1.0,还是1.0。。。
但是nix-env不一样,它对所有内容进行sha计算,轻松智能多版本,函数式就是不可变,1.0也能多版本。

第五:依赖管理
如果一个系统库不提供二进制版本,那么需要自己构建。
如果在docker中构建,需要额外的一整套构建环境
如果不在docker中构建,系统的库依赖哪些是docker需要的呢?
有了函数式运维nix,所有的软件都是包含了依赖关系,并且构建与部署分离。

第六: 学习门槛
学习docker需要学习专有的语法,虽然不是很难。调试也极其困难。
nix-env仅仅只是一个命令行工具,轻轻松松解决问题。

忍不住 来一句,世界本不应该如此复杂。。。
现实中的自动化部署常用的问题有哪些?
第一: 需要配置大量主从服务端,严重侵入系统。已知的有puppet, cloudera manager。

第二: 不支持离线功能。已知的有ansible/salt需要安装大量的python包才可以使用,离线之伤痛!

第三: 要学习特有的各种模块及技术。由于不是函数式,要处理复杂度,确实不能怪它们。

什么是函数式运维?

在函数式运维的体系里面,软件包即值,配置即状态。软件包是不可变的,稍弱改动软件包之后产生了一个新的软件包。

那么函数式运维有啥好处呢?

由于软件包无状态,配置即状态 ,所以很轻松建立了配置驱动编程的体系。对于配置,加上严格的版本控制,自然就有了代码即文档的效果。由于软件包即值,配置多版本管理,从一个环境传递到另一个环境是那么自然 。对于软件的多版本,即是不同的值那么简单。由于函数式的不可变,中间过程相同输入产生的输入只用处理一次,后续可复用。如果服务器直接提供二进制构建,即不需要源码构建进行软件包安装,否则重新编译一次后续复用,大大提高构建效率。

作者:larluo
链接:https://www.jianshu.com/p/caff6ef93a98

相关文章

  • 函数式运维

    今天偶然在简书上看到一篇函数式运维的文章,概念新颖小众,记录一下,期待函数式运维能发展壮大。 自动化运维现状 在企...

  • 运小韩: AIOps时代,你准备好了吗?

    作者简介 运小韩 百度高级研发工程师 负责百度运维部分布式任务调度系统、智能运维开发框架及可用性相关工作,在分布式...

  • 函数式编程及Lamda

    函数式编程 定义 函数式编程(funcational programming)属于结构化编程的一种。主要思想是把运...

  • 无锅一身轻,IT资产账号密码就该这么管理

    身为运维工程师、公司的IT资产都在你的管理范围。每天疲于奔命、忙于解决各种问题、救火式运维让多少运维兄弟的身体被掏...

  • Linux运维发展与学习路线笔记

    1.云计算运维、大数据运维、运维开发、应用运维、系统运维架构师、Linux系统运维。 2.20-35K:两年以上L...

  • 01_1_Linux云计算岗位的发展前景

    Linux运维岗位:Linux系统运维工程师、应用运维工程师、运维开发工程师、云计算运维工程师、大数据运维工程师、...

  • 也谈运维

    运维分三个层次:设备运维、架构运维和业务运维。设备运维是指维护操作系统和网络环境,例如保持系统更新;架构运维是指维...

  • 运维

    1.运维是什么? 运维可以是什么?全栈?开发? 运维(Operation and maintenance)运维是一...

  • Hadoop相关文章索引(2)——Hadoop运维主题

    hadoop运维笔记1 Hadoop集群日常运维 Hadoop运维经验杂谈 Hadoop运维笔记 之 调整hdfs...

  • 真实链路监控

    浅谈最前沿 运维22世纪真实链路式 监控报警 设计理念 ...

网友评论

      本文标题:函数式运维

      本文链接:https://www.haomeiwen.com/subject/rovwaftx.html