Build Engineering Build Engineering Evolution in Managing OS Pete - - PowerPoint PPT Presentation

build engineering
SMART_READER_LITE
LIVE PREVIEW

Build Engineering Build Engineering Evolution in Managing OS Pete - - PowerPoint PPT Presentation

Build Engineering Build Engineering Evolution in Managing OS Pete Garcin , Senior Product Manager, ActiveState Shaun Lowry , Build Engineering Lead, ActiveState Build Engineering and its Role in Managing Open Source Build Engineering


slide-1
SLIDE 1

Build Engineering

slide-2
SLIDE 2
  • Pete Garcin, Senior Product Manager, ActiveState
  • Shaun Lowry, Build Engineering Lead, ActiveState

Build Engineering Evolution in Managing OS

slide-3
SLIDE 3

Build Engineering and its Role in Managing Open Source

slide-4
SLIDE 4

Pete Garcin

Senior Product Manager ActiveState

Platform Presentation Build Engineering Evolution in Managing OS

slide-5
SLIDE 5

Track-record: Polyglot: Runtime Focus:

Build Engineering Evolution in Managing OS

slide-6
SLIDE 6

Open Source in the Enterprise

Build Engineering Evolution in Managing OS

slide-7
SLIDE 7

Open Source in the Enterprise

More sources, more attack surface, more repositories to manage Build Engineering Evolution in Managing OS

slide-8
SLIDE 8

Build Engineering Defined

Who? Developers with:

  • Ecosystem knowledge
  • Systems knowledge
  • Process knowledge

What? Core tasks are:

  • Locating canonical sources of libraries, languages, tools, etc.
  • Compiling those sources into artifacts.
  • Packaging those artifacts for distribution.

Build Engineering Evolution in Managing OS

slide-9
SLIDE 9

Build Engineering in Relation to SDLC

Build Engineering Evolution in Managing OS

SDLC Missing Link Build Engineer

slide-10
SLIDE 10

Hidden Costs

75%

Build Engineering Evolution in Managing OS

slide-11
SLIDE 11

Automating Build Engineering

  • Environment configuration
  • Dependency management
  • Build execution and storage.

Build Engineering Evolution in Managing OS

slide-12
SLIDE 12

What are the challenges?

  • Automate, systematize, componentize builds
  • Seamless, effortless and reproducible across your

team and organization.

  • Reproducibility, critical for testing, deployment and

development — without it, nobody is speaking the same language.

Build Engineering Evolution in Managing OS

slide-13
SLIDE 13

Challenges in Build Engineering

Environment Configuration Dependency Management Build Reproducibility Build Engineering Evolution in Managing OS

slide-14
SLIDE 14

Environment Configuration

Compiler version Toolchain setup Language /Tool versions Setup Build Engineering Evolution in Managing OS

slide-15
SLIDE 15

Dependency Management

Build Engineering Evolution in Managing OS Version Pinning Binary Sources Dependency Chains Monitoring CVEs, Licenses

slide-16
SLIDE 16

Automation Wins

Build Engineering Evolution in Managing OS Developer Time Developer Sanity Shrink Tech Debt

slide-17
SLIDE 17

Potential Features + Automation

  • “Free” speculative builds
  • Build revisions as source control — can be forked,

reverted, merged, etc.

  • Integration with your CI
  • No more local hacks, “Franken-builds”, etc. —

everything is audited and guaranteed

Build Engineering Evolution in Managing OS

slide-18
SLIDE 18

ActiveState Platform

Build Engineering Evolution in Managing OS

slide-19
SLIDE 19

Build Engineering - Why It’s Hard and Why You Still Need It

slide-20
SLIDE 20

Shaun Lowry

Build Engineering Lead ActiveState

Platform Presentation Build Engineering Evolution in Managing OS

slide-21
SLIDE 21

Third-party software

  • Many benefits of using open source components
  • OSS or licensed components offer shortcuts and

competitive advantage

  • How to incorporate 3rd-party components

Build Engineering Evolution in Managing OS

slide-22
SLIDE 22

What’s so hard?

Compiling disparate OSS components

  • Build Engineering

Evolution in Managing OS

slide-23
SLIDE 23

Compilers

  • Different compilers disallow different code
  • Same for compiler versions
  • Some even have different ABIs between versions

(GCC4 vs GCC5)

Build Engineering Evolution in Managing OS

slide-24
SLIDE 24

Build Tools

setup.py

Build Engineering Evolution in Managing OS

Autotools Custom Cmake Bazel

slide-25
SLIDE 25

Dependencies

Build Engineering Evolution in Managing OS

slide-26
SLIDE 26

C libraries

  • Assumed to be on the system

  • Source included with package

  • Download source at build time (!)

Build Engineering Evolution in Managing OS

slide-27
SLIDE 27

Example

  • Builds using bazel

○ ○

  • Many variations, optional support

○ ○

Build Engineering Evolution in Managing OS

slide-28
SLIDE 28

Why?

That’s scary! What’s wrong with just downloading free stuff? Build Engineering Evolution in Managing OS

slide-29
SLIDE 29
  • Was that zipfile/wheel/magic binary

really compiled from that source?

  • What else is in there?
  • How many people are you trusting?
  • Do your customers trust all of them?

Build Engineering Evolution in Managing OS

slide-30
SLIDE 30
  • OS or runtime dependencies

  • Uniform compiler
  • Hardware dependencies

○ ○

Build Engineering Evolution in Managing OS

slide-31
SLIDE 31

Bugs

  • Licenses
  • Build Engineering

Evolution in Managing OS

slide-32
SLIDE 32

Example: wand

  • Python binding to ImageMagick

  • ImageMagick needs Ghostscript for PDF

manipulation ○

Build Engineering Evolution in Managing OS

slide-33
SLIDE 33

So what should I do?

  • Building OSS from source can be hard to deal with
  • Not building from source can be worse
  • Incorporate OSS builds into your own pipeline
  • Outsource OSS builds to a single trusted source

Build Engineering Evolution in Managing OS

slide-34
SLIDE 34

Q & A

slide-35
SLIDE 35
  • Watch a demo:

https://www.youtube.com/watch?v=c5AIxN9ehrI

  • Get a demo marketing@activestate.com
  • Contact us for the language build you need:

platform@activestate.com

slide-36
SLIDE 36

Tel: 1.866.631.4581 Website: www.activestate.com Twitter: @activestate Facebook: /activestatesoftware Platform Presentation

Where to find us