【腾讯云FinOps Crane 集训营】初识 FinOps Crane

【腾讯云 Finops Crane 集训营】快速搭建一个 Kubernetes+Crane 环境,初识 FinOps Crane开源项目 全称(Financial Operations)是一种管理云计算成本的方法论和实践。它结合了财务管理和云计算资源管理的最佳实践,旨在帮助组织更好地理解、优化和控制云计算成本 阅读详情

前言:

有幸参加了腾讯云Finops Crane 集训营,学到了很多东西,现在将内容分享给大家。

Finops Crane :是一个基于 FinOps 的云资源分析与成本优化平台。

它的目标是希望在保证客户应用运行质量的前提下,实现极致的降本。

今天学习一下相关的内容

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

1 问题思考

我们先思考两个问题

  • 什么是云成本
  • 上云之后,如何管理服务器以及控制云成本

随着云计算的普及,越来越多的企业开始将其业务迁移到云上。 那如何控制云成本,就成了一个需要关注的问题。

云成本:是指企业使用云计算服务所需支付的费用

云成本类型:

  1. 计算资源成本:虚拟机、容器、数据库等计算资源的使用费用。

  2. 存储资源成本:云存储、备份和恢复服务等存储资源的使用费用。

  3. 网络资源成本:云内网络、云间网络、公网网络等网络资源的使用费用。

  4. 应用程序成本:云应用程序的使用费用。

  5. 其他杂项成本:安全服务、支持和维护服务等其他费用。

那下一步就需要思考下面这个问题了。

从上面成本类型可以看出来,云计算的成本比传统的 IT 环境更加复杂和难以管理,因为它涉及很多种不同的服务、资源和计费模式。

这也让我们很难准确地估算和控制云计算的成本,从而导致了高昂的费用支出。

为了解决这个问题,云成本管理工具就出现了。

开源社区、一些组织开始开发和维护一些成本管理工具,以帮助企业更好地管理其云计算成本。

这些工具可以帮助企业实时监控其云资源的使用情况,识别出潜在的成本问题,并提供优化建议,从而帮助企业降低云计算的成本。

同时,这些工具还可以帮助企业了解其在不同云服务提供商之间的成本差异,从而更好地制定云战略和预算计划。

云成本管理工具开源项目

以下是几个开源的云成本管理工具项目:

  1. FinOps Crane:一个开源的云成本管理工具,是一个基于 FinOps 的云资源分析与成本优化平台。

  2. Cloud Custodian:是一个开源的云成本管理和资源优化工具,可以自动化云资源管理和成本优化。

  3. Costimator:一个开源的云成本管理工具,可以实时跟踪和分析在云中的成本。

  4. Kubecost:一个开源的Kubernetes成本和性能管理工具,侧重于表达服务在Kubernetes上的成本和性能。

  5. CostModel:一个开源的云成本建模工具,可以建立云中的成本模型,实现更好的成本管理和优化。

这些开源的云成本管理工具,可以更好管理在云中的资源使用和成本,提供:

  • 实时的成本分析
  • 预算管理
  • 资源利用率分析

等功能,从而更好地控制云服务成本。

今天我们详细学习一下FinOps Crane

2 FinOps Crane介绍

2.1 什么是FinOps

先简单了解一下:什么是FinOps

FinOps(Financial Operations)是一种管理云计算成本的方法论,它主要是希望可以帮助企业更好地了解他们在云中使用资源的成本,并优化他们的支出。

FinOps 方法论强调将云计算成本视为一个团队的责任,而不仅仅是财务或 IT 部门的责任。

FinOps 的目标是让组织在云中获得更好的价值,同时控制成本。为了实现这一目标,提出了一系列最佳实践,其中有:

  1. 成本意识

  2. 成本可见性

  3. 成本优化

  4. 成本控制

  5. 成本预测

FinOps Crane,就是在这一套理论的前提下,被提出来的。

它的目标也与FinOps高度相似,都是希望可以帮助组织更好地管理云计算成本,提高云资源的利用率和效率,从而实现更好的业务结果。

2.2 主要功能

 Crane 它本身是一种云成本管理工具。与 Kubernetes /其他工具,集成之后就是一种容器编排的开源工具,

 云成本管理工具

作为一个云成本管理工具,它主要用于帮助用户在多云环境中进行成本管理和优化。

其主要功能包括:

  • 成本可视化
  • 成本分析
  • 预算和警报
  • 自动化优化
  • 多云管理

