3,21
Code in container
By Lino «Jan» Telera
About me…
• Lino «Jan» Telera
• Blogger (http://blog.linoproject.net)
• Ex developer SOA and Frontend
• System administrator, cloud architect, CNA coach at LineaCom
• VCP4-5-6 VCP-Cloud VCP-DT vExpert 2015,2016,2017
• VMworld 2016 official blogger
• VMUG.it Leader board member
• TechFieldDay delegate since 2016
• DevOPS enthusiast and VMware «code» member
Agenda
• Cloud Native Application and DevOps concepts
• WTH is a Container
• Container Architecture
• Write a Code in Container
• Deploy a container in-premise and off-premise
• DEMO and questions
• Eat, drink, funs
Traditional VS Cloud Native Application
Old application issues (SOA, Tier-1, 3-Tier,…)
• Big team work
• Orchestrating well! or big failure comes!
• Single purpose or customer driven
• Operations and Scaling nightmare
• DR/DB???
Infrastrure Team
Developement
Team
Single Application
Dedicated
infrastructure
Patch, bugtrace,
evolutions
Operations,
capacity, scaling
Software
architect
Infrastructure
architect
Deploy
Deploy Timeline (if all goes well)
Wait
infrastructure
T > 1 month
Write code
Write
Integrations
Wait deploy Wait operations
Developement
workcycle
Sysadmin is an
Hostage…
Cloud Native Application
StateLess StateFull
Data routing and governance
Microservices Container
business
Temp data
SQL NoSQL Bigdata
Cloud services Cloud
Storage
DNS Certificate Orchestrator Cloud connector Proxy connector
Infrastructure
DevOps
Workcycle
What is a container
• Isolated instances that include
• Library
• Tools
• Business logic
• Most fashion: Docker
• More and more vendors are «in container» (and sometimes you don’t
know!)
• Software as a service
• Platform as a service
• Infrastructure as a service
• Monitoring, backup and orchestrators
• Storage and computing systems (HCI)
• Software defined Network
What is not a container
• VM 2.0
• Framework or Library
• An operative system
• Persisent isolated instances
• New hosting systems
The container paradigm
• Write your code
• Encapsulate in a «box»
• Deploy without Sysadmin
• Scale start/stop/increase and reduce (app scaling)
• Integrate, patch and deliver (Continous integration)
Deploy Timeline
Choose your
cloud
infrastructure
Write code Build Container
Deploy
Container
Scale container
Commit into GIT Commit into Hub Multiple projects
Continous
integration
Stack IT
Hardware In premise
Computing Storage
CloudVirtual Infrastructure
Virtual Machine Virtual Machine Virtual Machine
Management Tools
Contai
ner
Contai
ner
Contai
ner
Contai
ner
SQL
NoSQL
Storage
aaS
Contai
ner
Contai
ner
Contai
ner
Contai
ner
Networking
Contai
ner
Inside a container host
Virtual Machine = Container Hosts
Linux OS
Container Engine
Storage area
Network Driver
Container
Storage Arera
Image
Container
Container
Container
Public / Private
Image Registry
Container Host1
Application in container Step1
Container 1
NoSQL
ui
business
User
request
Container Host1
Application in container Step2
Container 1
NoSQL
ui User
request
Container 2
business
Container Host1
Application in container Step3a
Container 1
NoSQL
ui User
request
Container 2
business
Container Host2
Container 3
business
Container Host1
Application in container Step3b
Container 1
NoSQL
ui User
request
Container 2
business
Container Host2
Container 2
dup
business
dispatch
Container Host1
Application in container Step4
Container 1
NoSQL
ui User
request
Container 2
business
Container Host2
Container 3
business
Your datacenter in a box with Docker
• Like an homelab WAF (Wife Acceptance Factor)
• Location
• Size
• Noise
• Power and Cooling
• Cost
• Your PC/MAC! (64bit, VT, 8GB RAM)
• «Single» package installation from
https://www.docker.com/products/docker-toolbox
• Build your own with Vmware/Photon/Docker-machine…
• Use your Development Tool
• Amazon EC2???
OS
Virtualization SW Local Folder
Docker Engine Docker CLI
Container Container
Container Container
Just an example: Architecture
Python code
Lib web (with
dependencies)
http://webpy.org/
Port 80
Just an example – The code
#!/usr/bin/env python
import web
urls = (
'/say_hello', 'say_hello'
)
app = web.application(urls, globals())
class say_hello:
def GET(self):
return "hello from container"
if __name__ == "__main__":
app.run()
Just an example – Dockerfile 1
FROM ubuntu:trusty
MAINTAINER Lino Telera Linoproject.net <linotelera@gmail.com>
# Install base packages
RUN apt-get update && 
DEBIAN_FRONTEND=noninteractive apt-get -yq install 
python 
python-pip python-dev build-essential 
openssh-server 
libffi-dev libssl-dev 
git
Just an example – Dockerfile 2
RUN pip install --upgrade pip
RUN pip install --upgrade virtualenv
RUN pip install requests[security]
RUN pip install pyopenssl ndg-httpsclient pyasn1
WORKDIR /opt/services/
RUN easy_install web.py
Just an example – Dockerfile 1
EXPOSE 80
ADD ws.py /opt/services/ws.py
CMD ["python", "/opt/services/ws.py","80"]
Just an example – Build,Publish,Deploy, Run
• Docker build . –t=”linoproject/ws1”
• Docker login
• Docker push linoproject/ws1:latest
• Docker push linoproject/ws1:1
• docker run -d -p 80:80 
--name ws1 linoproject/ws1
Demo… and questions
What will happen?
Not all application are container «ready»
• UI, business and data separation rule the decision
• Tier-1 are born to be in a same «container»… No chance to be a CNA
• Some old application could be in container (drupal, wordpress,…)
when is possibile:
• Separate business and data logic
• Federate and/or be a web service
• Microsoft applications?
• Starting with Windows 2016 container could be a Nano-instance with
Win64bit code
Data logic nightmare
• Containers are not persistent!
• Containers could share data but split-brain may occurs!
• Data separation should be handled everywhere
• Working data
• Primitive
• Derivate
• Configuration data
• Messages
• Use DB in container in two cases:
• LAB
• Single instance
• Container could be a good database proxy connector (eg.: Nifi with
Hadoop)
Who is working on
• Docker! (in premise and datacenter)
• Amazon
• EC2
• EC2 Container service (ECS)
• Vmware
• In premise Photon, VIC
• vCloudAir or Partner Service Provider (vCloud Director)
• Microsoft
• Azure
• Windows Server 2016 «nano server in container»
VMware and Microsoft announcements
• Windows 2016 comes with native container
• Docker hub has windows and linux contianer images
• Windows Server could deliver both windows (aka native) and linux container
(hyper-v)
• VMware (https://vmware.github.io/)
• Photon and Photon controller (opensource!)
• Admiral and Harbor (management and registry)
• vSphere Integrated Container
• Good for sysadmin management
• Good for Security (NSX and microsegmentation)
• 100.000 Users and 200 local groups
• 1 local group in Italy: vmugit (http://www.vmug.it)
• In Italy (since 2016) new devops track!
• Italian Events in 2017
• Meeting north 5 Apr Padova
• Meeting south 9 May Rome
• User Conference 2017 14 Nov Milan
• Next??? Stay tuned!
• VMUG is your place! Join and share your experience!
Summary
• Containers…
• Not all applications are ready for docker
• A lot of old applications could be «dockerized»
• DevOPS with Freedom & Control!
• Code, Build, Integrate, Deploy
• Make IT better and don’t stress your Sysadmin
• You must try (Docker toolbox, Photon… Windows Server 2016)
Online resources
• My Blog: http://blog.linoproject.net
• Experience with Bigdata and containers
• Good presentation by Stephen Foskett at Emerging Technology
Summit 2016
• https://www.youtube.com/watch?v=hT6tROPVdXU
• Blog http://www.it20.info/ by Massimo ReFerrè
• Blog http://cormachogan.com/ by Cormac Hogan
• VMware CNA on github https://vmware.github.io/
• Docker https://www.docker.com/
Questions
Thanks… and…
Lino Telera
linotelera@gmail.com
http://blog.linoproject.net
@linotelera
Thanks to Brewbox!!!!!!!
Cobox, CRIT, Lineacom
Lino Telera
linotelera@gmail.com
http://blog.linoproject.net
@linotelera

321 codeincontainer brewbox

  • 1.
    3,21 Code in container ByLino «Jan» Telera
  • 2.
    About me… • Lino«Jan» Telera • Blogger (http://blog.linoproject.net) • Ex developer SOA and Frontend • System administrator, cloud architect, CNA coach at LineaCom • VCP4-5-6 VCP-Cloud VCP-DT vExpert 2015,2016,2017 • VMworld 2016 official blogger • VMUG.it Leader board member • TechFieldDay delegate since 2016 • DevOPS enthusiast and VMware «code» member
  • 3.
    Agenda • Cloud NativeApplication and DevOps concepts • WTH is a Container • Container Architecture • Write a Code in Container • Deploy a container in-premise and off-premise • DEMO and questions • Eat, drink, funs
  • 4.
    Traditional VS CloudNative Application Old application issues (SOA, Tier-1, 3-Tier,…) • Big team work • Orchestrating well! or big failure comes! • Single purpose or customer driven • Operations and Scaling nightmare • DR/DB??? Infrastrure Team Developement Team Single Application Dedicated infrastructure Patch, bugtrace, evolutions Operations, capacity, scaling Software architect Infrastructure architect Deploy
  • 5.
    Deploy Timeline (ifall goes well) Wait infrastructure T > 1 month Write code Write Integrations Wait deploy Wait operations
  • 6.
  • 7.
  • 8.
    Cloud Native Application StateLessStateFull Data routing and governance Microservices Container business Temp data SQL NoSQL Bigdata Cloud services Cloud Storage DNS Certificate Orchestrator Cloud connector Proxy connector Infrastructure
  • 9.
  • 10.
    What is acontainer • Isolated instances that include • Library • Tools • Business logic • Most fashion: Docker • More and more vendors are «in container» (and sometimes you don’t know!) • Software as a service • Platform as a service • Infrastructure as a service • Monitoring, backup and orchestrators • Storage and computing systems (HCI) • Software defined Network
  • 11.
    What is nota container • VM 2.0 • Framework or Library • An operative system • Persisent isolated instances • New hosting systems
  • 12.
    The container paradigm •Write your code • Encapsulate in a «box» • Deploy without Sysadmin • Scale start/stop/increase and reduce (app scaling) • Integrate, patch and deliver (Continous integration)
  • 13.
    Deploy Timeline Choose your cloud infrastructure Writecode Build Container Deploy Container Scale container Commit into GIT Commit into Hub Multiple projects Continous integration
  • 14.
    Stack IT Hardware Inpremise Computing Storage CloudVirtual Infrastructure Virtual Machine Virtual Machine Virtual Machine Management Tools Contai ner Contai ner Contai ner Contai ner SQL NoSQL Storage aaS Contai ner Contai ner Contai ner Contai ner Networking Contai ner
  • 15.
    Inside a containerhost Virtual Machine = Container Hosts Linux OS Container Engine Storage area Network Driver Container Storage Arera Image Container Container Container Public / Private Image Registry
  • 16.
    Container Host1 Application incontainer Step1 Container 1 NoSQL ui business User request
  • 17.
    Container Host1 Application incontainer Step2 Container 1 NoSQL ui User request Container 2 business
  • 18.
    Container Host1 Application incontainer Step3a Container 1 NoSQL ui User request Container 2 business Container Host2 Container 3 business
  • 19.
    Container Host1 Application incontainer Step3b Container 1 NoSQL ui User request Container 2 business Container Host2 Container 2 dup business dispatch
  • 20.
    Container Host1 Application incontainer Step4 Container 1 NoSQL ui User request Container 2 business Container Host2 Container 3 business
  • 21.
    Your datacenter ina box with Docker • Like an homelab WAF (Wife Acceptance Factor) • Location • Size • Noise • Power and Cooling • Cost • Your PC/MAC! (64bit, VT, 8GB RAM) • «Single» package installation from https://www.docker.com/products/docker-toolbox • Build your own with Vmware/Photon/Docker-machine… • Use your Development Tool • Amazon EC2??? OS Virtualization SW Local Folder Docker Engine Docker CLI Container Container Container Container
  • 22.
    Just an example:Architecture Python code Lib web (with dependencies) http://webpy.org/ Port 80
  • 23.
    Just an example– The code #!/usr/bin/env python import web urls = ( '/say_hello', 'say_hello' ) app = web.application(urls, globals()) class say_hello: def GET(self): return "hello from container" if __name__ == "__main__": app.run()
  • 24.
    Just an example– Dockerfile 1 FROM ubuntu:trusty MAINTAINER Lino Telera Linoproject.net <linotelera@gmail.com> # Install base packages RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq install python python-pip python-dev build-essential openssh-server libffi-dev libssl-dev git
  • 25.
    Just an example– Dockerfile 2 RUN pip install --upgrade pip RUN pip install --upgrade virtualenv RUN pip install requests[security] RUN pip install pyopenssl ndg-httpsclient pyasn1 WORKDIR /opt/services/ RUN easy_install web.py
  • 26.
    Just an example– Dockerfile 1 EXPOSE 80 ADD ws.py /opt/services/ws.py CMD ["python", "/opt/services/ws.py","80"]
  • 27.
    Just an example– Build,Publish,Deploy, Run • Docker build . –t=”linoproject/ws1” • Docker login • Docker push linoproject/ws1:latest • Docker push linoproject/ws1:1 • docker run -d -p 80:80 --name ws1 linoproject/ws1
  • 28.
  • 29.
    Not all applicationare container «ready» • UI, business and data separation rule the decision • Tier-1 are born to be in a same «container»… No chance to be a CNA • Some old application could be in container (drupal, wordpress,…) when is possibile: • Separate business and data logic • Federate and/or be a web service • Microsoft applications? • Starting with Windows 2016 container could be a Nano-instance with Win64bit code
  • 30.
    Data logic nightmare •Containers are not persistent! • Containers could share data but split-brain may occurs! • Data separation should be handled everywhere • Working data • Primitive • Derivate • Configuration data • Messages • Use DB in container in two cases: • LAB • Single instance • Container could be a good database proxy connector (eg.: Nifi with Hadoop)
  • 31.
    Who is workingon • Docker! (in premise and datacenter) • Amazon • EC2 • EC2 Container service (ECS) • Vmware • In premise Photon, VIC • vCloudAir or Partner Service Provider (vCloud Director) • Microsoft • Azure • Windows Server 2016 «nano server in container»
  • 32.
    VMware and Microsoftannouncements • Windows 2016 comes with native container • Docker hub has windows and linux contianer images • Windows Server could deliver both windows (aka native) and linux container (hyper-v) • VMware (https://vmware.github.io/) • Photon and Photon controller (opensource!) • Admiral and Harbor (management and registry) • vSphere Integrated Container • Good for sysadmin management • Good for Security (NSX and microsegmentation)
  • 33.
    • 100.000 Usersand 200 local groups • 1 local group in Italy: vmugit (http://www.vmug.it) • In Italy (since 2016) new devops track! • Italian Events in 2017 • Meeting north 5 Apr Padova • Meeting south 9 May Rome • User Conference 2017 14 Nov Milan • Next??? Stay tuned! • VMUG is your place! Join and share your experience!
  • 34.
    Summary • Containers… • Notall applications are ready for docker • A lot of old applications could be «dockerized» • DevOPS with Freedom & Control! • Code, Build, Integrate, Deploy • Make IT better and don’t stress your Sysadmin • You must try (Docker toolbox, Photon… Windows Server 2016)
  • 35.
    Online resources • MyBlog: http://blog.linoproject.net • Experience with Bigdata and containers • Good presentation by Stephen Foskett at Emerging Technology Summit 2016 • https://www.youtube.com/watch?v=hT6tROPVdXU • Blog http://www.it20.info/ by Massimo ReFerrè • Blog http://cormachogan.com/ by Cormac Hogan • VMware CNA on github https://vmware.github.io/ • Docker https://www.docker.com/
  • 36.
  • 37.
  • 38.
    Thanks to Brewbox!!!!!!! Cobox,CRIT, Lineacom Lino Telera linotelera@gmail.com http://blog.linoproject.net @linotelera