Browsed by
标签:APP

一个APP引发的故事-2021

一个APP引发的故事-2021

閱讀本文約花費: 18 (分鐘)郑爽和张恒纠纷的前因后果 昨天郑爽和张恒的事情出来之后,好多朋友都发来私信,本来最近我正在忙着赶台湾娱乐史康熙风云系列最后一章,不得不停下来延更一次,各位谅解。 昨天我看市面上很多文章都在关心代孕方面的问题,但我发现几乎没有人提到这两人的矛盾和纠纷到底是怎么来的,那么今天在这里就给大家讲讲整个故事。 开门见山的先说结论,郑爽张恒当初闹矛盾分手,根本的原因是因为钱。 故事要从2014年讲起…… 2014年年中,有个叫茹晨的人创办了一家名为创客星球的公司,这个茹晨早年是电视财经口出身,曾在央视财经频道《对话》节目做过导演,后来在第一财经做《头脑风暴》和《波士堂》之类的商业类节目。 茹晨下海成立了创客星球之后,拿到了一笔数百万的天使投资,最开始是做一档《创客星球》同名商业节目,每期节目都有创业者上台讲述自己的商业计划和产品概念,现场的投资人们决定要不要投钱什么的,公司打出的概念是电视+众筹。 这种类型的节目毕竟小众,没什么影响,于是到了2016年,创客星球重新提出要做中国第一个机器人格斗大赛,讲述的资本故事变成了电视+科技+线下产业,又融到了一轮千万级的融资,有了钱之后公司就开始正式筹备机器人格斗比赛了,张恒也就是在此时登场的。 (公司融资之后请来了李连杰站台)—— 张恒是个90后,家里面是做家居生意的,从小就被父母送到国外,此前在俄亥俄州立大学念书,属于…

Read More Read More

补习系列-springboot项目基础搭建课

补习系列-springboot项目基础搭建课

閱讀本文約花費: 10 (分鐘)前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推广因素不说,框架本身的确有非常多的优点。比如 更简化的配置,摒除了许多繁杂的xml配置(事实证明,越简单的东西越容易让人记住); 内置Servlet容器,不再依赖外部环境 大量的starter模块,随手拈来 支持热部署 作为一名老程序员来说,仍然需要保持一个积极学习的态度。哎,简单点说就是少点伤感,认清现实。你曾经引以为傲的某某EE 技术已经被颠覆了,赶紧换车道 ….. 废话不多说,以下内容主要讲的是怎么利用springboot 这个脚手架搭建一个最精简的项目。其中几个模块会非常实用,这包括结构、配置、日志、部署.. 一、基础结构 springboot 项目仍然是使用maven 进行初始化及构建,下面是一个典型的结构: 目录文件 说明 pom.xml 依赖文件 src/main/java 代码目录 src/main/resources 配置目录,包含application.properties、log4j2.xml src/main/build 定义构建文件目录 src/test/java 测试代码 src/test/resources 测试配置 大致看一下就行了,不了解maven的话,点击这里先学习入门,项目的构建工具是…

Read More Read More

https://daniel.haxx.se/about.html

https://daniel.haxx.se/about.html

閱讀本文約花費: 21 (分鐘)This is the story of my background. What I’ve done and how I ended up like this. Daniel Stenberg I was born and raised in Huddinge, a suburb south of Sweden’s capital Stockholm. I have two brothers and two sisters. 1985 – it begins I discovered the joy of computers for the first time sometime in the early 80s when Kjell, a friend of mine, and I entered data sets in Basic that we eagerly read in some of the first C64 magazines at his place and since then I’ve been hooked. Kjell owned a C64 before me so it was in his home I had my first experiences in the …

Read More Read More

The Twelve-Factor App

The Twelve-Factor App

閱讀本文約花費: 3 (分鐘)III. 配置 在环境中存储配置 通常,应用的 配置 在不同 部署 (预发布、生产环境、开发环境等等)间会有很大差异。这其中包括: 数据库,Memcached,以及其他 后端服务 的配置 第三方服务的证书,如 Amazon S3、Twitter 等 每份部署特有的配置,如域名等 有些应用在代码中使用常量保存配置,这与 12-Factor 所要求的代码和配置严格分离显然大相径庭。配置文件在各部署间存在大幅差异,代码却完全一致。 判断一个应用是否正确地将配置排除在代码之外,一个简单的方法是看该应用的基准代码是否可以立刻开源,而不用担心会暴露任何敏感的信息。 需要指出的是,这里定义的“配置”并不包括应用的内部配置,比如 Rails 的 config/routes.rb,或是使用 Spring 时 代码模块间的依赖注入关系 。这类配置在不同部署间不存在差异,所以应该写入代码。 另外一个解决方法是使用配置文件,但不把它们纳入版本控制系统,就像 Rails 的 config/database.yml 。这相对于在代码中使用常量已经是长足进步,但仍然有缺点:总是会不小心将配置文件签入了代码库;配置文件的可能会分散在不同的目录,并有着不同的…