⭐️成本可视化⭐️

Crane 提供了可视化的仪表板,我们可以直观地了解多个云平台上的成本和使用情况。

⭐️成本分析⭐️

Crane 可以对多个云平台的账户成本进行深入分析,帮助我们找出成本高昂的资源和服务,并提供优化建议。

⭐️预算和警报⭐️

Crane 支持设置预算和警报,让我们能够及时获知其成本超支情况,并采取相应的措施。

⭐️自动化优化⭐️

Crane 可以自动识别并优化云环境中的资源和服务,以降低成本并提高效率。

例如,它可以根据实际使用情况自动调整计算资源的规模,比如有的使用多,就会自动去调整增加,从而确保我们服务器最佳性能和最低成本。

⭐️多云管理⭐️

Crane 可以管理多个云平台的账户和资源,如果在多个云厂商都有部署,就十分方便。

它为我们提供一站式的云成本管理解决方案。

容器编排工具 

与 Kubernetes 集成之后,作为容器编排工具,它主要用于管理和协调 Docker 容器和 Kubernetes pod。

其主要功能包括:

  • 容器编排
  • 容器管理
  • 负载均衡
  • 服务发现
  • 自动扩展
  • 日志管理
  • 安全管理

⭐️容器编排⭐️

Crane 提供了一个简单的 YAML 文件格式,用于定义容器编排方案,包括容器的镜像、端口映射、环境变量、数据卷等。

⭐️容器管理 ⭐️

Crane 可以通过命令行或 Web 界面对容器进行启动、停止、重启、删除等操作。

⭐️负载均衡⭐️

Crane 可以通过反向代理实现容器的负载均衡,支持多种负载均衡算法。

⭐️服务发现⭐️

Crane 支持通过 DNS 或 HTTP API 实现服务发现,支持自动注册和注销服务。

⭐️自动扩展⭐️

Crane 支持根据负载情况自动扩展容器实例数量,提高应用的可用性和性能。

⭐️日志管理⭐️

Crane 可以收集和管理容器的日志,支持将日志导出到外部存储系统。

⭐️安全管理⭐️

Crane 支持通过访问控制和安全加固等措施提高容器的安全性。

⭐️⭐️总结 ⭐️⭐️

总的来说,:

  • gocrane/Crane 提供了全面的云成本管理和优化功能,帮助我们在多云环境中实现更好的成本控制和效率提升。
  • 另外,与其他工具集成之后,Crane 也可以是一个功能强大的容器编排工具,可以帮助我们快速搭建和管理容器化应用。

下面是功能介绍示意图:

2.5 项目架构

项目架构图如下所示:

核心组件介绍

核心组件有:

  • Craned
  • Fadvisor
  • Metric Adapter
  • Crane Agent

⭐️Craned ⭐️

Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。

Craned 通过 Deployment 方式部署且由两个容器组成:

  • Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
  • Dashboard: 基于 TDesign's Starter 脚手架研发的前端项目,提供了易于上手的产品功能

⭐️Fadvisor⭐️

Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到我们的监控系统,比如 Prometheus。

Fadvisor 通过 Cloud Provider 支持了多云计费的 API。

⭐️Metric Adapter⭐️

Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。

⭐️Crane Agent⭐️

是一个用于在 Kubernetes 集群中管理 Docker 镜像的工具

通过 DaemonSet 部署在集群的节点上。

  2.5 开源地址

项目GitHub地址:gocrane/crane

3 实战演练 

环境要求

  • kubectl
  • Kubernetes 1.18+
  • Helm 3.1.0
  • Kind 0.16+

需要先安装k8s、docker相关,具体步骤:

  1. 安装 kubectl
  2. 安装 Helm
  3. 安装 kind
  4. 安装 Docker
  5. 安装Crane

3.1 安装kubectl

今天主要讲解crane,k8s的详细安装步骤就不展开说了,可参考官方安装步骤,链接如下:

安装工具 | Kubernetes

3.2 安装 Helm

我使用的是在线安装,步骤较简单,这里介绍下吧。

步骤如下:

