Monday, 25 May 2015

MB7-702 Microsoft Dynamics NAV 2013 C/Side Development

MB7-702 Microsoft Dynamics NAV 2013 C/Side Development

Published: 18 January 2013
Languages: English, French, German, Spanish
Audiences: IT professionals
Technology: Microsoft Dynamics NAV 2013
Credit towards certification: MCP, MCTS

Skills measured
This exam measures your ability to accomplish the technical tasks listed below. The percentages indicate the relative weight of each major topic area in the exam. The higher the percentage, the more questions you are likely to see on that content area in the exam.

Please note that the questions may test on, but will not be limited to, the topics described in the bulleted text.

Describe the data and process models (10-15%)

Explain the table types and characteristics
Explain the characteristics of master tables, supplemental tables, subsidiary tables, ledger tables, register tables, journal tables, document tables, document history tables and setup tables

Describe the standard data model and process model
Describe the data model diagram, describe standard data flow and typical data triggers

Preparation resources
Tables
Triggers
Design the data model

Implement master tables, pages and documents (10-15%)

Track participants
Develop participant tracking solutions, describe triggers and multi-language support

Manage seminars, instructors and rooms
Describe seminar management; explain a setup table, master tables and pages; design seminar management solutions; develop solutions to manage instructors and rooms; create seminar tables and pages

Implement documents
Describe registrations; design a solution for registrations; develop registrations; use objects as text files; describe multi-language functionality in text messages; explain document pages, page functions, virtual tables, temporary tables and system tables

Describe the table code
Describe seminar registration line table code, the seminar charge table, the seminar comment line table and pages

Preparation resources
How Do I: Work with the Payment Registration for incoming payments in Microsoft Dynamics NAV 2013 R2
Page Designer walkthroughs

Implement posting and dimensions (10-15%)

Explain posting and develop a posting solution
Describe the journal, ledger, register, tables and pages; identify journal posting codeunits; explain the journal and document posting processes; describe the example posting routine, existing objects, and code comments; diagnose performance issues; create journal and document posting routines; create and modify codeunits, tables, and pages for a posting solution; complete the journal and ledger tables registration posting; create codeunits and pages for seminar journal posting; create tables and pages for posted registration information; modify tables, pages, and codeunits for resource posting; create codeunits for document posting

Integrate seminar management with dimensions
Choose dimension types, set up dimensions, describe the dimensions data model, design and develop integration of seminar management with dimensions

Preparation resources
Set up posting groups
Codeunits
Set up dimensions to mark transactions

Implement feature integration and role tailoring (10-15%)
Integrate seminar-management features

Modify tables that contain data, design and develop seminar feature integration

Enable the Navigate feature
Describe Navigate feature architecture, develop solutions for the Navigate feature, integrate objects with the Navigate feature

Explain role tailoring
Describe the RoleTailored user interface, Role Centre, actions, ribbon, activities, lists, charts and profiles

Develop the seminar manager Role Centre and department page

Design seminar manager Role Centre solutions, develop seminar management department pages

Create and design MenuSuite objects
Describe the fundamentals of the MenuSuite object type, explain the design levels, create and design MenuSuite objects, explain how searching functions by using the Microsoft Dynamics NAV 2013 Windows client

Preparation resources
Navigation pane
Learn about the RoleTailored design
Walkthrough: Creating MenuSuites for the Microsoft Dynamics NAV Windows client

Create reports and manage statistics (10-15%)

Design and create a participant list report
Design and analyse solutions; differentiate between GUI design, functional design and table design; create seminar participant lists

Develop invoice posting batch jobs
Design and analyse solutions, create invoice posting batch jobs

Manage seminar statistics
Design and analyse solutions, add statistics to the Seminar Management module, create FlowFields of the Sum type, create seminar statistics pages

Preparation resources
Report design guidelines
Batch post purchase invoices batch job
SumIndexField Technology (SIFT)

Implement interfaces and Web Services (10-15%)

Automate email communication with participants
Explain how to implement automation and OCX controls to perform tasks by using other applications, describe file handling functions to import or export data, design and implement email capability