Read More Read More

Clair助力Docker镜像安全

Clair助力Docker镜像安全

閱讀本文約花費: 5 (分鐘)Clair 是 CoreOS 最近发布的一款开源容器漏洞扫描工具。该工具可以交叉检查Docker 镜像的操作系统以及上面安装的任何包是否与任何已知不安全的包版本相匹配。漏洞是从特定操作系统的通用漏洞披露( CVE )数据库获取。该工具当前支持的操作系统包括 Red Hat 、 Ubuntu 和 Debian 。 通过从镜像文件系统中抽取静态信息以及维护一个组成镜像的不同层之间的差异列表,可以大大减少分析时间,而且不需要实际运行可能存在漏洞的容器。如果镜像所依赖的一个靠下的层存在漏洞,那么该镜像就会被识别为有漏洞,而且,通过使用图存储,可以避免重新分析镜像。 CoreOS使用Clair 分析用户上传到 Quay.io (一个类似 DockerHub 的容器注册中心)的 Docker 镜像。现已发现, Quay 上的大多数镜像都存在漏洞,甚至是像 Heartbleed(80%)或 Ghost(67%)这样的著名漏洞。2015 年初,一份有关 DockerHub 的报告推断,至少有30% 的官方镜像和多达40% 的用户上传镜像包含高级漏洞。期间,在 DockerCon 2015 欧洲大会上,…

Read More Read More

如何Docker化任意一个应用

如何Docker化任意一个应用

閱讀本文約花費: 10 (分鐘)网上有很多关于如何将应用 Docker 化的教程,为什么我还要再写一个呢? 我见过的大部分教程都是限定在某种特定技术(例如 Java 或者 Python),可能无法满足读者的需求。同时,这些教程也没有说清楚关于 Dev 和 Ops 团队之间建立明确约定所涉及到的所有相关方面(这正是容器化的精髓所在)。 我根据最近的经验总结了以下一些步骤。它是一份细节清单,包含了其他指南中忽略的内容。 声明:这不是一份新手指南。我建议读者先掌握一些如何设置和使用 docker 的基础知识,并且创建和运行一些容器之后,再来阅读。 让我们开始吧。 一、选择基础镜像 每种对应技术几乎都有自己的基础镜像,例如: https://hub.docker.com/_/java/ https://hub.docker.com/_/python/ https://hub.docker.com/_/nginx/ 如果不能直接使用这些镜像,我们就需要从基础操作系统镜像开始安装所有的依赖。 外面有很多教程使用的都是 Ubuntu(例如 ubuntu:16.04)作为基础镜像,这不能算有问题,但是我建议优先考虑 Alpine 镜像: https://hub.docker.com/_/alpine/ 它是一个非常小的基础镜像(大约只有 5MB)。 注意:在基于 Alpine 的镜像中无法使用“a…

Read More Read More

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

閱讀本文約花費: 11 (分鐘)简介: 2020年11月19日,由 InfoQ 主办的“2020中国技术力量年度榜单盛典”隆重召开,阿里云技术专家罗毅荣获“十大开源杰出贡献人物”、Open Application Model(OAM)荣登“十大开源新锐项目”、由阿里云原生团队支撑的完美日记电商业务案例获评“2020年度十大云原生行业落地典范”,阿里云原生拿了一个分量十足的“大满贯”。 2020年11月19日,由 InfoQ 主办的“2020中国技术力量年度榜单盛典”隆重召开,并正式揭晓了“开源杰出贡献人物”、“开源新锐项目”和“云原生行业落地典范”三大重量级奖项。在此前的入围赛中,仅“开源新锐项目”单项,阿里云原生就入围了10多个开源项目,在创新能力、社区成就和用户反馈等多项指标中一骑绝尘,占据了参评项目整体近五分之一。而在本次揭晓的“2020中国技术力量年度榜单”决赛结果中,最终阿里云技术专家罗毅荣获“十大开源杰出贡献人物”、Open Application Model(OAM)荣登“十大开源新锐项目”、由阿里云原生团队支撑的完美日记电商业务案例获评“2020年度十大云原生行业落地典范”,阿里云原生拿了一个分量十足的“大满贯”。 在 2020 年,阿里不仅实现了双十一核心系统全面云原生化,一举成为全球规模最大、实力最硬核的云原生实践,并首次实现自研、开源、商业“三位一体…