除了通过官方的二进制安装包来安装 Helm 之外,还可以使用包管理器在 Linux 上在线安装 Helm。以下是在 CentOS/RHEL 系统上使用 yum 包管理器安装 Helm 的步骤:

  1. 添加 Helm 官方存储库到 yum 包管理器的源列表中:

    sudo rpm --import https://baltocdn.com/helm/signing.asc
    sudo tee /etc/yum.repos.d/helm-stable.repo <<EOF
    [helm-stable]
    name=Helm Stable
    baseurl=https://baltocdn.com/helm/stable/rhel/7/\$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://baltocdn.com/helm/signing.asc
    EOF
    ````
    
    
  2. 更新 yum 包管理器的索引:

    sudo yum update
  3. 安装 Helm:

    sudo yum install helm
    
  4. 验证 Helm 是否安装成功:

    helm version
    

如果没有任何错误信息,显示出版本,说明 Helm 安装成功。

这是helm的官方,有兴趣的可以看下:Helm

3.3 安装 kind

简单介绍下:

Kind(Kubernetes IN Docker)是一个用于在本地环境中快速创建 Kubernetes 集群的工具。它使用 Docker 作为底层虚拟化技术,可以在一台主机上创建一个或多个 Kubernetes 集群,

这些集群可以用于开发、测试或演示等用途。

安装kind,可以参考官方地址:kind – Quick Start

brew install kind

结果

3.4 安装 Docker

安装docke比较简单,可以本地创建一个install-docker.sh,复制下面的内容,

curl -sSL https://get.daocloud.io/docker | sh

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.15.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

sudo systemctl start docker
sudo systemctl enable docker

docker -v

docker-compose -v

然后执行

sh install-docker.sh

 就可以一键安装docker+docker-compose,如果不想要docker-compose,直接删除相关内容就行了

​​​​​3.5 安装Crane⭐️⭐️⭐️

⭐️⭐️⭐️来到了重头戏,安装Crane!!!⭐️⭐️⭐️

1 安装 Crane 以及其依赖  

安装 Crane 以及其依赖 (Prometheus/Grafana). 

curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -

如果上面安装命令报网络错误,可以用本地的安装包执行安装,在命令行中执行以下安装命令:

必须在 installation 的上级目录例如:预设好的 training 跟目录中执行


# Mac/Linux
bash installation/local-env-setup.sh

3 查看deploy 

 执行命令,查看deploy

get deploy -n crane-system

4 查看pod

执行命令

kubectl get pos -n crane-system

5 查看svc 

执行命令:

kubectl get svc -n crane-system

6 查看

执行命令:

kubectl get recommendations -A

3.6 展示界面

1 添加集群

 2 查看资源推荐

点击左边导航栏--成本分析-->资源推荐

4 总结&建议

总结

整体体验下来,gocrane/Crane 是一个功能丰富、易于使用的管理工具,总结一下,具有以下几个特点:

  1. 简单易用:有简单易用的用户界面和命令行界面,可以方便地监控和管理云资源的使用情况和成本。

  2. 实时监控:它能够实时监控云资源的使用情况和成本,可以及时发现资源浪费和成本异常的情况。

  3. 自动化管理:它提供了自动化管理的功能,例如自动化资源调度和分配,可以帮助用户优化资源使用和降低成本。

  4. 可视化分析:有可视化分析功能,可以直观地了解云资源的使用情况和成本。

  5. 安全性:通过加密数据传输和存储等方式来保护数据的安全

建议 

gocrane/Crane 是一个有潜力的云成本管理工具,未来建议可以通过以下几个方面的发展来提高自身竞争力和用户体验:

  • 增强可视化功能
  • 增强自动化功能
  • 提供更多的 API 和插件
  • 强化成本优化

增强可视化功能 

在用户界面方面,目前展示形式有些单调,gocrane/Crane 可以考虑增强可视化功能。

例如提供更多的图表和数据可视化工具,以便用户更直观地了解云资源的使用情况和成本。

增强自动化功能

自动化是云成本管理工具的重要功能之一,如果想要很好的发展,这一块肯定要进一步强化。

因此可以考虑继续增强自动化功能,例如自动化容器调度和资源分配等。

提供更多的 API 和插件 

目前gocrane/Crane 提供的插件有:

  • RESTful API
  • Prometheus 插件
  • Slack 插件
  • Alertmanager 插件
  • 数据库插件
  • Webhook 插件

当然,官方也在不断更新和完善中……

可以考虑提供更多的 API 和插件,以便用户可以自定义和扩展工具的功能和使用方式。比如:

  • GitLab CI/CD 插件
  • Elasticsearch 插件
  • Jira 插件

等等,主要看gocrane/Crane的未来发展规划吧

