Walkthrough
This walkthrough is intended to quickly get to know COSMO Alpaca and the modern development process it supports you with.
Set-up COSMO Alpaca
Before starting with the walkthrough, let's set up our tooling.
- Sign in to Azure DevOps and create your own Azure DevOps organization or use an existing one.
- Note for trial users: If you never used Azure DevOps you need to wait for 5min until your first Azure DevOps sign-up has been synchronized, else you'll get an error and need to sign-out and sign-in again.
- Set-up VS Code and the COSMO Alpaca Extension
Create your first app and requirement
Imagine you're the project manager or lead developer and you got a new customer. You now set up the new project for that customer via VS Code and create a WorkItem:
- Create a project
- Create AL App and pipelines
- Open your created Project in the browser and create a new WorkItem with a requirement that you'll be working on next
Implementing your first requirement
Now you're switching to the developer role. You need to implement the requirement described in the WorkItem your project manager just created. You use the tool you're familiar with: VS Code (with the COSMO Alpaca extension):
- Clone your app repository to your local machine for development. Open the workspace.
- Create a development container for the app you just created
- While your container starts, find the WorkItem you'll work on and create a new branch for it. Switch to that branch.
- Connect your launch.json to the container
- Your container should be started by now (it turned blue). Open the BC web client, copy the generated username and password and sign in.
- Download symbols and start developing and debugging like normally.
- When done, associate the WorkItem to your commit and push your changes.
- Use the extension to create a Pull Request for your development branch.
- Check out the pipeline that started verifying your Pull Request. You can open it via the extension as well.
- While the pipeline runs, take the time to check your WorkItem. You can observe that everything is linked: From the development branch, over the commit on to the Pull Request. Full end-to-end tracking of changes now is a breeze.
- If the pipeline succeeded, either delete or stop your container to free up resources for other users.
Next a lead developer would review the code changes of the Pull Request. A functional verification would be needed as well.
Validating the implementation from a functional perspective
As the development work is now finished, imagine you're a project manager or functional consultant and need to verify the change the developer just implemented before the code is merged.
Deploying your app
There comes a time in your project where you need to deploy the current state of the project. The default way would be to use Release Pipelines to (continuously) deploy changes to a test, QA and production environment. You can set up release pipelines to deploy to SaaS or OnPrem environments with a single click via VS Code. Afterwards you need to configure the connection to your environment.
You now learned the fundamental flow of working with COSMO Alpaca. You're now prepared to handle basic projects. What about more advanced projects?
Additional use cases covered by COSMO Alpaca
Apps you develop often depend on certain artifacts like other apps (from an Artifact Feed or filesystem), DLLs, fonts, RapidStart packages or FOBs. You can easily configure them via the
cosmo.json
file in your app repository, so they get deployed at the container startup.For your containers you may want other data than the Cronus one to develop, test or demo with. You can set up an on-premises or SaaS backup that your containers will be using as a base. BacPacs need to be converted to BAK with the integrated conversion feature first.
Next to the artifacts described in the two cases above you can also change the major version or the country of your app, the service tier, licenses, compiler as well as many other settings in the
cosmo.json
configuration. You can even add additional configurations, so users in your project can choose which combination of artifacts or BC version they want to use when creating a container. Changes to this file can be tested in a separate branch as well before rolling them out to everyone.You want to check what your container is doing, you want to move files to or from the container or access the terminal to issue your own commands or debug things? You can easily access the container logs, fileshare and terminal.
Developing SaaS apps and also want to check your apps against the Next Major and Next Minor versions? Set up Next Minor and Next Major pipelines to automatically check your apps every night.
Quickly want to set up a container for a specific version and country that is not related to a project? You can use Standalone Containers to create those environments with a simple wizard.
If you work in many projects you may get overwhelmed by the long Azure DevOps organization list. Declutter your workspace and configure your favorite organizations
You got a project that wasn't created with COSMO Alpaca? The onboarding function is able to make most of your project ready for it.
Do you need to execute some custom logic for all the development, test or demo containers in your project to e.g. add users or install another dependency not covered by the default configuration? You can set up custom scripts that are automatically executed on container start.
If you need to extend the default pipelines, you can use the available Pipeline Hooks
Administrators can set up configurations which affect all users of COSMO Alpaca, independent of the project:
- Global IP artifact feeds so that you can more easily configure artifacts you often need in projects.
- Azure Active Directory Authentication for containers to remove the need of entering credentials
There of course is much more, but this should cover most of your scenarios. Missing something or got a question? Please get in touch!