Explain Web Services
Explain Web Services architecture, SOAP Web Services, page operations with SOAP Web Services, extension codeunits and OData Web Services; handle user interface interactions

Develop a Web Service
Design, develop and test registration Web Services; create Web Services; create Windows form applications to test Web Services

Preparation resources
How to: Send email messages
Overview of Microsoft Dynamics NAV Web Services
Web Service walkthroughs

Test and debug code (10-15%)
Test the seminar management solution

Describe test-driven development fundamentals; test features, codeunits and functions; explain transaction models for test functions; describe the use of ASSERTERROR in test functions; use handler functions; test pages; create and run a test runner codeunit; design and develop seminar management test solutions; create seminar management unit tests

Debug code
Activate the Microsoft Dynamics NAV Debugger, use breakpoints, run and track code

Preparation resources
Testing the application
Walkthrough: Debugging the Microsoft Dynamics NAV Windows client
How do I: Use the Debugger in Microsoft Dynamics NAV 2013 R2

Optimise for SQL Server (10-15%)
Explain SQL Server integration and database tasks with Microsoft Dynamics NAV

Explain the advantages of using SQL Server for Microsoft Dynamics NAV 2013, describe Microsoft Dynamics NAV tables and indexes in SQL Server, explain how to share data across companies, obtain a list of indexes and their definitions

Use collation, the SQL Server Profiler and the SQL Server query optimiser
Describe collation, order by sort, describe the value of the SQL Server query optimiser, gather SQL Server statistics, explain SQL Server Profiler terminology

Optimise a Microsoft Dynamics NAV application
Optimise SumIndexField Technology (SIFT) tables and indexes, describe the index usage query, define keys to improve performance, describe implicit and explicit locking, identify problems with NEXT, define suboptimal coding and other performance penalties, analyse index usage, optimise C/AL code

Explain data access redesign
Describe simplified deployment, explain decreased resource consumption, identify caching, describe performance improvements

Describe C/AL database functions and performance on SQL Server
Describe the GET, FIND, NEXT, CALCFIELDS, CALCSUMS, COUNT, SETAUTOCALCFIELDS, INSERT, MODIFY, DELETE and LOCKTABLE functions; explain dynamic result sets

Describe bulk inserts, locking, blocking and deadlocks
Describe bulk inserts; identify bulk insert constraints; describe locking, blocking and deadlocks; explain the benefits of avoiding deadlocks
Describe SIFT data storage in SQL Server
Identify SIFT data storage in SQL Server

Preparation resources
Optimising SQL Server performance with Microsoft Dynamics NAV
C/AL database functions and performance on SQL Server
SIFT and SQL Server




QUESTION 1
Which of the following options best describe the core aim of utilizing a function trigger?

A. It forms an indicator which is set upon a record pending modifications in the table
B. It forms an indicator to alert you upon the page being opened and the record being recaptured
from the required table
C. It forms an indicator to bring to your attention that the page has been loaded yet the controls
are still unavailable
D. It forms an indicator which is set upon a new record being added to a table

Answer: D

Explanation:


QUESTION 2
Which of the following posting groups will need to be included in a table if you are assigned the
task of creating a master table which represents entities with business associates?

A. Customer Posting Group
B. The Gen. Prod. Posting Group
C. VAT Business Posting Group
D. VAT Posting Setup

Answer: B

Explanation:


QUESTION 3
Which of the following statements regarding Text fields is true?

A. The Item table can have a Text field of up to 256 characters.
B. The Item table can have a Text field with a minimum of 156 characters.
C. The Item table can have a Text field of up to 250 characters.
D. The Item table can have a Text field of exactly to 186 characters.

Answer: C

Explanation:


QUESTION 4
Which of the following options states the correct amount of SumIndexFields one key is capable of
possessing in a FlowField?

A. A minimum of 10
B. Exactly 18
C. A maximum of 20.
D. A maximum of 22

Answer: C

Explanation:


QUESTION 5
Which of the following statements regarding bulk inserts is accurate?

