|
3 | 3 | Define a unit of software delivery called a Standard Container. |
4 | 4 | The goal of a Standard Container is to encapsulate a software component and all its dependencies in a format that is self-describing and portable, so that any compliant runtime can run it without extra dependencies, regardless of the underlying machine and the contents of the container. |
5 | 5 |
|
6 | | -The specification for Standard Containers is straightforward. |
7 | | -It mostly defines 1) a file format, 2) a set of standard operations, and 3) an execution environment. |
| 6 | +The specification for Standard Containers defines: |
8 | 7 |
|
9 | | -A great analogy for this is the shipping container. |
10 | | -Just like how Standard Containers are a fundamental unit of software delivery, shipping containers are a fundamental unit of physical delivery. |
| 8 | +1. configuration file formats |
| 9 | +2. a set of standard operations |
| 10 | +3. an execution environment. |
| 11 | + |
| 12 | +A great analogy for this is the physical shipping container used by the transportation industry. |
| 13 | +Shipping containers are a fundamental unit of delivery, they can be lifted, stacked, locked, loaded, unloaded and labelled. |
| 14 | +Irrespective of their contents, by standardizing the container itself it allowed for a consistent, more streamlined and efficient set of processes to be defined. |
| 15 | +For software Standard Containers offer similar functionality by being the fundamental, standardized, unit of delivery for a software package. |
11 | 16 |
|
12 | 17 | ## 1. Standard operations |
13 | 18 |
|
14 | | -Just like shipping containers, Standard Containers define a set of STANDARD OPERATIONS. |
15 | | -Shipping containers can be lifted, stacked, locked, loaded, unloaded and labelled. |
16 | | -Similarly, Standard Containers can be created, started, and stopped using standard container tools (what this spec is about); copied and snapshotted using standard filesystem tools; and downloaded and uploaded using standard network tools. |
| 19 | +Standard Containers define a set of STANDARD OPERATIONS. |
| 20 | +They can be created, started, and stopped using standard container tools; copied and snapshotted using standard filesystem tools; and downloaded and uploaded using standard network tools. |
17 | 21 |
|
18 | 22 | ## 2. Content-agnostic |
19 | 23 |
|
20 | | -Just like shipping containers, Standard Containers are CONTENT-AGNOSTIC: all standard operations have the same effect regardless of the contents. |
21 | | -A shipping container will be stacked in exactly the same way whether it contains Vietnamese powder coffee or spare Maserati parts. |
22 | | -Similarly, Standard Containers are started or uploaded in the same way whether they contain a postgres database, a php application with its dependencies and application server, or Java build artifacts. |
| 24 | +Standard Containers are CONTENT-AGNOSTIC: all standard operations have the same effect regardless of the contents. |
| 25 | +They are started in the same way whether they contain a postgres database, a php application with its dependencies and application server, or Java build artifacts. |
23 | 26 |
|
24 | 27 | ## 3. Infrastructure-agnostic |
25 | 28 |
|
26 | | -Both types of containers are INFRASTRUCTURE-AGNOSTIC: they can be transported to thousands of facilities around the world, and manipulated by a wide variety of equipment. |
27 | | -A shipping container can be packed in a factory in Ukraine, transported by truck to the nearest routing center, stacked onto a train, loaded into a German boat by an Australian-built crane, stored in a warehouse at a US facility, etc. |
28 | | -Similarly, a standard container can be bundled on my laptop, uploaded to S3, downloaded, run and snapshotted by a build server at Equinix in Virginia, uploaded to 10 staging servers in a home-made Openstack cluster, then sent to 30 production instances across 3 EC2 regions. |
| 29 | +Standard Containers are INFRASTRUCTURE-AGNOSTIC: they can be run in any OCI supported infrastructure. |
| 30 | +For example, a standard container can be bundled on a laptop, uploaded to cloud storage, downloaded, run and snapshotted by a build server at a fiber hotel in Virginia, uploaded to 10 staging servers in a home-made private cloud cluster, then sent to 30 production instances across 3 public cloud regions. |
29 | 31 |
|
30 | 32 | ## 4. Designed for automation |
31 | 33 |
|
32 | | -Because they offer the same standard operations regardless of content and infrastructure, Standard Containers, just like their physical counterparts, are extremely well-suited for automation. |
| 34 | +Standard Containers are DESIGNED FOR AUTOMATION: because they offer the same standard operations regardless of content and infrastructure, Standard Containers, are extremely well-suited for automation. |
33 | 35 | In fact, you could say automation is their secret weapon. |
34 | 36 |
|
35 | 37 | Many things that once required time-consuming and error-prone human effort can now be programmed. |
36 | | -Before shipping containers, a bag of powder coffee was hauled, dragged, dropped, rolled and stacked by 10 different people in 10 different locations by the time it reached its destination. |
37 | | -1 out of 50 disappeared. |
38 | | -1 out of 20 was damaged. |
39 | | -The process was slow, inefficient and cost a fortune - and was entirely different depending on the facility and the type of goods. |
40 | | - |
41 | | -Similarly, before Standard Containers, by the time a software component ran in production, it had been individually built, configured, bundled, documented, patched, vendored, templated, tweaked and instrumented by 10 different people on 10 different computers. |
| 38 | +Before Standard Containers, by the time a software component ran in production, it had been individually built, configured, bundled, documented, patched, vendored, templated, tweaked and instrumented by 10 different people on 10 different computers. |
42 | 39 | Builds failed, libraries conflicted, mirrors crashed, post-it notes were lost, logs were misplaced, cluster updates were half-broken. |
43 | 40 | The process was slow, inefficient and cost a fortune - and was entirely different depending on the language and infrastructure provider. |
44 | 41 |
|
45 | 42 | ## 5. Industrial-grade delivery |
46 | 43 |
|
47 | | -There are 17 million shipping containers in existence, packed with every physical good imaginable. |
48 | | -Every single one of them can be loaded onto the same boats, by the same cranes, in the same facilities, and sent anywhere in the World with incredible efficiency. |
49 | | -It is embarrassing to think that a 30 ton shipment of coffee can safely travel half-way across the World in *less time* than it takes a software team to deliver its code from one datacenter to another sitting 10 miles away. |
50 | | - |
51 | | -With Standard Containers we can put an end to that embarrassment, by making INDUSTRIAL-GRADE DELIVERY of software a reality. |
| 44 | +Standard Containers make INDUSTRIAL-GRADE DELIVERY of software a reality. |
| 45 | +Leveraging all of the properties listed above, Standard Containers are enabling large and small enterprises to streamline and automate their software delivery pipelines. |
| 46 | +Whether it is in-house devOps flows, or external customer-based software delivery mechanisms, Standard Containers are changing the way the community thinks about software packaging and delivery. |
0 commit comments