分类 工作 下的文章

腾讯内部论坛热文:如何做一个小型公司的技术总监

本文在腾讯内部论坛被浏览达7347次,收藏615次,评论几百条,曾经是讨论最热烈的项目管理文章之一。

作为作者本身,感觉这个话题可以讨论的范围非常大,希望能有更多朋友一起切磋探索技术团队的管理之道。

资深程序员是团队中最强大的生产力,但往往被不合理的工作安排浪费掉。

因此作为一个团队的技术的“头”,必须要有明确清晰的认识,把主要的事务性工作剥离出来。并且放弃大量的管理“权力”,以提高团队开发质量和效率为最主要的目标去安排自己的工作。

一般来说技术总监其实会被要求做事实上是2个职位的工作:主程、项目经理(技术化)。

因此必须明确此两个职位的工作任务分割。然后把项目经理的工作,安排给另外一个人做,当然其职称可能同样也得叫“技术总监”或“主程”,总之听起来越牛X越好。

而真正的主程(技术总监)则应该投身于尽量多的技术工作中。而最重要的工作则是开发——生产代码和文档。

主程的工作:

一、开发

从来没有一个资深的外科医生会放下手术刀,而转到手术室外面指手画脚。一个资深的程序员也不应该离开代码和文档的编写,而只是做做架构图。

作为对一个复杂系统的负责人,必须亲手领导和参与建造,才能有足够的能力去负担起这个责任。

因此需要至少使用60%的时间来参与开发的工作,并且建议从一开始上班就开始,虽然早上的效率很低,但是跟任何艰巨工作都一样:万事开头难。

在你好不容易等待电脑慢吞吞的打开了所有的IDE、需求文档、参考资料、工作计划这堆要命的东西之后,你就迈出了最重要的一步,你会发现你不在需要在网上看微博和聊QQ来提振开始工作的激情,而会被某一个优化代码的灵感而激励,或者被一个复杂而有趣的问题所吸引,从而更快的能投入到开发中。

坚持打开电脑做的第一件事是打开IDE软件,是这一切最重要的一步。

开发的工作内容包括有:

1、提出非功能性需求

一般来说功能需求总是让开发人员焦头烂额的主要原因。但是实际上很多项目死在发布之后,却是因为性能、产品质量、扩展性、二次开发效率等非功能性需求没认真去解决而导致的。

主程作为经验最丰富的成员,必须要利用自己曾经的经验和教训(在这里教训往往比经验重要),提出那些自己折腾自己的“非功能性需求”,来保障整个项目在发布后不会轰然倒塌。

这是个吃力不讨好的工作,因为老板和客户往往只会抱怨技术人员在玩弄把戏,骗取更多的资源或者杞人忧天。如何说服这些家伙也许不是主程的工作,但是主程必须要以高度的责任心把问题放到台面上来。沟通的工作也许让项目经理去做会更好,他们有一整套如何威逼利诱老板和客户的戏法。

2、设计和修正软件架构

软件架构设计至关重要,而且工作繁重。不画图纸就敢开工的技术人员要么是天才要么是笨蛋。

对于团队来说,架构在分工合作、避免风险、提高质量等多个方面有无可替代的作用。架构要避免成为空洞的文档,最重要的一步是有人来掌控和实施。而主程主持设计和修正的架构,并且亲手实施,让团队中的腹诽之徒完全无法避开,否则代码将无法运行!

所谓设计和修正架构,并不意味所有的文档应该一个人写,而是指这个架构的每个环节,都是经过主程决策同意的。当然最好这些文档能尽量由他撰写,对于“菜鸟”团队来说,输出这种文档本身就意味着“权势”,有助于主程建立个人威信——这种看起来有点肮脏的“政治”东西,在避免团队内无止境的扯皮,以及稳定那些随时准备跳槽的成员来说,都是相当实用的。

3、难点代码(关键需求)的开发

主程必须写代码,写那些大家都认为风险大的代码。

有的系统对于性能要求很高,他就必须去完成容易出性能问题的部分,比如IO操作或者设计数据库索引。有些系统的需求非常飘忽,他就要去想办法完成框架代码或者脚本引擎,以便众多小弟可以跟着产品人员疲于奔命。这种工作内容会让主程不必完全的读过所有代码,而能牢牢的“掌握”代码,以免团队成员甩耙子的时候能充当备胎。因为融入团队的代码开发,也是一个让架构设计从日常工作中真正控制系统的工作。而且主程代码通常会被别人接触,能直接教育其他团队成员,同时也能建立——威信。

4、救火和杀虫

这个工作其实和代码开发是一致的,如果没有平日的开发,通常紧急问题的解决也是比较难处理的。但是这个也有一个调试技巧的要求,比如要求会使用各种诊断工具。这些工具一般的开发人员可能会比较少使用。找问题的过程本身也可以提高团队其他人的技术水平。

二、培训

培训的工作应该占用30%左右的工作时间。培训是稳定团队人员最重要的手段。也是提高团队开发效率最有效的手段。工具、过程、制度、奖惩,这些都代替不了程序员一行行的去写代码,最直接的方法是让他们做的更快更好,这些需要经验和知识的积累。

1、代码审查

关于代码审查,有太多的论述。但是代码审查还是一种“强迫”推行某种风格或者技巧的手段,这是最真实的“控制”系统的手段。也是推广知识和经验最直接的手段。

一个人写的代码通常应对的问题不会特别“广泛”,因此只要审查其中一部分代码,就能给大部分别的代码带来好处。

2、技术方案评审

什么事情应该写一个技术方案,然后进行评审,这是一个关键的问题。

一般认为开发时间在2周以上的单项工作应该先做个方案。往往技术方案是系统架构的完善和补充,或者是挑战。所以主程的参与是非常必要的。

但是要注意不需要去做的太琐碎,而是要提炼出“关键”的需求和“关键”的解决方案进行评审,而这些“关键”往往不是功能,而是质量上的需求,如这个系统的扩展性,是否能方便后续开发等等。

也有可能在这些会议上会发生争吵,但是决策人是主程的地位是不容动摇的。君子和而不同,每个程序员都可以拥有自己的看法,但是代码必须能按方案运行起来,主程必须经常申明这点。

3、学习与讲座

如果团队碰到问题,没有新的方法和技术去解决,是不会提高开发效率的。就好像你用牛来耕地,不管用什么管理方法,都不会赶上机械化的速度。

而主程承担着不断突破自己的技术上限,介绍和推动团队使用更新的技术来解决问题的责任。抱残守缺,思想僵化,最后会被团队成员所抛弃,而且也会让团队的效能落后于业界,最后直接影响产品的生死。

每年学一门新语言,这个说法可能有点激进,但是这也是作为程序员应该有的激情。

三、管理

管理等于权势?管理等于沟通?管理等于文山会海?多年专业训练出来的技术人员如何去做管理?

管理的目标是提高绩效,如果和这个目标无关,而只是和“管理者”这个头衔有关的事情,最好丢给别人去做,包括那个头衔。

管理主要手段是创新:想出新的方法去解决问题,而不是繁杂的事务性工作!——一个专业秘书能比主程做的好一百倍。