A. Bulk inserts on the tables increase the capacity for server calls thus greatly advancing
performance capabilities.
B. Bulk inserts would be implemented upon needing to find statements therefore greatly lessens
the period in which the table is unlocked.
C. Bulk inserts would be implemented upon needing to alter or remove statements on the table as
this greatly lessens the period in which the table is locked.
D. The bulk inserts enhance the scalability by accelerating the insert in the transaction therefore
this greatly lessens the period in which the table is locked

Answer: C

Explanation:

Wednesday, 20 May 2015

Exam 70-489 Developing Microsoft SharePoint Server 2013 Advanced Solutions

Exam 70-489 Developing Microsoft SharePoint Server 2013 Advanced Solutions

Published: 20 November 2013
Languages: English, Chinese (Simplified), French, German, Japanese, Portuguese (Brazil)
Audiences: Developers
Technology: Microsoft SharePoint Server 2013
Credit towards certification: MCP, MCSD

Skills measured
This exam measures your ability to accomplish the technical tasks listed below. The percentages indicate the relative weight of each major topic area in the exam. The higher the percentage, the more questions you are likely to see on that content area in the exam.

Please note that the questions may test on, but will not be limited to, the topics described in the bulleted text.

Design and implement search (15–20%)

Query search

This objective may include but is not limited to: build search queries using FAST Query Language (FQL) and Keyword Query Language (KQL), execute search queries using client-side object model (CSOM), Web Services and REST

Customise search results

This objective may include but is not limited to: create custom result sources, create display templates, create result types, create custom refiner definitions, implement query rules

Customise content processing

This objective may include but is not limited to: feed external content types, implement content processing extensions (entity extraction), configure out-of-the box content processing, create content mappings

Preparation resources

Building search queries in SharePoint 2013
Customising search results in SharePoint 2013
Custom content processing with the Content Enrichment web service callout

Implement Business Connectivity Services (BCS) (10–15%)

Create a model

This objective may include but is not limited to: optimise queries for performance and throttling, use naming conventions, use batching, create filters, implement methods, create associations

Create external content types

This objective may include but is not limited to: use SQL data sources, use Windows Communication Foundation (WCF) Web Services, use OData, use .NET connector

Implement authorisation and authentication

This objective may include but is not limited to: use pass-through, use BCS Identity and User Identity, use a custom model

Create custom connectors

This objective may include but is not limited to: implement methods (including Search), implement security trimming, implement configuration properties, implement caching, implement external event receiver

Access BCS data

This objective may include but is not limited to: use BCS Web Parts, use BCS data in workflows, use BCS CSOM, use the server-side object model, use BCS REST

Implement client-side BCS

This objective may include but is not limited to: use caching, use Microsoft Office apps, use Microsoft Visual Studio Tools for Office, use SQL replication, implement authorisation and authentication

Preparation resources

Business Connectivity Services in SharePoint 2013
External content types in SharePoint 2013
BCS client object model reference for SharePoint 2013

Implement user profiles and customise social workload (15–20%)

Manage user profile properties

This objective may include but is not limited to: create and update user profile properties, update privacy filters, map properties to external data, use managed metadata term sets, update profile picture

Manage feeds

This objective may include but is not limited to: use CSOM to follow documents, people, sites, get feeds, create posts, and manage like, reply, mention, tag, link, add pictures

Access user profile data

This objective may include but is not limited to: use CSOM, use the object model, use REST, use Web Services

Preparation resources

Work with user profiles in SharePoint 2013
How to: Learn to read and write to the social feed by using the REST service in SharePoint 2013
Data access options for apps in SharePoint 2013

Implement Enterprise Content Management (ECM) and Web Content Management (WCM) (15–20%)

Implement a multilingual site

This objective may include but is not limited to: submit a page or batch of pages for translation, publish pages, create source and target labels, create channels, implement multi-language site navigation

Implement e-discovery

This objective may include but is not limited to: create a new hold, integrate with Microsoft Exchange Web Services, specify content sources and Search criteria, export discovery sets, manage permissions for hold

Implement Search Engine Optimization (SEO)

