Hat tip to my friend James Watters (@wattersjames) for teaching me about the value line.
给我的朋友詹姆斯·沃特斯( @wattersjames )的 帽子小贴士,以 帮助我了解价值观念。
What is the value line? The value line is how you distinguish what’s core to your business vs what you can and should outsource. In today’s world we outsource a lot of things as non-core concerns but somehow continue to blur the line when it comes to Dev and Ops.
什么是价值线? 价值线是您如何区分业务的核心与可及应外包的内容。 在当今世界,我们将许多事情外包为非核心问题,但在开发和运营方面,某种程度上继续模糊界限。
I’m here to talk to you about the value line in 2020.
我在这里与您谈谈2020年的价值线。
我的工作重点是什么? (What’s my priority?)
The real question you have to start with is, what’s my priority? What problem am I solving? Who’s my user or customer? When you start with these questions then you begin to uncover where the focus really needs to lie. So let’s begin with a thought experiment.
您必须开始的真正问题是,我的优先顺序是什么? 我要解决什么问题? 谁是我的用户或客户? 当您从这些问题开始时,您便开始发现真正需要把重点放在哪里。 因此,让我们从一个思想实验开始。
Alice is setting up a new business. For this example let’s say its a Neobank focused on Millenials…
爱丽丝正在建立一个新业务。 在这个例子中,假设它的Neobank专注于Millenials…
She’s identified a real problem, as a millenial herself she understands the pains of managing money in 2020, trying to keep track of spending and what’s worse, dealing with her bank over the phone or going to a branch when there’s a problem. Banking just wasn’t built for her. She’s got a great idea, what if a bank was built just for her.
她已经确定了一个真正的问题,作为千禧世代,她自己了解2020年理财的痛苦,试图跟踪支出以及更糟糕的情况,在出现问题时通过电话与银行联系或前往分行。 银行业务并不是为她而建的。 她有个好主意,如果只为她建一家银行怎么办。
Alice sets out to solve the problem with an MVP. Her and one other engineer (Joe) figure out how much they need to build to make something like this work. They’ll need a mobile app, some sort of prepaid card and a way to manage all this on the backend.
爱丽丝着手解决MVP问题。 她和另一位工程师(Joe)弄清楚他们需要多少才能完成这项工作。 他们将需要一个移动应用程序,某种预付卡以及在后端管理所有这些内容的方法。
Alice knows how to build html5 apps and Joe is a pretty good full stack dev using ruby on rails plus they’ve seen that Stripe is a card issuer so they can potentially tap into that real quick. Alice and Joe decide to use Heroku for hosting a rails app with a mysql backend and try get something off the ground using Phonegap.
爱丽丝(Alice)知道如何构建html5应用程序,而乔(Joe)是一个相当不错的全栈开发人员,使用了ruby on rails,此外,他们还看到Stripe是发卡行,因此他们可以快速地真正使用它。 爱丽丝(Alice)和乔(Joe)决定使用Heroku托管带有mysql后端的Rails应用程序,并尝试使用Phonegap进行尝试。
Its a convoluted example but here Alice identified the problem was one she felt herself and needed to prototype for quickly. Offloading much of the initial tech requirements to a fully managed PaaS, a card issuer with an API and html to app converter.
这是一个令人费解的例子,但是爱丽丝在这里发现了问题所在,她感到自己很需要快速原型制作。 将许多最初的技术要求转移到完全托管的PaaS,这是具有API和html至应用程序转换器的发卡行。
At every stage of your business you need to identify, what’s the problem I’m solving and what tradeoffs am I making to solve that problem vs finding a perfectly scalable solution for the future. Basically, what’s the value I’m creating and how much operational overhead do I need to incur.
在您的业务的每个阶段,您都需要确定,我正在解决的问题以及为解决该问题与寻找未来的可扩展解决方案而需要做出的权衡。 基本上,我要创造什么价值以及我需要承担多少运营开销。
Let’s take it a step further.
让我们更进一步。
初始牵引 (Initial Traction)
Alice and Joe put out the MVP and start getting traction. They’re onboarding friends and posting on social media to get some of the initial users. The traction is good and they’re starting to grow past a couple hundred users with line of sight to a thousand in a few weeks. They’re already feeling the pains of heroku but decide to double down, phonegap performance is also poor so they’re trying to find a solution.
爱丽丝和乔推出了MVP,开始受到关注。 他们加入了朋友并在社交媒体上发布了一些初始用户。 牵引力很好,并且他们的视线范围已经开始从几百名用户增长到几周后的一千名用户。 他们已经感觉到heroku的痛苦,但决定加倍努力,gapgap的性能也很差,因此他们试图找到解决方案。
Alice decides they should scale the dynos on heroku, pay for more mysql storage and contract a developer for the app side. If the app is slow the user experience is terrible and that’s what matters. Paying for stuff is one thing, but waiting 2–3 seconds for screens to load is terrible. She pays someone part time to start hacking on something for Android since most the users are Android users.
爱丽丝决定他们应该在heroku上扩展测功机,支付更多的mysql存储空间,并与应用程序方签约开发人员。 如果应用程序运行缓慢,那么用户体验将很糟糕,这很重要。 买东西是一回事,但是等待2到3秒钟等待屏幕加载非常糟糕。 由于大多数用户都是Android用户,因此她花了一些时间来开始为Android黑客入侵。
Heroku has done its part, it seems costly compared to other solutions, but they don’t need to manage anything which means more time to spend growth hacking and one less person to pay on the operations side. Phonegap also let them test out the market initially but has outlived it’s time, they know now the user experience is what matters.
Heroku已经尽了自己的本分,与其他解决方案相比,它似乎成本很高,但是它们不需要管理任何事情,这意味着有更多的时间花在黑客攻击上,而花更少的钱在运营方面。 Phonegap还允许他们最初测试市场,但是已经过了时间,他们现在知道用户体验才是最重要的。
向外扩展 (The Scale Out and Break Out)
Things are blowing up faster than expected. Always a good thing, but now, everything’s on fire. We need to figure out how to deal with the growth in the user base without having to completely rearchitect the stack. We need to break out the hotspots in the code into separate services.
事情爆炸的速度比预期的快。 总是一件好事,但是现在,一切都在火中。 我们需要弄清楚如何应对用户群的增长而不必完全重新整理堆栈。 我们需要将代码中的热点分成单独的服务。
Joe identifies that the API is super slow since its written in Ruby. The monolithic app has gotten them pretty far but there’s alot baked in which could be separated out to be done in a more appropriate language. In this case, the API needs to be something more performant since its handling all the requests. It also just uses a ton of memory.
Joe认为该API自从用Ruby编写以来,速度非常慢。 整体式应用程序已经使它们走得很远,但是有很多方法可以分离出来,用更合适的语言来完成。 在这种情况下,由于API需要处理所有请求,因此它必须具有更高的性能。 它也只使用大量的内存。
This is going to be non trivial on Heroku. They don’t really support service oriented architecture. Everything is going to be a public API call. Talking to the backend is going to get complicated. Joe decides he needs to bite the bullet and make it work on Heroku, they’re invested in it now and it still means they don’t have to deal with Ops.
在Heroku上这将是不平凡的。 他们实际上并不支持面向服务的体系结构。 一切都将成为公共API调用。 与后端通信将变得复杂。 乔认为他需要咬紧牙关,让它在Heroku上运行,他们现在已经投入了,这仍然意味着他们不必与Ops打交道。
Joe’s been learning some Go and has seen many of the big tech companies adopt in for backend systems. He decides to write the API in Go and use a message queue in Heroku with Redis to publish anything to the existing monolith that needs to be processed in the background. Its going to require a bit of change in the Rails app but worth the performance gain.
Joe一直在学习Go语言,并且已经看到许多大型科技公司采用了后端系统。 他决定用Go编写API,并在Heroku中使用带有Redis的消息队列将任何内容发布到需要在后台处理的现有整体中。 它需要在Rails应用程序中进行一些更改,但是值得提高性能。
The Go API uses a 1/10th of the memory of the Ruby app, it actually only takes 1 dyno to serve all their needs. The monolithic Ruby app has now been left to deal with background job processing and some of the core functionality that was still pretty complex. The first phase of scale out and break out is successful.
Go API使用Ruby应用程序内存的1/10,实际上只需要1 dyno即可满足他们的所有需求。 整体式Ruby应用程序现在可以处理后台作业处理以及一些仍然非常复杂的核心功能。 扩展和突破的第一阶段是成功的。
超越Heroku (Moving Beyond Heroku)
It’s all going great, but now we’ve maxed out the capacity of heroku. Breaking down into more services is useful but we’re incurring some pretty heavy costs to do it with a full blown PaaS. If we evaluate our costs in relation to our customer base then we’re actually losing money rather than making it. We have to find a better alternative. Heroku was built for monolithic apps not microservices.
一切都很好,但是现在我们已经最大限度地利用了heroku的容量。 分解成更多的服务是有用的,但是要实现全面的PaaS,我们要付出沉重的成本。 如果我们根据客户群评估成本,那么实际上是在赔钱,而不是赚钱。 我们必须找到更好的选择。 Heroku是为单片应用而非微服务而构建的。
Pragmatism has gotten Alice and Joe this far. They proved out an MVP, got product/market fit and pushed the current infrastructure as far as it would go. Now they need to get off Heroku and find a better route forward.
实用主义已经使爱丽丝和乔走了这么远。 他们证明了MVP,适合产品/市场,并尽可能扩展了当前的基础架构。 现在他们需要下车Heroku并找到一条更好的前进路线。
You’re thinking I know exactly what you need to do now. A container platform on a major cloud provider. Just spin up that managed container orchestrator, learn some yaml, maybe a bit of terraform and off you go. This is where you need to start thinking very carefully about the value line. That’s right we didn’t forget about it.
您以为我完全知道您现在需要做什么。 主要云提供商上的容器平台。 只需启动该托管容器协调器,学习一些Yaml,也许是一些terraform即可。 在这里,您需要开始非常仔细地考虑价值线。 没错,我们没有忘记它。
价值线 (The Value Line)
Getting to the breaking point in terms of scale both technically and organisationally pushes many companies to bring more and more operational burden in house. It is only natural to weigh up the cost of a managed service vs our current needs and assume that self managed is the most appropriate choice for the future.
在技术和组织上都达到规模上的突破点,这迫使许多公司将越来越多的运营负担带入内部。 权衡托管服务的成本与我们当前的需求,并假设自我管理是将来最合适的选择,这是很自然的。
The customisation, the cost reduction on the managed service itself, all the possibilities. All without thinking about what the operational cost and maintenance burden is. I’m here to tell you, this, is a pivotal moment in your company’s lifetime.
定制,托管服务本身的成本降低以及所有可能性。 所有这些都无需考虑运营成本和维护负担。 我在这里告诉您,这是您公司生命中至关重要的时刻。
Deciding where the value line is for your company now will determine where you spend the majority of your time and money moving forward. Self managed is a sunk cost, a pit that becomes incredibly hard to climb back out of. As much as you may believe you can transition off the in-house approach, we rarely see it happen.
现在确定您公司的价值线将决定您将大部分时间和金钱用于何处。 自我管理是沉没的成本,一个坑很难爬出来。 尽管您可能相信可以从内部方法过渡,但我们很少看到这种情况发生。
It is true that when you reach the breaking point of scale you need to start deviating from what worked before. What worked for 1, won’t work for 100, won’t work for 1000. But it does not mean you need to take on the entire operational burden of the platform owners of today.
的确,当您达到规模的突破点时,您需要开始偏离之前的工作方式。 对于1有用的东西,对于100不起作用,对于1000也不起作用。但这并不意味着您需要承担当今平台所有者的全部操作负担。
前端的后端 (The Backend for Your Frontend)
M3O was born with an understanding of this exact pain. At the breaking point of scale every team and organisation has to make a choice, either move to a self managed platform to do microservices or incur the costs of solutions that were not built for purpose. We felt this pain, so we decided to build a solution.
M3O出生时就知道这种确切的痛苦。 在规模的突破点,每个团队和组织都必须做出选择,要么迁移到自我管理的平台上进行微服务,要么承担非特定目的的解决方案的成本。 我们感到了这种痛苦,所以我们决定建立一个解决方案。
M3O is a cloud native development platform for Micro services. We focus on providing a fully managed platform for building microservices in Go using the open source framework Micro. The goal is to enable large scale developer productivity on the backend while letting the folks like Netlify focus on the frontend.
M3O是用于微服务的云原生开发平台。 我们专注于提供一个完全托管的平台,以使用开源框架Micro在Go中构建微服务 。 目标是在后端上实现大规模开发人员的生产力,同时让像Netlify这样的人将精力集中在前端上。
We think this solution works and why we coined the term, “Netlify for your frontend, Micro for the backend”.
我们认为该解决方案有效,为什么我们创造了术语“ Netlify代表您的前端,Micro代表后端”。
Large scale software development is hard. The cloud hasn’t made it any easier. In fact we feel like over the past 5 years if nothing else it’s just gotten harder with all these tools promoted by the CNCF. We think things have to change. With millions now expecting online services to scale from day 1, we as software developers need help.
大规模软件开发很难。 云并没有使它变得更容易。 实际上,在过去的5年中,我们感觉到CNCF推广的所有这些工具都变得越来越难。 我们认为情况必须改变。 现在,数以百万计的人希望在线服务从第一天开始就可以扩展,我们作为软件开发人员需要帮助。
The backend for your frontend. Let us manage the platform, help your write microservices, be super productive. Let Netlify deal with the frontend, and talk to us through a single consolidated API. That’s right, no need to wrangle those microservices yourself into a cohesive API, we do it for you.
前端的后端。 让我们管理平台,帮助您编写微服务,提高生产力。 让Netlify处理前端,并通过一个统一的API与我们交谈。 没错,您无需自己将这些微服务纠缠为一个内聚的API,我们会为您完成。
When you’re thinking about the value line for your business. When deciding whether the future of your company is developing software or managing the operations of it. Choose development every day of the week by letting us deal with the operations.
当您考虑企业的价值线时。 在决定公司的未来是开发软件还是管理软件的运营时。 让我们处理业务,每周选择每天的开发。
If you’re interested to learn more check out m3o.com or join us at #m3o-platform on slack.m3o.com.
如果您有兴趣了解更多信息,请访问m3o.com或通过slack.m3o.com上的#m3o-platform加入我们。
翻译自: https://medium.com/microhq/the-value-line-in-5aa9416f7720