技术工作的创新,最主要还是在技术工作里面,而不是跳出来说:做这个,做那个。

管理的事情如果超过10%的工作时间,等于说你更像一个项目经理而非主程。

1、绩效评定

以专业的意见来衡量别人的工作,这个负担是无人能够承担的。这个工作往往是利益分配的一种手段。类似奖惩手段。这种管理方法已经不是新事物了。

但是实际上技术人员对于绩效往往持一定保留和暧昧的态度,因为这种事情难以很清晰的界定出来。需要判断而非量度,才是绩效的真正手段。

如果一定要打分,一共两项足够了:进度、质量,5分制即可。

更重要的事情是,告诉每个人主程的看法,告诉别人,怎样做才是更好。或者告诉团队,怎样做才更有利于我们成功(发财、上市、赢得老板和客户……)——把目标清晰告诉团队,发挥他们的主动性,是绩效评定最重要的目标。

2、需求评定

最让技术人员头疼的可能就是和客户谈判。这个事情实际上不应该让技术人员来伤心,有项目经理就可以了。

而需求评定更多的是可行性的讨论。主程如果参加每个需求评定,他要三头六臂也搞不定,正确的做法应该是具体开发的团队人员参加,而主程在开会前给与自己的意见,或者会后听取参与者的总结。——这是了解别人做什么事的一个重要手段,但无需陷入太深,因为还有代码评审和项目经理的帮忙。

3、跨部门沟通

实在没必要参加,能躲就躲,这是扯皮的天堂。让项目经理去吧,他们的专业技巧能让这些事情更加有效。只要回来后让项目经理告诉你发生了什么事情就可以了。

4、进度审核和任务分派

又是一个很有“权势”的工作,实际上团队成员的情况大家都知道,决定谁应该做什么事情并非需要很多时间去想的事情。所以大可以把方向性的意见告诉项目经理,让他去做。很多优秀的开发者玩EXCELPROJECT之类的水平还不如只有一年工作经验的秘书,别折腾自己了。

5、面试

如果真想帮忙,准备一份有区分度的笔试题目吧。不靠谱的人太多,老板可不是花钱请你和他们聊天的。让项目经理去聊,不用担心他们技术不强,再不够,也会比大多数面试者要牛X。他们搞不定的人,就是应该雇佣的家伙。毕业生招聘怎么办?只要看看他们课外活动是不是有搞些专业的事情就可以了,上进心比别的东西都重要,HR会比主程看的更准,相信我。

6、各种会议

饭无好饭,会无好会,超过6个人的会议应该坚决抵制。如果你有一个程序等着你去写,你一定无比痛恨这些会议,顺应你的内心吧!上帝保佑你。


最后说说项目经理的工作:

项目经理就像下水道的清洁工,所有那些主程不愿意去做的事情,他们都弯下腰去认真的把玩,实在是太伟大了。

既然如此,为何不让他们拥有更好一点的头衔呢?如果没有他们去处理这些工作,任何一个主程都会被逼疯掉,或者他们自己变成了项目经理,让团队损失了最强力的一台代码发动机。

一、进度

1、指定工作计划

2、进度检查和告警

3、工作总结和统计

二、资源

1、整合提供各种资源,如找DBA,IT,运维人员,硬件,SVN权限,测试环境,福利,周末的活动……

2、面试:人员是最重要的资源,不是吗?

3、资源谈判:往往是和老板谈判,让别人明白现在的真实情况。又一个吃力不讨好的差事,但是总需要人做。

三、沟通

1、需求评审:和需求方讨价还价,项目经理真是命苦啊……

2、组织会议或者用其他方式通知信息给所有人:小喇叭、大喇叭、全服广播、世界频道……

对于一个小型公司,职权,头衔,收益,往往会更加敏感。但是这些都不是让项目失败的理由。

一颗叫程序员的种子说:长大了我就是叫管理者的树。这个错误的观念只会让这个种子永远无法发芽。

软件开发是类似外科医生的行业,而不是血汗工厂,所以不需要手持皮鞭的经理,而需要仁心仁术的神医。

对php代码混淆的研究

混淆方法:
两个文件采用了4种混淆方法对代码进行混淆
1、局部变量追加乱码
对于局部变量,在经过转为无意义单字符后,在变量名后追加多个'\xEF\xBD\xBD'字符,并在其中混杂一些其他不可见字符(7E以后的),给人以乱码的感觉,单实际上并无影响。局部变量可以任意命名,只要能区分出来就行。
2、利用unicode加转义符显示字符串,采用八进制和十六进制两种方式进行显示,避免直观看到。
php可以使用如"\150\157\155\145\120\141\164\150"(八进制)或"\x73\x79\x73\x74\x65\x6d\x4c\x6f\x67"(十六进制)在文件中作为变量名。
3、利用php字符串可以用作函数名,将常用函数名隐藏, 使用了
$GLOBALS全局变量
define宏函数
base64_decode函数
以及自定义不可逆函数_kstr2()函数
4、使用字符串连接符号来连接被分割并转换的字符串
其中_kstr2()代码还原后的结果如下

   function _kstr2($str) {
        $len = strlen($str);
        $result = '';
        $baseChar = ord($str[0]) - 30;
        for ($i = 1; $i < $len; $i+= 2) {
            if ($i + 1 < $len) {
                $result.= chr(ord($str[$i + 1]) + $baseChar );
                $result.= chr(ord($str[$i]) + $baseChar );
            } else {
                $result.= chr(ord($str[$i]) + $baseChar );
            }
        }
        return $result;
    }

由这段代码可以看出,被加密的字符串的第一个字符是一个随机字符,因此,即使是同一个字符串,在加密后得到的结果也可能是不一样的,这样大大提高了混淆的混乱程度。但,这个函数放在被混淆的代码之中,为代码还原提供了便利。

企业上云:选型,策略,架构,实践

1概述

2018年8月,工业和信息化部印发《推动企业上云实施指南(2018-2020年)》,提出到2020年行业企业上云意识和积极性明显提高,上云比例和应用深度显著提升,云计算在企业生产、经营、管理中的应用广泛普及,全国新增上云企业100万家,形成典型标杆应用案例100个以上,形成一批有影响力、带动力的云平台和企业上云体验中心。鼓励各地加快推动开展云上创新创业,支持各类企业和创业者以云计算平台为基础,利用大数据、物联网、人工智能、区块链等新技术,积极培育新业态、新模式。

随着云计算的蓬勃发展,各个企业开始纷纷入云,但是在入云的道路上各自不同,根据企业的规模、技术特点、保密性的要求等,可选择的有公有云、私有云、行业云、混合云、集团云等等。

本文主要讲企业在上云的过程中的一些要点,从为什么要上云、怎么上云、都有哪些考虑点、云上有什么样的技术,最后提供了上云实践的必要过程。

2为什么要上云?

企业的基础架构从传统的烟囱式部署专项云端部署,基于云计算平台的解决方案,已经成为企业管理者满足其业务战略的需求,快速实现其收益和效率的最聪明和最无缝的方式。

