关于编程教育的思考

在安恒接触的安全编程教育

主要做了几件事

  1. 编写教程,web安全,移动安全,渗透测试,应急响应等
  2. 搭建实验
  3. 搭建ctf比赛环境
  4. 自动化审核题目
  5. 基于caas的平台探索
  6. 培训&直播
  7. 付费的订制比赛探索
  8. 社区和知识库的创建和维护
  9. 管理

 

我创建了一个叫“月赛”的模式,其实这个在acm之类的其他方向也有了,月赛通过免费的方式引入流量沉淀,在直播等下游进行收费,通过复现等方式提供有价值的内容。

主要的价值在于知识,这是真的知识付费。

这个有啥好处呢,相比传统的线下授课,这个方式节约双方的成本,用户线下培训 有些涉及出差,时间是否可接受,成本比线上高,线上不需要你怎样 只要联网就行了。随着现在的直播技术的成熟,现在直播的成本也在降低 适合直播授课,并且,这个思路得到了不少客户的任何,在安恒,有些客户和我沟通的时候允许线上授课,而且第一视角观看老师的笔记本 也不会遇到投影不清晰,场地硬件环境受限等一系列的问题。

价值:提供成长性知识,将知识通过实践,让学生深刻的消化,成为生命的一部分。

动机: 当初去做这件事情的时候,那个部门只有一个实验室平台的产品,这个产品#¥%……  嗯 很棒!interesting。。 和我聊天的客户都对这个产品不断“点赞”,在了解了这些信息后,我觉得这个部门的提升潜力还是很大的,毕竟考90分想考100 那努力的程度显然要高很多,但是从10分考到60分及格,那潜力是不是很巨大,没错,我抱着这个心态和从公司更好的角度出发,在自己寻找资源的情况下 自己一个人搞了这个月赛,自己寻找题目,找不到自己出,出好了自己运营 组织 ,并且直播,嗯 那时候微信公众号的文章也是我一个人发的,嗯题的导入也是,那时候实习生还没帮我干活。

坚持了2-3个月 领导却对我说 不要一个人揽那么多活。  嗯  那时候我就觉得 这个格局很不错。小孩才分对错,大人都是讲利弊,没错 个人的角度来说,这些J8活有啥意义。。不过 这不是我要的。对于我来说,我只想carry,你不carry可以,不要妨碍我试图去carry。

我知道自己要啥 于是坚持到了离职 整一年。

这1年的有限资源探索里,我学到了

1、自动化审核题目 和部署,约定了提交的格式

2、投入和产出。  从一个月做一个事情到一个月逐步减少这个工作带来的工作压力和负担,基本上压缩到了占用1/3个月的时间。当时估算的产出按照10元的直播费用来计算,初步可以达到收支平衡。 当然2c 赚钱本来就比较困难,在这个探索的过程中,也有一个大佬客户说希望购买这个服务,以支持我的这个工作,比较感动,他说会推动全体员工来参与这个事情 并且有预算。只要策略使用得当,病毒式的传播和盈利不是问题,看看那么多朋友圈红包等模式就知道了。。这个边际成本会被降低的很快,主要是在突破这个收支平衡的时候比较困难,那时候我已经完成了自己定的一个小目标,就是收支平衡,接下来只要不断扩大基数 降低边际成本即可

3、直播讲课。这个是个非技术活,学计算机大部分都是程序员 闷骚,心态比较灵活,所以为了提高学习的热情和积极程度,大家可以参考下那个考研的相声大师。。。你看他就网红了。学习下就行了,或者较为正常的讲师也可以,只要不是不喜欢沟通交流的 就行。。。

有的人说 直播不能为很多学员解答问题,线下可以,其实这样的提问 这个人80% 90% 没有长期参加培训 可能讲了几次课 以为自己很熟悉了,这样的 人还是很多的。

在直播中可以预留半小时解答题目。并且设置一些视频断点,从该处开始就是faq了。主流直播平台都允许留言,留言多的可以讲解和分析下。

4、技术的知识传播方式优化。   技术这个东西 比较难以像产品那样形成一个具体的服务器,最多形成课件,但是课件的局限性就是文字多,我要看那么多内容,但是对于菜鸟来说,就算给了思路他也看不懂,于是 需要借助直播和视频来更直观的感受。这也是我做社区和直播的原因之一。  市面上很多的课件,那是真的不能看,从一个初学者的角度来思考,这。。。写的是啥和啥。要知道 学习 技术的人是非常菜的,就和做pm一样,用户很笨,你要把产品做的非常简单就可以学习。如果写的和技术分析博客那样 ,八九就活不下去了,创业要是这样在技术上炫耀或者体现自己。。。我的天  那你的用户基数可能只有几十个人。。。嗯  明天你就倒闭了。。。所以一定要做的非常简单和通俗易懂,最好是step1  step2  截图 下一步 这样的

5、平台的优化。  初期都是vmware,openstack, 这些都太庞大了,无论镜像和题如何压缩 都非常大。有一次比赛,规模几百人。。那时候用了11-12台服务器,创建了300多个虚拟机。创建用了1个晚上……¥%*(*(&…

不仅不去优化 还很自豪,我加班了。。。。(*&¥%    愚蠢至极

为了简化这个过程,我在经过探索后发现一个方法可以极大地 缩减时间和硬件规模,那就是caas。容器云。 windows的容器 宿主机需要是windows并且指定镜像版本,没关系 这个已经可以很好的满足我的需求了。

其他的通过docker的网络可以跨vlan架构了 很好的满足了渗透之类的环境搭建,为了减少网络的压力,我们必须对网络的流量进行控制。初期的题目都是共享,也就是大家访问都是一个虚拟机实例。这样对这个单个实例的压力太大了,大家用sqlmap跑下 这个实例的mysql就挂了。。而且 你不管怎么处理 都会遇到这个问题的,把并发 内存 等都做了调整 情况会稍微好点,但是人的基数一旦扩大 还是会遇到这个问题的,毕竟,如果单个服务器能优化到可以撑起几千人访问,我就不在这里工作了,应该是在维护mysql社区了,在阿里研发了吧,也不需要集群这个词语的出现了。

所以,通过caas 跑1个容器,轻松面对这样的压力,并且可以定制每个访问和流量,也不会因为共享问题,有的人把首页改了 导致其他的选手访问题目不正常。

 

 

算了 不写了,有些事情 自己研究下就行了,互联网人多口杂,有些人适合分享技术和内容给他,有些人 自己也不愿意分享, 那么我也不希望这样的人拿到这些资源。

有想和我交流这方面的可以加我微信或者留言 哈哈哈哈  这样比较好

用户访问->是否收费会员,资源鉴权->在线平台->请求后端caas容器云->寻找镜像->生成容器->返回在线平台

 

访问对应的容器可以通过 在平台这一层多加几台vpn服务器,通过vpn连接进入容器网络环境。嗯 这个方案应该是最好的了,端口转发这样的方式,用户访问的是一个ip+端口。一个http服务开到72632端口,多难受。看着都难受,有些cms 还写死了IP。

当然  这个问题 我也解决了

 

总之我现在可以实现一个通过vpn拨号来登录云平台操作和复现实验的产品。 其他的 就是直播、比赛、社区等。 社区这个东西还是很重要的,例如wooyun t00ls 等,需要沉淀用户的

 

posted @ 2019-04-10 18:45  xsser's  阅读(520)  评论(0编辑  收藏  举报