This objective may include but is not limited to: create a site map, customise a site map, maintain SEO configuration properties, maintain robots.txt file, maintain SEO properties on term

Implement content management

This objective may include but is not limited to: create information management policies, create content organiser rules, create document sets, create document ID providers

Implement a publishing page

This objective may include but is not limited to: add field controls to a page layout, add web parts to a page layout, create a publishing page layout, inherit content types

Preparation resources

eDiscovery in SharePoint 2013
How to: Create a page layout in SharePoint 2013
Plan web content management in SharePoint Server 2013

Design for performance and troubleshooting (15–20%)

Design solutions to handle a high-traffic site

This objective may include but is not limited to: combine images, implement caching, minimise number of queries, optimise JavaScript loading, use Content Delivery Networks (CDNs), create a scalable aggregator

Design client applications for performance

This objective may include but is not limited to: leverage health score rules, optimise number of batch server requests, use client-side cache, minimise amount of data requested

Monitor and mitigate performance and scalability issues

This objective may include but is not limited to: diagnose application stability issues, debug the server side and app code on the client side, create application diagnostics, measure and test application performance

Preparation resources

Plan for performance and capacity management in SharePoint Server 2013
Solving problems and troubleshooting in SharePoint 2013
Plan for caching and performance in SharePoint Server 2013

Implement Managed Metadata Service (MMS) (15–20%)

Manage term sets

This objective may include but is not limited to: import and export term sets, create multilingual labels, reuse terms, manage term properties, perform translation, create groups and assign permissions

Create solutions by using MMS

This objective may include but is not limited to: use Profile Pages, use the Product Catalog, use cross-site publishing, integrate with Search, implement metadata-driven navigation

Use an MMS API

This objective may include but is not limited to: use CSOM in client applications, use REST in client applications, use managed fields, use server-side object model

Preparation resources

Managed metadata and navigation in SharePoint 2013
SharePoint 2013: Import a term set from an external source
Cross-site publishing in SharePoint 2013



QUESTION 1
You have been tasked with configuring filtering as per the prerequisites.
Which of the following actions should you take?

A. You should consider making use of the itemCategory;category filtering option.
B. You should consider making use of the itemID;num filtering option.
C. You should consider making use of the itemCategory;itemID filtering option.
D. You should consider making use of the itemID;itemCategory filtering option.

Answer: D

Explanation:


QUESTION 2
You are preparing to establish the reason for an error message being presented when adding the
custom Visual Web Part to a SharePoint site.
Which of the following actions should you take?

A. You should consider making use of the Get-SPLogEvent cmdlet.
B. You should consider making use of the New-SPUsageLogFile cmdlet.
C. You should consider making use of the New-SPLogFile cmdlet.
D. You should consider making use of the Get-SPLogLevel cmdlet.

Answer: A

Explanation:


QUESTION 3
You are preparing to write code to create the tool that supports social connections.
Which of the following is a class of the Microsoft.SharePoint.Client.Social namespace that should
be included in the code?

A. The SocialFollowingManager class.
B. The SocialFeedManager class.
C. The SocialActorInfo class.
D. The SocialPostActorInfo class.

Answer: C

Explanation:


QUESTION 4
You are preparing to configure caching in keeping with the prerequisites.
Which of the following actions should you take?

A. You should consider making use of the System File Cache option.
B. You should consider making use of the Cache API option.
C. You should consider making use of the Windows Server AppFabric Cache option.
D. You should consider making use of the Page Output Cache Cache option.

Answer: C

Explanation:


QUESTION 5
You are preparing to make sure that those users who access the site via their Windows phones,
receive notification regarding the newly created Windows phone app.
Which of the following actions should you take FIRST?

A. You should consider modifying the Phone master page.
B. You should consider modifying the Tablet master page.
C. You should consider modifying the Default master page.
D. You should consider setting the IncludedChannels property to Default.

Answer: C

Explanation:

Saturday, 16 May 2015

Exam 70-337 Enterprise Voice & Online Services with Microsoft Lync Server 2013