云计算服务为公司提供了巨大的优势和工作量转移:IT部门不再需要购买、部署和维护内部的计算硬件和软件,可以通过云服务快速、容易地建立起来,无需IT人员参与就能根据需要进行扩展,并且会自动更新到最新版本。简而言之,云计算极大地简化和降低了IT服务提供的复杂性和成本。数字经济已经成为发展趋势,各企业都在进行或准备进行数字化转型,而上云则是企业数字化转型的起点。

企业上云,主要有以下几点原因:

■ 降低成本。企业运营需要成本,IT基础设施投入也是成本,大企业为了降低成本,提高集约化效果,形成企业内部或者集团内部的私有云、集团云;中小企业为了降低成本,选择公有云或者行业云、混合云;微型企业,无需投入建设机房、购买IT设备的资金,直接用公有云服务商提供的公有云服务。使用云计算服务,比购买一般的物理硬件要便宜得多,那么小微企业就可以摆脱很多不必要的开支。

■ 高效弹性,灵活扩展。满足弹性、快速供给、快速释放的IT基础设施能力,才能更好的为业务服务。效率是企业的生命线,只有提高了生产率,企业才能在市场竞争中生存,云是提高IT基础设施效率的非常好的手段。

■ 使云端数据更有价值。云带来了更大的灵活性和移动性,使用云,可以让企业在一台机器上开始工作并且在另外一台机器上完成它;企业对于庞大的交易、管理等数据做大数据分析,提供精准营销、分级客户管理等服务,使数据增值;人工智能更是基于大数据为基础,提供更加高阶的场景化服务。

■ IT部门从成本中心转向利润中心。云的未来,不是一个成本中心,而是一个利润中心,它能创新很多新的业务模式,成为企业新的利润增长点。

3上云的难点分析

大中型企业的IT基础设施,一般都有比较重的历史包袱,如应用系统为部门级而非企业级、数据割裂且格式不统一、烟囱式部署架构、无法按需扩展等等,因此企业上云,主要有以下几个难点:

■ 云化架构转型,需要建立相应的组织架构及人才队伍。从上层管理层到中层及下层技术人员,都要首先从意识形态上接收并主动拥抱云,理解云的架构、云的特点,建立起适合云计算发展的组织架构,培养响应的人才队伍,才能更好的做云化转型;

■ 原有的IT架构,难以向云端迁移。云大多以虚拟化、开源技术、分布式技术为主,而原有的大多使用了大型机或小型机、相对重量级的中间件和数据库、以闭源厂商的产品为准,因此无法把现有的系统直接搬上云,必须要做云化改造;

■ 原有系统复杂,系统需要重构。由于历史的原因所建立的系统必须要做重构,采用云化架构,使用适合云部署的技术,如虚拟化、容器化、微服务化,同时基础设施要建立相应的计算、网络、存储等资源池,采用计算虚拟化、软件定义存储SDS、软件定义网络SDN等技术、容器Docker等技术,提供IAAS、PAAS、SAAS、CAAS等云服务。

4上云的方向选择

企业上云,根据自身的特点,选择上云的方向,既要满足监管的要求、企业的需求,也要考虑自身能力,切不可能盲目跟风,选择与自身实力不匹配的方向,可以从以下几点考虑:

■ 大中型企业。这类企业自身盈利能力较强,抗风险能力较高,IT基础设施投入较大,一般都会选择自建私有云,同时会考虑输出部分云计算能力给其他中小微企业使用,如某国有银行,不但建有内部使用的私有云,还有为集团、分行、子公司及外部客户使用的公有云,通过建信金融科技公司,提供从上到下的IAAS、PAAS、SAAS全套金融云服务;

■ 小型企业。这类企业因自身规模没有大中型企业大,IT基础设施投入相对要小,可以选择混合云或者行业云,自身因为数据保密的要求,将核心关键的系统建立在私有云中,对于不关键的系统可以使用公有云或行业云,以此降低IT投入成本。

■ 微型企业。这类企业对于成本比较敏感,IT投入比较小,不会将能力过多的投入到IT建设中,可以选择部署在比较好的行业云或者公有云,甚至完全托管在其上,将精力聚焦在业务发展上,用最小的成本承载更多的业务。

■ 监管要求明确的企业。这类企业一般都属于特点比较明显的行业,比如银行、证券、保险等,有银保监会、证监会监管,对于系统的高可用级别、灾备能力、数据安全等有比较高的要求,需要按照监管机构的要求,使用安全等保三级及以上的云。

5上云的策略

企业上云分为基础设施上云、业务系统上云和基础平台上云,在本文中主要以基础设施上云为主论述。

5.1基础设施上云

企业的IT基础设施主要包括机房、计算设备、存储设备、网络设备以及一些配套的安全(如DDOS、IDS等)、终端等,上云最主要解决的就是在这些领域都采用什么技术、怎么实现云化基础设施。

■ 计算领域:可以采用vmware、kvm、xen、PowerVM等虚拟化技术以及docker等容器技术,提供IAAS、PAAS的服务。

■ 存储领域:可以采用ceph等开源技术以及众多厂商提供的如vsan、FusionStorage等分布式存储技术,实现软件定义存储SDS、

■ 网络领域:可以采用NFV、SDN等技术实现软件定义网络。

■ 办公终端领域:可以采用ctrix等桌面虚拟化实现桌面的云化管理。

5.2业务系统上云

企业的业务系统在上云时不一定要齐步走一起上云,需要分批分步骤根据实际情况一步一步上云,分几种策略:

■ 从外围到核心。先从外围系统不重要的管理办公类系统着手,做系统改造或者重构后上云,比如人力资源管理、办公OA、MAIL、考勤、日志管理等系统;其次选择重要性低的一般交易性系统,如渠道类的网站、机构管理、监控、呼叫中心等;最后选择核心交易类的系统,如网银、手机银行、信贷、财务会计、代收代付等系统;

■ 从简单到复杂。先从WEB服务器、应用AP服务器入手,建立专部署WEB、AP的资源池,实现云化部署,再建立云数据库、分布式云数据库,实现数据库云,将所有基础设施实现云化部署;

■ 集中力量从核心到外围。国内也有企业如某国有银行,利用建设新一代核心系统时,集中力量,做企业级建模将核心的业务进行了重构,分三期将除了IBM主机之外所有重要IT系统生产环境搬上了私有云,老系统逐步下线,完成了云化改造。

那么,在上云的过程中,需要考虑哪些应用系统能够上云,哪些系统不上云,简单来说:

重负载、IO高、响应时间要求高的系统不适合上云,笔者所在的企业在做系统搬迁时,ODS(操作型数据存储)系统的AP服务器在物理机上部署时,跑批时TPS可以达到1000左右,但是部署在虚拟化环境后TPS下降到300左右,跑批时间延长3倍左右,已经不能满足业务要求,经查是由于程序在写文件时,直接写盘和写经过vmware文件格式VMFS后磁盘时存在速度上的差异,导致TPS下降,采用物理机直接部署后问题不再重现,于是放弃了上云,还是采用物理机部署。

