<微服务架构在Netflix的应用>系列博文-4 微服务架构在Netflix的应用:团队和流程设计相关的经验教训

<微服务架构在Netflix的应用>系列博文-4 微服务架构在Netflix的应用:团队和流程设计相关的经验教训

第四篇-微服务架构在Netflix的应用:团队和流程设计相关的经验教训

<微服务架构在Netflix的应用>系列博文-共四篇

英文版: [第一部分: The Four-Tier Engagement Platform]((http://blogs.forrester.com/ted_schadler/13-11-20-mobile_needs_a_four_tier_engagement_platform/) 中文版:第一部分:移动应用所需要的四层架构/

英文版:第二部分:http://nginx.com/blog/time-to-move-to-a-four-tier-application-architecture/ 中文版:第二部分:是时候转移到四层架构上来了/

英文版:第三部分:微服务架构在Netflix的应用:架构设计的经验教训 中文版:第三部分:微服务架构在Netflix的应用:架构设计的经验教训

英文版:第四部分:Adopting Microservices at Netflix: Lessons for Team and Process Design 中文版:第四部分:微服务架构在Netflix的应用:团队和流程设计相关的经验教训

In a previous blog post, we shared best practices for designing a microservices architecture, based on Adrian Cockcroft’s presentation at nginx.conf2014 about his experience as Director of Web Engineering and then Cloud Architect at Netflix. In this follow-up post, we’ll review his recommendations for retooling your development team and processes for a smooth transition to microservices. Optimize for Speed, not Efficiency

Source: Xyzproject@Dreamstime.com

The top lesson that Cockcroft learned at Netflix is that speed wins in the marketplace. If you ask any developer whether a slower development process is better, no one ever says yes. Nor do management or customers ever complain that your development cycle is too fast for them. The need for speed doesn’t just apply to tech companies, either: as software becomes increasingly ubiquitous on the Internet of Things – in cars, appliances, and sensors as well as mobile devices – companies that didn’t used to do software development at all now find that their success depends on being good at it.

Netflix made an early decision to optimize for speed. This refers specifically to tooling your software development process so that you can react quickly to what your customers want, or even better, can create innovative web experiences that attract customers. Speed means learning about your customers and giving them what they want at a faster pace than your competitors. By the time competitors are ready to challenge you in a specific way, you’ve moved on to the next set of improvements.

This approach turns the usual paradigm of optimizing for efficiency on its head. Efficiency generally means trying to control the overall flow of the development process to eliminate duplication of effort and avoid mistakes, with an eye to keeping costs down. The common result is that you end up focusing on savings instead of looking for opportunities that increase revenue.

In Cockcroft’s experience, if you say “I’m doing this because it’s more efficient,” the unintended result is that you’re slowing someone else down. This is not an encouragement to be wasteful, but you should optimize for speed first. Efficiency becomes secondary as you satisfy the constraint that you’re not slowing things down. The way you grow the business to be more efficient is to go faster. Make Sure Your Assumptions are Still True

Many large companies that have enjoyed success in their market (we can call them incumbents) are finding themselves overtaken by nimbler, usually smaller, organizations (disruptors) that react much more quickly to changing consumer behavior. Their large size isn’t necessarily the root of the problem – Netflix is no longer a small company, for example. As Cockcroft sees it, the main cause of difficulty for industry incumbents is that they’re operating under business assumptions that are no longer true. Or, as Will Rogers put it,

It’s not what we don’t know that hurts. It’s what we know that ain’t so.”

Of course, you have to make assumptions as you formulate a business model, and then it makes sense to optimize your business practices around them. The danger comes from sticking with assumptions after they’re no longer true, which means you’re optimizing on the wrong thing. That’s when you become vulnerable to industry disruptors who are making the right assumptions and optimizations for the current business climate.

As examples, consider the following assumptions that hold sway at many incumbents. We’ll examine them further in the indicated sections and describe the approach Netflix adopted.

Computing power is expensive. This was true when increasing your computing capacity required capital expenditure on computer hardware. See Put Your Infrastructure in the Cloud.
Process prevents problems. At many companies, the standard response to something going wrong is to add a preventative step to the relevant procedure. See Create a High Freedom, High Responsibility Culture with Less Process.

Here are some ways to avoid holding onto assumptions that have passed their expiration date:

As obvious as it might seem, you need to make your assumptions explicit, then periodically review them to make sure they still hold true.
Keep aware of technological trends. As an example, the cost of solid state storage drive (SSDs) storage continues to go down. It’s still more expensive than regular disks, but the cost difference is becoming small enough that many companies are deciding the superior performance is worth paying a bit more for. [Ed: In this entertaining video, Fastly founder and CEO Artur Bergman explains why he believes SSDs are always the right choice.]
Talk to people who aren’t your customers. This is especially necessary for incumbents, who need to make sure that potential new customers are interested in their product. Otherwise, they don’t hear about the fact that they’re not being used. As an example, some vendors in the storage space are building hyper-converged systems even as more and more companies are storing their data in the cloud and using open source storage management software. Netflix, for example, stores data on Amazon Web Services (AWS) servers with SSDs and manages it with Apache Cassandra. A single specialist in Java distributed systems is managing the entire configuration without any commercial storage tools or help from engineers specializing in storage, SAN, or backup.
Don’t base your future strategy on current IT spending, but instead on level of adoption by developers. Suppose that your company accounts for nearly all spending in the market for proprietary virtualization software, but then a competitor starts offering an open source-based product at only 1% the cost of yours. If people start choosing it instead of your product, than at the point that your share of total spending is still 90%, your market share has declined to only 10%. If you’re only attending to your revenue, it seems like you’re still in good shape, but 10% of market share can collapse really quickly.

Put Your Infrastructure in the Cloud Source: Fbmadeira | Dreamstime.com

Source: Fbmadeira@Dreamstime.com

In Make Sure Your Assumptions are Still True, we mentioned that in the past it was valid to base your business plan on the assumption that computing power was expensive, because it was: the only way to increase your computing capacity was to buy computer hardware. You could then make money by using this expensive resource in the right way to solve customer problems.

The advent of cloud computing has pretty much completely invalidated this assumption. It is now possible to buy the amount of capacity you need when you need it, and to pay for only the time you actually use it. The new assumption you need to make is that (virtual) machines are ephemeral. You can create and destroy them at the touch of a button or a call to an API, without any need to negotiate with other departments in your company.

One way to think of this change is that the self-service cloud makes formerly impossible things instantaneous. All of Netflix’s engineers are in California, but they manage a worldwide infrastructure. The cloud enables them to experiment and determine whether (for example) adding servers in particular location improves performance. Suppose they notice problems with video delivery in Brazil. They can easily set up 100 cloud server instances in São Paulo within a couple hours. If after a week they determine that the difference in delivery speed and reliability isn’t large enought to justify the cost of the additional server instances, they can shut them down just as quickly and easily as they created them.

This kind of experiment would be so expensive with a traditional infrastructure that you would never attempt it. You would have to hire an agent in São Paulo to coordinate the project, find a data center, satisfy Brazilian government regulations, ship machines to Brazil, and so on. It would be six months before you could even run the test and find out that increased local capacity didn’t improve your delivery speed. Create a High Freedom, High Responsibility Culture with Less Process

In Make Sure Your Assumptions are Still True, we observed that many companies create rules and processes to prevent problems. When someone makes a mistake, they add a rule to the HR manual that says “well, don’t do that again.” If you read some HR manuals from this perspective, you can extract a historical record of everything that went wrong at the company. When something goes wrong in the development process, the corresponding reaction is to add a new step to the procedure. The major problem with creating process to prevent problems is that over time you build up complex “scar tissue” processes that slow you down.

Netflix doesn’t have an HR manual. There is a single guideline: “Act in NetFlix’s best interest.” The idea is that if an employee can’t figure out how to interpret the guideline in a given situation, he or she doesn’t have enough judgment to work there. If you don’t trust the judgment of the people on your team, you have to ask why you’re employing them. It’s true that you’ll have to fire people occasionally for violating the guideline. Overall, the high level of mutual trust among members of a team, and across the company as a whole, becomes a strong binding force.

The following books outline new ways of thinking about process if you’re looking to transform your organization:

The Goal: A Process of Ongoing Improvement by Eliyahu M. Goldratt and Jeff Cox. This book has become a standard management text at business schools since its original publication in 1984. Written as a novel about a manager who has only 90 days to improve performance at his factory or have it closed down, it embodies Goldratt’s Theory of Constraints in the context of process control and automation.
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win by Gene Kim and Kevin Behr. As the title indicates, it’s also a novel, about an IT manager who has 90 days to save a project that’s late and over budget, or his entire department will be outsourced. He discovers DevOps as the solution to his problem.

Replace Silos with Microservice Teams

Most software development groups are separated into silos, with no overlap of personnel between them. The standard process for a software development project starts with the product manager meeting with the user experience and development groups to discuss ideas for new features. After the idea is implemented in code, the code is passed to the quality assurance (QA) and database administration teams and discussed in more meetings. Communication with the system, network, and SAN administrators is often via tickets. The whole process tends to be slow and loaded with overhead. silos-base

Source: Adrian Cockcroft

Some companies try to speed up by creating small “start-up”-style teams that handle the development process from end to end, or sometimes such teams are the result of acquisitions where the acquired company continues to run independently as a separate division. But if the small teams are still doing monolithic delivery, there are usually still handoffs between individuals or groups with responsibility for different functions. The process suffers from the same problems as monolithic delivery in larger companies – it’s simply not very efficient or agile. Source: Adrian Cockcroft

Source: Adrian Cockcroft

Conway’s law says that the interface structure of a software system will reflect the social structure of the organization that produced it. So if you want to switch to a microservices architecture, you need to organize your staff into product teams and use DevOps methodology. There are no longer distinct product managers, UX managers, development managers, and so on, managing downward in their silos. There is a manager for each product feature (implemented as a microservice), who supervises a team that handles all aspects of software development for the microservice, from conception through deployment. The platform team provides infrastructure support that the product teams access via APIs. At Netflix, the platform team was mostly AWS in Seattle, with some Netflix-managed infrastructure layers built on top. But it doesn’t matter whether your cloud platform is in-house or public; the important thing is that it’s API-driven, self-service, and automatable. Source: Adrian Cockcroft

Source: Adrian Cockcroft

Adopt Continuous Delivery, Guided by the OODA Loop

A siloed team organization is usually paired with monolithic delivery model, in which an integrated, multi-function application is released as a unit (often version-numbered) on a regular schedule. Most software development teams use this model initially because it is relatively simple and works well enough with a small number of developers (say, 50 or fewer). However, as the team grows it becomes a real issue when you discover a bug in one developer’s code during QA or production testing and the work of 99 other developers is blocked from release until the bug is fixed.

In 2009 Netflix adopted a continuous delivery model, which meshes perfectly with a microservices architecture. Each microservice represents a single product feature that can be updated independently of the other microservices and on its own schedule. Discovering a bug in a microservice has no effect on the release schedule of any other microservice. Continuous delivery relies on packaging microservices in standard containers. Netflix initially used AWS machine images (AMIs) and it was possible to deploy an update into a test or production environment in about 10 minutes. With Docker, that time is reduced even further, to mere seconds in some cases.

At Netflix, the conceptual framework for continuous development and delivery is an Observe-Orient-Decide-Act (OODA) loop. Source: Adrian Cockcroft (http://www.slideshare.net/adrianco)

Source: Adrian Cockcroft (http://www.slideshare.net/adrianco)

Observe refers to examining your current status to look for places where you can innovate. You want your company culture to implicitly authorize anyone who notices an opportunity to start a project to exploit it. For example, you might notice what the diagram calls a “customer pain point”: a lot of people abandoning the registration process on your website when they reach a certain step. You can undertake a project to investigate why and fix the problem.

Orient refers to analyzing metrics to understand the reasons for the phenomena you’ve observed at the Observe point. Often this involves analyzing large amounts of unstructured data, such as log files; this is often referred to as big data analysis. The answers you’re looking for are not already in your business intelligence database. You’re examining data that no one has previously looked at and asking questions that haven’t been asked before.

Decide refers to developing and executing a project plan. Company culture is a big factor at this point. As previously discussed, in a high-freedom, high-responsibility culture you don’t need to get management approval before starting to make changes. You share your plan, but you don’t have to ask for permission.

Act refers to testing your solution and putting it into production. You deploy a microservice that includes your incremental feature to a cloud environment, where it’s automatically put into an AB test to compare it to the previous solution, side by side, for as long as it takes to collect the data that shows whether your approach is better. Cooperating microservices aren’t disrupted, and customers don’t see your changes unless they’re selected for the test. If your solution is better, you deploy it into production. It doesn’t have to be a big improvement, either. If the number of clients for your microservice is large enough, then even a fraction of a percent improvement (in response time, say) can be shown to be statistically valid, and the cumulative effect over time of many small changes can be significant.

Now you’re back at the Observe point. You don’t always have to perform all the steps or do them in strict order, either. The important characteristic of the process is that it enables you quickly to determine what your customers want and to create it for them. Cockcroft says “it’s hard not to win” if you’re basing your moves on enough data points and your competitors are making guesses that take months to be proven or disproven.

The state of art is to circle the loop every one to two weeks, but every microservice team can do it independently. With microservices you can go much faster because you’re not trying to get entire company going around the loop in lockstep. How NGINX Plus Can Help

At NGINX we believe it’s crucial to your future success that you adopt a 4-tier application architecture in which applications are developed and deployed as sets of microservices. We hope the information we’ve shared in this post and its predecessor, Adopting Microservices at Netflix: Lessons for Architectural Design, are helpful as you plan your transition to today’s state-of-the-art architecture for application development.

When it’s time to deliver your apps, NGINX Plus offers an application delivery platform that provides the superior performance, reliability, and scalability your users expect. Fully adopting a microservices-based architecture is easier and more likely to succeed when you move to a single software tool for web serving, load balancing, and content caching. NGINX Plus combines those functions and more in one easy to deploy and manage package. Our approach empowers developers to define and control the flawless delivery of their microservices, while respecting the standards and best practices put into place by a platform team. Click here to learn more about how NGINX Plus can help your applications succeed.

Related Posts

译自2011- A Year in Review at HIMSS12 by Keith Boone

译自2011- A Year in Review at HIMSS12 by Keith Boone

译2011: A Year in Review at HIMSS12 by Keith Boone Keith Boone是我一直在关注 在follow的老头子,虽然好像还是蛮年轻 ,一直找不到很好的地方 很好的网站 大多数网站在外面实验室糟糕的代理模式下是压根发表不了新帖的。不幸的科学网就这样躺在中枪了。 周一 2月20日 2012 2011:HIMISS12 过去一年的回顾 通常H

read more
CDA快速入门

CDA快速入门

在大概了解了CDA文档实例的模样,手头上也有了各式各样自己喜好的XML编辑器,那么我们可能就希望实践一把。该怎么做呢? 如果你希望先了解CDA前前后后的一些东西,那么你需要看看下面的PPT 1.参考各个机构所带来的对CDA介绍的PPT 台湾范士展老师整理的相关资料 [mayo的资料](http://dl.dbank.co

read more
Health eDecision 项目收尾Clinical Quality Framework项目启动

Health eDecision 项目收尾Clinical Quality Framework项目启动

[原文链接](http://www.healthit.gov/buzz-blog/electronic-health-and-medical-records/interoperability-electronic-health-and-medical-records/standards-interoperability-framework-milestones-health-edecision

read more
Data Versus Information- The EMR Readability Problem  by  Bruce Friedman

Data Versus Information- The EMR Readability Problem by Bruce Friedman

两篇来自 Bruce Friedman的博文 http://labsoftnews.typepad.com/lab_soft_news/2012/08/data-vs-information-the-emr-readability-problem.htmlhttp://labsoftnews.typepad.com/lab_soft_news/2012/08/data-vs-informati

read more
EHR架构与设计相关材料

EHR架构与设计相关材料

EHR Architecture and Design by Jerome Carter on March 25, 2013 **Updated August 26, 2014 **<span style="color

read more
对FHIR的一些浅显认识

对FHIR的一些浅显认识

FHIR标准 大多数在HIT这个行业浸淫略久的人都听到过HL7的字眼,HIT 行业的标准不外乎有2个目的,交互共享数据(HL7 V2消息,V3消息,CDA,X12,共享文档规范诸如此类),表达医疗行业的知识(各类术语字典,数据集数据元标准,Arden syntax,CDSC,GELLO诸如此类),而FHIR应该归属于第一类,与它的前辈不同的是,它抛弃了既往顺着发展了10多年,乃至于20年的那块

read more
FHIR——介绍

FHIR——介绍

http://www.hl7.org/implement/standards/fhir/introduction.htm 介绍Introduction Fast Healthcare Interoperability Resources 定义了一个医疗卫生资源的集合。这些资源所表达的是一个个模块化的医学概念,通过交换它们以达到在医疗保健及相关流程中快速高效地解决问题。这些资源涵盖了医疗卫生的基

read more
FHIR概览

FHIR概览

自去年Grahame Grieve引出v3 has failed的讨论之后,RFH的出现似乎给HL7带来了一些生机。从RFH到FHIR 自是经过一番努力。越来越多的人对此表示出极大的兴趣,菜鸟我也不例外。故拟在后面的一些篇章中对目前所有的一些的资料进行一些简单的介绍和试译。 来到Grahame Grieve自己维护的博客主站(链接)上,在右侧links处即可看到一些相关信息,点击Fast Hea

read more
译自Good Exchange Specifications- Microsoft vs Apple  by Grahame Grieve

译自Good Exchange Specifications- Microsoft vs Apple by Grahame Grieve

译自Good Exchange Specifications: Microsoft vs Apple by Grahame Grieve 构建一个标准之初你必须要做的选择之一是如何进行领域分析。这是一个你如何使用story board故事版的问题。这里有苹果的做法,也有微软的做法。 苹果的做法 苹果的方法很简单:你以文档形式记录下你的story board,然后为你所接受的story

read more
HL7 need a fresh look

HL7 need a fresh look

此间,由Grahame Grieve发表的一篇题为HL7 Fresh Look Task Force的博文引起了人们的热烈的讨论,RIMBAA的邮件列表里讨论了很久,随后Grahame Grieve 又发表一些后续的相关博文,Keith Boone也有一些,今日又看到Wes Rishel的一篇题为Lessons From the Putative Failure of HL7 V3的博文,当然

read more
how to understand  Health Concern

how to understand Health Concern

Health Concern的概念是我一直捉摸不透的, 为什么要有这样的一个概念 最近在FHIR 的mailing list上有一些探讨 收集以供自己了理解The conundrum of the observation-concern-

read more
译自Implementing IHE SVS Over the Trifolia Consolidated CDA by  Keith Boone

译自Implementing IHE SVS Over the Trifolia Consolidated CDA by Keith Boone

Friday, March 9, 2012 BY Keith Boone Implementing IHE SVS Over the Trifolia Consolidated CDA Database 这个32行的程序是为了让JSP页面能够根据Trifolia Workbench database 构建一个 IHE SVS Value Set 的实现。它完全没有处理任何错误,如果变量匹配

read more
译Introducing NHIN Direct NHIN Direct的介绍 by Keith Boone

译Introducing NHIN Direct NHIN Direct的介绍 by Keith Boone

原文链接 之所以关注这篇文章的作者是因为之前一直在看Keith Boone的Blog,从他的首页上看到了几个人的Blog的外链,Keith这么胸猛,他推荐的人自然不会逊色。他们也将成为我在茫茫Healthcare Standards的知识海洋中学习的几

read more
译自Liberating Consolidated CDA Templates from the Trifolia  Keith Boone

译自Liberating Consolidated CDA Templates from the Trifolia Keith Boone

Tuesday, March 6, 2012 By Keith Boone Liberating Consolidated CDA Templates from the Trifolia Workbench Data CDA Consolidation project的目标之一是从模板的模型驱动数据中自动化的构建验证和开发工具。我曾期望与MDHT项目有更加紧密的合作,我希望最终能够实现。几个星期

read more
译《A Perfect Implementation Guide》by Keith Boone

译《A Perfect Implementation Guide》by Keith Boone

分类: What the New Meaningful Use Standards for Electronic Health Records Mean 原文链接 http://www.dietsinreview.com/diet_column/07/new-standards-for-electronic-health-records/ 就在周二,联邦政府发布了题为“Electronic

read more
译自The XSLT document() function  by  Keith Boone

译自The XSLT document() function by Keith Boone

Thursday, January 26, 2012 BY Keith Boone The XSLT document() function 有人在Structured Document 工作组邮件列表中问了一个如

read more
译自Value Sets and QueryHealth  by  Keith Boone

译自Value Sets and QueryHealth by Keith Boone

Tuesday, November 1, 2011 By Keith Boone Value Sets and QueryHealth Query Health的一大难题就是一个特殊的measure就可能引用大量的编码值。在HL7中

read more
译《A Perfect Implementation Guide》by Keith Boone

译《A Perfect Implementation Guide》by Keith Boone

Tuesday, February 1, 2011 A Perfect Implementation Guide 英文原文链接 在上周HL7/IHE/ONC Consolidation Project的电话会议上,其中两个人同意新增

read more
a-review-of-all-most-common-api-editor-API-Specification-Automated-Testing-Documentation-Generation

a-review-of-all-most-common-api-editor-API-Specification-Automated-Testing-Documentation-Generation

需求1、DSL:要能够使用DSL来描述定义API 2、DSL编辑工具:要有易用的编辑工具来编写API定义 3、API的校验:最终的AP定义要能够可执行,可以用来确认API的动作 最好是cURL或者浏览器的服务交互来分析请求响应 4、API文档:从API定义中可以自动生成文档 5、解析器:支持多种语言,能从IDL中生成客户端代码,java、js、php、ruby、pytho

read more
Bottled Water-PostgreSQL与 Kafka的实时数据整合

Bottled Water-PostgreSQL与 Kafka的实时数据整合

Bottled Water: PostgreSQL与 Kafka 的实时数据整合 英文版: [Bottled Water: Real-time integration of PostgreSQL and Kafka](http://blog.confluent.io/2015/04/23/bottled-water-real-time-integration-of-post

read more
CDA文档编辑器

CDA文档编辑器

CDA文档均为XML文件,故我们采用一些市面上常用的XML编辑软件。列举如下: 1.Oxygen XML Editor 它是一款基于Java的XML编辑器,支持XML, XSL, TXT, XSD, DTD文档,能自行校验XML, XSL, XSD代码,提示脚本错误。Oxygen能自动完成结束标签,代码高亮现实,支持Unicode。 Oxygen XML Editor是一款简洁并且功能一流

read more
CDA文档实例

CDA文档实例

关于CDA R2的学习,很多人可能想直接看看这样那样的一些例子,下面是我所搜集的一些 1.来自Rene Spronk整理的压缩包,里面有丰富的内容 包含了很多国家不同项目的一些实例 下载链接一(原作者提供的) [下载链接二(方便一些无法下载一)](http://dl.dbank.

read more
 第一篇-CDS应该集成到那些业务流程当中

第一篇-CDS应该集成到那些业务流程当中

一.美国卫生部的网站上对这个问题进行了一个归纳和总结,见Workflow Taxonomy,大致上翻译了一个版本参考附件[Reference Taxonomy of Clinical Workflows.xlsx](http://

read more
译自Defining a Summary Care Record for MeaningfulUse Stage2 by Keith Boone

译自Defining a Summary Care Record for MeaningfulUse Stage2 by Keith Boone

Wednesday, March 14, 2012 By Keith Boone Defining a Summary Care Record for MeaningfulUse Stage2 作者在文中提到“他在昨天的post中 描述了Meaningful Use Stage 2 rules中所存在的对于Summary Care Record的描述的混乱之处。今天他将进一步来简化它们。

read more
一些关于encounter就诊的概念

一些关于encounter就诊的概念

文中的文字和图片均来自http://gforge.hl7.org/gf/project/patient-admin/docman/?subdir=311

read more
一些读医学信息学论文时遇到专业词汇的解决办法

一些读医学信息学论文时遇到专业词汇的解决办法

读论文是每个学生必修课之一 不管是主动抑或被动 其中一些专业词汇 对于我等非医学专业的it逼来说 着实困难。 解决办法 1网上查呗 最直接的就是google 关键词 如 episode of care 请具备基本的鉴别能力 推荐网站 http://www.reference.md/ 应该是美国FDA的网站吧 还是比较全 http://www.wisegeek.com/health.htm

read more
关系型数据库向KAFKA迁移 FROM RELATIONAL INTO KAFKA

关系型数据库向KAFKA迁移 FROM RELATIONAL INTO KAFKA

关系型数据库向KAFKA迁移 FROM RELATIONAL INTO KAFKA 英文版: FROM RELATIONAL INTO KAFKA 中文版:[关系型数据库向KAFKA迁移](http://wanghaisheng.github.io/2015

read more
Github pages 个人主页和项目主页的不同设置

Github pages 个人主页和项目主页的不同设置

Github pages 个人主页和项目主页的不同设置 如果你想利用github pages来搭建属于自己的博客 亦或是为某个小项目做一个宣传页面 这里有点小坑 大家需要提防一下。 1.如果你想做一个个人主页的话,比如我在github建了这样一个repo,除了需要有

read more
中文版GraphQL标准

中文版GraphQL标准

title: 中文版GraphQL标准 date: 2015-07-29 16:52:33 updated : permalink: tags:API GraphQL categories: API 译文GraphQL Working Draft – July 2015 Introduction This is a Draft RFC Sp

read more
API 文档编写工具

API 文档编写工具

API 文档编写工具 https://github.com/mashery/iodocs

read more
理解JSON Schema

理解JSON Schema

1、http://spacetelescope.github.io/understanding-json-schema/index.html 2、https://github.com/e-plus-healthcare-alliance/Open-mHealth-generic-and-clinical-schemas 理解JSON Schema

read more
 从零开始学临床决策支持 CDSS-第一篇 扒扒美国卫生部网站上的资料

从零开始学临床决策支持 CDSS-第一篇 扒扒美国卫生部网站上的资料

美国卫生部网站上有关CDS的内容 What is Clinical Decision Support (CDS)? Clinical decision support (CDS) provides clinicians, staff, patients or other individuals with knowledge and person-specific information,

read more
从零开始学临床决策支持CDSS-第二篇 如何将临床决策支持与医疗信息系统的业务流程整合起来

从零开始学临床决策支持CDSS-第二篇 如何将临床决策支持与医疗信息系统的业务流程整合起来

title: 从零开始学临床决策支持CDSS-第二篇 如何将临床决策支持与医疗信息系统的业务流程整合起来 date: 2015-2-11 19:53:12 updated : permalink: tags:医疗信息标准 CDSS HIT 临床决策支持 categories: 医疗信息标准 临床决策支持如何将临床决策支持与医疗信息系统的业务流程整合起

read more
<微服务架构在Netflix的应用>系列博文-3 微服务架构在Netflix的应用:架构设计的经验教训

<微服务架构在Netflix的应用>系列博文-3 微服务架构在Netflix的应用:架构设计的经验教训

第三篇-微服务架构在Netflix的应用:架构设计的经验教训 <微服务架构在Netflix的应用>系列博文-共四篇 英文版: [第一部分: The Four-Tier Engagement Platform]((http://blogs.forrester.com/ted_schadler/13-11-20-mobile_needs_a_four_tier_engagemen

read more
<微服务架构在Netflix的应用>系列博文-1 移动应用所需要的四层架构

<微服务架构在Netflix的应用>系列博文-1 移动应用所需要的四层架构

第一篇-移动应用所需要的四层架构 <微服务架构在Netflix的应用>系列博文-共四篇 英文版: 第一部分: The Four-Tier Engagement Platform 中文

read more
医疗开源实现

医疗开源实现

Cross Enterprise Document Sharing 跨机构文档共享 IheOS http://sourceforge.net/projects/iheos/ IheOS源自NIST本来做原始的XDS规范测试的(现在不做这个了)的参考实现的工作。Bill Majurski是XDS的创始人,并且不止是XDS规范的核心人员之一,也是这个开源项目的核心之一,也是很多由IHE开发

read more
openCDS系列 I——内部数据结构

openCDS系列 I——内部数据结构

译自Notes on OpenCDS Internal Data Structure 目的 openCDS的内部数据结构大致上是基于HL7 2011年9月份投票版中VMR(虚拟医疗记录)的逻辑模型。该逻辑模型中严格定义了所有的数据元素,数据元素的定义都有对应的内部数据结构。 内部数据结构更多地与schema保持一致,schema是对逻辑模型的说明性补充材料。schema 提供了2种方式来定义

read more
openCDS系列 II——使用openCDS中的概念

openCDS系列 II——使用openCDS中的概念

使用openCDS中的概念Using OpenCDS Concepts内容 1 什么是openCDS中的概念1.1概念类型1.2openCDS中的概念1.3概念映射规范1.4概念映射实例<div

read more
共同构建互联网医疗大共荣圈-FHIR标准的汉化和产品的开发

共同构建互联网医疗大共荣圈-FHIR标准的汉化和产品的开发

互联网医疗在过去的一年里如火如荼,希望大家能够一起来汉化和开发FHIR相关的产品 FHIR – Fast Health Interoperable Resources (hl7.org/fhir) – 是由HL7创建的新一代标准框架.FHIR 整合了 HL7 V2,V3 和 CDA 的优点,同时利用了最新的Web标准,紧紧围绕着 implementability 可实现性. FHIR 解决方

read more
病人记录的健康信息PGHD指南

病人记录的健康信息PGHD指南

病人记录的健康信息PGHD指南 为的是定义和提出一个将患者记录的健康信息整合到临床实践中的流程。有人在GG的博客上问了这样的一个问题,随着各种穿戴式设备和消费者端的网站越来越多,如何使用Fhir来记录和表达患者记录的健康信息,这些信息又如何与传统的医疗信息系统整合,在患者的诊疗

read more
病人记录的健康信息PGHD概念

病人记录的健康信息PGHD概念

病人记录的健康信息PGHD patient-generated health-information (PGHI) or patient-generated health data (PGHD). 这样一些在医院、医疗机构之外由患者或护理人员创建、收集、记录的与某个健康问题相关的观察、检验结果、 抑或是对已有EHR中某项数据的确认或变更等信息。 这样的信息在患者诊疗或健康管理过程中究

read more
piqi学习

piqi学习

#piqi学习 *目标一:·piqi是什么 *目标二:piqi与FHIR整合的可能性评估 *目标三:piqi用在文档内容校验上的可能性 *目标四:基于piqi的消息引擎的设计 ##piqi FAQ *1. piq和JSON的区别在哪里Piq语言适合与人机交互,JSON则只是一种标准的、轻便的、高效的结构化数据的表达方式。 The Piq language is optim

read more
Docker玩转Rhadoop

Docker玩转Rhadoop

Docker 玩转 RHadoop 网络上已经有了太多的 RHadoop 的安装使用的教程,鉴于其中的配置配置繁复,对软件版本的要求又极其苛刻,故笔者想用时下热门的 docker 来尝尝鲜,以下是心路历程,供看客参考,希望能给大家一些帮助。 1、软硬件环境 操作系统:OXS 10.10.1 docker安装版本:boot2docker(推荐大家使用https://gi

read more
Yelp公司总结的微服务架构的实践经验

Yelp公司总结的微服务架构的实践经验

Yelp公司总结的微服务架构的实践经验 英文版: Service Principles 中文版: Yelp公司总结的微服务架构的实践经验/ Service

read more
显示特定的标签值

显示特定的标签值

From looking at your XSLT and expected results, it looks like that for each a element in your XML, you want to output infomation on the following c elements present, if any occur before the next a e

read more
关于科研-启动翻译计划

关于科研-启动翻译计划

关于科研-启动翻译计划 一个人的战斗 两个人的战斗 三年的时间眨眼间逝去 无outcome可言 可我也self-study了不少。 决定了的事就去做 每天进步一点点 书籍 Principles of Health Interoperability HL7 and SNOMED Benson, Tim 1st Edition., 2010, XXIV, 263 p. 68 illus

read more
<微服务架构在Netflix的应用>系列博文-2 是时候转移到四层架构上来了

<微服务架构在Netflix的应用>系列博文-2 是时候转移到四层架构上来了

第二篇-是时候转移到四层架构上来了 <微服务架构在Netflix的应用>系列博文-共四篇 英文版: 第一部分: The Four-Tier Engagement Platform 中

read more
TWITTER REST API研究

TWITTER REST API研究

原文标题:REST APIs 原文作者:Twitter Inc 原文来源:Twitter Inc 译者: edwin_uestc REST APIs 这样就能够以编程的方式读写Twitter数据。发一条推或者读取某个人

read more
ubuntu下sqlplus上下光标键乱码解决方法

ubuntu下sqlplus上下光标键乱码解决方法

ubuntu下sqlplus上下光标键乱码解决方法 我的系统是ubuntu10.10,oracle版本为10gXE 遇到如题所述的问题时,可以这样解决该问题: 1 、安装插件: sudo apt-get install rlwrap 2、在当前用户下设置一个命令别名: alias sqlplus='rlwrap sqlplus' 3、重新键入

read more
读< 与Roy Fielding谈论版本化、超媒体以及REST >

读< 与Roy Fielding谈论版本化、超媒体以及REST >

第一篇,读< 与Roy Fielding谈论版本化、超媒体以及REST > 全系列Web APIs: From Start to Finish 第一篇,读< 与Roy Fielding谈论版本化、超媒体以及REST > [中文版](http://www.in

read more
读< 从业务角度看API >

读< 从业务角度看API >

第二篇,读< 从业务角度看API > 英文 中文 作者:Matt McLarty 观点1:API是当今信息技术趋势的核心,比如说移动终端、云计算、物联网、大数据、社交网络。涉足各行各业,如能源、汽车、电商等 观点2:虽然和API在整个技术领域

read more
医疗质量改进-表达知识的概念模型

医疗质量改进-表达知识的概念模型

HL7 Domain Analysis Model: Health Quality Improvement, Release 1 September 2014 US Realm Informative Specification文档 9/16/14 Introduction简介 目前在美国,电子化的医疗质量测度eCQM和临床决策支持CDS是采用不同的数据模型来表达的

read more
招妓小伙伴打小怪兽了

招妓小伙伴打小怪兽了

本人正在致力于FHIR(FHIR is a new emerging and appealing healthcare exchange standards, with the all difficulty embedded,through the off the shelf Web standards,you can flood health information anywhere on

read more
关于选择

关于选择

p哥哥的教导 简单的三原则:1、不许乱动。2、学会吃亏。3、做个有心人。 做两件事:1、别人不愿意做的事(解决态度和成长机会的问题)。2、做别人做不成的事(解决水平问题)。先做别人不愿做的事情,才有可能做别人做不成的事。

read more
致访客

致访客

title: 致访客 date: 2014-05-20 15:13:12 tags:日记 categories:曾几何时,幻想着自己能文思如尿奔,写一些生活的感悟,记录一些成长的足迹,辗转从qq空间到chinaunix再到科学网,种种不适,最终在这里落脚。 这里是海生(edwin)的小窝,记录着海生成长过程中的酸甜苦辣。虽努力地想让大家看到、了解、认识真实的自己,海生却不如自己

read more