Deconstructing DevOps
and Rebuilding Again
With Containers
| Modern IT in Practice
in /eric-ten-harkel-101905
Eric ten Harkel
Owner | CoolProfs
in /michel-coudron-0543991
Michel Coudron
Principal Consultant | CoolProfs
@erictenharkel
@michelcoudron
The past and the future
of
Container Based Development
Michel Coudron
Eric ten Harkel
October 9th
, 2018
Agenda
Something new: CBD!
What are Containers?
The Pro’s and Con’s of Microservices
The past and future of CBD
Traditional Development (IE): Limitations
Many related applications share same integrated database
Reaction to stand-alone applications of the 70’s
But complexity increases dramatically with level of integration
What is a Component in CBD?
A component is a software package that:
• Offers services through stable interfaces
• Is encapsulated
• Does not depend on the implementation of other components
Specification and Implementation
Specification/Interface:
• Describes what the component does
• Provides public operations
• Specification model
Implementation:
• Describes how it does it
• Defines persistent storage and
internal operations
• Implementation/design model
Separate “what” service is provided
…from “how” it is provided
Is an implementation of
And now…
The container concept
A container allows you to create and deploy an application together with everything
needed to run it
Share and control resources of the host machine such a CPU and memory
Containers are an abstraction at the application layer that packages code and
dependencies together
Some characteristics
Lightweight
No Operating System and therefore small and efficient
Standalone
Includes everything needed to run the application
Uniform
Behaves the same in all environments
Portable
Runs on the Container Engine regardless of the underlying Operating System
Container architectures
It is possible to deploy a monolithic application in a container (fast deploy, scale)
The downside becomes evident if the application grows, requiring it to scale.
If the entire application can scale, it is not really a problem.
However, in most cases, just a few parts of the application are the choke points that
requiring scaling, while other components are used less.
Microservices
Containers are enablers and a great fit for microservices
Break up your monoliths
Communicate via microservices
because…….. we’re in it for the long
run
Improved maintenance because of independently deployable services with
autonomous lifecycles.
Easy to scale
Continuous Integration & Delivery
Microservices are enablers for CI / CD
Develop, Test, Deploy, Run and Maintain autonomously
Accelerates delivery of new functions into
the application.
Challenges There is no such thing as a free lunch
More challenges
Looking back…..and forward
Organize!
• CBD only works if you organize it!
• No re-use -> No Component
• Invest before re- Use
Not too small
• Make Business components, not IT components
Architecture!
• Without it: CBD creates Macaroni
• A corporate database may still be needed
• Use a component repository
Implementation
• Start small
Containers with Outsystems
The deployment unit is the OutSystems application
One application per container
In OutSystems, the way to take advantage of containers is to create small applications
that own their data model and logic and are responsible for providing services to other
applications.
Tag along with the existing container strategy of your company
New skillset and tools
Thank You!

NextStep Amsterdam - Deconstructing DevOps and Rebuilding Again With Containers, CoolProfs

  • 1.
  • 2.
    | Modern ITin Practice in /eric-ten-harkel-101905 Eric ten Harkel Owner | CoolProfs in /michel-coudron-0543991 Michel Coudron Principal Consultant | CoolProfs @erictenharkel @michelcoudron
  • 3.
    The past andthe future of Container Based Development Michel Coudron Eric ten Harkel October 9th , 2018
  • 4.
    Agenda Something new: CBD! Whatare Containers? The Pro’s and Con’s of Microservices The past and future of CBD
  • 5.
    Traditional Development (IE):Limitations Many related applications share same integrated database Reaction to stand-alone applications of the 70’s But complexity increases dramatically with level of integration
  • 6.
    What is aComponent in CBD? A component is a software package that: • Offers services through stable interfaces • Is encapsulated • Does not depend on the implementation of other components
  • 7.
    Specification and Implementation Specification/Interface: •Describes what the component does • Provides public operations • Specification model Implementation: • Describes how it does it • Defines persistent storage and internal operations • Implementation/design model Separate “what” service is provided …from “how” it is provided Is an implementation of
  • 8.
  • 9.
    The container concept Acontainer allows you to create and deploy an application together with everything needed to run it Share and control resources of the host machine such a CPU and memory Containers are an abstraction at the application layer that packages code and dependencies together
  • 10.
    Some characteristics Lightweight No OperatingSystem and therefore small and efficient Standalone Includes everything needed to run the application Uniform Behaves the same in all environments Portable Runs on the Container Engine regardless of the underlying Operating System
  • 11.
    Container architectures It ispossible to deploy a monolithic application in a container (fast deploy, scale) The downside becomes evident if the application grows, requiring it to scale. If the entire application can scale, it is not really a problem. However, in most cases, just a few parts of the application are the choke points that requiring scaling, while other components are used less.
  • 12.
    Microservices Containers are enablersand a great fit for microservices Break up your monoliths Communicate via microservices because…….. we’re in it for the long run Improved maintenance because of independently deployable services with autonomous lifecycles. Easy to scale
  • 13.
    Continuous Integration &Delivery Microservices are enablers for CI / CD Develop, Test, Deploy, Run and Maintain autonomously Accelerates delivery of new functions into the application.
  • 14.
    Challenges There isno such thing as a free lunch
  • 15.
  • 16.
    Looking back…..and forward Organize! •CBD only works if you organize it! • No re-use -> No Component • Invest before re- Use Not too small • Make Business components, not IT components Architecture! • Without it: CBD creates Macaroni • A corporate database may still be needed • Use a component repository Implementation • Start small
  • 17.
    Containers with Outsystems Thedeployment unit is the OutSystems application One application per container In OutSystems, the way to take advantage of containers is to create small applications that own their data model and logic and are responsible for providing services to other applications. Tag along with the existing container strategy of your company New skillset and tools
  • 20.