+ All Categories
Home > Documents > Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien...

Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien...

Date post: 29-May-2018
Category:
Upload: vanhuong
View: 221 times
Download: 0 times
Share this document with a friend
42
Beyond Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel [email protected]
Transcript
Page 1: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

Beyond Technical Fulfillment

SambaXP 2014May 15th, 2014

Julien Kerihuel [email protected]

Page 2: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

2 of 4215/05/14

OpenChange The World www.openchange.org

Contents

● About me

● Introduction

● Yesterday: since SambaXP 2013

● Today

● Tomorrow

Page 3: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

3 of 4215/05/14

OpenChange The World www.openchange.org

Julien Kerihuel - Zentyal CTO

@jkerihuel

OpenChange Project Founder> 10 years of my life

Free Software foundations:wireshark, samba

December 2003 – February 2005: OpenChange - End of Study Project

Page 4: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

4 of 42

15/07/2013OpenChange The World www.openchange.org

Introduction

Page 5: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

5 of 4215/05/14

OpenChange The World www.openchange.org

What is OpenChange?

● Started in 2004

● Free Software released under GPLv3 or later

● Portable Implementation of Microsoft Exchange Server and Exchange protocols

● Complete solution to interoperate with Microsoft Outlook clients and Microsoft Exchange Servers

● Plugin for Samba4

NO OUTLOOK PLUGIN REQUIRED

Page 6: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

6 of 4215/05/14

OpenChange The World www.openchange.org

Interoperability and coverage

● OpenChange server works with:

● OpenChange client stack works with:

MICROSOFTOUTLOOK 2013

MICROSOFTOUTLOOK 2007

MICROSOFTOUTLOOK 2003

MICROSOFTOUTLOOK 2010

EXCHANGE 5.5 EXCHANGE 2000 EXCHANGE 2003 EXCHANGE 2007

EXCHANGE 2010 EXCHANGE 2013SBS 2003 SBS 2007 SBS 2010

Page 7: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

7 of 4215/05/14

OpenChange The World www.openchange.org

Server Architecture Overview

Page 8: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

8 of 42

15/07/2013OpenChange The World www.openchange.org

YesterdaySince SambaXP 2013

Page 9: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

9 of 4215/05/14

OpenChange The World www.openchange.org

The nightmare

● Full OpenChange deployment required:

MINIMUM OF 3 HOURS TO COMPLETE

DovecotCourier-IMAP

PostfixExim4

MySQL or PostgreSQL

SOGo

Samba4 (sometimes

specific build/version)

Samba dependencies

(bundled libraries)

DNS SOGo MAPIStore backend

Apache mod_wsgi ocsmanager rpcproxy

Page 10: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

10 of 4215/05/14

OpenChange The World www.openchange.org

The nightmare continues

● Extremely complex to setup

● rare

MANY TRIED … FEW SUCCEEDED

source: www.reddit.com

Page 11: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

11 of 4215/05/14

OpenChange The World www.openchange.org

The nightmare ends?

WINNERS WERE ACCLAIMED EVERYWHERE

source: www.reddit.com

Page 12: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

12 of 4215/05/14

OpenChange The World www.openchange.org

Workarounds

● ZEG (Zero Effort Groupware)

● Virtualization image (vmdk, vdi)

● Pre-defined environment

● Lacks flexibility and customization

● OpenChange cookbook

● Step by Step deployment guide

● 3 hours required

● not suitable for mass adoption

Page 13: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

13 of 4215/05/14

OpenChange The World www.openchange.org

The promise

● 6 months after SambaXP 2013

● OpenChange integration into Zentyal Server

● Leverage existing infrastructure and community

● 400K bootstrap users potential target

FROM 3 HOURS TO 3 MINUTES DEPLOYMENT

Page 14: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

14 of 4215/05/14

OpenChange The World www.openchange.org

The truth

PEOPLE DID NOT KNOW OPENCHANGE EXISTED

Page 15: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

15 of 4215/05/14

OpenChange The World www.openchange.org

Moreover ...

PEOPLE DID NOT BELIEVE IT WAS WORKING ...

