办公杀手锏-使用ECS编程&办公心体验
阿里云新款的C5&C7 ECS基于神龙底层架构,在性能方面有很大的提升,我们可以部署多种服务来发挥更大的价值。本文介绍并实践了在办公方面我们可以用ECS做些什么。
1.实现PHP远程开发
在我们日常学习编程的时候通常会在本地环境下遇见一些奇奇怪怪的问题,例如:不同语言的编译环境冲突、环境变量配置错误等。小错误在花费时间后还能修复掉,但是在某些情况下复杂的本地环境甚至还会造成严重的可用性问题,例如docker容器无法和VMware等虚拟机共存(虚拟化冲突)。
在学习使用PHP开发动态网站的时候我在想有没有办法不在本地安装PHP来开发呢?答案是肯定的,通常动态网站开发会使用一套叫做LAMP(LNMP)的自由软件组合,我们可以使用阿里云的ECS来真实的部署一个这样的线上环境来实现学习PHP语言的需求,当然开发完不经测试是万万不可用于生产环境的。那么我们具体步骤如下:
1.拥有一台阿里云ECS
我们选择开发者学习测试的套餐就可以满足我们学习PHP开发的需求了,新用户仅需44.9就可以使用一年。或者选择单ECS实例,一年仅需35元。
2.部署环境的三种方法
面板集成环境(PHPStudy)可以这样操作:
(该方法仅需一步操作~)
Centos安装脚本yum install -y wget && wget -O install.sh https://notdocker.xp.cn/install.sh && sh install.sh
Ubuntu安装脚本wget -O install.sh https://notdocker.xp.cn/install.sh && sudo bash install.sh
使用云市场镜像一键实现
在镜像选择时我们可以选择已有的镜像以免除开发环境部署的困扰,例如我们可以选择LNMP环境,其是在Linux操作系统下开发,由Nginx HTTP服务器提供内容,在MySQL数据库中存储内容,PHP来实现程序逻辑。
当我们完成镜像生产后就可以使用ECS公网IP检查PHP探针查看是否部署完成:
手动配置
打开本地的SSH工具连接ECS主机:在终端中输入连接命令ssh root@[ipaddress]并根据提示输入密码。
- 安装Apache Web服务器:
REDhat:
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql
systemctl start httpd.service
Ubuntu/Debian:
sudo apt update
sudo apt install apache2
sudo systemctl status apache2我们可以在实例安全组配置中放行80&443Web服务端口,然后在浏览器输入EIP则可看到Apache的默认页面。
- 安装MySQL数据库
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm &&yum -y install mysql57-community-release-el7-10.noarch.rpm &&
yum -y install mysql-community-server
systemctl start mysqld.service
grep "password" /var/log/mysqld.log//查看默认密码
mysql -uroot -p//登录MySQL数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456Ali@';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ''123456Ali@';
- 安装PHP
yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap
安装完成网站的默认地址为/var/www/html/
3.在IDE中配置服务器信息
在ECS上配置好环境我们就可以在开发工具中配置:
以PHPstorm为例,按Ctrl+Alt+S进入设置,点击构建、执行、部署=>部署,配置ECS信息
在SSH在Ctrl+S就能用IDE自动通过SSH部署到远程ECS上,我们可以直接在浏览器输入ECS的ip地址(访问index.php)来查看刚开发完成的线上效果,想访问其他页面可以在浏览器里输入/othername.php来实现。
可以愉快的享受PHP开发啦~
2.搭建蜜罐系统
我们可以搭建一个蜜罐系统来看看网络里面有没有小坏蛋。只要在公网上开启ssh服务,就会有很多不老实的扫描工具对ssh服务进行破解。ssh-honeypot是一个简单易用的SSH蜜罐系统,可以记录攻击者的IP地址,输入的账号和密码。我们下半部分就来搭建一个这样的蜜罐系统。
出于系统安全性的考虑,我们将ssh-honeypot搭建在docker中,最大程度与服务器隔离。
我们使用Dockerfile来搭建该系统:
- 创建文件夹
mkdir ssh-hp
cd ssh-hp
- 编写Dockerfile文件
RUN apt update RUN apt install -y libssh-dev libjson-c-dev git make clang \ && git clone https://github.com/droberson/ssh-honeypot.gitWORKDIR ssh-honeypotRUN make && make install\ && ssh-keygen -t rsa -f ./ssh-honeypot.rsa CMD bin/ssh-honeypot -r ./ssh-honeypot.rsaEXPOSE 22
- 运行docker build -t ssh-hp .
- 启动蜜罐系统sudo docker run -p 22:22 -d ssh-hp
- 进入容器查看蜜罐系统记录下的信息sudo docker exec -it <容器ID> bash
3.搭建云开发环境
SmartIDE Server 为开发团队提供对开发环境的统一在线管理和访问能力,企业管理者可以通过SmartIDE Server为开发团队提供统一的一致的开发环境,大幅降低开发者花费在搭建环境上的时间消耗,让开发者可以将更多的精力投入到业务需求开发和技术方案改进上。更为重要的是,SmartIDE Server提供了完全受控的开发测试环境,管理者可以通过工作区策略对开发环境进行管理,比如:
- 端到端的代码安全:通过策略配置实现开发者只能通过浏览器修改和发布代码,完全避免开发者将代码下载到个人开发机上;
- 质量左移:通过指定制定策略在开发者提交代码之前就进行质量门禁的验证,从而彻底杜绝有问题的代码进入代码仓库;
- 优化DevOps流水线:通过提供与生产环境一致的开发测试环境部署方式,大幅降低DevOps流水线的复杂度,并通过将更多的串行的流水线环节集成到开发编码过程中,大幅缩短流水线运行时间并提高部署成功率。
SmartIDE Server 使用容器和云原生技术,可以部署在任何标准的虚拟化或者k8s平台上,企业云管理员可以自行完成SmartIDE Server的私有部署,并将企业内部开发团队的开发测试环境纳入企业云的管理之中。开发测试环境一旦纳入云平台的管理可以有效降低企业内部开发测试环境的管理复杂度,提高资源利用率;容器化开发测试环境可以根据开发者的需要动态的创建或者销毁环境,为开发测试环境提供弹性伸缩能力。与当前企业中大量使用的基于VDI的开发测试环境管理模式相比,基于容器的开发测试环境将大幅提高资源利用率,同时大幅降低成本。
对于开发者而言,使用SmartIDE Server可以完全消除开发者搭建环境的技能要求,避免因为环境不一致或者工具/SDK版本,安装配置问题所造成的时间浪费,让开发者将更多的精力投入到更有价值的应用开发中去。对于团队而言,当一个团队成员开始使用SmartIDE以后,其他开发者就可以完全重用这个环境,而不必重新配置;如果一名成员变更了环境配置,其他的成员也可以通过一个简单的git pull就可以获取到这个变更后的开发环境。
安装步骤
# SmartIDE 每日构建版通道安装脚本 # 再次执行此命令即可更新版本 curl -OL "https://smartidedl.blob.core.chinacloudapi.cn/releases/$(curl -L -s https://smartidedl.blob.core.chinacloudapi.cn/releases/stable.txt)/smartide-linux" \ && sudo mv -f smartide-linux /usr/local/bin/smartide \ && sudo ln -s -f /usr/local/bin/smartide /usr/local/bin/se \ && sudo chmod +x /usr/local/bin/smartide
远程模式
远程模式允许用户通过SSH调度远程linux主机,并在远程主机上根据预置在代码库中的配置文件(文件位置:.ide/.ide.yaml)完成拉取开发容器镜像,启动容器,代码映射和启动容器内的WebIDE的一系列动作;在开发容器启动成功后,SmartIDE CLI(命令行工具)会作为驻守程序监听远程容器中开发的端口并将这些端口通过SSH隧道的方式转发到本地开发机上,允许用户通过localhost访问,达到“远程开发,本地体验”的目录。
使用远程模式也非常简单,只需要2个步骤
1. 准备远程主机
准备安装好Docker & Docker-Compos的远程linux服务器
2. 启动环境
使用以下命令添加主机记录并启动SmartIDE环境
# 在 MacOS 上打开 终端应用(Terminal) 并复制粘贴本段脚本 ## 添加远程主机 smartide host add <ip地址> --username <用户名> --password <密码> --port 22 ## 获取远程主机ID smartide host list ## 使用远程主机ID和git库地址启动SmartIDE远程开发环境 smartide start --host <远程主机ID> https://gitee.com/idcf-boat-house/boathouse-calculator.git
# 在 Windows 上打开 PowerShell 并复制粘贴本段脚本 ## 添加远程主机 smartide host add <ip地址> --username <用户名> --password <密码> --port 22 ## 获取远程主机ID smartide host list ## 使用远程主机ID和git库地址启动SmartIDE远程开发环境 smartide start --host <远程主机ID> https://gitee.com/idcf-boat-house/boathouse-calculator.git
效果图
3.支持的技术栈
- Node.JS
- Golang
- Java
- .NetCore
- Python
- PHP
- C/C++
4.做漂亮的在线简历(时刻准备被优化:)
近几年经济社会并不安生,各个行业都不再有稳定的职位。
不如做个简历吧。
我使用vCard - Personal portfolio
来实现在线简历,vCard 是一个完全响应的个人作品集网站,可响应所有设备,使用 HTML、CSS 和 JavaScript 构建。
安装Installing vCard
Linux and macOS:
sudo git clone https://github.com/codewithsadee/vcard-personal-portfolio.git
Windows:
git clone https://github.com/codewithsadee/vcard-personal-portfolio.git
效果图
尾巴
阿里云ECS提供了很不错的安全保障并拥有免费额度,系统漏洞、异常登陆和Doss攻击不再是让我们担心的事情。
使用ECS来办公也可以提升团队效率呢~