Read More Read More

Kubernetes 社区是如何运作的系列之二——康威定律和SIG

Kubernetes 社区是如何运作的系列之二——康威定律和SIG

閱讀本文約花費: 10 (分鐘)生产关系能否决定生产力?为什么这个社会需要管理?Kubernetes 是如此的成功,它的开源治理和技术架构是有着非常密切的关系的。 Tue Feb 6, 2018 | 3000 Words | 大约需要阅读 6 分钟 | | 康威定律(Conway’s Law) 随着信息技术的发展,以及现实的IT公司的成功,如Amazon、Netflix,以及云计算的普及,微服务的实践正在走向很多传统用户,然而,实施微服务的过程中,和DevOps的理念一样,人们发现并非仅仅是技术所能够解决的。还要涉及到组织架构。于是,伴随着微服务的发展,一位很少被人提及的科学家被推到了前端,也是被人忽视而尘封的科学家。 时间要拨回到1967年,Melvin Conway 以独特的视角观察到一个组织的组织结构会对其开发的系统有很大的影响。并撰写了“How Do Committees Invent” 这样一篇影响深远的论文,其中被人们广为知道的结论: 设计系统【这里也不仅仅是指信息系统】的组织,其产生的设计和架构等价于组织间的沟通结构。 该定律基于这样一个推理:为了能够让软件之间的模块相互作用,软件的撰写者们必须相互频繁的进行沟通,因此,系统的软件界面结构将会反映出打造此系统的组织的社会边界,要知道跨边界的沟通是比较困难的。Conway 定律的目的是试图说明这是蛮常见的社会学…

Read More Read More

Service Mesh实践之Istio初体验

Service Mesh实践之Istio初体验

閱讀本文約花費: 16 (分鐘)微服务国内发展背景: 2014年,Martin Fowler撰写的《Microservices》使得许多国内的先行者接触到微服务这个概念并将其引入国内,2015年越来越多的人通过各种渠道了解到微服务的概念并有人开始在生产环境中落地,2016-2017年,微服务的概念被越来越多的人认可,带动了一大批公司以微服务和容器为核心开始技术架构的全面革新。 至今微服务已经历了两代发展,第一代以Spring Cloud为代表的微服务开发框架,该框架在微服务发展的前几年一度独领风骚,甚至在部分人群中成为微服务的代名词,但事实上该微服务框架并不是唯一实现微服务的方式;第二代微服务技术为服务网格(Service Mesh),它的出现解决了大部分开发人员在使用Spring Cloud中遇到的不足和痛点。 Service Mesh是如何解决这些问题的,又是何以赢得众多开发者的支持呢?笔者就这些问题给大家分享一篇以Istio为代表的第二代微服务实践。 一、微服务和Istio Service Mesh基本概念 服务网格是一个基础设施层,主要用于处理服务间的通信。云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。 图1展示了服务网格的拓扑,当微服务数量增多达到几十上…

Read More Read More

如何在Kubernetes中管理有状态应用

如何在Kubernetes中管理有状态应用

閱讀本文約花費: 7 (分鐘)在Kubernetes中,StatefulSet被用来管理有状态应用的API对象。StatefulSets在Kubernetes 1.9版本才稳定。StatefulSet管理Pod部署和扩容,并为这些Pod提供顺序和唯一性的保证。与Deployment相似的地方是,StatefulSet基于spec规格管理Pod;与Deployment不同的地方是,StatefulSet需要维护每一个Pod的唯一身份标识。这些Pod基于同样的spec创建,但互相之间不能替换,每一个Pod都保留自己的持久化标识。 ———- 1、使用StatefulSet的场景 对于下面的应用场景,StatefulSets是有价值的: 稳定、唯一的网络标识 稳定、持久的存储 按照顺序、优雅的部署和扩容 按照顺序、优雅的删除和终止 按照顺序、自动滚动更新 上述的稳定是持久的同义词,如果应用不需要稳定的标识或者顺序的部署、删除、扩容,则应该使用无状态的副本集。Deployment或者ReplicaSet的控制器更加适合无状态业务场景。 2、StatefulSet的限制 在Kubernetes 1.9版本之前是beta版本,在Kubernetes 1.5版本之前是不提供的。 Pod存储由PersistentVolume(storage类或者管理员预先创建)提…