source: www.reddit.com

Page 16: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

16 of 4215/05/14

OpenChange The World www.openchange.org

Welcome to the real world

● Began to be tested … like never before

● Began to get bug reports … like never before

● Classical bug reporting not enough:

● Tracker tickets

● Forum posts describing the issues

● Emails

NEEDED TO ADDRESS THE SITUATION GLOBALLY

Page 17: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

17 of 4215/05/14

OpenChange The World www.openchange.org

Chaining paradox

● OpenChange is a Samba DSO

● SOGo is an OpenChange DSO

● If SOGo backend abort(), OpenChange dies

● If SOGo backend SIGSEGV, Samba dies

Page 18: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

18 of 4215/05/14

OpenChange The World www.openchange.org

Addressing bugfixing plan

FINAL USER DEVELOPER QA

APPORT SYSTEM

INTEGRATED TO DASHBOARD

CRASH REPORT SUBMISSION PLATFORM

DEBUGGING SCRIPT MANUAL TESTING

AUTOMATIC TESTING

CONTINUOUS INTEGRATION

Page 19: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

19 of 4215/05/14

OpenChange The World www.openchange.org

Final User: Apport system

● Samba4 added to apport list

● Submission button available from Zentyal dashboard

● Crash report platform on Zentyal Servers

● “Foire aux crash report”

● apport-retrace -g <crash_file>

● Extremely powerful but:

● Simple repository

● No management of duplicate

● Not anonymous enough – Not personalized enough

Page 20: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

20 of 4215/05/14

OpenChange The World www.openchange.org

Developer bugfixing

● Post-process vs live-process analysis

● single mode not working

● SOGo backend is doing reentrant LDAP calls

● event loop issue not addressed in OpenChange

● multi-forked model debugging

● attach to the correct process BEFORE it crashes

Page 21: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

21 of 4215/05/14

OpenChange The World www.openchange.org

Developer bugfixing

● Go through samba processes

● Read maps file

● Locate OpenChange libraries mapped in process address space

● Launch gdb instance

DEBUGOC.PY SCRIPT

Page 22: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

22 of 4215/05/14

OpenChange The World www.openchange.org

Quality Assurance

● Early bug detection

● Prevent regression

● Anticipate problems

● Two methodologies:

● Automated testing

● Sikuli, OpenStack, ANSTE

● Manual testing

● Find what you are not looking for

● Very valuable because of the entropy

Page 23: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

23 of 4215/05/14

OpenChange The World www.openchange.org

Quality Assurance

Wintest - Framework for testing Zentyal against Windows virtual machines

Page 24: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

24 of 42

15/07/2013OpenChange The World www.openchange.org

Today

Page 25: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

25 of 4215/05/14

OpenChange The World www.openchange.org

In a nutshell

WE KNOW WHAT IS WORKING WE KNOW WHAT IS NOTNOT WORKING

WE DO ANTICIPATE GROWING DEVELOPMENT TEAM

Page 26: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

26 of 4215/05/14

OpenChange The World www.openchange.org

In a nutshell

WE HAVE NEW FEATURESWE HAVE NEW DESIGN &

ARCHITECTURE POSSIBILITIES

WE HAVE NEW PROCESSES &INFRASTRUCTURE

Page 27: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

27 of 4215/05/14

OpenChange The World www.openchange.org

New Features

● Extends OpenChange client stack coverage:

● Microsoft Exchange 2013

● Office 365

● Hosted Provider with Outlook anywhere support

● Work available on github branch

RPC OVER HTTP/HTTPS FOR SAMBA DCERPC CLIENT LIBRARIES

Page 28: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

28 of 4215/05/14

OpenChange The World www.openchange.org

New Features

● OpenChange can use existing Microsoft Exchange schema

● Mailboxes can be migrated from Exchange to OpenChange

PROVISION AS ADDITIONAL EXCHANGE SERVER

Page 29: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

29 of 4215/05/14

OpenChange The World www.openchange.org

New Features-Architecture

● OpenChange a synchronous process

● No way to notify Outlook a new mail has arrived

