精选!Pulumi实战 | 一款架构即代码的开源产品
本篇文章,主要介绍 Pulumi 是什么以及它的相关原理,并且使用它搭建一个 Nacos 和 SpringBoot 的环境!
一、Pulumi 诞生(一)诞生原因Pulumi 是一个架构即代码的开源产品,使用它即可在任何提供 SDK 或者 API 的云商平台,部署和使用容器、服务器以及基础架构等云资源。
它提供了多种主流的编程语言,让使用者可以通过自己最熟悉的编程语言,编写代码去控制云平台上面的各种云资源。而不是让初学者去学习那些繁琐难记的标签语言,降低了其入门的难度。
(资料图片)
1、技术演化:1)最初的云厂商仅仅只提供IaaS、PaaS这类云服务,并没有把它们组合起来;
IaaS: Infrastructure as a service,基础设施即服务。PaaS: Platform as a service, 平台即服务。SaaS: Software as a service, 软件即服务。
诞生一种方式:架构即代码/基础设施代码化,(Infrastructure As Code),即IaC。
结果:
亚马逊诞生了类似于云服务 CloudFormation 这类产品,这类产品可以使用一些简单的方法创建和管理一系列有关联的AWS的资源。
2)CloudFormation 只支持AWS,ROS只支持阿里云,但是用户可能会出于安全或者业务考虑,鸡蛋不想放在同一个篮子里,就会选择多个云商;
为了支持多个云商资源的创建和管理,诞生了开源产品 Terraform,该产品支持多个云商的SDK,使用标记语言的方式去创建和管理云资源。
缺点:上手难度大,用户需要额外去学习一种特定的标记语言 HCL (HashiCorp Configuration Language),对新入门同学不够友好。
2、Pulumi 登场由此,诞生了我们的主角(Pulumi):
主要作用:
1)快速组合多类型云资源搭建用户业务;
2)满足用户多云商多区域容灾的业务需求;
3)如果使用多个云商,技术人员不需要熟练掌握两家甚至多家云厂商的技术与服务产品;
4)标记语言需要一定学习成本,技术人员只要会一种主流语言即可。
(二)Pulumi 组件工作原理:
个人理解:
Pulumi 程序运行后,Language host 会把程序代码转换成 Pulumi 能理解的方式,然后传递给部署引擎。
部署引擎根据资源有无以及资源类型,对资源提供商发起相关操作!
1、组件(Cli端)1)语言宿主(Language Hosts)语言宿主负责运行一个 Pulumi 程序,并设置一个可以向部署引擎注册资源的环境。
a、语言执行器Pulumi 用于启动程序所用语言(如Node或Python)的 Runtime (运行时),此二进制文件随Pulumi CLI一起分发。
名称类似:pulumi-language-
它是语言处理中枢,负责为您的开发语言准备好与之对应的环境。譬如:Python 3.7。
b、Runtime(运行时/语言运行器)它会负责为您编写的程序做好运行准备,并在过程中监控程序的运行。
2)部署引擎(Deplayment Engine)部署引擎负责,计算将基础架构的当前状态驱动到程序表示的所需状态所需的一组操作。
当从语言宿主接收到资源注册时,引擎会查询现有状态以确定该资源之前是否已创建。
如果没有,引擎会使用资源提供者来创建它。
如果它已经存在,则引擎与资源提供者一起工作,通过将资源的旧状态与程序表示的资源的新期望状态进行比较来确定发生了什么变化(如果有的话)。
如果有更改,引擎会确定它是否可以就地更新资源,或者是否必须通过创建新版本并删除旧版本来替换它。
该决定取决于资源的哪些属性正在发生变化以及资源本身的类型。
当语言宿主与引擎通信它已完成 Pulumi 程序的执行时,引擎会查找任何它没有看到新资源注册的现有资源并安排这些资源以进行删除。
引擎已经被封装进pulumi cli,无需额外安装与部署。
3)资源提供商(云商)a、资源插件云商不同,插件不同。
b、SDK云商相关 SDK。
2、组件(Service 端)该组件主要保存 Pulumi 相关的 Project、Stack 等配置。
最新版 Pulumi 默认 Service 是 Pulumi 官方的 SAAS 界面:
1)官方 Service 端https://app.pulumi.com/
2)其它存储方式充当 Service 端当然,也可以用其它存储或者本地来保存这些配置!
如下面所示,我使用本地充当 Pulumi Service:
pulumi login file://D:\Lang-Python\Data\Pulumi-Service二、为什么使用 Pulumi?
Pulumi 特点:多语言,多云商的服务支持。
但是,我个人觉得,这并不是我使用他的主要原因。
因为他的多语言和多云商的两个特点其实并没有让我感觉有多么便利。
多语言:各大云商也基本支持了多种主流编程语言的SDK。
多云商:由于云商支持的资源不同,其实 Pulumi 并不能做到一套代码走天下,在多个云商处复用。
我选它的因素:
它有一个资源状态的管理功能,该功能可以让你在操作资源时,省略了不少工作!
以及它的资源关联性,即一个资源的输出可以充当另一个资源的输入。
这两个特点也是与云商原生 SDK 最大的区别!
Pulumi 中处理资源之间的关联性,是通过其 output 机制实现的。
三、怎么使用Pulumi?Pulumi 初体验1、Pulumi 结构2、安装 PulumiPulumi支持多平台,包括Linux、Windows、MacOS等操作系统。
1)安装Pulumi需要预先安装Chocolatey包管理软件:
administrator方式打开PowerShell命令行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString("https://community.chocolatey.org/install.ps1"))
参考:https://chocolatey.org/
2)choco安装 Pulumi
choco install pulumi3、开始使用 Pulumi
1)创建 Pulumi 项目
pulumi new alicloud-python
如果该机器第一次使用 Pulumi 创建项目的时候,会弹出两个选项:
a)输入 Key;
b)浏览器登录 Pulumi 后端服务;
如果,选择“浏览器登录 Pulumi 后端服务”的选项,程序会触发浏览器打开 Pulumi 的 Web 在线登录界面。
我使用 GitHub 账号登录进去,里面是 Pulumi 的 Dashboard 。
该过程中,会同时让你创建 Project 以及 Stack!
2)编写自己的源代码,相关资源类型在其云商 SDK处查看
3)更新操作
pulumi up
该操作会把 stack 里面的资源进行创建或更新操作!
4)销毁操作
pulumi destroy
危险:该操作会销毁 stack 处的所有资源!
四、其它特点1、即时性
部分云商对 Pulumi 支持度非常高,比如:Azure。
只要 Azure 上传新资源,Pulumi 基本当天就能使用该资源。
2、DevOps\CICD
Pulumi 自带 Automation API 组件,可以抛弃 CLI,使用代码包调用的方式,直接使用 Pulumi。
换言之,即程序中可以直接调用 Pulumi 程序。
3、转换器
目前支持这几种云商转换成 Pulumi 程序。
比如:Terraform 转换成 Pulumi!
https://www.pulumi.com/tf2pulumi/
五、搭建 Navos 和 SpringBoot 环境:上面大致,讲解了 Pulumi 的基本原理和使用方式,下面给大家展示一下,通过 Pulumi 搭建一套环境的方案!
1、编写 Shell 脚本编写脚本包括多个步骤:
如上图所示,搭建一个 Spring Boot 环境,需要许多前提依赖,比如 Java/Maven/Nacos等,相关代码,在后面。
下面是主要的配置文件,主要写明相关组件的安装路径,以及环境变量等参数。
其中的许多安装包,都是事先下载好的,都是组件官网安装包,读者请自行下载。
配置文件:
#!/bin/bashexport LC_ALL=en_US.UTF-8# 当前目录BASE_DIR=$(pwd)# 环境变量保存目录PROFILE_ENVS="/etc/profile.envs"export BASE_DIRexport PROFILE_ENVS# ****************************** JAVA CONFIG****************************** ## Java 安装路径JAVA_INSTALL="/usr/local/java11"# Java 安装包JAVA_FOLDER_NAME="jdk-11.0.16"JAVA_PACKAGE="${JAVA_FOLDER_NAME}_linux-x64_bin.tar.gz"# JAVA_HOME_PATHJAVA_HOME_PATH="${JAVA_INSTALL}/${JAVA_FOLDER_NAME}"export JAVA_INSTALLexport JAVA_FOLDER_NAMEexport JAVA_PACKAGEexport JAVA_HOME_PATH# ****************************** Maven CONFIG****************************** ## Maven 安装路径MAVEN_INSTALL="/usr/local/maven386"# Maven 安装包MAVEN_FOLDER_NAME="apache-maven-3.8.6"MAVEN_PACKAGE="${MAVEN_FOLDER_NAME}-bin.tar.gz"# MAVEN_HOME_PATHMAVEN_HOME_PATH="${MAVEN_INSTALL}/${MAVEN_FOLDER_NAME}"export MAVEN_INSTALLexport MAVEN_FOLDER_NAMEexport MAVEN_PACKAGEexport MAVEN_HOME_PATH# ****************************** Nacos CONFIG****************************** ## Nacos 安装路径NACOS_INSTALL="/usr/local/nacos211"# Nacos 安装包NACOS_FOLDER_NAME="nacos"NACOS_PACKAGE="nacos-server-2.1.1.tar.gz"# NACOS_HOME_PATHNACOS_HOME_PATH="${NACOS_INSTALL}/${NACOS_FOLDER_NAME}"export NACOS_INSTALLexport NACOS_FOLDER_NAMEexport NACOS_PACKAGEexport NACOS_HOME_PATH# ****************************** SpringBoot Boot CONFIG****************************** ## SpringBoot Boot 工作台SPRING_BOOT_WORKFLOW="/opt/boot_workflow"SPRING_BOOT_GROUP_ID="com.gavin"SPRING_BOOT_ARTIFACT_ID="na-boot"SPRING_BOOT_VERSION="0.0.1-snapshot"export SPRING_BOOT_WORKFLOWexport SPRING_BOOT_GROUP_IDexport SPRING_BOOT_ARTIFACT_IDexport SPRING_BOOT_VERSION
方法库:
add_dir() { dirs=$* log "mkdir -p ${dirs}" mkdir -p "${dirs}" >/dev/null 2>&1 LAST_INFO=$? if [[ ${LAST_INFO} -eq 0 ]]; then ok "Folder \"${dirs}\" Create Success" else err "Folder \"${dirs}\" Create Failed" fi}1)安装 Java
function install_java() { cd "${BASE_DIR}" || return 1 # 添加安装目录 add_dir "${JAVA_INSTALL}" # 解压缩到安装目录 tar -zxf "packages/${JAVA_PACKAGE}" -C "${JAVA_INSTALL}/" # 添加环境变量 cat >"${PROFILE_ENVS}/java.sh" <2)安装 Maven>/etc/profile source /etc/profile # 添加软链接 ln -s "${JAVA_HOME_PATH}/bin/java" /usr/bin/java ln -s "${JAVA_HOME_PATH}/bin/javac" /usr/bin/javac}
function install_maven() { cd "${BASE_DIR}" || return 1 # 添加安装目录 add_dir "${MAVEN_INSTALL}" # 解压缩到安装目录 tar -zxf "packages/${MAVEN_PACKAGE}" -C "${MAVEN_INSTALL}/" # 新建仓库目录 add_dir "${MAVEN_HOME_PATH}/repository" # 更换阿里云镜像并设置maven仓库位置 cat >"${MAVEN_HOME_PATH}/conf/settings.xml" <3)安装 NavosEOF # 添加环境变量 cat >"${PROFILE_ENVS}/maven.sh" < alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central ${MAVEN_HOME_PATH}/repository >/etc/profile source /etc/profile # 添加软链接 ln -s "${MAVEN_HOME_PATH}/bin/mvn" /usr/bin/mvn}
function start_nacos() { # 单机模式运行 nacos bash "${NACOS_HOME_PATH}/bin/startup.sh" -m standalone}function install_nacos() { cd "${BASE_DIR}" || return 1 # 添加安装目录 add_dir "${NACOS_INSTALL}" # 解压缩到安装目录 tar -zxf "packages/${NACOS_PACKAGE}" -C "${NACOS_INSTALL}/" # 启动 nacos start_nacos}4)创建 Spring Boot
function create_spring_boot() { # 添加项目目录 add_dir "${SPRING_BOOT_WORKFLOW}" # 进入项目目录 cd "${SPRING_BOOT_WORKFLOW}" || return 1 # maven 创建项目 echo "y" | mvn archetype:generate -DgroupId="${SPRING_BOOT_GROUP_ID}" \ -DartifactId="${SPRING_BOOT_ARTIFACT_ID}" \ -DarchetypeArtifactId=maven-archetype-quickstart \ -Dversinotallow="${SPRING_BOOT_VERSION}" # 编译 SpringBoot Boot compile_spring_boot # 启动 SpringBoot Boot start_spring_boot}function compile_spring_boot() { cd "${SPRING_BOOT_WORKFLOW}/${SPRING_BOOT_ARTIFACT_ID}/" || return 1 mvn compile}function start_spring_boot() { cd "${SPRING_BOOT_WORKFLOW}/${SPRING_BOOT_ARTIFACT_ID}/" || return 1 # 启动 nohup mvn spring-boot:run -Dspring-boot.run.profiles=prod &}5)主执行函数
#!/bin/bashexport LC_ALL=en_US.UTF-8source ./config.shsource ./functions.shsource ./scripts/java.shsource ./scripts/maven.shsource ./scripts/nacos.shsource ./scripts/spring_boot.sh# 前置处理pre_deal() { yum_install_pkg "rsync" yum_install_pkg "tree" yum_install_pkg "lsof" yum_install_pkg "lrzsz"}# 前置处理pre_deal# 添加 profile 环境文件夹add_dir "${PROFILE_ENVS}"# 安装 Javainstall_java# 安装 Maveninstall_maven# 安装 Nacosinstall_nacos# 创建 SpringBoot Boot 项目create_spring_boot6)替换 Java 文件
为了,测试说明,替换 Maven 生成的 Spring Boot 初始代码!
App.java
package com.gavin;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;@EnableAutoConfiguration // 作用: 开启自动配置 初始化spring环境 springmvc环境@ComponentScan // 作用: 用来扫描相关注解 扫描范围 当前入口类所在的包及子包(com.gavin及其子包)public class App { public static void main(String[] args) { // springApplication: spring应用类 作用: 用来启动springboot应用 // 参数1: 传入入口类 类对象 参数2: main函数的参数 SpringApplication.run(App.class, args); }}
创建 controller 文件夹:
helloController.java
package com.gavin.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/test")public class helloController { @GetMapping("/hello") public String hello() { System.out.println("Hello SpringBoot!!!"); return "Hello SpringBoot"; }}2、生成阿里云镜像1)Packer介绍
传统模式下,我们制作镜像,都是在本地或者公司服务器上,安装好相应的软件,然后打成镜像文件,比较麻烦。
现在介绍一个直接在云商打包镜像的利器:Packer,它是与 Terrform 同一个公司的产品。
官网地址:
Packer by HashiCorp
它利用相关脚本,即可轻松制作线上镜像。
2)安装 PackerCentOS/RHEL
sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.reposudo yum -y install packer
Windows
https://releases.hashicorp.com/packer/1.8.3/packer_1.8.3_windows_386.ziphttps://releases.hashicorp.com/packer/1.8.3/packer_1.8.3_windows_amd64.zip3)打包镜像脚本
把之前写的脚本压缩成一个文件,方便 Packer 执行!
SpringBoot.zip4)创建打包镜像配置
spring_boot.json
{ "variables": { "access_key": "ACCESS_KEY", "secret_key": "SECRET_KEY"}, "builders": [{ "type":"alicloud-ecs", "access_key":"ACCESS_KEY", "secret_key":"SECRET_KEY", "region":"cn-hangzhou", "image_name":"packer_spring_boot_image", "source_image":"centos_7_03_64_20G_alibase_20170818.vhd", "ssh_username":"root", "instance_type":"ecs.n2.small", "internet_charge_type":"PayByTraffic", "io_optimized":"true"}], "provisioners": [{ "type": "file", "source": "SpringBoot.zip", "destination": "/tmp/" },{ "type": "shell", "inline": [ "sleep 30", "cd /tmp", "yum install -y unzip", "unzip SpringBoot.zip", "cd SpringBoot", "sudo chmod 755 main.sh", "./main.sh" ]}]}5)执行镜像打包(Windows)
F:\PackerSoftware\packer\packer.exe validate spring_boot.jsonF:\PackerSoftware\packer\packer.exe build spring_boot.json3、编写 Pulumi 代码(Python)
下面就是真正用到 Pulumi 的地方了,我们编写,一系列 Python 代码,实现 Spring Boot 项目的完成。
1)创建 VPCimport pulumi_alicloud as aliclouddef create_network(pre_name): # VPC vpc_name = "{}_vpc".format(pre_name) vpc = alicloud.vpc.Network(vpc_name, cidr_block="172.16.0.0/12") return vpc2)创建 Switch
import pulumi_alicloud as aliclouddef create_switch(pre_name, az, vpc): # 交换机 vswitch_name = "{}_vswitch".format(pre_name) vswitch = alicloud.vpc.Switch(vswitch_name, zone_id=az, cidr_block="172.16.1.0/24", vpc_id=vpc.id) return vswitch3)创建安全组以及安全规则
需要开放的安全组规则端口为:22、80。22 为 SSH 端口,80 为 Sprint Boot 写的简单 Demo 需要放开的 HTTP 端口号。
import pulumiimport pulumi_alicloud as aliclouddef create_security_group(pre_name, vpc): # 安全组 sg_name = "{}_sg".format(pre_name) sg_description = "{} security groups".format(pre_name) sg = alicloud.ecs.SecurityGroup(sg_name, descriptinotallow=sg_description, vpc_id=vpc.id) return sgdef create_security_group_rule(pre_name, sg, port_range): # 安全组规则 sg_rule_name = "{}_sg_rule".format(pre_name) sg_rule = alicloud.ecs.SecurityGroupRule( sg_rule_name, security_group_id=sg.id, ip_protocol="tcp", type="ingress", nic_type="intranet", port_range=port_range, cidr_ip="0.0.0.0/0" ) return sg_rule4)创建 ECS
镜像ID为上一步骤(生成阿里云镜像),生成的镜像的ID。
import pulumiimport pulumi_alicloud as aliclouddef create_instance( pre_name, availability_znotallow=None, vswitch=None, sg=None, password=None, user_data=None, instance_type=None, image_id=None): # 实例 sg_ids = [sg.id] instance_name = "{}-instance".format(pre_name) instance = alicloud.ecs.Instance( instance_name, availability_znotallow=availability_zone, instance_type=instance_type, security_groups=sg_ids, image_id=image_id, instance_name=instance_name, vswitch_id=vswitch.id, internet_max_bandwidth_out=10, password=password, user_data=user_data ) pulumi.export("{}-IP".format(instance_name), instance.public_ip) return instance4、创建实例1) pulumi up
pulumi up2)查看结果
打开浏览器,输入“实例IP/test/hello”,即可看到 Spring Boot 返回的内容!
3) pulumi destroy如果该实例不想用了,直接销毁即可!
5、总结六、后记综上,本文简单介绍了 Pulumi 的基本原理以及简单用法。主要是为了起抛砖引玉的作用,个人认为 Pulumi 的好处和用法还有待探索。希望这篇文章能给读者一定的帮助,谢谢!
关键词:
推荐
-
时隔十年!深圳第二家Apple Store来:4月28日开幕
4月20日消息,苹果官网显示,苹果在深圳筹建的第二家AppleStore——Apple深圳万象城将于4月28日10:00正...
来源:雷科技
精彩放送
-
精选!Pulumi实战 | 一款架构即代码的开源产品
本篇文章,主要介绍Pulumi是什么以及它的相关原理,并且使用它搭建一个Nacos和SpringBoot的环境!一、Pu...
-
速看:又延期了!特斯拉首款电动皮卡马上量产:交付还遥遥无期
4月20日消息,特斯拉CEO马斯克在本周三的电话会议中透露了关于Cybertruck的生产动态,预计在今年夏天开...
-
天天热文:淄博烧烤有多火?电力数据告诉你
说到美食,淄博烧烤在这个春天火出了圈,成为新晋“顶流”。淄博烧烤到底有多火?从电力数据中可窥一二...
-
psd文件用什么打开网上国网_psd文件用什么打开
Psd是photoshopDocument的缩写,是photoshop存储源文件的方法。需要用Adobe公司的图像处
-
世界今日讯!如何制作纸话匣子
你需要的东西一张纸剪刀记号笔或蜡笔钢笔或铅笔与话匣子分享下雨天的乐趣。杰夫·法里斯话匣子在制作和...
-
2023年河南重点高校招生专项计划工作启动 实施区域和报考条件公布
根据教育部高校学生司《关于做好2023年重点高校招生专项计划工作的通知》(教学司〔2023〕4号)和《河南...
-
北方或迎第十次沙尘 南方局地强降水伴强对流
【北方或迎第十次沙尘】升得高跌得狠!强冷空气即将终结超前暖热15省份体验换季式降温最近几天,我国大...
-
华为手机怎么设置锁屏密码?华为手机为何关闭不了锁屏密码?
华为手机怎么设置锁屏密码?1、进入设置 > 生物识别和密码,点击更改锁屏密码。2、输入旧锁屏密码。3、...
-
华为手机飞行模式怎么关?华为手机怎么设置飞行模式?
华为手机飞行模式怎么关?1,从屏幕顶部右侧下滑出控制中心,点击快捷栏展开按钮展开快捷开关栏。点亮飞...
-
世界要闻:鼓励民间资本参与重大项目建设 加快落实各项建设条件
【鼓励民间资本参与重大项目建设】4月19日国家发展改革委召开新闻发布会,国家发展改革委新闻发言人孟玮...
-
即时:天平街道卧虎山社区:红色智囊团 助力老旧小区改造
天平街道卧虎山社区:红色智囊团助力老旧小区改造,泵房,车棚,智囊团,老旧小区,天平街道,卧虎山社区
-
怎么在手机上交罚款?手机上交违章罚款怎么交?
怎么在手机上交罚款?第一步:扫码下载交管12123APP第二步:登录交管12123APP。如果您还未注册,请点击页...
-
全球快消息!我的叉车证怎么在网上查到_我的叉车证怎么查询
1、可以在国家市场监督管理总局网站查询,具体操作方法如下:百度搜索“国家市场监督管理总局”。2、2、...
-
苹果备忘录最近删除误删怎么恢复?如何恢复删除的备忘录?
苹果备忘录最近删除误删怎么恢复?方法一:最近删除恢复误删除了备忘录该怎么找回来?备忘录最后一栏便是最...
-
快手开直播没有声音是怎么回事?快手怎么打开消息通知声音?
快手开直播没有声音是怎么回事?快手信息的提示音,可以在手机系统通知声音的选项中进行设置。首先点击进...
-
全球热门:85吋4499元!小米新款电视太卷了:死磕性价比
4月20日消息,RedmiX85英寸智能电视正式开启预售活动,目前处于定金预付阶段,20元抵尾款500元,到手价...
-
点歌机不能触屏怎么回事?点歌机屏幕失灵怎么搞?
点歌机不能触屏怎么回事?点歌机开机后出现触摸屏校准点它不管用可以尝试以下处理方法:1、如果只是不准...
-
时隔十年!深圳第二家Apple Store来:4月28日开幕
4月20日消息,苹果官网显示,苹果在深圳筹建的第二家AppleStore——Apple深圳万象城将于4月28日10:00正...
-
净水器怎么连wifi?净水器离线如何连接?
净水器怎么连wifi?1、手机连上wifi后,在手机上下载相关APP,登录净水机账号。2、打开APP,点击上面的加...
-
当前看点!山西襄垣发现金代砖雕壁画墓 建筑细节再现当地民居民俗
山西省考古研究院4月18日发布,山西省长治市襄垣县发现一处金代砖雕壁画墓。△墓葬位置来源:山西省考古...
-
华为手机怎么录屏操作?华为录屏声音在哪设置?
华为手机怎么录屏操作?一、使用组合键录屏同时按住电源键和音量上键启动录屏,再次按住结束录屏。二、使...
-
进厂办手机卡什么意思?工厂有义务给员工办卡么?
进厂办手机卡什么意思?办理手机卡的意思就是,因为刚刚入职新的工厂,并且厂有具体要求,为了便于管理员...
-
天天热门:特斯拉烈焰红Model S现身 视觉效果惊艳
特斯拉北京亦庄交付中心近日出现了一台选装烈焰红车漆的全新ModelS(参数|询价),据悉该车为特斯拉门店展...
-
美国众议长公布法案,计划提高国家债务上限
当地时间4月19日,美国国会众议院议长凯文·麦卡锡公布2023年“限制、储蓄、增长”法案,法案计划将联邦...
-
天天新动态:现在选择读博还是一个好出路么?
这是刚在知乎上刷到的一个问题,提问的题主称,自己以前以为学历很重要,读研读博之后可以有轻松愉快且...
-
2023年山东省面向本土人才招录基层公务员考试报名时间:5月5日-6日
2023年山东省面向本土人才招录基层公务员考试报名网上报名。经组织推荐、审定同意后,推荐人选可在2023...
-
时讯:联想刘军:今年将是大客户市场的 “大年”
4月20日,在深圳举办的“一起联想全栈出击”——新财年联想中国区大客户合作伙伴大会上,联想集团执行副...
-
焦点报道:涉及17亿美元 亚马逊收购iRobot交易触发英国调查
【环球网科技综合报道】4月19日消息,据《华尔街日报》报道,英国竞争和市场管理局(CMA)周二开始对亚...
-
焦点滚动:佛山市顺德区人力资源和社会保障局事业编制招聘
1、顺德区人力资源和社会保障局正确黎讲系区政府大楼9楼!但系个个系主楼办公的。2、普通人是不准进去的...
-
天天资讯:定坤丹的功效与作用_定坤丸的功效与作用
1、病情分析:定坤丹主要由西红花、三七、白芍、熟地、当归、白术、黄芩、香附、川芎、鹿角霜、元胡、鸡...
-
世界看点:4399弹弹堂新手大礼包卡密 4399弹弹堂新手大礼包
今天来聊聊关于4399弹弹堂新手大礼包卡密,4399弹弹堂新手大礼包的文章,现在就为大家来简单介绍下4399...
-
内蒙古高校排行榜 辽宁独立大学最新排名
今天,大学路小编为大家带来了内蒙古高校排行榜辽宁独立大学最新排名,希望能帮助到广大考生和家长,一...
-
天天简讯:资金爆买超100亿!“数字中国”迎长牛行情?
数字中国迎风起航,通信产业有望腾飞;年报翻倍通信设备龙头股一览!详情
-
苹果的“印度大冒险”
作者:Hernanderz监制:罗超苹果近来的日子,是越来越不好过了。Mac销量下滑严重,甚至带崩了整个PC市场...
-
世界看热讯:5799元!神舟再次扮演价格屠夫:战神S8 4060版来了
4月19日消息,神舟电脑官方发微博表示,其抖音官方店铺上架了三款战神S8系列新品。三款新机分别为:i512...
-
【环球新要闻】快手死磕本地生活
作者:Hernanderz监制:罗超进入2023年,本地生活依然是互联网大厂的兵家必争之地。继抖音上线商城功能...
-
环球资讯:工信部:一季度我国造船三大指标市场份额保持全球领先
据工信微报,2023年1—3月,全国造船完工量917万载重吨,同比下降4 6%,其中海船为308万修正总吨;新接...
-
来青岛吧!空中汉服秀即将精彩上演,时间、地点就在……
春风依依栖春意,古韵悠悠送古香,由青岛市文化和旅游局、青岛市园林和林业局指导的中国太平山索道空中...
-
【焦点热闻】长峰医院火灾事件追踪:住院患者陆续转移 互联网医院仍可预约
21世纪经济报道记者朱萍见习记者林昀肖实习生兰鑫宇北京报道据央视新闻报道,2023年4月18日12时57分,丰...
-
关注:中国日报社参加第三十三届中国新闻奖 新闻漫画作品专项初评的公示
根据中国记协《中国新闻奖评选办法》和《关于开展第33届中国新闻奖新闻漫画、报纸版面专项初评工作的通...
-
【新视野】北京长峰医院火灾事故初步调查结果公布:医院内部施工作业火花引发
中新网北京4月19日电(记者陈杭)北京市消防救援总队副总队长赵洋19日在北京长峰医院火灾事故情况通报会表...
-
环球微资讯!白银投资指的是什么
白银投资是指通过一定手段,从投资白银方式中获利的一种投资方式。白银因其价格低廉和投资门槛低,被称...
-
世界热讯:可以和未成年子女脱离父子关系吗
可以和未成年子女脱离父子关系吗
-
热点聚焦:生态问题解决了?苹果头显又有新爆料:可直接下载iPad应用
4月19日消息,彭博社记者马克・古尔曼(MarkGurman)爆料称,苹果正在努力为即将推出的首款混合现实头显打...
-
世界滚动:浙江2023年一级建造师考试报名时间通知
浙江2023年一级建造师考试报名时间通知由一级建造师考试栏目提供,查找更多考试报名资讯、准考证打印、成...
-
环球视讯!尹锡悦称可能向乌提供军援,外媒:首次改变韩国向乌供武立场
据路透社19日报道,在将于下周前往美国访问之际,韩国总统尹锡悦接受采访表示,如果乌克兰平民在冲突遭...
-
当前讯息:恒尚节能上市募5亿首日涨59% 去年经营现金净额-2亿
恒尚节能上市募5亿首日涨59%去年经营现金净额-2亿
-
信息:金冠电气(688517)4月19日主力资金净买入131.55万元
截至2023年4月19日收盘,金冠电气(688517)报收于18 35元,上涨0 0%,换手率2 97%,成交量2 49万手,成交额4556 95万元。
-
今热点:4月19日人民币对美元汇率中间价调升83个基点
中证网讯(记者连润)据外汇交易中心公布,4月19日,银行间外汇市场人民币对美元汇率中间价报6 8731...
-
最新消息:Steam Deck年度最大竞品?ROG掌机曝光:性能超强劲
4月19日消息,ROGGlobal官方推特近日更新推文,宣布华硕首款游戏掌机ROGAlly已确定将面向全球市场发布,...
-
本场亮点在哪?威少:对我来说没有所谓的个人亮点 要捍卫主场
直播吧4月19日讯今天,NBA季后赛首轮G2,快船109-123不敌太阳,大比分1-1平。在赛后接受采访时,威少被问及
-
电脑显示器内置音箱没声音?电脑音箱插上没声音怎么回事?
电脑显示器内置音箱没声音?1 首先在状态栏的右角落后找到喇叭的图标,然后点击右键选择播放设备。2 选...
-
蓝牙怎样一边放音乐一边刷视频?如何连蓝牙在车上放歌?
蓝牙怎样一边放音乐一边刷视频?1 打开qq音乐设置首先打开qq音乐,在qq音乐设置中将允许与其他应用同时...
-
耳机耳返功能在哪里?耳机怎么打开耳返?
耳机耳返功能在哪里?1 打开抖音界面2 点击中间的加号3 点击【K歌】4 选择要唱的歌,点击后面的【去K...
-
苹果有线耳机找不到了怎么找?有线耳机丢了怎么找?
苹果有线耳机找不到了怎么找?第一步:首先我们打开查找App,在设备界面的列表中点击耳机名称。第二步:...
-
今热点:4000元内高端VR一体机,PICO 4 Pro重磅开售
4月19日,知名XR品牌PICO正式上市了VR一体机PICO4Pro,售价3799元起。作为国内首款同时支持眼动追踪(ET...
-
怎么让两只耳机配对?漫步者耳机左右耳配对?
怎么让两只耳机配对?1 把左右耳机同时放进充电仓,待耳机上的指示灯亮时,同时按住左右耳机功能键10秒...
-
什么牌子的高清播放器比较好?免费好用的视频播放器是什么?
什么牌子的高清播放器比较好?首先,在挑选高清播放器时,最重要的是要确保它支持多种格式,包括4K超高清...
-
比较好用的视频播放器?海外播放器哪个好用?
比较好用的视频播放器?当然是KMPlayer啦!(重要事情说三遍:没广告!没广告!没广告!)系统占用率:KMPlayer...
-
苏梦枕语录_苏梦枕的人物经历
1、苏梦枕,疑似苏轼后人(虚构,详见《江湖闲话十五·苏梦枕的梦》),祖籍应州,父亲苏遮幕。2、自小...
-
音响蓝牙怎么连接手机?手机蓝牙连接不上设备怎么办?
音响蓝牙怎么连接手机?蓝牙耳机基本上都是这样连接的,我再就用我自己用的耳机做一个连接的操作过程,希...
-
电位器怎么选择大小?音响电位器沙沙响怎么处理?
电位器怎么选择大小?非常费电!电阻的发热量也是很大了。电阻是限流器件,有分压作用。要想用电阻降压,...
-
智能灯蓝牙是连接哪里?灯的蓝牙连上怎么用?
智能灯蓝牙是连接哪里?首先大家需要先将手机蓝牙打开,在蓝牙里面可以搜索设备,搜索到了之后就可以直接...
-
门派争鸣!《剑侠世界3》11大门派超炫CG首曝
《剑侠世界3》11门派CG首曝,十一大门派齐聚出镜,以五行之力施展门派绝学。刀光剑影之间,门派魅力尽绽...
-
全球观察:泡温泉要不要穿内衣裤
1、泡温泉不要穿内衣裤。2、内衣裤一般多为棉质衣物,在泡水时容易出现松垂,可能会产生不适,泡温泉时...
-
天天简讯:西藏加强海外知识产权纠纷应对机制建设
日前,西藏自治区市场监管局(知识产权局)会同自治区商务厅制定了《关于进一步加强海外知识产权纠纷应...
-
环球最资讯丨市值缩水超1300亿!多元化发展不顺,片仔癀该如何突围?
一边是逐渐萎靡的化妆品业务,一边则是营收占比还很低的安宫牛黄丸业务,不难看出,在“一核两翼”策略...
-
环球播报:消费回升的“可持续性”从哪来?国家发改委提出四个方面
人民网北京4月19日电(记者申佳平)4月19日,在国家发展改革委举行的4月份新闻发布会上,国家发展改革委...
-
【播资讯】广西扶绥:办盛会 迎佳节
2023年4月18日,广西壮族自治区桂林理工大学南宁分校(扶绥空港校区)举办第三届少数民族传统体育运动会...
-
马斯克的星舰推迟发射,“人类史上最强的火箭”有多疯狂?
马斯克的星舰推迟发射,“人类史上最强的火箭”有多疯狂?
-
世界热消息:大开眼界世界五大奇观美景 世界上最壮观的美丽奇景
最in单品、最潮搭配,晒单、分享、打分全都有。让穿得好看变成一种习惯。威尔士红豆杉树生长茫茫林海中...
-
重大升级!新iPhone重要卖点曝光:长焦镜头大幅增强
4月19日消息,据MacRumors最新报道,苹果公司今年推出的iPhone15系列的相机将迎来一次重大升级。据悉,...
-
热点聚焦:第二代骁龙8助Xiaomi 13 Ultra打造顶级影像旗舰
4月18日,小米推出全新旗舰影像Xiaomi13Ultra。搭载第二代骁龙8移动平台的Xiaomi13Ultra,采用徕卡与小...
-
奶酪博士,第一个把原制奶酪卖成功的新生代企业
“去年一个展会上,碰到了海南自贸港招商的人,介绍了一些相应的好政策,但我们没有进一步的推进。”奶...
-
环球聚焦:“银四”变“铁四”!南京楼市或将迎新转机?
刚过去的3月,南京楼市“小阳春”特征明显,全市新房成交8139套,套数环比2月(5339套)上涨52 4%,同...
-
斯柯达在自动驾驶汽车上测试安装在格栅上的交通灯这有多疯狂
“为什么鸡要过马路?因为自动驾驶汽车允许它过马路。”这不是你所期望的妙语,但它可能会成为现实。德资...
-
每日热议!4月19日生意社氢氟酸基准价为10357.14元/吨
4月19日,生意社氢氟酸基准价为10357 14元 吨,与本月初(9800 00元 吨)相比,上涨了5 69%。氢氟酸年度统计(2022-04-19--20
-
环球速读:招商轮船(601872):MACD指标DIF线上穿0轴-技术指标上后市看多(04-19)
北向资金数据:持股量:41517 69万股,占流通比5 1%,昨日净买入204 22万股,昨日增仓比0 025%,5日...
-
每日关注!马龙:我的工作是让球员们保持谦逊 我们还有15场比赛要赢
直播吧4月19日讯今日早些时候,掘金主教练马龙接受了媒体采访。谈到目前球队大比分1-0领先,马龙表示:...
-
环球视点!法拍房“回暖”,法官告诉你这样“拍”
执行干警在江苏某公司查封公司资产,现场与债权人协商确定拍卖参考价。严夏菲摄 今年以来,随着经济...
-
格灵深瞳:4月18日融资买入1478.15万元,融资融券余额1.66亿元
4月18日,格灵深瞳(688207)融资买入1478 15万元,融资偿还1077 92万元,融资净买入400 23万元,融...
-
环球资讯:汉源黑樱桃挂满枝销售期可持续至5月
4月18日,在汉源县唐家镇唐家村一处果园里,一颗颗晶莹剔透的黑樱桃挂满枝头。樱桃树下,果农忙着采摘销...
-
每日时讯!湖南区划调整设想,由14个地市州精简到10个地市州
湖南省,总面积21 18万平方公里,常住人口6604 0万人,2022年,地区生产总值为48670 37亿元。现有14...
-
【天天热闻】4月18日基金净值:华安智能生活混合A最新净值2.6244,跌0.62%
4月18日,华安智能生活混合A最新单位净值为2 6244元,累计净值为2 6244元,较前一交易日下跌0 62%。...
-
天天观察:爱国者顶级速度2T 579元
这个是PCIe4 0满速7450MBps的版本。爱国者(aigo)2TBSSD固态硬盘M 2接口(NVMe1 4)PCIe4*4P7000Z读速高...
-
【新视野】遥遥领先!卢伟冰:小米13 Ultra会是2023年最强影像旗舰 没有之一
遥遥领先!卢伟冰:小米13Ultra会是2023年最强影像旗舰没有之一
-
法网官宣参赛名单!郑钦文领衔中国选手7人,吴易昺张之臻创历史
北京时间4月18日,法网在官方公布了2023年度正赛参赛名单。女单总共有7位球员采用保护排名报名,其中包...
-
新资讯:欧冠四强产生两席!皇马双杀切尔西晋级,米兰16年后重返半决赛
至此本赛季欧冠四强已经产生两席,皇马主客场两回合双杀切尔西队,总比分4-0跻身本赛季欧冠四强。另一边...
-
天天精选!vlog教程书_vlog教程
1、Vlog,其实就是视频博客或者视频日记,用影片的方式取代图文所呈现的新模式。2、大家可以用Vlog的形...
-
全球观速讯丨让家电底蕴为电动车赋能,创维汽车2023焕新升级发布会有惊喜
你听说过“创维汽车”吗?小雷相信,大多数读者可能并不是太了解创维汽车,哪怕他们对“创维电视”有着...
-
天天报道:一趟特殊的旅程!怀铁乘警成功劝返受骗学生
一趟特殊的旅程!怀铁乘警成功劝返受骗学生
-
全球今热点:滨化股份(601678):4月18日北向资金减持17.71万股
4月18日北向资金减持17 71万股滨化股份。近5个交易日中,获北向资金减持的有3天,累计净减持140 58万...
-
森林海_关于森林海简述
1、森林海位于望城区高塘岭镇高乔大道西侧,是市政府巨资打造的湘江新区核心区域。2、项目总体定位为 "...
-
绩效薪酬追索扣回机制发力!多家银行向员工“讨薪”,高管薪酬遭“腰斩”
绩效薪酬追索扣回机制发力!多家银行向员工“讨薪”,高管薪酬遭“腰斩”,薪资,绩效薪酬,扣回机制
-
环球热推荐:curly是什么意思_该词怎么造句
欢迎观看本篇文章,小勉来为大家解答以上问题。curly是什么意思,该词怎么造句很多人还不知道,现在让我...
-
长安汽车:2022年归母净利润77.98亿元,同比增119.52%,到2025年力争销售350-400万辆
长安汽车4月17日公告,2022年,公司实现营业收入1212 53亿元,同比上涨15 32%;归母净利润77 98亿元,
-
全球微头条丨绝地求生message怎么解决_游戏 绝地求生 出现message 怎么办
1、首先我是从win7系统装游戏开始发现一系列问题之后所有问题解决后还是无法上去游戏,只当我重装win10...
-
每日头条!汗疱疹是怎么引起的如何治疗 汗疱疹是怎么引起的
今天来聊聊关于汗疱疹是怎么引起的如何治疗,汗疱疹是怎么引起的的文章,现在就为大家来简单介绍下汗疱...
-
全球快看点丨一季度中国工业生产逐步恢复 规模以上工业增加值同比增3%
数据显示,一季度中国规模以上工业增加值同比增长3 0%,比上年四季度加快0 3个百分点,工业生产逐步恢...
-
热门:三月三有什么风俗
农历三月三是我国古代的“上巳节”,是一个纪念皇帝的节日,相传农历三月初三是皇帝的诞辰,也是中国多...
创投更多》
-
元宇宙概念是什么意思能玩吗?元宇宙是什么?
元宇宙一般指Metaverse,Metaverse 是...
-
元宇宙概念是什么意思能玩吗?元宇宙是什么?
元宇宙一般指Metaverse,Metaverse 是...
-
欧菲光上半年净利亏损8.74亿 因苹果终止采购关系?
8月30日消息,日前,欧菲光发布2022年半...
-
映宇宙:上半年总收入40.6亿元 商誉减值亏损约为1.1亿元
8月29日消息,映宇宙发布截至2022年6月3...
-
贾跃亭的FF91量产有新转机 有望2022年第三季度启动交付
对于贾跃亭来说,FF91的量产交付迟迟没...