Read More Read More

Tumblr 扫黄事宜

Tumblr 扫黄事宜

閱讀本文約花費: 13 (分鐘)曾经,tumblr上什么都有 你们知道tumblr吗? 用户层面中的Tumblr,曾经是一个有点杂乱,但是非常自由开放的图片社交平台。 上面会有动漫组放上自己的动画手稿,会有摄影师在上面更新自己新的作品,会有喜欢猫咪的用户在上面每天拍各种各样的萌猫图片,我国几个最大的宠物账号每天发的图,很多都是从Tumblr上面找到的。 猫咪们 动物冷笑话漫画们 其实就是一个普通的图片社交软件,就和如日中天的pinterest以及instagram差不多。 但曾经的Tumblr,对相当大一部分用户来说,其最大的意义不在这些。虽然tumblr上面的猫咪确实很可爱,漫画确实很精美,但它还有一点,是那些如日中天的图片社交软件无法代替的,那就是 黄图 那会儿Tumblr上面有许许多多的小黄图。 高清大图无码,充满艺术性的那种。他们不会和谐平台上的黄图,只要你的黄图不让其它用户觉得恶心,不涉及儿童色情,他们就不会干涉你发成人内容。 甚至于他们在自己用户条款里写着,“当然,欢迎你发布成人内容”。 很多人都觉得即使这样允许发黄图,网站流量还是会以正常的图片为主,但事实上并不是,有统计显示,tumblr上敏感色情内容的比例,超过三成,已经成为该大型图片社交社区内容最重要的比例之一。 这时候你才会发现,对色情内容的需求原来这么旺盛,就像《Q大道》里唱的那样,很多人“上网就是为了看毛片…

Read More Read More

Kubernetes集群搭建:基于Kubeadm

Kubernetes集群搭建:基于Kubeadm

閱讀本文約花費: 16 (分鐘)一,环境准备 * K8S版本为15.1 * Docker版本最高支持18.06.1 二,Docker环境构建及替换 1,清除原Docker环境,原版本为最新版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine rm -rf /etc/systemd/system/docker.service.d rm -rf /var/lib/docker rm -rf /var/run/docker 2,如果清除后依旧包冲突错误 file /usr/share/man/man1/docker-manifest-annotate.1.gz from install of docker-ce-18.06.1.ce-3.el7.x86_64 conflicts with file from package docker-ce-cli-1:18.09.6-3.el7.x86_64 通过yum命令手动移除冲突包 yum erase docker-common-2:1…

Read More Read More

使用Istio治理微服务入门

使用Istio治理微服务入门