Exam 70-337
Enterprise Voice & Online Services with Microsoft Lync Server 2013

Published: 06 November 2012
Languages: English, Japanese
Audiences: IT professionals
Technology: Microsoft Lync Server 2013
Credit towards certification: MCP, MCSE


Skills measured
This exam measures your ability to accomplish the technical tasks listed below. The percentages indicate the relative weight of each major topic area in the exam. The higher the percentage, the more questions you are likely to see on that content area in the exam.

Please note that the questions may test on, but will not be limited to, the topics described in the bulleted text.

Design Enterprise Voice (27%)

Design Enterprise Voice topology

Design mediation server collocation or placement, gateways, trunks, voice resiliency, mediation server dependencies, and voice usage and traffic

Design call routing

Design dial plans, routes, normalisation, voice policies, basic emergency dialling and notification, and PSTN usages

Design voice interoperability to PSTN

Define SIP trunk capacity requirements; design multiple media gateway support, trunk configuration; define outbound translation rules, inbound dial plan; qualify technology options from UCOIP

Design voice applications

Design call park, response group delegation model, response group workflows; determine correct usage of private line and vacant number announcements

Design unified messaging

Design UM dial plans, normalisation rules, UM auto-attendant, subscriber access, UM outbound dialling, and UM placement and capacity

Preparation resources

Planning for Enterprise Voice
Enterprise Voice and Online Services with Lync Server 2013: (03) Designing Exchange Server 2013 unified messaging integration
Guidelines for integrating on-premises unified messaging and Lync Server 2013

Design and configure network services (26%)


Design for network optimisation

Assess network requirements; plan for optimal conferencing traffic, capacity, Edge placement, QOS support; estimate network usage

Plan network services for Lync

Plan Location Information Services (LIS), Call Admission Control (CAC) for voice, Call Admission Control (CAC) for video; define port requirements for internal and external services; plan for Media Bypass

Configure network services for Lync

Configure Location Information Services (LIS), Call Admission Control (CAC) for voice, Call Admission Control (CAC) for video, DHCP for phone edition, QOS, and media bypass

Preparation resources

Network infrastructure requirements
Network planning for Lync Server
Enterprise Voice and Online Services with Lync Server 2013: (07a) Networking, Part 1

Configure Enterprise Voice (26%)

Configure voice applications

Configure call park, Response Group workflows, Response Group queues, private line, and vacant number announcements

Configure call routing

Configure dial plans, routes, trunks; apply voice policies, PSTN usages, and emergency dialling

Configure unified messaging for Lync

Configure UM dial plans, the normalisation rules, UM auto-attendant, subscriber access, and call answering rules

Preparation resources

Deploying Enterprise Voice
Microsoft Lync Server 2013 dial plan and voice routing deep dive
Enterprise Voice and Online Services with Lync Server 2013: (02) Configuring basic Enterprise Voice functionality

Plan and configure a Lync Online hybrid solution (21%)

Plan Lync Online hybrid solution

Plan for Lync Online hybrid dependencies, SIP namespace, corporate access to Lync Online, and capacity (network and Lync Online service); configure Edge server for federation with Lync Online; analyse business and user requirements

Migrate to Lync Online
Configure clients for Lync Online; enable or move users to Lync Online; create a hybrid voice dial plan; migrate user settings to Lync Online; administer Lync Online native and Lync Online hybrid

Diagnose connectivity in a Lync Online hybrid environment
Confirm DNS records; choose test CMDLETs; analyse signalling and media call flow; validate connectivity; use Microsoft Online Services Diagnostics and Logging Support Toolkit

Administer online UM
Configure DNS Records; configure Edge Server for integration; create and configure UM dial plan; manage and assign Hosted Voice Mail policies; enable users for Hosted Voice Mail; create Contact Objects for Hosted Voice Mail

Preparation resources
Planning for Lync Server 2013 hybrid deployments
Steps to prepare and deploy Lync Server 2013 hybrid environment
Move users to Lync Online



