今天看了一下序,了解了一下Devops这本书是干啥的?
The purpose of the DevOps Handbook is to give you the theory, principles, and practices you need to successfully start your DevOps initiative and achieve your desired outcomes.
Devops原则想要做到的事情,就是更快,更低风险的软件交付:
faster, cheaper, low-risk delivery of software
想要做到这件事,需要开发、QA、运维、信息安全部门一起合作。
“Imagine a world where product owners, Development, QA, IT Operations, and
Infosec work together, not only to help each other, but also to ensure that the
overall organization succeeds. By working toward a common goal, they enable
the fast flow of planned work into production (e.g., performing tens, hundreds,
or even thousands of code deploys per day), while achieving world-class
stability, reliability, availability, and security.
In this world, cross-functional teams rigorously test their hypotheses of which
features will most delight users and advance the organizational goals. They care
not just about implementing user features, but also actively ensure their work
flows smoothly and frequently through the entire value stream without causing
chaos and disruption to IT Operations or any other internal or external customer.
Simultaneously, QA, IT Operations, and Infosec are always working on ways to
reduce friction for the team, creating the work systems that enable developers to
be more productive and get better outcomes. By adding the expertise of QA, IT
Operations, and Infosec into delivery teams and automated self-service tools and
platforms, teams are able to use that expertise in their daily work without being
dependent on other teams”
几乎所有的IT机构都会存在这样两个问题:
1.Developer 和 IT operation之间的核心冲突:
In almost every IT organization, there is an inherent conflict between
Development and IT Operations which creates a downward spiral, resulting in
ever-slower time to market for new products and features, reduced quality,
increased outages, and, worst of all, an ever-increasing amount of technical debt.
Development will take responsibility for responding to changes in
the market, deploying features and changes into production as quickly as
possible. IT Operations will take responsibility for providing customers with IT
service that is stable, reliable, and secure, making it difficult or even impossible
for anyone to introduce production changes that could jeopardize production.
Configured this way, Development and IT Operations have diametrically
opposed goals and incentives.
2.技术债务
技术债务是怎么形成的呢?这一段看着深有同感啊,哈哈。
- 系统复杂且缺乏文档和解决方案
- 没有时间去解决以上问题,而是不停的往前走
- PO要求的功能点,难以实现,或者说,无法在他要求的时间内实现
这样的系统和管理模式很脆弱,让人没有信心
In our daily work, many of our problems are due to applications and infrastructure
that are complex, poorly documented, and incredibly fragile. This is the
technical debt and daily workarounds that we live with constantly, always
promising that we’ll fix the mess when we have a little more time. But that time
never comes.
The second act begins when somebody has to compensate for the latest broken
promise—it could be a product manager promising a bigger, bolder feature to
dazzle customers with or a business executive setting an even larger revenue
target. Then, oblivious to what technology can or can’t do, or what factors led to
missing our earlier commitment, they commit the technology organization to
deliver upon this new promise.
使用DevOps原则,可以做到什么?
- 省钱.省时间.
- 快速、可靠、安全的部署到生产环境,代码部署是常规的、可回滚、可预测的。
DevOps shows us that when we have the right architecture,
the right technical practices, and the right cultural norms, small teams of
developers are able to quickly, safely, and independently develop, integrate, test,
and deploy changes into production.
code deployed into production quickly, safely and securely.
Code deployments are routine and predictable.
our releases are controlled, predictable, reversible, and low stress.
DevOps有哪些方法?
- 在流程的每一步都创建自动回馈的循环, 例如在流程中加入自动化测试
- 形成组织学习,使我们能预防问题,或者快速解决错误
- 保持团队的完整性,这样不断地迭代和改进,过往的经验和不断的反馈可以更好地实现目标。
- 高度信任和协作的文化,这使得我们更关注于如何解决问题发现问题而不是隐藏问题
- 不追责的事后调查,把重点放在更好地了解事故的原因以及如何预防。
- 内部技术会议,督促我们持续学习,有意识的提高我们的技能
shared goals, feedback, and continual learning
creating fast feedback loops at every step of the process, everyone can
immediately see the effects of their actions. Whenever changes are committed
into version control, fast automated tests are run in production-like
environments, giving continual assurance that the code and environments
operate as designed and are always in a secure and deployable state.
we also generate organizational learnings, enabling us to prevent
the problem from recurring and enabling us to detect and correct similar
problems faster in the future.
we keep teams intact so they can keep iterating and improving, using
those learnings to better achieve their goals.
Instead of a culture of fear, we have a high-trust, collaborative culture
when something does go wrong, we conduct blameless post-mortems, not to
punish anyone, but to better understand what caused the accident and how to
prevent it. This ritual reinforces our culture of learning. We also hold internal
technology conferences to elevate our skills and ensure that everyone is always
teaching and learning.