● Situation addressed with:

● Dovecot plugin to trigger notification

● RabbitMQ to transport notifications

● Python worker to process notifications

● Make use of Outlook idle loop to update client

NEWMAIL NOTIFICATION AND RABBITMQ

Page 30: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

30 of 4215/05/14

OpenChange The World www.openchange.org

Page 31: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

31 of 4215/05/14

OpenChange The World www.openchange.org

New Design and Architecture

● OpenChange deployed in containers:

● openchange/mysql: indexing, mailbox structure and everything but mail data

● openchange/mta: postfix/dovecot

● openchange/sogo: sogo server

● Launcher script available

● $ git clone https://github.com/openchange/docker

OPENCHANGE IN DOCKER

Page 32: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

32 of 4215/05/14

OpenChange The World www.openchange.org

New Design and Architecture

● Decomposable, ideal for orchestration:

● rpcproxy:

● Handle MAPI over HTTP/HTTPS flow

● Turn it into regular MAPI

● samba4:

● Dummy DC

● MAPI processing

● mysql:

● Data storage (but email)

● samba4 “real” AD

OPENCHANGE IN THE CLOUD

Page 33: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

33 of 4215/05/14

OpenChange The World www.openchange.org

New Design and Architecture

● multi-tenancy (multi-company support)

● provisioned AD different from samba workers – containers

● unified storage in MySQL but email

● Load-Balancing and scalability

OPENCHANGE IN THE CLOUD

Page 34: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

34 of 4215/05/14

OpenChange The World www.openchange.org

New Infrastructure

● Every OpenChange commits triggers travis-ci build

● We bridge the gap with unit testing's lack of coverage

INTEGRATION WITH TRAVIS-CI

Page 35: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

35 of 42

15/07/2013OpenChange The World www.openchange.org

Tomorrow

Page 36: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

36 of 4215/05/14

OpenChange The World www.openchange.org

Work in Progress

● Improve apport usefulness

● Handle duplicates (detection, database)

● Order crash reports based on code path

APPORT DATA MINING TOOL

Page 37: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

37 of 4215/05/14

OpenChange The World www.openchange.org

Work in Progress

● Developing OpenChange backend takes time

● C developers are rare

● Objective: Be able to write a backend in 2-3 days

● C to Python gateway

● Slower than C backend but acceptable compromise

● Exchange is not realtime, therefore speed is not the issue

MAPISTORE PYTHON BACKENDS

Page 38: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

38 of 4215/05/14

OpenChange The World www.openchange.org

Possibility

● Dissociate OpenChange/MAPIStore from backends

● JSON communication between OpenChange and backends

● Make Samba/OpenChange more robust and fault tolerant to backend implementors code

● Suits modern object store models

MAPISTORE WEB SERVICE BACKENDS

Page 39: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

39 of 4215/05/14

OpenChange The World www.openchange.org

Possibility

● CIFS backend

● Immediate access

● Storage unified

● Advanced ACLs

● Zentyal Cloud backend

● Revision history

● Point in time recovery

PUBLIC FOLDERS

Page 40: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

40 of 4215/05/14

OpenChange The World www.openchange.org

Possibility

● We currently support:

● autodiscovery

● free/busy

● out of office

INCREASE SUPPORT OF EXCHANGE WEB SERVICES

Page 41: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

41 of 4215/05/14

OpenChange The World www.openchange.org

Possibility

● MAPI is not NDR encoded

● NDR generated code is too low-level in some cases

● MAPIROPS compiler pack/unpack MAPI as a buffer

● Add more Exchange processing logic at compiler level

● Auto-generate unit tests

MAPIROPS COMPILER

Page 42: Beyond Technical Fulfillment - sambaXP Technical Fulfillment SambaXP 2014 May 15th, 2014 Julien Kerihuel j.kerihuel@openchange.org. 2 of 42 ... Submission button available from Zentyal

42 of 4215/05/14

OpenChange The World www.openchange.org

Julien Kerihuel,

OpenChange Founder

[email protected]

www.openchange.org

Questions?

@OpenChangeProj@jkerihuel


Recommended