业务系统上云,不是为了上云而上云,最重要是要能够发挥出云的特点,达到Cloud Native(原生云)的效果,实现CI/CD,devops一体化敏捷管理。要实现系统的敏捷部署、弹性扩展、动态迁移、故障自愈、数据更加安全可靠等,就需要系统在上云前做相应的改造或者开发新的业务系统来代替原业务功能,该如何做呢?主要从以下方面考虑:

■ 新系统可以采用spring cloud等微服务解决方案,基于spring boot等框架,进行微服务改造,做到Cloud Native原生云系统。

■ 系统部署方面,抛出传统的物理机、虚机部署,使用docker等容器等部署,采用主流的PAAS平台,基于kubernetes、mesos、swarm等主流框架,管理容器化的应用,实现开发、测试、运维的devops一体化管理,打通软件研发管理全流程。

5.3基础平台上云

除了基础设施及业务系统,对于一些通用的基础平台,如大数据、区块链、物联网、人工智能都是上云的方向,并且是未来的主流方向之一,不必重复建设复杂而又庞大的平台,直接使用云上的大数据、区块链、物联网、人工智能等服务,更好的为业务服务,开发更多的业务场景,提升资源使用效率,获得更高的利润。

6云计算架构

6.1云计算概述
请输入图片描述

企业上云:选型,策略,架构,实践
云计算在企业架构中主要与IT架构有关,与应用架构、技术架构、安全架构、数据架构都有关系。

下图为IBM CCRA参考架构,定义了构成云计算环境的基本架构元素:

请输入图片描述

请输入图片描述

企业上云:选型,策略,架构,实践
企业上云:选型,策略,架构,实践
云计算架构,有很多种描述,主要是以IBM CCRA模型为基础,每个企业在落地时有不同的特点,在此不赘述。简单来说,云计算是由计算/网络/存储等资源池、云服务、云管理平台、云安全等组件组成的,通过软件定义的方式为客户提供IAAS、PAAS、SAAS、CAAS等云服务。

资源池是基础。资源池是云计算的承载体,主要包括计算、存储、网络等资源 。没有资源池,云服务、云管理是空中楼阁,无法落地。

云管理是平台。云管理平台对所有资源进行统一管理、调度,对资源进行全生命周期的管理。

云服务是核心。将各种资源打包成服务,由云平台调度,为使用者提供服务,主要提供IAAS/PAAS/SAAS等服务

虚拟化、容器等都是资源池的实现技术基础,有了虚拟化、容器技术,可以更方便、快捷的提供IT基础设施服务。

6.2资源池

云计算最基础的是资源池,涵盖计算资源池、存储资源池、网络资源池等,计算资源池又分、X86虚拟化资源池、POWER资源池、Mysql/Redis资源池、大数据资源池、GPU资源池等等,主要有以下几类:

1、X86虚拟化资源池。以vmware esxi、kvm、xen等技术为主,私有云采用vmware较多,公有云及行业云等主要以kvm技术为主;

2、小型机资源池。以PowerVM为主,主要采用Power虚拟化技术;

3、裸金属资源池。为用户提供裸金属服务器,满足部署不适合做虚拟化部署的需求,主要以X86服务器上安装Oracle RAC、Mysql、以及应用软件等;

4、大数据资源池。部署大数据类基础软件,存储、计算大量数据,挖掘数据价值。

序号

资源池类型

主要功能

不适合功能

1

X86虚拟化资源池

Web、Ap

数据库

2

小型机资源池

DB

web

3

裸金属资源池

重载AP、DB

Web

4

大数据资源池

数据分析

Web、ap

6.2.1网络区域规划

资源池需要部署到实际的网络区域中,比如传统的金融企业一般会分为几个区域:

请输入图片描述

企业上云:选型,策略,架构,实践
1、内网业务区。该区域主要部署内部系统的区域,基本上企业核心的系统都在此部署,属于一个功能完备的区域,既有WEB、AP又有DB、大数据等;

2、运行管理区。该区域主要部署保障IT系统运维正常运转的维护管理类系统,如监控、安全审计、批量调度、运维大数据等;

3、互联网DMZ区。该区域主要起到隔离互联网与内部网络的作用,互联网业务请求通过该区域服务器做交易的转发(交易不落地)到内部业务区域做业务处理;

4、外联网DMZ区。该区域和互联网DMZ区起到相同的作用,不同的是所连接是外部合作机构,而不是互联网渠道,相对互联网来说,外联网所连接的机构相对可信一些。

6.2.2资源池架构

云计算最基础的是资源池,涵盖计算资源池、存储资源池、网络资源池等,计算资源池又分、X86虚拟化资源池、POWER资源池、Mysql/Redis资源池、大数据资源池、GPU资源池等等,下面我们以使用最多企业内部使用的私有云X86虚拟化资源池和Power数据库资源池为例,大致说明资源池的架构。

■ X86虚拟化资源池

某企业采用的X86虚拟化资源池,以CDP(云部署单元)为单位,每个资源池可以包含N个CDP,每个CDP包含3个独立的集群,每个集群包含16台X86服务器和1台NAS(做root盘),保证各条通路的相对独立性,避免生产故障蔓延,应用的部署单元以3的倍数部署,保证高可用。这个架构的高可用性是很高的,基本从底层、网络、服务器、板卡、接线等硬件层面到上层的应用部署都考虑到了,运行六七年来未发生过生产事故,资源池物理部署图如下:

请输入图片描述

企业上云:选型,策略,架构,实践
■ Power资源池

Power服务器在企业中使用还是比较广泛的,虽然近年来受到互联网去IOE架构的影响,很多互联网企业甚至一些小的企业不再使用,但是在中大型及一些高可用要求高的小企业中使用还是很广泛的。基于PowerVM虚拟化技术,构建Power资源池,是很多企业采用的策略,尤其是银行、证券等金融行业。

Power资源池提供全面的HA + LPM(在线分区迁移)+ RR(远程重启)+ GDR(容灾)一站式高可用方案,相比传统物理机HA方案增强了高可用,消除了高可用的盲区。

Power资源池是基于企业级高端虚拟化+架构的最佳实践,并非泛指的云平台,可以承载原先小型机、PC服务器平台运行的几乎所有业务,通常建议可用作除关键业务外的大部分数据库及应用的整合平台,有以下的好处:

分配同等虚拟资源情况下,相对与同代Power物理服务器提供相当性能,并通过高端服务器整合提供更高的弹性性能和扩展性;
对于整合旧Unix、PC服务器的场景,提供多倍于原系统的开放平台最高单核性能来加速应用,并提供更大的性能弹性和扩展性;
少数需要极端网络、存储IO吞吐量和响应时间的应用,建议单独评估测试;
典型软件包括数据库、中间件、各类企业软件套件如ERP、自研应用等。Oracle/DB2/WAS/SAP等主流软件都认证PowerVM虚拟化并有大量部署案例。
典型的应用场景示例:银行:除核心、前置等最重要一二十套系统以外的数据库、应用等;政府:除几套关键系统外,其他数据库、中间件服务器整合;企业:ERP、数据库服务器整合。