总之,上述建议仅代表个人观点,具体的发展,还是应该根据用户需求和市场趋势来确定工具的发展方向。

【腾讯云 Finops Crane 集训营】初识Crane 最近报名参加了腾讯大型开源项目Finops Crane的集训营,深入了解并实践运用了关于Crane的一系列功能。云计算以及云平台是未来服务部署的主流趋势,可以在成本条件限制下极大节省运行部署成本。因此关于云计算平台的一系列计算我都十分感兴趣,而Crane能够在云原生发展火热的状态下作为大型开源项目,提供学习渠道以及实践,是一件十分有意义的事情。本篇文章将带大家了解Crane以及了解Crane能够帮助我们在哪些业务场景下解决困难,以及我们该如何使用Crane和部署服务。 阅读详情

相关推荐

STM32 CAN发送丢包?3个邮箱轮询法实测有效(附代码)

本文深入分析了STM32 CAN总线发送丢包的根本原因,指出其内置CAN控制器的三个发送邮箱是硬件瓶颈。针对高负载场景,提供了实测有效的优化方案,重点介绍了非阻塞的邮箱状态轮询法,该方法通过主动轮询三个邮箱的空闲状态,充分利用硬件资源,显著提升发送稳定性并避免任务阻塞。文中附有可直接使用的示例代码。

weixin_29189381的博客 195

腾讯开源云原生成本优化神器 - FinOps Crane

Crane 是一个基于 FinOps 的云资源分析与成本优化平台,它的愿景是在保证客户应用运行质量的前提下实现极致的降本。Crane 已经在腾讯内部自研业务实现了大规模落地,部署数百个 K8s 集群、管控 CPU 核数达百万,在降本增效方面取得了阶段性成果。以腾讯某部门集群优化为例,通过使用 FinOps Crane,该部门在保障业务稳定的情况下,资源利用率提升了 3 倍;腾讯另一自研业务落地 Crane 后,在一个月内实现了总 CPU 规模 40 万核的节省量,相当于成本节约超 1000 万元/月。

weixin_38261043的博客 3037

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

基于 FinOps 的云资源分析与成本优化平台——Crane

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。

lanicc's blog 774

WSL2 Ubuntu 22.04安装NVIDIA驱动避坑指南:从驱动版本选择到CUDA环境验证

本文详细介绍了在WSL2 Ubuntu 22.04中安装NVIDIA驱动和配置CUDA环境的完整流程,包括驱动版本选择、环境变量设置以及常见问题解决方案。通过本指南,用户可以避免常见的安装陷阱,确保GPU加速环境正确配置,适用于深度学习开发和CUDA编程。

weixin_28419039的博客 463

Keil AC6编译器独立安装与配置指南:不升级Keil MDK也能用上新工具链

本文详细介绍了如何在不升级Keil MDK的情况下独立安装和配置Arm Compiler 6(AC6),帮助嵌入式开发者充分利用AC6的编译速度、代码密度和现代语言支持优势。通过零侵入式解决方案,开发者可以在现有环境中灵活切换编译器版本,提升开发效率。

weixin_30872157的博客 552

【腾讯云 Finops Crane集训营】Finops Crane究竟能为我们带来什么价值和思考?深入探究Crane

总体体验下来,Crane无愧之为开源的超强大云资源分析与成本优化平台,无疑是解决集群资源利用率问题的高效解决方案。而且Crane部署简便,无需很繁琐的部署过程,且有着强大的云资源监控能力,能够自动化资源调度和分配,且能够智能帮助用户优化资源使用和降低成本。尤其是配备许多可视化显示大屏,很够作为二次开发嵌套到其他大屏展示网页上。能够很直观的帮助开发运维人员找到闲置资源。更加自由的可拓展性,一些可自定义的API集成到Dashboard中,可加入大数据监控以及数据流监控等。

master_hunter的博客 3526

人工智能训练师三级考试备考全攻略|报名条件+真题+补贴申领一站式通关(2026版)

本专栏是人工智能训练师三级考证最完整的备考指南,共77篇文章,覆盖从职业认知、报名实操、AI基础知识、数据标注、模型训练测试部署、考前冲刺到考后进阶的全链路。本导读按模块整理了全部文章链接,帮你快速定位所需内容。人工智能训练师是国家认定的正式职业,证书可在osta.mohrss.gov.cn查询,三级证书可申领最高3120元技能补贴。

白话机器学习 1796