閱讀本文約花費: 20 (分鐘)近两年微服务架构流行,主流互联网厂商内部都已经微服务化,初创企业虽然技术积淀不行,但也通过各种开源工具拥抱微服务。再加上容器技术赋能,Kubernetes又添了一把火,微服务架构已然成为当前软件架构设计的首选。 但微服务化易弄,服务治理难搞! 一、微服务的“痛点” 微服务化没有统一标准,多数是进行业务领域垂直切分,业务按一定的粒度划分职责,并形成清晰、职责单一的服务接口,这样每一块规划为一个微服务。微服务之间的通信方案相对成熟,开源领域选择较多的有RPC或RESTful API方案,比如:gRPC、Apache Thrift等。这些方案多偏重于数据如何打包、传输与解包,对服务治理的内容涉及甚少。 微服务治理是头疼的事,也是微服务架构中的痛点。治理这个词有多元含义,很难下达一个精确定义,这里可以像小学二年级学生那样列出治理的诸多近义词:管理、控制、规则、掌控、监督、支配、规定、统治等。对于微服务而言,治理体现在以下诸多方面: 服务注册与发现 身份验证与授权 服务的伸缩控制 反向代理与负载均衡 路由控制 流量切换 日志管理 性能度量、监控与调优 分布式跟踪 过载保护 服务降级 服务部署与版本升级策略支持 错误处理 …… 从微服务治理角度来说,微服务其实是一个“大系统”,要想将这个大系统全部落地,绝非易事,尤其是之前尚没有一种特别优雅的技术方案。多数方案(…

Read More Read More

商旅网站用户画像的解决方案

商旅网站用户画像的解决方案

閱讀本文約花費: 11 (分鐘)(一)用户画像的目的与意义、构建步骤 用户画像(persona)的概念最早由交互设计之父Alan Cooper 提出:是指真实用户的虚拟代表,是建立在一系列属性数据之上的目标用户模型。随着互联网的发展,现在我们说的用户画像是根据用户人口学特征、网络浏览内容、网络社交活动和消费行为等信息而抽象出的一个标签化的用户模型。通过各个维度对用户或者产品特征属性的刻画,并对这些特征分析统计挖掘潜在价值信息!完美地抽象出一个用户的信息全貌,可以看作企业应用大数据的根基。构建用户画像的核心工作,主要是利用存储在服务器上的海量日志和数据库里的大量数据进行分析和挖掘,给用户贴“标签”,而“标签”是能表示用户某一维度特征的标识。 为了能解决业务问题,用数据来帮助企业了解用户和定位产品,更好地解决业务问题,首先必须明确业务目标。用户画像是帮助企业明确目标客群,当企业了解了自己的用户都长什么样子以后,接下来的任务就是如何将有类似画像特征人群的潜在用户变成自己的用户,也就是在营销上获新客的过程。 所以,从大的框架来看,用户画像承载了两个业务目标: 一是如何准确的了解现有用户; 二是如何在茫茫人海中通过广告营销获取类似画像特征的新用户。 那么用户画像具体有什么作用,能帮助我们达到哪些目标呢?大体上可以总结为以下几个方面: 1. 精准营销:精准直邮、短信、App消息推送、个性化广告…

Read More Read More

图文:千万级高性能长连接网关是如何搭建的?

图文:千万级高性能长连接网关是如何搭建的?

閱讀本文約花費: 17 (分鐘)实时的响应总是让人兴奋的,就如你在微信里看到对方正在输入,如你在王者峡谷里一呼百应,如你们在直播弹幕里不约而同的 666,它们的背后都离不开长连接技术的加持。 每个互联网公司里几乎都有一套长连接系统 ,它们被应用在消息提醒、即时通讯、推送、直播弹幕、游戏、共享定位、股票行情等等场景。而当公司发展到一定规模,业务场景变得更复杂后,更有可能是多个业务都需要同时使用长连接系统。 业务间分开设计长连接会导致研发和维护成本陡增、浪费基础设施、增加客户端耗电、无法复用已有经验等等问题。共享长连接系统又需要协调好不同系统间的认证、鉴权、数据隔离、协议拓展、消息送达保证 等等需求,迭代过程中协议需要向前兼容,同时因为不同业务的长连接汇聚到一个系统导致容量管理的难度也会增大。 经过了一年多的开发和演进,经过我们服务面向内和外的数个 App、接入十几个需求和形态各异的长连接业务、数百万设备同时在线、突发大规模消息发送等等场景的锤炼,我们提炼出一个长连接系统网关的通用解决方案,解决了多业务共用长连接时遇到的种种问题。 知乎长连接网关致力于业务数据解耦、消息高效分发、解决容量问题,同时提供一定程度的消息可靠性保证。 我们怎么设计通讯协议? 业务解耦 支撑多业务的长连接网关实际上是同时对接多客户端和多业务后端的,是多对多的关系,他们之间只使用一条长连接通讯。 这种多对多的系统…

Read More Read More

YAML 语言教程

YAML 语言教程

閱讀本文約花費: 6 (分鐘)编程免不了要写配置文件,怎么写配置也是一门学问。 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 本文介绍 YAML 的语法,以 JS-YAML 的实现为例。你可以去在线 Demo 验证下面的例子。 一、简介 YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。 它的基本语法规则如下。 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 # 表示注释,从这个字符一直到行尾,都会被解析器忽略。 YAML 支持的数据结构有三种。 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary) 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list) 纯量(scalars):单个的、不可再分的值 以下分别介绍这三种数据结构。 二、对象 对象的一组键值对,使用冒号结构表示。 转为 JavaScript 如下。 Yaml 也允许另一种写法,将所有键值对写成一个行内对象。 转为 JavaScript 如下。 三、数组 一组连词线开头的行,构成一个数组。 转为 JavaScript 如下。 数据…

Read More Read More

Scroll Up