请输入图片描述

企业上云:选型,策略,架构,实践
6.3云服务

我们常说的云计算的云服务主要分为三种:IAAS、PAAS、SAAS(随着发展衍生出很多种XX即服务,最基础的还是这三类)基础云服务。

6.3.1基础云服务

IaaS: Infrastructure-as-a-Service(基础设施即服务)。提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。主要指为客户提供安装了最基础的OS的虚机/物理机,提供最基础的计算能力。

PaaS: Platform-as-a-Service(平台即服务)。提供给消费者的服务是把客户采用提供的开发语言和工具开发的或收购的应用程序部署到供应商的云计算基础设施上去。通俗说就是安装了weblogic、tomcat、mysql中间件或数据库产品的虚机/物理机,可以直接供客户进行软件部署或者开发/运行环境搭建等。

SaaS: Software-as-a-Service(软件即服务)。提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如邮件系统、CRM客户管理等。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等。

在企业内部IT基础设施云,我们一般的关注点在IAAS和PAAS,为企业业务系统提供快速、弹性、敏捷、高效的基础设施服务。如下表是常见的IAAS及PAAS服务:

序号

服务类型

云服务名称

配置

适用场景

1

IAAS

RedHat Linux 7.5 通用服务

CPU(C):1/2/3/4/…32

内存(G):1/2/3/4…..128

磁盘(G):root 100 data 200

Web/AP

2

IAAS

AIX 7.1 TL04通用服务

CPU(C):1/2/3/4/…32

内存(G):4/5/6/7/8…..128

磁盘(G):root 300 Data自选

DB/AP

3

PAAS

RHEL 7.5+WEBLOGIC11G

同IAAS配置

AP

4

PAAS

AIX 7.1 +Oracle RAC 11G

同IAAS配置

DB

6.3.2高级云服务

除了传统的IAAS、PAAS、SAAS服务,还可以考虑发展更高级的云服务,如云数据库RDS、分布式缓存、函数调用、云应用市场、GPU、物联网、人工智能、机器学习等云服务,甚至可以使用serverless云服务。下面主要介绍一下RDS及物联网、人工智能的云服务。

■ 云数据库RDS