成本效能FinOps: Crane 部署

(1)安装 Crane 以及其依赖 (Prometheus/Grafana)如果上面第一种方式安装命令报网络错误,可以下载本地的安装包执行安装。(9)访问dashboard(NodePort)(8) 访问dashboard (端口映射)master节点查看deploy。master节点修改deploy。(4)查看Docker版本。更新 charts 列表。(3) 查看HELM版本。更新 charts 列表。重启keepalived。(2)查看kind版本。④ 安装(第二种方式)(4)查看deploy。

cronaldo91的博客 1595

手把手教你学Simulink--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析

本文介绍了使用Simulink仿真多旋翼无人机在风扰动下稳定性的方法。通过构建包含飞行器动力学模型、PID控制系统和环境模拟模块的仿真系统,分析了无人机在不同风速条件下的飞行性能。详细说明了从创建模型、设置动力学方程、设计PID控制器到添加风扰动模型的完整流程,并提供了性能评估指标。该方法可用于验证控制系统有效性,优化飞行稳定性参数,为无人机控制系统的设计和调试提供参考。

MHD0815的博客 328

LPDDR6来了!到底比LPDDR5/5X强在哪?从速度到总线,技术细节一次说清!

LPDDR6不仅仅是速度快点、位宽大点那么简单,它是一次架构级的革新,从引脚、总线、时钟管理到Burst协议全部升级。🎯我们正在迈入一个“AI优先”的时代,内存架构也必须跟上。对于做芯片、做整机、做系统的你,理解LPDDR6的技术变化,提前规划测试方案,是现在就该启动的动作!

weixin_43199439的博客 1284

【腾讯云Finops Crane集训营】降本增效之 Crane 初体验

作为一款云资源分析与成本优化平台,Crane 为云原生领域相关的开发者和企业都提供了一种更简单、更高效的 Kubernetes 集群管理机制,正如它的愿景:“在保证客户应用运行质量的前提下实现极致的降本”,实现降本增效式的云原生应用管理便是其最大目标。

商务合作 | 共同学习 | 携手共进 2万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【腾讯云 Finops Crane集训营】带你深入探究Crane,集训营体验总结

近期参加了由腾讯云联合优快云 推出的“腾讯云Finops Crane开发者集训营"活动,通过线上直播、组织动手实验等一系列技术实践活动我对Finops Crane开源项目有一个深入的了解,同时也在云原生技能上有实质性收获。本文对这次活动做出总结,向大家详细介绍腾讯云开源项目Crane的背景、优势以及如何部署。无论是否需要资源优化,当你希望实践 FinOps 时,Crane 都可以作为尝试对象。

6万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

最近参加了由腾讯云联合 优快云 推出的“腾讯云 Finops Crane 开发者集训营”活动,通过这个活动我对腾讯云的 Finops Crane 开源项目有了更深入的了解。在本篇博客中,我将分享我对该项目的认识和体验,并介绍其中一些关键特性和实验操作指南。

知无涯 7418

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【腾讯云 Finops Crane 集训营】降本增效利器Crane应用实战

FinOps(Financial Operations)是一种管理云计算成本的方法,它强调将云计算资源的成本与使用情况及业务需求相匹配,从而提高企业的效率和效益。在当前云计算环境下,FinOps已经成为了越来越多企业的管理方法。本文将会介绍Crane这个云计算成本管理工具,并详细介绍如何在实际应用中使用Crane进行云计算资源成本管理。经过一段时间的试用,说一下我对Finops Crane的个人看法。

少说,多做 7467

【腾讯云Finops Crane集训营】降本增效神器Crane实战记录

【腾讯云Finops Crane集训营】降本增效神器Crane实战记录

努力才是唯一的入场券。 5万+

【腾讯云 Finops Crane 集训营】学习云原生成本优化

一直以来,云原生用户在确保业务稳定和优化运营成本之间,做着两难的选择,为了保证业务的稳定运行,多数用户面临着服务资源配置浪费、现有资源难以管理、计费方式不够灵活透明等诸多问题。基于越来越多的企业开始拥抱云上服务,腾讯云率先在国内推出了基于云原生技术的成本优化开源项目Crane。

6727

【腾讯云 Finops Crane 集训营】降本增效?学会 Crane,就够了