QUESTION 1
You have an Active Directory domain named contoso.com. Your company has a Microsoft Office
365 subscription. Twenty users are enabled for Microsoft Lync Online. The users frequently travel.
The users report that they receive the following error message when they attempt to sign in to
Microsoft Lync from the office:
"Cannot sign in because the server is temporarily unavailable. If the problem continues, please
contact your support team."
You verify that the users can sign in to Lync when they connect from the Internet. You need to
ensure that all of the users can sign in to Lync. Which alias (CNAME) record should you create in
the internal DNS domain?
To answer, select the appropriate record name and the appropriate record target in the answer
area.

Hot Area:



Answer:





QUESTION 2
Your network contains the servers shown in the following table. You configure the infrastructure
to use hosted Exchange Unified Messaging (UM). You need to create a new contact object for the
hosted UM auto attendant. What should you do?

A. From Server1, run ocsumutil.exe.
B. From Server3, run the exchucutil.ps1 script.
C. From Server3, run the New-MailContact cmdlet.
D. From Server1, run the New-CsExUmContact cmdlet.

Answer: D


QUESTION 3
You purchase a Microsoft Office 365 subscription and configure the pilot users to use the
@contoso.onmicrosoft.com UPN suffix. You need to ensure that the pilot users can perform the
following actions:
? Join meetings.
? Use a SIP address that has the @online.contoso.com suffix.
? Communicate with users who are hosted on Lync Server 2013.
Which three tasks should you perform? (Each correct answer presents part of the solution. Choose
three.)

A. From the Lync Online Control Panel, set up federation to contoso.com.
B. From the Lync Server Control Panel, set up federation to online.contoso.com.
C. From the Lync Server Control Panel, set up federation to contoso.onmicrosoft.com.
D. From the Lync Server Control Panel, update the user SIP addresses of the users to
@online.contoso.com.
E. From the Lync Online Control Panel, update the SIP addresses of the users to
@online.contoso.com.

Answer: ABE


QUESTION 4
Your company has a Microsoft Office 365 subscription and uses Microsoft Lync Online. After a long
network outage, some users reports that they cannot sign in to the Microsoft Lync client and they
receive the following error message:
"Cannot sign in to Lync. You may have entered your sign-in address, user name, or password
incorrectly, or the authentication service may be incompatible with this version of the program. If
your sign-in information is correct and the problem persists, please contact your system
administrator."
You confirm that other users can sign in successfully. You need to ensure that all of the users can
sign in to Lync Online. Which file should you delete on the users' client computer?
To answer, select the appropriate file in the answer area.
Hot Area:



Answer:





QUESTION 5
Your company has a Microsoft Office 365 subscription. The company uses Microsoft Lync Online.
You need to ensure that Lync Online users can use dial-in conferencing. The solution must minimize
costs. What should you do?

A. Deploy an Edge Server and add a hosting provider to the server.
B. Deploy an Edge Server and configure the A/V Edge service on the server.
C. Deploy an A/V Conferencing pool.
D. Set up an account with a third-party audio conferencing provider.

Answer: D

Monday, 4 May 2015

Containers vs. virtual machines: How to tell which is the right choice for your enterprise

There's a lot more to it than just how many apps you can put in a box

Name a tech company, any tech company, and they're investing in containers. Google, of course. IBM, yes. Microsoft, check. But, just because containers are extremely popular, doesn't mean virtual machines are out of date. They're not.

Yes, containers can enable your company to pack a lot more applications into a single physical server than a virtual machine (VM) can. Container technologies, such as Docker, beat VMs at this part of the cloud or data-center game.

VMs take up a lot of system resources. Each VM runs not just a full copy of an operating system, but a virtual copy of all the hardware that the operating system needs to run. This quickly adds up to a lot of RAM and CPU cycles. In contrast, all that a container requires is enough of an operating system, supporting programs and libraries, and system resources to run a specific program.

What this means in practice is you can put two to three times as many as applications on a single server with containers than you can with a VM.

In addition, with containers you can create a portable, consistent operating environment for development, testing, and deployment. That's a winning trifecta.