云关系型数据库(RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务,支持MySQL、SQL Server、PostgreSQL、MariaDB等引擎,并且提供了主从热备、容灾、备份、回档、恢复、监控、快速扩缩容、迁移等方面的全套解决方案,无需DBA过多干预就可以快速提供数据库服务。

如下图是一个典型的RDS云数据库的架构:

请输入图片描述

企业上云:选型,策略,架构,实践
■ 物联网

物联网(The Internet of things),是在“互联网概念”的基础上,将其用户端延伸和扩展到任何物品与物品之间,进行信息交换和通信的一种网络概念,是信息科学技术产业的第三次革命。下图是物联网的四层架构,主要分了感知层、传输层、平台层和应用层,其中,感知层是物联网的底层,是物联网应用和发展的基础。利用RFID技术、传感等技术,实现对物理世界的智能感知、识别及控制等。物联网的传输层分为有线传输和无线传输,无线传输可按距离分为短距离传输和长距离传输,主要讲述无线传输。物联网的平台层分为四大平台,分别为连接管理平台(CMP)、设备管理平台(DMP)、应用使能平台(AEP)和业务分析平台(BAP)。平台层用于数据的分析与处理,后应用于各个行业。

请输入图片描述

企业上云:选型,策略,架构,实践
■ 人工智能

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

人工智能的云服务可以分为很多种,如智能语音识别与交互、人脸识别、图像识别、自然语言处理、机器学习、数据可视化等。

人工智能的技术可以应用很多很广的场景及业务,不仅限于业务,人工智能技术也应用在了银行IT运维工作中,如数据中心的智能化运维AIOPS,使用海量运维数据,发展智能运维,自动发现问题、分析问题、处理问题,达到系统故障自愈,还可以利用态势感知,对故障进行预测等。

■ Serverless

未来的应用应该是不依赖于底层的虚拟机,而是建立在一些serverless的云服务之上,例如开发一个应用,直接使用云上的负载均衡,调用云上的身份认证,使用云上应用市场的服务,把数据存放在RDS中,然后用云监控进行故障分析,用服务治理进行相关的服务监控及调优,使用devops提升效率…这种云模型的高级使用,彻底抛弃了自行申请操作系统并安装中间件数据库的方式,也是应用上云的架构改变。

serverless架构主要包括BaaS(后端即服务:Backend as a Service)和Faas(函数即服务:Functions as a Service)这两种架构,他们没有一直运行的定制服务存在,不占用服务商的计算资源,同共享单车有些类似,是计算机分时租赁方式,按次按时计价。

Serverless主要的优势是低运营成本、简化设备运维、提高可维护性、更快的开发速度。缺点是目前还少有大型成功案例,无法适应所有的场景。

6.4云管理

请输入图片描述

企业上云:选型,策略,架构,实践
有了资源池、有了云服务,如何将各类资源池有机结合在一起管理,实现快速、敏捷、高效、弹性的提供基础设施服务,需要云管理平台来解决,在云管理平台路线选择上每个企业都是不同的,但是主要由几种方式,做个简要介绍:

■ 开源Openstack。采用开源Openstack,可以利用开源社区的优势,获取知识较快,落地相对也较快,但是需要投入比较熟悉Openstack的人员自己研究、测试、持续跟踪、升级,尤其是在没有外部专家人力的情况下,升级、迭代会比较困难。

■ 自主研发。自主研发云平台最大的好处是贴近需求,可以把企业所有的资产管理、IT流程、自动化、配置管理等所有集成在一套平台上,提供端到端、场景化的IT基础设施服务,难点是投入大、开发周期长,而且必须要持续开发。

■ 商业产品。采购一款商业产品(可以是厂商闭源厂品或者OpenStack商业化产品),这种方式见效最快,但是不一定完全贴近需求,往往需要二次开发。

6.5云安全

企业上云后,系统的安全性会集中暴露出来,不管是网络安全,还是数据安全的维度,还是监管安全、企业风险安全的维度,同时云的技术特点决定了云上的安全与传统安全的区别。

考虑云计算安全,首先要满足企业所在行业对信息技术安全的要求,如监管部门对金融业的要求,必须满足信息安全技术网络安全等级保护中第3级(即等保3级),部分核心系统甚至要满足等保4级的要求。

下面是云安全所需要考虑的简单的云计算安全框架,可以从几个方面来考虑云安全:

请输入图片描述

企业上云:选型,策略,架构,实践
这个框架主要包括以下几个方面:

6.5.1基础设施硬件安全

基础设施硬件安全主要包括:

■ 机房安全:

顾名思义,机房安全主要考虑承载云计算的IDC机房的安全管理,涵盖region、az地点的选择、园区/机房的风火水电安全等,如机房供电要来自多个供电公司的独立变电所,防止数据中心全局性的单路供电全安全,为防止极端情况突然停电,还要有UPS短期不间断为设备供电,以及柴油发电机,应对长时间断电场景等。

■ 网络安全:

网络安全主要考虑网络服务要来自多个运营商、多条线路,防止网络中断等;外部、内部所有的网络连接、网络接入都要有多线路冗余,能够在单链路中断服务网络服务不间断等。

■ 设备安全’

关键功能的设备应采用高可用配置或采用其它技术手段使该功能不存在单点故障,设备应支持设备运行状态和资源的监控功能并支持在发生异常情况时发出告警;关键业务集群主机应跨机柜、跨机房或跨数据中心高可用部署等。

6.5.2云计算软件安全

云计算软件安全主要包括虚拟化软件、云管理平台、IT服务管理等软件的安全,也包括各类资源池的安全,如计算资源池、存储资源池、网络资源池等。

■ 基础软件安全

基础软件应从多个方面保证安全,如应确保接口之间进程调用通过认证;应具备内核补丁检测、加固及防止内核提权的能力;应保证用户接入云管理平台通信的保密性和完整性,应具备对基础软件漏洞及时发现并修复的能力等。

■ 计算资源池安全

计算资源池安全主要包括虚拟化软件的安全(如版本的选择,补丁、漏洞的修补等),资源池的管理上要有身份鉴别、安全控制、安全审计、入侵防范、恶意代码防范、镜像和快照的保护等。

■ 存储资源池安全

存储资源池同样包括存储软件的安全,以及管理上的安全等,如多层级访问级别控制和跨物理集群账号权限管理,要有数据的异地备份和备份数据一致性的能力,多租户间数据隔离的能力,多副本、加密、安全传输、故障自动恢复、数据快速恢复等能力。

■ 网络资源池安全

网络资源池安全主要考虑网络架构安全以及访问控制、安全审计、恶意防范、恶意代码防范等安全内容,如虚拟网络全冗余设计,保证无单点、提供应用负载进行弹性扩容的能力,在流量波动情况下也不中断对外服务,VPC隔离能力、网络流量监控、隔离能力等,

6.5.3服务层安全

主要包括IAAS服务、PAAS服务、SAAS服务的安全,其中重点的包括一些所选用软件的安全管理、数据安全、应用安全等,这里主要讲讲数据安全及应用安全方面。

■ 数据安全

数据是企业信息科技的核心资产,核心数据一旦丢失、泄露、被篡改、被删除将会对企业造成很大的损失,其安全性非常高。数据安全主要考虑数据在产生、传输、存储、访问、迁移、销毁、备份和恢复这些环节的安全性,如数据要分类标记、存储、保护,传输过程要加密、防范被破坏等,数据出生产区域要脱敏,控制数据访问权限,数据要定时备份、异地存储、验证恢复等。

■ 应用安全

应用安全主要考虑管理软件及业务SAAS软件的安全性,要有代码后门审查的能力以及对代码打包和发布进行管控的能力,要能够防范篡改、代码注入、DoS/DDoS攻击等,要有完善的交易日志、错误日志等,具备、黑白名单访问、应用访问异常情况进行监控识别的能力等。

6.5.4安全管理

安全的管理是一个比较大的课题,从宏观方面主要包括安全策略和制度、机构和人员安全管理、安全系统、安全运维等。

在云计算中,安全也可以作为服务存在,安全即服务,将一些安全制度、安全策略通过建模、抽闲、归纳最终可以形成一些安全的应用系统和安全的组件,提供直接的安全场景服务或者供其他系统调用实现安全管理。

如某银行在私有云建设过程中,基础设施安全服务层实现了终端安全、系统安全、网络安全、云安全等多个安全服务,应用安全服务层实现了用户认证、客户认证、密码服务、数据安全、安全监控等多个安全服务,形成企业级一体化的策略管理,对整个框架进行管理,各层服务进行管控,落实安全策略、安全管控要求,最终实现企业级、统一的、涵盖多维度的安全管理。

7上云实践步骤

7.1组织架构

企业上云工程比较复杂、繁琐,可能需要从企业的价值链分析、建模,到业务流程的重构,再到应用系统的适配云化开发,再到基础设施的云计算环境构建,一环扣一环,需要上层领导重视、中层主导、下层实施,建立一体化的推进组织,才能更好的完成云化建设。

7.2云化策略

根据不同的系统实际情况,实施不同的策略:

业务重构、系统新建。业务流程完全重构,开发新的业务系统,采用新的技术上云。

业务不变、应用改造。业务流程不变,应用部分做改造,适应云化基础设施后上云。

业务不变、包装上云。业务流程不变,应用基本不变,基础软件升级或替换后上云。

业务不变、系统不变。暂不上云,待系统被代替自然消亡。

7.3推进计划

项目管理办公室(PMO)制定整体计划,并负责推进执行,并协调各方资源、职能处室、厂商等共同根据计划推进。

7.4部署实施

基础设施根据云计算整体规划、资源池方案、实施工艺、系统资源需求清单等,构建云计算资源池、供给资源,提供应用系统上线基础环境。

7.5数据迁移

根据老系统需求,做数据清洗、转换、迁移进入新系统环境,可以使用数据库迁移(如ADG、mysql主从同步等)方案、存储同步方案(NAS、SAN等)、工具迁移方案进行数据迁移工作。

7.6应用上线

最终,应用系统完成上线前的部署、技术测试、业务绿灯测试,将业务切换至新系统运行,可能涉及到多系统联合上线,并做好上线失败后的回退方案。

■ 上线保障

上线过程中,需要提供人员、车辆、通讯、工位、办公场地、食宿等后勤保障工作

■ 网络切换

包括网络访问关系开通、DNS切换等网络切换工作

■ 平台切换

包括操作系统、数据库的启动、运行正常,保证搬迁环境的系统部署一切正常

■ 应用切换

包括外部关联应用系统的切换(如指向原对外服务IP要改为指向新对外服务IP)、本应用的切换(停止原系统应用、启动新应用,新应用对外服务)等等

■ 业务验证

做完应用切换后,需要技术人员及业务人员做好业务验证工作,保证业务切换成功

为什么大多数创业公司止步于50人规模? |【经纬低调分享】

许多成长中的创业公司,一旦规模扩大到50人左右时,就很容易走向倒闭。

其中,很重要的一个原因是,创业公司大多倡导唯快不破,公司的管理层将大部分的时间花在了打造产品、扩大市场以及满足用户上,很有可能并没有在意公司内部的结构问题。

但员工人数一旦增加后,最初创业的氛围就会发生改变,老员工和新引入的员工之间的融合和配合渐渐会出现问题,这种人际上的问题最终将会影响到公司动作的执行和落地。

很多创始人在这个阶段也会出现困惑——是继续坚持无为而治,还是开始集权管理?是从外部招募中层管理人员还是内部提拔员工加强管理?是继续扩大招聘以满足增长需求还是外包团队?

50人规模,是迈向100人、1000人甚至更大规模的垫脚石。因此,在这个阶段,尽早地解决公司出现的管理问题是至关重要的。今天分享的这篇文章,提供了在这个阶段的公司,可以参考的四种解决方案,希望给你带来一些启发。以下,Enjoy:

许多正在成长的创业公司,一旦规模扩大到50人左右时,就很可能走向倒闭。我把它称作创业的“青少年期”,我自己也经历过几次。其中,有我作为员工的经历,也有作为管理者的经历。

初创公司不断成长的初期到底有什么变化?

1至10人规模:到某个阶段时,元老级员工就不再愿意接纳新的员工。他们有什么事情不会立即说出来,并且他们内心中开始出现一种愤懑感,特别是需要重复为新来的“菜鸟”展示如何简单地完成某项任务时。他们对新人出错的容忍度极其地低,尽管那些错误也是他们曾经犯过的错误。

10至25人规模:第二批员工开始形成自己的小圈子。他们可能有时候会怀念“过去的好日子”,但他们越来越重视像职位头衔以及公司地位等方面的内容。在日常的交流中,带有“高级”二字的职位名称出现得越来越频繁。

26至39人规模:在这个阶段,就会出现“权力的游戏”这类现象。如果“青少年”会形成自己的“群体”,那么“而立之辈”则会对公司内部的“顽固守旧派”充满了愤懑和不满情绪。

40至49人规模:天哪!现在到底是什么状况?

虽然前述各阶段的变化情况并不是适用于所有的创业公司,但当创业公司达到50人规模时,总会有遇到类似经历的时候。我之前说过,我经历过上述各个阶段,并且对每个阶段可能发生的变化进行了归纳描述,因此,我不再做任何评价。

或者,我可能需要评价一两句。在创业公司快出现倒闭征兆之前,至少应该采取一些补救措施。我们需要把处于“青少年期”的创业公司“赶出家门”,让它自己去亲身经历和体会“成年人的世界”,并且像“成年人”一样地发展下去。

公司规模达到50人并开始出乱子时,也并不会落到满盘皆输的结局。

首先,这种状况必然代表着,公司还在成长中,可能还比计划成长的速度更快。只要成长还在可控范围内,这些问题都不是问题。

如果公司的确在成长,并且是朝着健康的方向发展的,那么公司内部可能已经形成了一种内在文化、规范以及办事方法。它们虽然没有形成书面的规章制度,但每个人心里却一清二楚。

在这种状态下,日常的交流可能更多的是面对面交流,或者是基于需求的交流。不存在太多正式的会议甚至会议纪要,当然,这也意味着可以节约大把应对这些繁文缛节的时间,并花在真正需要解决的问题上。

此外,从反方面来看,这种内部的状态也可以理解为,公司的管理层正在花时间打造产品、渗透市场以及满足用户,他们可能并没有在意公司内部的结构问题。

但是,既然开始出了乱子,那就应该重视起来。否则,大家都不想看到,“青少年”在“叛逆期”里“离家出走”的局面。

为人父母的都知道,针对青少年的叛逆期,根本没有所谓的治疗方法。能够做的,只不过是静静地等待他们成长。

有这么一句关于“出乱子”的话,我非常不喜欢。它是这样说的:“必须要经历震荡、成形、常态、规范这四个阶段。”这句话在这里也适用,但我之所以不喜欢,是因为它的用处不大。

虽然出了乱子,没有所谓的“治疗方案”。但我们总可以采取一些措施,并以此来应对难关。以下四种措施,是我比较熟悉的几种解决方案,我从中也得到不少灵感,希望对你有所启发:

1、无所作为

不要以为无所作为,就没有存在的意义。很多创业公司在开始出现人员流失时,才意识到应该无所作为。

所谓“无所作为”,并不是什么都不做。毕竟,在日常经营过程中,肯定会时不时地出现各种问题,而我们也无法回避这些问题。

无所作为,其真正的含义是,要积极主动地“无所作为”,并在问题出现时积极解决问题。

但我并不推荐这种做法。

试想一下,如果我们给某些员工的职场头衔前加上“高级”二字,并且这种做法完全是无章可循的,那么将有什么后果?

再以开会来举例。针对“什么时候开会?”以及“怎样开会?”这两个问题,需要相应的规定约束。否则,每个人的日程表上都排满了各种会议,会议室资源也出现严重稀缺的局面,到最后可能什么事都做不好。

甚至,连员工的“远程办公”申请都值得考虑。如果我们没有相应的管理方法,即便事情现在没错,到时候总会出错。我并不是在讨论滥用职权。我想说的是,假如某一个或多个同事都不在公司办公的话,其它人员的工作效率到底该如何保证?

通常情况下,创业公司会惧怕在公司内部形成陈腐思维、官僚主义,甚至出现大公司病。我非常理解这些问题,而且我也很讨厌它们。但到了某个发展阶段,该来的还是会来,所以最好还是积极主动地准备好一切,并迎接它的到来。

我会怎么做?——集权管理以及可视化管理。

至少,在日常的行为习惯及办事流程等方面,要出台一些简单的规定。确保每个员工都能获取这些信息。此外,你做出的决定,要让员工清晰地知道,这个决定背后的初衷是什么。

规定,不是冷冰冰的文字,而是公司的理念和企业文化的一部分。

2、聘用大量的中层管理人员

这种做法,和“无所作为”相比,是完全相反的做法。我把它比喻为用大铁锤去砸小坚果。

通常情况下,创业公司出现这种现象的话,那只能说为时过早。此外,聘用大量管理人员,特别是管理人员比办事人员还多的情况下,那工作效率必然提不上来。

如果从公司外部空降管理者,并且认可他们在大公司的管理经验,那他们可能需要适应创业公司的工作环境,并且熟悉创业公司的办事方法。等他们真正上手过后,可能几个月都已经过去了。

此外,外部的空降管理人员通常还会将大公司的那套管理方法带过来,然而在创业公司中却一点也不适用。

或者,如果我们从内部提升人员的话,我们可能会给这些员工的工作带来更多负担。毕竟,他们在进入公司时,管理并不是他们工作职责的一部分。

比如说,首席技术官会对最优秀的程序员说,“来,你从今天开始负责管理你这个团队的所有工作,你只需要从日常工作时间中抽一半时间出来进行管理就行了。”

结果,这名程序员不仅代码没写好,连整个团队的成员都开始对管理团队持有负面情绪。

我会怎么做?——设立多个事项负责人及团队负责人,而不是只安排一个管理职位。

当公司发展到50人规模时,其实就员工而言,并不需要太多的管理。相反,真正需要管理的是,内部的日常工作以及办事流程。其中,包括产品、前端开发、招聘、开票收款等一系列你能想到的事情。

让不同的人负责不同的事项。或者,让他们成为这些流程背后的负责人。

3、跟风抄袭,别人怎么做我就怎么做

我赞成部分抄袭别人的做法,并在此基础上根据自身实际情况进行调整。

我从Agile公司那里“抄袭”了部分敏捷方法的核心。我随时都在关注亚马逊的战略部署,并时不时地跟风部署。我非常喜欢Lyft做得非常到位的用户体验。

但是,你记得三年前,硅谷的很多公司为了解决收入差距悬殊问题,而将所有人的工资公开吗?这是真实的事件,但我并不认为,公开所有人的工资就能解决问题。

这个解决方案对他们可能有用(也许也没用),但如果说要用在我的公司,我觉得完全不可能。

我们要相信,肯定有各种各样的解决方案。

开放工作空间为了提倡团队协作,于是人人都带上了耳机。为了想尽一切办法招聘到优秀的人才,有些公司甚至给员工开出了无期限的休假待遇。

我想说的是,不要因为一个、多个甚至大多数公司都在采取某种措施,你就必须要跟风采取这种措施。

我会怎么做?——拆分挑选,小范围实验。

从其他公司学到的管理方法,我们会从中挑选适合自己公司实际情况的方法,并且在公司全面推广之前,进行小范围地实验。

4、停止招聘,选择外包

当公司规模达到一定数量时,我们可以考虑停止招聘,并将一切外包给第三方。

这种方法包括两种类型。

一种类型是内外分明。可以考虑开发团队、人力资源团队以及其它支撑团队全部外包,剩余部分仍然为公司内部的团队。

另一种类型则是内外兼顾。可以考虑纳入外部资源,与内部资源形成互补。比如可以聘用外部顾问为内部团队提供支撑,或者聘用第三方服务商为内部团队提供服务支撑等。

这种方法可以让你进一步优化资源。不用考虑内部编制的情况下,也可以在公司经营道路上游刃有余地成长和发展。

另一方面,通常情况下,50人规模也是迈向100人、1000人甚至更大规模的垫脚石。如果所有的核心技术及经验都来自于外包团队,这对创业公司来说,也是很大的潜在风险。

此外,针对这个方法而言,另一个值得关注的方面是,它说起来简单但做起来难。

在公司发展壮大过程中,我们在人员变动方面需要保持谨慎的态度。如果公司规模一旦达到49人时,那接下来该怎么办?如果又发现了下一个非常优秀的候选人,那又该怎么办?是否要主动辞退某人?还是等公司内部人员主动辞职?

我会怎么做?——租了再说,买不买再考虑。

很多的创业公司都经历过这样的情况,最初的承包商或者兼职人员最后变成了公司的全职员工,但前提是公司有资金了,平台足够大了,相关资源也足够丰富了。

我自己的创业公司中,有两个公司都经历过这种情况。

随着公司成长,可以更大胆地尝试这种方法。觉得有必要的话,还可以将某个外包团队聘为全职团队。在公司内部,把它们当作独立的团队来管理。

如果要解决创业公司50人规模时乱糟糟的局面,可能最根本的解决方案还是最后这一个。

如果一个创业公司的架构并不是传统意义上自上而下的多层级结构,而更像一个个独立的池塘,那又会怎么样?而且这些池塘还可能根据自身情况存在内部的小池塘。

那么,对公司领导而言,他们则“独占一池”,并且各个大池塘直接对他们负责。

每个池塘都将是独立存在和运营的。此外,如果有外包人员或团队的话,他们也可以被视作独立的池塘。他们来去自由,并且在必要的情况下,可以和其它池塘合并。

我不确认,这个方法可以百分百地适用。

它可能有点野,如果要将这种方法书面总结出来也比较难。但我相信,既然可以被当作一种方法,必然就有与之相适用的问题。

我想说的是,如果我们要解决50人规模时可能出现的乱子,那我们必须要以发展的眼光看问题,不能用成立公司第一天的管理方法来解决50人规模时出现的问题。

而在那之前,我们只需要花时间关注于创业公司的发展,精心呵护这个“青少年”,并陪伴它进入“成年期”。

软件企业缺成本费用怎么做税收筹划节税

身边有个朋友是做软件行业的,业务做得比较好,估计做这个行业的人都清楚,实在是没什么进项,但是又得开票,所以被企业所得税压得喘不过气来。

一、当前我国软件企业合理避税中存在的问题

  1. 由于受制于部分软件企业自身管理水平,部分软件开发企业在投资时过于关注眼前利益,忽略了对企业长期发展利益的重视,在经营过程中,管理者不注重经营方式,不加筹划和研究,不重视对纳税的合理回避,这些都会在一定程度上导致软件企业纳税负担过重,影响企业的未来长期发展,约束盈利能力提升。
  2. 软件企业税收筹划的成本比较高,尽管企业依靠合理避税可以实现有效的税收筹划,但是企业在税收筹划中需要设置必要的部门或机构来进行此项工作,在这个程序中依旧会加大运营成本,尤其是依靠税务机构进行筹划,企业往往需要花费比较高的咨询费用,在这种程度上来讲,合理避税效率比较低,难以实现降低纳税负担的作用。

二、软件行业税收优惠及税收筹划思路分析

  1. 明确公司的税收性质,一般纳税人?小规模纳税人?

软件销售及技术服务技术服务类的征收税率3%(小规模纳税人)6%(一般纳税人)软件产品17%

  1. 技术开发费的增值税如何减免?

这一块是相对容易免税的,只需要将技术开发合同拿到当地的科技局备案即可,但必须注意:其中的知识产权必须是对方所有或者双方共享,如果是你的知识产权是不能免税的。同样如果你免税了,那么你开出的增值税专用票对方也是无法抵扣的。

  1. 软件产品增值税如何减免?

软件产品销售,征税税率3%(小规模)17%(一般纳税人),小规模3%这个是逃不掉的,但是你如果软件销售达到50万(1年内)会强制你变为一般纳税人,那时候17%的税率压力就会比较大,因此建议你这之前就做好软件产品认证。快的话1个月搞定,拿到这个证书后即便是一般纳税人也可以享受3%的增值率(超过3%的部分即征即退)。

  1. 研发费用加计扣除是什么?

这是能帮企业省所得税,例如,一个公司一年的研发费用是100万,做了研发费用加计扣除后,研发费用就可以按照150万来计算。就等于说多了50万的成本,自然利润就少,所得税就了。

  1. 最后来说企业所得税

除了上面说的研发费用加计扣除,其实我们都知道软件企业哪来多少成本,无非就是人员成本,那么如果这样,你年底的所得税就会很可怕了。净利润的25%,这种情况下,可以在有税收优惠的地区注册一家个人独资企业,不需要缴纳企业所得税,个人所得税进行核定征收,完美解决成本问题,比如江苏徐州市高新区税收优惠政策:只要将企业注册在江苏徐州市工业园区(注册式,不用实地办公),两种方式:

  • a、有限公司(一般纳税人)

增值税根据地方财政所得部分的50%-70%予以财政扶持奖励;企业所得税按照地方财政所得部分的50%-70%予以财政扶持奖励。

  • b、个人独资企业或者合伙企业(一般纳税人)

这种方式是对于缺乏或无法取得进项的企业,可以注册成个人独资企业或合伙企业对所得税进行核定征收,所得税税率可降低至0.5%-3.5%,其增值税还有返还奖励,通过纳税筹划解决企业成本、个人所得税、分红等问题。

发布于 2018-05-28

/* * @Author: your name * @Date: 2016-09-06 00:00:00 * @LastEditTime: 2020-03-17 18:29:35 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \htdocs\usr\themes\default\footer.php */