通过本文的学习,知道了Crane是什么、以及它的愿景,同时我们也了解了Crane的整体架构和主要特点,还在本地安装体验了Crane,理清了他的应用场景。也感受到了它的魅力。确实在落地方面,保证客户应用运行质量的前提下实现了极致的降本。对于目前的大环境和行业来说,有着十足的诚意。最后想说的是你的公司涉及到的相关业务无论是否需要资源优化,当你希望实践 FinOps 时,Crane 都可以作为尝试对象。你可以首先通过集群的成本展示了解当前的 Kubernetes 集群的现状,并根据问题所在选择优化的方式。

坚果的博客 1万+

腾讯云 Finops Crane 开发者集训营 - 云成本优化一站式解决方案实践

自从上次参加完优快云联合腾讯云发起的《云原生之降本增效》活动后,只是停留聚焦在优秀实践方法论、资源与弹性、架构设计上的了解,本次《腾讯云 Finops Crane 开发者集训营》是深入了解并实践基于 FinOps 框架开展的一个成本优化项目Crane。Crane 依托于云原生技术,结合监控预测、调度增强、业务混部等多项硬核科技,将优化措施应用到了云成本优化的多个关键环节,从而辅助用户决策、简化运维效率、提升系统稳态、全面降本增效。腾讯的云原生降本增效最佳实践是基于FinOps框架开展的。

m0_68635815的博客 5万+

【腾讯云 Finops Crane 集训营】老板喜欢降本增效?学会 Crane,让腾讯每月省千万的奇迹在你手中上演

老板喜欢降本增效?学会 Crane,让腾讯每月省千万的奇迹在你手中上演

小虚竹的专栏 1万+

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保护客户应用运行质量的前提下实现极致的降本。

愿许浪尽天涯的博客 3203

腾讯云 Finops Crane 开发者集训营 - 让云不再“钱”途无量

通过对几次的优快云的培训发现,对腾讯云有很大的改观,也是一个非常不错的选择,有些方面甚至做的更好。在后续的工作中,也会大量给公司推荐腾讯云的一些有效的方案,用于公司降本增效。公司在最开始的单体架构,为了应付各种公司商业模式快速上线,采用了全栈PHP开发模式,相对于公司的成本考虑,可以快速的满足业务的需求外,还能在一定程度上控制成本的增长。随着公司的业务发展,单体架构暴露的问题越来越多,公司内部逐渐向微服务云化进行过渡,可以看出,公司随着业务体量的增长,对应的技术研发费用越来越庞大了,几乎是暴增式正比。

wanmeijuhao的博客 5万+

【腾讯云 Finops Crane 开发者集训营】浅谈Crane的核心概念和原理

`FinOps(Financial Operations)`是一种管理云计算成本的方法,它强调将云计算资源的成本与使用情况及业务需求相匹配,从而提高企业的效率和效益。在当前云计算环境下,FinOps已经成为了越来越多企业的管理方法。

白洞,白色的明天在等着我们 1935

【腾讯云 Finops Crane 集训营】云架构成本大,浪费支出太高?何不试试Crane

近年来,很多公司随着业务的发展都开始采用云原生的架构方式来部署服务系统,以便满足系统的弹性需求。但随着业务的进一步增长,k8s的节点数不断的增加,每个月消耗的费用也随之增加,导致了资源的利用率并不平均的问题,特别是在多云环境下。比如有的节点利用率高,有的利用率低,但是费用还是相差无几。遇到这种情况,大部分的做法都是人为的去各个云平台核对账单,根据资源的实际使用情况及财务情况来选择是否降配或释放一些无用的资源等。但这也需要大量的时间和人力成本来解决。

曲鸟 5416

【腾讯云FinOps Crane 集训营】深入了解 Crane

很荣幸参加了由腾讯云联合优快云推出的“腾讯云 Finops Crane 集训营”,在集训过程,从0到1体验了Crane平台的搭建,也积极参与github的发言,提交两个issue帮助提升体验感。好了,话不多说,下面跟着我一起走入Finops Crane。Finops Crane :是一个基于 FinOps 的云资源分析与成本优化平台。它的目标是希望在保证客户应用运行质量的前提下,实现极致的降本。今天学习一下相关的内容Crane 是一个基于 FinOps 的云资源分析与成本优化平台。

m0_70185826的博客 511
上一篇: 【Spring篇】AOP
下一篇: 【JAVA进阶】Set集合、Map集合
热爱编程的小白白
热爱编程的小白白 新星计划导师 新星计划导师
博客等级 码龄5年 11万+粉丝 243原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值