If that's all there was to containers vs. virtual machines then I'd be writing an obituary for VMs. But, there's a lot more to it than just how many apps you can put in a box.
Container problem #1: Security

The top problem, which often gets overlooked in today's excitement about containers, is security. As Daniel Walsh, a security engineer at Red Hat who works mainly on Docker and containers puts it: Containers do not contain. Take Docker, for example, which uses libcontainers as its container technology. Libcontainers accesses five namespaces -- Process, Network, Mount, Hostname, and Shared Memory -- to work with Linux. That's great as far as it goes, but there's a lot of important Linux kernel subsystems outside the container.

These include all devices, SELinux, Cgroups and all file systems under /sys. This means if a user or application has superuser privileges within the container, the underlying operating system could, in theory, be cracked.

That's a bad thing.
Now, there are many ways to secure Docker and other container technologies. For example, you can mount a /sys file system as read-only, force container processes to write only to container-specific file systems, and set up the network namespace so it only connects with a specified private intranet and so on. But, none of this is built in by default. It takes sweat to secure containers.

The basic rule is that you'll need to treat containers the same way you would any server application. That is, as Walsh spells out:

Another security issue is that many people are releasing containerized applications. Now, some of those are worse than others. If, for example, you or your staff are inclined to be, shall we say, a little bit lazy, and install the first container that comes to hand, you may have brought a Trojan Horse into your server. You need to make your people understand they cannot simply download apps from the Internet like they do games for their smartphone.

OK, so if we can lick the security problem, containers will rule all, right? Well, no. You need to consider other container aspects.

Rob Hirschfeld, CEO of RackN and OpenStack Foundation board member, observed that: "Packaging is still tricky: Creating a locked box helps solve part of [the] downstream problem (you know what you have) but not the upstream problem (you don’t know what you depend on)."
Breaking deployments into more functional discrete parts is smart, but that means we have MORE PARTS to manage. There's an inflection point between

To this, I would add that while this is a security problem, it's also a quality assurance problem. Sure, X container can run the NGINX web server, but is it the version you want? Does it include the TCP Load Balancing update? It's easy to deploy an app in a container, but if you're installing the wrong one, you've still ended up wasting time.

Hirschfeld also pointed that out container sprawl can be a real problem. By this he means you should be aware that "Breaking deployments into more functional discrete parts is smart, but that means we have MORE PARTS to manage. There’s an inflection point between separation of concerns and sprawl."

Remember, the whole point of a container is to run a single application. The more functionality you stick into a container, the more likely it is you should been using a virtual machine in the first place.

So how do you go about deciding between VMs and containers anyway? Scott S. Lowe, a VMware engineering architect, suggests that you look at the "scope" of your work. In other words if you want run multiple copies of a single app, say MySQL, you use a container. If you want the flexibility of running multiple applications you use a virtual machine.

In addition, containers tend to lock you into a particular operating system version. That can be a good thing: You don't have to worry about dependencies once you have the application running properly in a container. But it also limits you. With VMs, no matter what hypervisor you're using -- KVM, Hyper-V, vSphere, Xen, whatever -- you can pretty much run any operating system. Do you need to run an obscure app that only runs on QNX? That's easy with a VM; it's not so simple with the current generation of containers.

So let me spell it out for you.
Do you need to run the maximum amount of particular applications on a minimum of servers? If that's you, then you want to use containers -- keeping in mind that you're going to need to have a close eye on your systems running containers until container security is locked down.

If you need to run multiple applications on servers and/or have a wide variety of operating systems you'll want to use VMs. And if security is close to job number one for your company, then you're also going to want to stay with VMs for now.

In the real world, I expect most of us are going to be running both containers and VMs on our clouds and data-centers. The economy of containers at scale makes too much financial sense for anyone to ignore. At the same time, VMs still have their virtues.

As container technology matures, what I really expect to happen, as Thorsten von Eicken, CTO of enterprise cloud management company RightScale, put it is that VM and containers will come together to form a cloud portability nirvana. We're not there yet, but we will get there.

Best Microsoft MCTS Certification, Microsoft MCITP Training at certkingdom.com